网络分层模型
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的通信过程其实就是一个数据发送和接收的过程。 上层应用每一层都添加本层的专有数据后,层层打包,并依赖下层服务发送。 接收过程与之相反,下层接收并拆解数据包,获取数据后为上层应用提供服务。
如下图所示:两台主机通过HTTP的通信过程其实就是一个数据发送和接收的过程。 上层应用每一层都添加本层的专有数据后,层层打包,并依赖下层服务发送。 接收过程与之相反,下层接收并拆解数据包,获取数据后为上层应用提供服务。