Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2048044
  • 博文数量: 354
  • 博客积分: 4955
  • 博客等级: 上校
  • 技术积分: 4579
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-21 11:46
文章分类

全部博文(354)

文章存档

2015年(1)

2013年(4)

2012年(86)

2011年(115)

2010年(67)

2009年(81)

我的朋友

分类:

2010-03-30 12:09:13

源端口:2字节
目标端口:2字节
顺序号:4字节(SequenceNumber) 发送端发出的每个TCP数据包的编号,依次递增1,初始值是随机的。
应答号:4字节(Acknowledgement) 期望对端发送过来的TCP数据包顺序号(隐含确认已收到的TCP包)
数据偏移:1字节(DataOffset)
1、数据偏移:指出TCP负载的开始位置,4位。以4字节为单位。如0101表示20位置的数据为负载开始
2、保留位
标志位:1字节,以下每个占一位
1、CWR:
2、ECE:
3、Urgent:紧急位,表明后面的紧急标志有效。告诉接收端需要紧急。
4、Ack:应答为,表明前面的应答号有效
5、Push:立即发送(默认要等到发送缓冲区存满再发送数据)
6、Reset:复位TCP联接
7、Syn:同步顺序号。(建立连接的标志)
8、Fin:结束联接
窗口大小:2字节。接收窗口大小
校验和:2字节。TCP首部和数据的检验和
紧急标志:2字节
选项:长度不定,以字节为单位
填充:长度不定,内容必须为0


TCP三次握手:创建TCP连接
1、A端SYN=1,ACK=0      SequenceNumber=XXX
2、B端SYN=1,ACK=1      SequenceNumber=YYY      Acknowledgement=XXX+1
3、A端SYN=0,ACK=1      SequenceNumber=XXX+1      Acknowledgement=YYY+1      这个TCP负载中已经可以包含业务数据了。

TCP链接撤销:
1、A端FIN=1,ACK=1      SequenceNumber=XXX      Acknowledgement=YYY
2、B端FIN=1,ACK=1      SequenceNumber=YYY      Acknowledgement=XXX+1
3、A端FIN=0,ACK=1      SequenceNumber=XXX+1      Acknowledgement=YYY+1

TCP紧急传输机制:
默认情况下,如果发送端没有收到接收端的确认数据包,并且已发送的数据包的定时器已超时,则发送端自动重发此部分数据包。
某种原因(各种未知原因)导致发送端认为某些数据包接收端已收到,比如序号为XXX之前的包。现在收到一个接收端的确认包,确认号为 YYY,YYY




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