TCP/IP详解--TCP首部的TimeStamp时间戳选项

本文探讨TCP协议中的时间戳选项,旨在解决通讯延迟测量、Sequence号反转等问题。通过RTTM机制优化发包间隔和Timeout时间,但RFC1323建议存在时间戳翻转隐患。解决方案包括利用本地时间戳判断,但需考虑不同设备计数器速度差异。
摘要由CSDN通过智能技术生成

TCP应该是以太网协议族中被应用最为广泛的协议之一,这里就聊一聊TCP协议中的TimeStamp选项。这个选项是由RFC 1323引入的,该C建议提交于1992年,到今天已经足足有20个年头。不过相信大部分程序猿对这个建议还是相当陌生。
要理解为啥需要用TimeStamp选项,还需要从TCP协议的几个基本设计说起。

TCP协议的几个设计初衷,以及引发的问题:
1. 协议规定收端不需要响应每一个收到的数据报文,只需要收到N个报文后,向发端回复一个ack报文即可。
    这样的规定是为了提高通讯的效率,但是也引入了几个问题:
    A. 发端发出报文后,到底多久能够收到ack是不确定的。
    B. 万一ack报文丢失了,判断需要重发的timeout时间也很难确定。
2. TCP报文中,标示Sequence号的地址长度为32位。
    这就限制了发端最多一次发送2^30长度的数据,就必须等待ack信号。为啥呢?在这个链接里有一些详细的讨论。
    然而对于超高速以太网(1000M以至于10G),这样会影响TCP连接的转发效率。 


为解决上面提到的问题,TimeStamp选项主要有两个用途:
1. 测量TCP连接两端通讯的延迟(Round Trip Time Measurement)
    有了RTTM机制,TCP的两端可以很容易的判断出线路上报文的延迟情况,从而制定出一个优化的发包间隔和报文TimeOut时间,从而解决了第一个问题。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值