第3章 运输层(0)概述
服务可以很大程度上理解为操作系统内核实现的功能性代码模块(一组或多组关联的函数与数据结构),供应用程序调用。
运输层向上层提供的服务
共有的
多路复用与多路分解:运输层最基本的职责是将两个端系统间IP的交付服务扩展为运行在端系统上的两个进程之间的交付服务。
完整性检查:UDP和TCP均在其报文段首部中包括了差错检查字段。
UDP 除了上述2种共有的服务,不提供其它服务。
TCP 除了上述2种共有的服务,还包括以下若干附加服务。
可靠数据传输:通过使用流量控制,序号,确认和定时器,TCP确保正确地,按序地将数据从发送进程交付给接收进程。
拥塞控制:可以调节TCP发送流量速率来促进网络保持通畅。
共有服务 - 多路复用与多路分解
IP数据报中的IP地址将报文定位到主机,但想要再定位到主机中某个特定的进程就显得无从下手。
此时需要一种更高层次的定位标识:套接字(socket),一个进程可以和一个或者多个套接字关联。
每个报文段有特殊字段来指示该报文段要交付到的套接字:源端口字段(16bit)和目的端口字段(16bit)。
在任意时刻,每个主机范围内的 socket 都有一个唯一标识符。标识符的格式取决于运输层协议。
无连接的多路复用与多路分解 - (socket < - 二元组标识符:源端口,目的端口)
有连接的多路复用与多路分解 - (socket < - 四元组标识符:源端口,目的端口,源IP,目的IP)
为何两种协议需要使用不同 socket 标识符格式?