传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数
据从 一台计算机通过一定的路径发送到另一台计算机。
应用层数据通过协议栈发到网络上 时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
数据封装成帧后发到传输介质上,到达目的主机后每层 协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
在链路层之下还有物理层,指的是电信号的传递方式,物理层的能力决定了最大传输速率、传输距离、抗干扰性等。
集线器(Hub)是工作在物理层 的网络 设备,用于双绞线的连接和信号中继(将已衰减的信号再次放大使之传得更远)。
链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步(就是说从网线上检 测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工 作
交换机是工作在链路层的网络设备,可以在不同的链路层网络之间转发数据帧(比如十兆 以太网和百兆以太网之间、以太网和令牌环网之间),由于不同链路层的帧格式不同,交换机要 将进来的数据包拆掉链路层首部重新封装之后再转发。
网络层的IP协议是构成Internet的基础。Internet上的主机通过IP地址来标识,Internet上有大 量路由器负责根据IP地址选择合适的路径转发数据包,数据包从Internet上的源主机到目的主 机往往要经 过十多个路由器。网络层负责点到点(point-to-point)的传输(这里的“点”指主机或路由器)。
路由器是工作在第三层的网络设备,同时兼有交换机的功能,可 以在不同的链路 层之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路 层两层首部并重新封 装。IP 协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠 性可以在上层协议或应⽤用程 序中提供⽀支持。
传输层负责端到 端 (end-to-end)的传输(这里的“端”指源主机和目的主机)。传输层可选择TCP或UDP协议。
TCP是一种面向连接的、可靠的协议,TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可靠 性,丢失 的数据包自动重发,上层应用程序收到的总是可靠的数据流,通讯之后关闭连接。
UDP协议不面向 连接,也不保证可靠性。使用UDP协议的应用程序需要 自己完成丢包重发、消息排序等工作。
目的主机收到数据包后,如何经过各层协议栈最后到达应用程序的过程(封装的逆过程):