网络分层模型

2020 M12 20

网络分层的核心思想是分而治之,自下而上,将复杂的网络通信划分出多个层次,每个层次各司其职。 常见的体系划分有OSI更精细的七层划分,TCP/IP的四层划分,以及为更方便理解TCP/IP分层而延伸的五层划分。 它们的对应关系如下:

网络分层

物理层

物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境,数据传输单位是比特。

数据链路层

数据链路层定义了在相邻两个节点的链路上如何传输数据。 上层下放的IP数据报会在这一层被封装成带有数据和必要控制信息(同步信息,地址信息,差错控制)的帧在链路上传输。 通过必要控制信息,接收端不仅可以清楚每一帧的起止,提取数据部分上交网络(际)层,还能具备一定的纠错能力。 至于纠错方式,十分的简单粗暴:直接丢弃差错帧,避免无效传输造成的资源浪费。

网络层

网络层的目的是实现两个通信主机间数据的透明传送。 在TCP/IP体系中,网络层使用IP协议,上层下放的报文段(TCP)或用户数据报(UDP)会被封装成分组,也叫IP数据报。 通过IP协议完成路由寻址,精确找到目标通信主机

传输层

传输层负责向两个主机中进程之间的通信提供服务,保证数据在IP地址标记的两点之间可靠地传输。 在这一层有两个都很常用的协议,TCP和UDP,主要差异如下:
有无状态是否可靠数据传输形式收发是否有序传输单位可否直发数据
TCP连续字节流收发皆有序报文段否,需建立连接
UDP分散的小数据包发有序,收无序用户数据报可,无需建立连接

应用层

应用层直接和应用程序接口并提供常见的网络应用服务,这一层的数据交互单元称为报文。 常见的应用层协议有DNS,HTTP,SMTP,FTP,Telnet、SSH...
如下图所示:两台主机通过HTTP的通信过程其实就是一个数据发送和接收的过程。 上层应用每一层都添加本层的专有数据后,层层打包,并依赖下层服务发送。 接收过程与之相反,下层接收并拆解数据包,获取数据后为上层应用提供服务。
应用层数据传输