计算机网络 TCP报文首部中的选项字段




TCP报文首部中的选项字段

TCP用户发送带有数据和TCP首部信息的数据包。首部包含源地址、目的地址和其他变量。在传输过程中,网络设备会处理TCP首部。数据保持不变,但IP地址等首部细节可能会发生变化。

TCP首部中的选项字段

TCP首部包含一个可选的选项字段,用于增强功能。它的长度可以是0-320位,取决于数据偏移大小。选项字段包含各种类型:最大报文段长度、窗口缩放、时间戳等。该字段显示总的选项长度,包括类型和长度。选项数据字段包含选项的详细信息,例如数值或时间戳。

TCP报文首部中的选项字段



该字段改善了TCP连接的性能、可靠性和安全性。它根据网络条件调整数据包和窗口大小。它可以检测和防止数据包重排序和欺骗。选项字段在建立连接时在发送方和接收方之间协商功能。在IPv4数据包中,选项字段跟随首部,包含额外的信息。它的长度可以高达40字节,但实际大小因数据包而异。并非所有数据包都有选项字段,这取决于使用和目的。

TCP首部中选项字段的重要性

TCP首部中的选项字段是为了未来改进TCP协议而创建的。但是,它并没有被广泛采用,其内容也没有标准化。

当TCP首次创建时,互联网规模较小且较简单。原始的TCP首部在两个设备之间的通信中运作良好。但随着互联网的发展,出现了新的需求,如传输更大的数据和确保更可靠、安全的通信。

选项字段旨在满足这些新需求,而无需完全改变TCP协议。然而,它并没有被广泛采用,也不推荐使用。以下是一些原因:

  • 选项字段不是强制性的,因此并非所有的TCP实现都支持它。

  • 选项字段的内容没有标准化,导致兼容性问题。

  • 选项字段会向每个TCP数据包添加额外的信息,可能会降低性能。

因为这些原因,选项字段现在很少使用。如果您需要不受标准TCP首部支持的新功能,则最好使用TCP协议扩展,如选择性确认(SACK)选项。

TCP选项字段中的各种选项

TCP选项字段使数据传输更快、更安全、更可靠。它帮助TCP选择数据大小,检测和修复问题。选项字段使与其他计算机协商功能成为可能。TCP具有35个不同名称和编号的选项。有些是常见的和已知的,而其他一些是新的或未使用过的。

常见选项

  • 选项列表结束:标记选项字段结束。

  • 无操作:填充空白空间以对齐选项。

  • 最大段大小(MSS):告知最大的数据大小以发送。



  • 窗口缩放:使窗口大小增大以加快传输速度。

  • 允许SACK:允许选择性确认以解决数据问题。

  • SACK:提供选择性确认的部分以避免数据重传。

  • 时间戳:测量数据包时间并提高连接效率。

TCP根据互联网需求进行调整,与旧计算机兼容,并且速度更快、更安全、更可靠。

数据偏移字段

TCP头部的数据偏移字段指定头部大小(以字为单位)。一个字是32位或4字节的数据。数据偏移显示TCP头部大小。

  • 最小尺寸:5个字(20字节),无选项,只有强制字段。

  • 最大尺寸:15个字(60字节),有10个字(40字节)的选项。

数据偏移帮助接收方在TCP段中定位数据。它防止选项和数据之间的混淆,提高效率。

分段和MSS

当一个大的数据包无法适应网络链路的限制时,会发生分段。每个分段都有自己的IP头部,包含位置和长度信息。在目标处使用这些信息对分段进行重组。

分段以各种方式影响TCP性能:

  • 随着每个分段的附加IP头部,开销增加。

  • 由于分段是分别传输和确认的,丢包风险增加。

  • 随着每个跳点处理分段,延迟增加。

TCP通过MSS选项避免分段以设置最大数据大小。MSS在连接建立时进行协商(SYN数据包)。IPv4的默认MSS为536字节,IPv6的默认MSS为1220字节。MSS帮助TCP发送较小的段,避免分段。它提高了TCP连接的吞吐量、可靠性和延迟。



窗口大小和窗口缩放

窗口大小控制TCP中两台计算机之间的数据流量。它限制了可以发送或接收的数据量。TCP头部有一个16位的窗口大小字段。最大尺寸为65535字节,对于快速或远程网络可能不够。TCP使用窗口缩放选项来增加窗口大小。在连接开始时,缩放因子确定实际窗口大小。缩放因子可以为0到14,允许最多1 GB的窗口。窗口缩放帮助TCP使用更大的窗口大小,在长距离或繁忙的网络上传输速度更快。

丢包和SACK

