/ NOTES

《计算机网络》读书笔记(三)

《计算机网络 自顶向下方法》读书笔记(三)

运输层

多路复用与多路分解

多路分解 (demultiplexing) :将运输层报文段中的数据交付到正确的套接字的工作。

多路复用 (multiplexing) :在源主机从不同套接字中收集数据块,并未每个数据块封装上首部信息,从而生成报文段,然后将报文段传递到网络层,所有这些工作称为多路复用。

一个 UDP 套接字是由一个二元组全面标识的,该二元组包含一个目的 IP 地址和一个目的端口号

TCP 套接字是由一个四元组(源 IP 地址源端口号目的 IP 地址目的端口号)来标识的。主机使用全部四个值来将报文段定向到相应的套接字。

无运输连接: UDP

UDP 报文段结构包括:首部应用数据

其中首部包括了 4 个字段,每个字段由两个字节组成,分别是:

  • 源端口号
  • 目的端口号:通过端口号可以执行分解功能
  • 长度:指示了在 UDP 报文段中的字节数(首部加数据)
  • 检验和:提供了差错检测功能,但不提供差错恢复功能
    • 计算方法:将发送方的 UDP 对报文段(还包括了伪头部)中的所有 16 比特字的进行反码运算,遇到溢出则回卷

UDP 与 IP 一样,是一种不可靠服务 (unreliable service) ,不保证报文段的交付、按序交付、以及数据的完整性。UDP 只做了运输协议能够做的最少工作,除了复用/分解功能及少量的差错检测外,几乎没有对 IP 增加别的东西。使用 UDP 在发送报文段前,是没有握手的,也因此 UDP 被称为是无连接的。

虽然 UDP 不提供可靠数据传输服务,但反过来说,它无需连接建立、无连接状态、分组首部开销小,所以它更快、性能更好、更适合实时应用,也一般能支持更多的活跃客户。所以也有很多重要的应用是运行在 UDP 上的。而且也可以通过在应用程序自身中建立可靠性机制来完成可靠数据传输。