Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26285
  • 博文数量: 15
  • 博客积分: 415
  • 博客等级: 下士
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-05 20:42
文章分类

全部博文(15)

文章存档

2011年(9)

2010年(6)

我的朋友

分类: IT职场

2010-10-12 10:53:45

  • TCP options

TCP有两种类型的选项:单字节和多字节。分别在多个RFC中提出,RFC793、RFC2018、RFC1323。

每一个选项有同样的结构:Kind + Length + Data,其中Lenght表示Kind、Lenght、Data三者的总长度,单字节的选项只有Kind。

Kind=0表示选项结束------1字节

Kind=1表示无操作,主要是用来占位从而达到字节对齐的目的-------1字节

Kind=2表示MSS选项------4字节

Kind=3表示窗口大小------3字节

Kind=4表示SACK-Permitted-------2字节

Kind=5表示SACK-----可变长度

Kind=8表示时间戳-----10字节

不同option的使用有各自的限制,例如只有SYN被置位时才能发送Kind=2的option,具体请参阅相关RFC。

  • TCP关闭连接

当一个TCP连接建立之后,连接双方的任何一方都可以主动关闭连接。

第一步,主动关闭方A发送FIN报文给被动关闭方B;

第二步,B发送一个ACK报文给A;

第三步,B发送一个FIN报文给A;

第四步,A发送一个ACK报文给B。

一些补充解释:

当第二步完成时,只是表示A不再发送数据给B,此时B仍然可以发送数据给A,A也可以正常接收数据;

当第二步完成时,如果B收到FIN报文时B也没有更多的数据要发送给A时,第二步和第三步的报文可以合成一个FIN+ACK报文,所以当关闭一个TCP连接时可能有3个或者4个报文;

阅读(342) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~