数据包丢失是由于各种原因导致数据包未能到达目的地。TCP使用序列号来跟踪已发送和已接收的数据包。确认号告诉发送方哪些数据包已被接收。有时候,一些数据包丢失,导致已接收的数据重传。TCP使用选择性确认(SACK)来避免重传已接收的数据。SACK告诉发送方哪些部分的数据已经收到,哪些部分丢失。SACK可以帮助TCP更快地修复丢失的数据问题,提高可靠性。

旧的重复分段和时间戳

当数据包被错误地多次发送时,就会出现旧的重复分段。TCP使用时间戳来区分新旧数据包。时间戳记录发送方和接收方的时间,以检查数据包的新鲜度。通过使用时间戳,TCP确保只处理新的数据包,提高了安全性和速度。

结论

TCP报头中的选项字段是一个额外的部分,可以让TCP做更多的事情并提高工作效率。选项字段可以包含许多可以帮助TCP更快、更安全、更可靠地发送和接收数据的选项。一些常见和重要的选项包括:

  • MSS(最大报文段长度):告诉可以一次发送的数据最大大小。

  • 窗口扩大:告诉如何扩大窗口大小。

  • SACK:告诉哪些部分的数据正常,哪些部分丢失。

  • 时间戳:为每个数据包提供两个时间。

选项字段还依赖于TCP头的其他一些部分,例如:

  • 数据偏移量:以字为单位表示TCP头的大小。

  • 序列号:告诉哪些数据包已发送和已接收。

  • 确认号:告诉哪些数据包已接收。

选项字段是TCP随着时间而改进和变得更好的一种方式。通过使用选项字段,TCP可以满足互联网的需求,同时与旧计算机兼容。选项字段还可以让TCP做一些新的事情,使TCP运行更快、更安全、更可靠。



计算机网络 精选笔记
计算机网络 ASA自适应安全设备功能计算机网络 Relabel-to-front算法计算机网络 服务器虚拟化类型计算机网络 ACL访问列表计算机网络 DSL数字用户线路计算机 基于操作系统的虚拟化计算机网络 CBAC基于上下文的访问控制计算机网络 克里斯蒂安算法计算机网络 SSID服务集标识符计算机网络 VoIP互联网语音传输协议计算机网络 CRAM挑战响应认证机制计算机网络 ACL扩展访问列表计算机网络 Li-fi与Wi-fi区别计算机网络 自反访问列表计算机网络 SONET同步光传输网络计算机网络 WPA Wifi保护访问计算机网络 WPS计算机网络 ACL标准访问列表计算机网络 时间访问列表BCD到七段数码管解码器计算机网络 以太网帧格式计算机网络 AAA认证授权和计费计算机网络 AD管理距离和AS自治系统计算机网络 什么是3D互联网计算机网络 4G移动通信技术计算机网络 无线传输媒介的类型计算机网络 数据表示计算机网络 网络标准计算机网络 经典寻址 vs 无类别编址计算机网络 BOOTP和RARP之间的区别计算机网络 传输失真是什么计算机网络 WiFi和互联网的区别计算机网络 链路状态路由是什么计算机网络 层设计问题计算机网络 无线局域网是什么计算机网络 中继器是什么计算机网络 数据链路层的设计问题是什么计算机网络 TCP和UDP之间的区别计算机网络 SAN存储区域网络的组成部分计算机网络 漏桶算法是什么计算机网络 IEEE 802.11无线局域网标准是什么计算机网络 密码学是什么计算机网络 奇偶校验位是什么计算机 主存储器是什么计算机网络 数据链路层中的帧封装计算机网络 错误纠正码 - 汉明码计算机网络 网关是什么计算机网络 纯Aloha和分槽Aloha的区别计算机网络 PPP 点对点协议计算机网络 路由器是什么计算机网络 令牌桶算法是什么计算机网络 Hub和Switch是什么计算机网络 组件计算机网络 OSI参考模型计算机网络 NIC网络接口卡是什么计算机网络 TCP/IP参考模型计算机网络 互联网的优点和缺点计算机网络 数据链路层中的错误检测和纠正计算机网络 交换机是什么计算机网络 ALOHA协议计算机网络 DAN概述计算机网络 应用交付网络ADN概述计算机网络 室外移动性模型高斯-马尔可夫计算机网络 OSPF开放最短路径优先协议计算机网络 DAN桌面区域网络概述计算机网络 ADN应用交付网络概述计算机网络 室外移动性模型高斯-马尔可夫计算机网络 OSPF开放最短路径优先协议计算机 RAM与ROM的区别计算机网络 OSI、TCP/IP和混合模型计算机网络 TCP报文首部中的选项字段计算机 基于操作系统的虚拟化计算机网络 IPv4头部的选项字段计算机网络 USB和Ethernet的区别计算机网络 Firewire和Thunderbolt的区别计算机网络 RSTP和PVST的区别计算机网络 DMZ和端口转发的区别计算机网络 CAT6和CAT6A之间的区别计算机网络 放大和重传之间的区别