个人主页:chian-ocean
文章专栏-NET
从OSI到TCP/IP:网络协议的演变与作用
前言
在现代社会,计算机网络已成为不可或缺的基础设施,深刻地影响着我们的工作、生活、学习和交流方式。从最初的局域网到如今的全球互联网,网络技术的发展和普及已经打破了时空的界限,将世界各地的人们和资源紧密地联系在一起。无论是在日常生活中的社交互动,还是在全球范围内的信息交流和经济活动中,网络都发挥着举足轻重的作用。
网络发展
起初计算机,以单机模式被使用(也叫做独立模式),随着时间的退役,人们已经不局限于单机模式,而是将各个计算机联系到一起,形成一个计算机网络
以网络连接的计算机:
LAN
**局域网(LAN)**是一个相对较小范围的网络,通常在一个有限的地理区域内使用,如家庭、办公室、学校或企业等。局域网允许在物理距离较近的设备之间进行高速数据传输和共享资源。
WAN
**广域网(WAN)**是一种覆盖广泛地理区域的计算机网络,它通常可以跨越城市、国家,甚至全球。WAN的主要功能是将多个局域网(LAN)或城市网(MAN)连接在一起,形成一个覆盖范围广泛的通信网络。
计算机使用模式的演变:
年代 | 内容 |
---|---|
20世纪50年代 | 批处理时代 |
20世纪60年代 | 分时系统时代 |
20世纪70年代 | 计算机间通信时代 |
20世纪80年代 | 计算机网络时代 |
20世纪90年代 | 互联网普及及时代 |
2000年 | 以互联网为中心的时代 |
2010年 | 无论何时何地—皆为TCP/IP的网络时代 |
协议
协议,通俗来说,就是一套大家约定好的规则,用来帮助不同的计算机、手机或其他设备之间进行交流。就像我们与别人沟通时需要使用共同的语言一样,计算机和设备在互相传输数据时,也需要遵循特定的规则,这些规则就是协议。
举个例子:
假设你和朋友通过手机聊天,你们需要遵循一些“约定”,比如:
- 你们用某种语言(比如中文或英文)交流。
- 你发送消息时需要先输入文字,然后点击“发送”。
- 你们有约定好的表情符号,或者什么时候使用语音消息。
协议的产生
背景
1974年,IBM公司发布了SNA,将本公司的计算机通信技术作为系统化网络体系结构公之于众。从此,计算机厂商也纷纷发布各自的网络体系结构,引发了众多协议的系统化进程。然而,各家厂商的各种网络体系结构、各种协议之间并不相互兼容。即使是从物理层面上连接了两台异构的计算机,由于它们之间采用的网络体系结构不同,支持的协议不同,仍然无法实现正常的通信。
这就是方言和普通话的区别:
协议的标准化
为了解决异构的的问题,ISO(International Organization for Standardization)国际标准化组织,对通信系统做了标准化OSI开放系统互联,Open Systems Interconnection
OSI模型参考
在1984年提出的一种网络通信的标准化框架,旨在为计算机网络通信提供一个统一的、系统化的标准。OSI模型将计算机网络通信过程分为七个不同的层次,每一层都负责不同的功能,并且每层之间相互独立,提供特定的服务。
OSI模型终究是一个模型,,但是对各层做了一系列的解释,但是并没有对协议和接口做了详细的解释,对于学习是起到了很好的引导作用。
OSI各个分层的作用
各层次的功能简介
层次名称 | 功能 | 每层功能概览 |
---|---|---|
应用层 | 针对特定应用的协议 | 电子邮件、远程登录、文件传输协议等应用的协议 |
表示层 | 设备间数据格式和网络标准格式的转换 | 接收不同数据格式的信号,转换成标准格式,如文本流、图像、声音等 |
会话层 | 建立、管理和终止会话连接 | 管理会话的开始与结束,控制数据流 |
传输层 | 传输数据流的控制,确保数据的可靠传输 | 负责建立连接、管理连接的数量以及连接的特性 |
网络层 | 地址管理与路由选择 | 负责数据包通过不同路由到达目标设备 |
数据链路层 | 设备之间的连接和数据传输 | 对数据进行封装为帧,并确保数据能够无误地传输 |
物理层 | 物理设备的电信号传输 | 将数据以比特流的形式通过物理介质(如电缆、光纤、无线信号)传输 |
TCP/IP协议
TCP/IP协议(Transmission Control Protocol/Internet Protocol)是用于计算机网络中通信的一组协议,它是现代互联网和局域网中最广泛使用的协议。TCP/IP协议确保了不同设备之间的通信,使得全球各地的计算机可以通过互联网连接和互相通信。
TCP/IP发展历史
TCP/IP协议发展历史
年份 | 事件 |
---|---|
20世纪60年代后半叶 | 应DoD要求,美国开始进行通信技术相关的研发。 |
1969年 | ARPANET诞生。开发分组交换技术。 |
1972年 | ARPANET取得初步成功。扩展到50个节点。 |
1975年 | TCP/IP诞生。 |
1982年 | TCP/IP规范出台。UNIX是最早开始实现TCP/IP协议的系统。 |
1983年 | ARPANET决定正式启用TCP/IP作为通信协议。 |
1989年左右 | 局域网上的TCP/IP应用迅速扩展。 |
1990年左右 | 不论是局域网还是广域网,都开始倾向于使用TCP/IP。 |
1995年左右 | 互联网开始商用,互联网服务供应商的数量剧增。 |
1996年 | IPv6规范出台,载入RFC。(后于1998年修订) |
TCP/IP的标准化
20世纪90年代,ISO开展了OSI这一国际的标准化,但是OSI并没有得到普及,真正被广泛使用的标准是TCP/IP。
TCP/IP的具体含义
TCP/IP 不仅仅是 TCP 和 IP: 文中首先指出,有些人可能会认为 TCP/IP 仅仅是指两个协议:TCP(传输控制协议)和 IP(互联网协议)。这种理解是片面的。
TCP/IP 实际上是一个协议族: 文章进一步解释,TCP/IP 实际上指的是一个由多个协议组成的协议族,这些协议共同支持互联网的正常运行。在通信过程中,TCP/IP 协议族中的多个协议被用来完成不同的任务。
涉及的具体协议: 文中列举了几个属于 TCP/IP 协议族 的协议:
- IP 协议(包括 ICMP):用于路由和数据包的传输。
- TCP 协议:保证数据传输的可靠性。
- UDP 协议:提供一种不可靠但速度较快的数据传输方式。
- TELNET 协议:用于远程登录。
- FTP 协议:用于文件传输。
- HTTP 协议:用于网页浏览和数据交换。
TCP/IP分层
TCP/IP和OSI模型的对比
- 应用层(Application Layer):负责提供网络服务给用户应用程序,如HTTP、FTP、DNS等协议。它处理数据的表示、编码和加密等任务,确保应用之间的通信。
- 传输层(Transport Layer):负责提供端到端的通信服务,确保数据传输的可靠性和顺序。主要协议有TCP(面向连接、可靠)和UDP(无连接、不可靠)。
- 网络层(Network Layer):负责将数据包从源地址传输到目的地址,主要通过路由器实现数据的路由和转发。主要协议是IP(互联网协议)。
- 数据链路层(Data Link Layer):负责在物理设备之间传输数据帧,提供错误检测和纠正。协议如Ethernet、Wi-Fi等。
数据是如何传输的
数据压缩过程
数据压缩是指在传输数据之前,减少数据的大小,从而提高网络传输的效率,降低带宽消耗。压缩通常发生在 应用层,因为它与具体应用数据内容(如文本、图片、视频等)相关。
压缩过程示例:
- 应用层(应用数据):
- 比如发送一封邮件,内容包括文本、附件等。此时,邮件应用(例如电子邮件客户端)会将文本内容和附件数据压缩成一个更小的文件。例如,使用 gzip 或 zip 等压缩算法。
- 传输层(TCP):
- 压缩后的数据被送到传输层(TCP层)。TCP层会将压缩后的数据切分成更小的段(Segment),每个段包含了头部信息(如序列号、确认号等)和数据部分。TCP 本身不会对数据进行压缩,它只是将压缩后的数据封装在 TCP 包中进行传输。
- 网络层(IP):
- 在 IP 层,TCP 数据包被封装到 IP 包中。IP 层负责提供路由和地址信息。此时,压缩数据仍然存在,只是被封装在不同的协议头中。IP 层主要负责确保数据包的正确传输到目的地。
- 数据链路层(链路层):
- 数据链路层负责将 IP 包进一步封装成帧,以便在物理网络上传输。数据链路层对数据进行帧封装,包括 MAC 地址等网络硬件信息。
数据解包过程
当压缩数据到达目标主机时,解包过程会逐层进行,从最底层到最顶层逐层解封装。解包的目的是将数据从封装的格式中提取出来,交给上层协议进行处理。
解包过程示例:
- 物理层:
- 数据到达目标主机后,物理层负责接收来自网络中的信号,并将其转化为数字数据流。此时的数据是以电信号或光信号的形式传输,物理层的任务就是把它们转化成二进制数据供下层使用。
- 数据链路层:
- 数据链路层会解封装接收到的帧,提取出其中的 IP 包和相关的链路层信息(如 MAC 地址等)。如果数据是通过以太网传输的,数据链路层会将以太网帧的头部信息去除,只保留网络层的数据(即 IP 包)。
- 网络层(IP 层):
- 在网络层,IP 包会被解封装。此时,主机会检查目的 IP 地址,以确定该数据包是否是发送给自己的。如果 IP 地址匹配,主机会将数据包传递到上层(传输层)。IP 层会去掉 IP 头部,只留下 TCP 包裹的数据。
- 传输层(TCP 层):
- TCP 层会对数据进行解封装,移除 TCP 头部信息(如序列号、确认号等),并将数据传递给应用层。传输层的任务是确保数据完整且按顺序到达,TCP 层会进行数据重组,如果需要,还会做数据的重发。
- 应用层:
- 最后,数据到达应用层。应用层会提取数据并解压(如果压缩了)。例如,如果传输的是一封经过压缩的邮件,应用层会用相应的解压工具(如 gzip)对数据进行解压,恢复到原始的邮件内容。