目录
协议分层
对于网络协议来说,通常会分成几个层来定义.网络分层类似于面向接口编程,定义好两层间的规范,让双方对照这个接口来对接
OSI七层模型
Open System Interconnection,开放系统互连.OSI七层网络模型是一个逻辑上的规范和定义,把网络从逻辑上分成了七个层次,它的主要功能是帮助不同类型的主机实现数据传输.
OSI七层模型由高到低分别是:应用层 -> 表示层 -> 会话层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层.
OSI七层模型既复杂又不实用,因此它没有落地实现,实际上在组建网络时,只是以OSI七层模型中的部分分层来实现的,也就是TCP/IP五层模型或者说是四层模型.其中表示层和会话层未被实现.
TCP/IP五层模型
TCP/IP是一组协议的代名词,它还包括许多其他协议,TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.由于物理层考虑得比较少,很多时候也将其称为TCP/IP四层模型
TCP/IP五层模型从上到下依次是:应用层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层
· 应用层:应用程序所在的分层,约定好两个进程使用一样的协议,网络编程主要就是针对应用层,代表性的硬件/软件为进程,代表性的协议有http、https、DNS、NAT/NAPT协议等等
· 传输层: 负责两台主机之间的数据传输,确保可靠的传输,例如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机,代表性的硬件/软件为操作系统,代表的协议有TCP、UDP协议等等
· 网络层:负责地址管理与路由选择,例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的传输线路(路由),路由器(Router)工作在网络层,该层代表性的协议为IP协议
· 数据链路层:负责设备之间的数据帧的传送和识别,交换机工作在数据链路层,代表性的协议有以太网帧和ARP协议
· 物理层:负责0/1光电信号的传递,集线器工作在物理层.
网络设备所在的分层
· 对于一个主机,它的操作系统内核实现了从传输层到物理层的内容,因此操作系统工作在下四层(传输层、网络层、数据链路层、物理层),应用程序工作在应用层
· 路由器实现了从网络层到物理层,它工作在TCP/IP五层模型的下三层
· 交换机实现了从数据链路层到物理层,它工作在TCP/IP五层模型的下两层
· 集线器工作在物理层
封装和分用
封装:源主机中的进程发送网络数据的时候,需要将数据按网络分层,从高到低的顺序来对数据进行封装.应用层数据在经过这些网络分层时,每层协议都要加上一个数据首部
分用: 目的主机的进程接收数据的时候,需要将网络数据按网络分层,从低到高的顺序来对数据进行分用.每层协议去掉相应的首部,根据首部中的上层协议字段将数据交给对应的上层协议处理
上述的从高到低依次为:应用层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层
从低到高依次为:物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 应用层
数据封装的过程
数据分用的过程