TCP/IP 五层模型
从下到上依次是:
1)物理层:主要是指具体的物理媒介和物理设备
- 任务:物理层的主要功能是利用传输介质为数据链路层提供物理联接,负责数据流的物理传输工作(主要定义了系统的电气、机械、过程和功能标准。如:电压、物理数据速率、最大传输距离、物理联接器和其他的类似特性)。基本单位是比特流,即 0 和 1,也就是最基本的电信号或光信号
- 传输单位:比特
- 所实现的硬件:集线器,中继器
2)数据链路层:负责在物理层面上传输数据
- 任务:物理层只是简单的把计算机连接起来并在上面传输比特流,仅仅靠物理层是无法保证数据传输的正确性的,对于发送端来说,数据链路层会把网络层传下来的 IP 数据报封装成帧(添加一些控制信息),这样,接收端接收到这个帧的时候,就可以根据其中的控制信息来判断是否出现了差错,另外,还可以根据这些控制信息知道这个帧从哪个比特开始从哪个比特结束
- 传输单位:帧
- 所实现的硬件:交换机、网桥
3)网络层:负责在不同网络之间传输数据,实现了不同网络之间的互联
- 任务:对于发送端来说,网络层会将传输层传下来的 TCP 报文段或 UDP 用户数据报封装成 IP 数据报进行传输;通过路由选择协议选中合适的路由,使得源主机运输层所传下来的分组能够通过网络中的路由器找到目的主机
- 传输单位:分组(也叫 IP 数据报、数据报)。为了提供通信性能和可靠性,体积较大的 TCP 报文段或 UDP 用户数据报可能会被分成多个更小的部分,在每个部分的前面加上 TCP 或 UDP 首部,就构成了一个个较小的分组
- 所实现的硬件:路由器
- 代表协议:IP 协议、ARP 地址解析协议、ICMP 网际报文控制协议
4)传输层:提供端到端的可靠数据传输和错误恢复功能
-
任务:负责为两个主机中进程之间的通信提供服务。对于发送端来说,传输层会将应用层传下来的报文封装成 TCP 报文段或者 UDP 用户数据报进行传输。由于一个主机可同时运行多个进程,因此运输层有复用和分用的功能
- 复用,就是多个应用层进程可同时使用下面传输层的服务
- 分用,就是传输层把收到的信息分别交付给上面应用层中相应的进程
通过物理层、数据链路层以及网络层的互相作用,我们已经把数据成功从计算机 A 传送到计算机 B 了,可是,计算机 B 里面有各种各样的应用程序,计算机 B 该如何知道这些数据是给哪个应用程序的呢?
所以,我们在从计算机 A 传数据给计算表 B 的时候,还得指定一个端口(Port),以供特定的应用程序来接受处理。即 IP 地址 + 端口号就可以唯一确定某个主机上的某个应用进程
也就是说,网络层的功能是建立主机到主机的通信,而传输层的功能就是建立端口到端口的通信(也可以说是进程到进程之间的通信)
-
传输单位:报文段(TCP)或用户数据报(UDP)
-
代表协议:TCP、UDP
5)应用层:直接为应用程序提供服务的层
- 任务:直接为用户的应用进程提供服务
- 传输单位:报文。报文包含了将要发送的完整的数据信息,其长短不需一致
- 代表协议:DHC 动态主机配置协议、DNS 域名解析协议、HTTP、HTTPS、FTP、SMTP
OSI 七层模型
OSI 七层网络协议模型就是把应用层继续细分成了:会话层 + 表示层 + 应用层
- 会话层(Session layer):负责建立、管理和终止会话。代表协议有:RPC(Remote Procedure Call)、NFS(Network File System)等。
- 表示层(Presentation layer):负责数据的加密、压缩、格式转换等。代表协议有:JPEG(Joint Photographic Experts Group)、MPEG(Moving Picture Experts Group)等。
- 应用层(Application layer):提供各种服务,如电子邮件、文件传输、远程登录等。代表协议有:HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等