传输层
物理层用网线光缆不需要地址。数据链路层(以太网协议)电脑多了需要MAC地址。IP层电脑更多了需要IP地址。IP地址能找到主机,还需要传输层找到主机上某个进程(端口)。传输层为运行在不同主机上的进程之间提供了逻辑通信。
UDP 和 TCP 最基本的责任是将两个端系统间的交付服务扩展为运行在端系统上的两个进程之间的交付服务。将主机间交付扩展到进程间交付被称为传输层的多路复用( transport- layer multiplexing )与多路分解(demultiplexing)。
IP 的服务模型是尽力而为交付服务。这意味着 IP不确保报文段的交付 , 不保证报文段的按序交付,不保证报文段数据的完整性。 由于这些原因,IP被称为不可靠服务( unreliable service )
传输协议能够提供的服务常常受制于底层网络层协议的服务模型 。 如果网络层协议无法为主机之间发送的传输层报文段提供时延或带宽保证的话,传输层协议也就无法为进程之间发送的应用程序报文提供时延或带宽保证。然而,即使底层网络协议不能在网络层提供相应的服务,传输层协议也能提供某些服务 。 例如即使底层网络协议是不可靠的,网络层协议会使分组丢失、篡改和冗余,传输协议也能为应用程序提供可靠的数据传输服务 。 即使网络层不能保证传输层报文段的机密性,传输协议也能使用加密来确保应用程序报文不被入侵者读取。
多路复用与多路分解
每个传输层报文段中具有几个字段。 在接收端,传输层检查这些字段,标识出接收套接字,进而将报文段定向到该套接字 。 将传输层报文段中的数据交付到正确的套接字的工作称为多路分解。 在源主机从不同套接字中收集数据块,并为每个数据块封装上首部信息(在以后用于分解)从而生成报文段,然后将报文段传递到网络层,这些工作称为多路复用。
UDP协议
特点
无需连接建立。TCP 在开始数据传输之前要经过三次握手,UDP 不需任何准备即可进行数据传输,因此 UDP 不会引入建立连接的时延 。 HTTP 使用 TCP 而不是 UDP ,因为对于具有文本数据的 Web 网页来说,可靠性是至关重要的 。但是HTTP 中的 TCP 连接建立时延对于与下载 Web 文档相关的时延来说是一个重要因素 。
无连接状态 。 TCP 需要在端系统中维护连接状态,此连接状态包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数。 要实现 TCP的可靠数据传输服务并提供拥塞控制,这些状态信息是必要的 。UDP 不维护连接状态也不跟踪这些参数 。 因此某些专门用于某种特定应用的服务器当应用程序运行在 UDP 之上而不是运行在 TCP 上时,能支持更多的活跃客户 。
分组首部开销小 。 每个 TCP 报文段都有 20 字节的首部开销,而 UDP 仅有 8 字节的开销 。
使用 UDP 的应用是可以实现可靠数据传输的。 这可通过在应用程序自身建立可靠性机制来完成(例如,可通过增加确认与重传机制来实现)。
结构
伪头部仅为了计算校验和使用。