Netexpert FAQ 网络分析专家学习建议入口 @netexpert成员申请指南
网络分析时代 netexpert积分规则的说明 Netis招贤纳士(2007年12月2日更新)
发新话题
打印

求助!极度困惑的问题

求助!极度困惑的问题

最近正研究tcp原理。一直有个疑问:在一个特定的tcp连接中,tcp发送端发送数据段的速率是受接收端通告窗口大小和拥塞窗口这两个因素控制的,每次发送多少数据段都是有规律的;可是接受方接收到数据以后,究竟在什么时候产生确认数据包呢,有没有什么规律呢??

TOP

你有两个选择,一个是看Richard Stevens的卷II,一个是去看任一开源OS的源码。
说了世上一无牵挂为何有悲喜
说了朋友相交如水为何重别离
说了少年笑看将来为何常回忆
说了青春一去无悔为何还哭泣

TOP

记得书上是这么说的:
对最后一个tcp确认,就是对前面所有包的确认。
也就是并不是每个tcp包都确认的。

TOP

看接受窗口的大小而定
开始时,动态平稳的上升到一个稳定值

TOP

应该是每接收到一个数据包都会产生一个确认数据包,但是如果接收到的数据包序列号比你先前接收到的数据包的序列号大很多,这是应该是不会产生ACK的确认数据包的,因为接收到ACK确认数据的一方会认为这个序列号的数据包之前的数据都已经收到了.

TOP

协议规范上说系统实现TCP时,应该实现delayed ACK
  但这个delay不应该超过0.5秒

   A TCP SHOULD implement a delayed ACK, but an ACK should not be excessively delayed;
   in particular, the delay MUST be less than 0.5 seconds, and in a stream of full-sized segments
   there SHOULD be an ACK for at least every second segment.

  具体请参见rfc1122  section 4.2.3.2 : When to Send an ACK Segment

TOP

发新话题
版块跳转