Chinaunix首页 | 论坛 | 博客
  • 博客访问: 496948
  • 博文数量: 161
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-25 01:20
文章分类

全部博文(161)

文章存档

2011年(44)

2010年(47)

2009年(48)

2008年(22)

我的朋友

分类: 系统运维

2009-05-14 12:06:22

 
 


源端口、目的端口:16位长。标识出远端和本地的端口号。
udp长度:首部长度和数据部分长度的总和
CRC:可选,(首部+数据)




 
 
TCP头长:4位长。表明TCP头中包含多少个32位字。
 
源端口、目的端口:16位长。标识出远端和本地的端口号。

顺序号:32位长。表明了发送的数据报的顺序.
 

范围[0-2^32-1],下一个为回到0,序号使用mod 2^32运算, tcp是面向字节,没一个字节都有按顺序编号,顺序号是指本报文段要发送数据的第一个序号 如:number=301,数据有100字节,最后一个序号是400.

确认号:32位长。希望收到的下一个数据报的序列号。

期望收到下一个报文段的第一个数据字节的序号. a<-b(301,"100字节末尾即是400"); a(ack=401)->b; 如ack=N,到序列号N-1所以数据都已经正确接收;

保留:接下来的6位未用。
ACK:ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。

PSH:表示是带有PUSH标志的数据。接收方因此请求数据报一到便可送往应用程序而不必等到缓冲区装满时才传送。

RST:用于复位由于主机崩溃或其它原因而出现的错误的连接。还可以用于拒绝非法的数据报或拒绝连接请求。

SYN:用于建立连接。

1-连接请求:syn=1,ack=0;         a->b

2-同意响应:syn=1,ack=1;         a<-b

3-发送确认段syn=0,ack=1;        a->b

 

FIN:用于释放连接。

 

//关闭半连接a->b

1-fin=1,ack=0;         a->b

2-ack=1;               a<-b

//关闭半连接a<-b

3-fin=1,ack=1;         a<-b

4-ack=1;               a->b

 

窗口大小:16位长。窗口大小字段表示在确认了字节之后还可以发送多少个字节。校验和:16位长。是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。可选项:0个或多个32位字。包括最大TCP载荷,窗口比例、选择重发数据报等选项。

最大TCP载荷:允许每台主机设定其能够接受的最大的TCP载荷能力。在建立连接期间,双方均声明其最大载荷能力,并选取其中较小的作为标准。如果一台主机未使用该选项,那么其载荷能力缺省设置为536字节。
窗口比例:允许发送方和接收方商定一个合适的窗口比例因子。这一因子使滑动窗口最大能够达到232字节。
选择重发数据报:这个选项允许接收方请求发送指定的一个或多个数据报。

 

传输策略
TCP中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为0时,发送方一般不能再发送数据报,但有两种情况除外,一种情况是可以发送紧急数据,例如,允许用户终止在远端机上的运行进程。另一种情况是发送方可以发送一个1字节的数据报来通知接收方重新声明它希望接收的下一字节及发送方的滑动窗口大小。

拥塞控制
当加载到某个网络上的载荷能力超过其处理能力时,便会出现拥塞现象。对于因特网来说有两个潜在的问题--网络的容量和接收方的容量,应该分别进行处理。发送方始终保持两个窗口:接收方承认的窗口和拥塞窗口。取两个窗口的最小值作为可以发送的字节数。当建立连接时,发送方将拥塞窗口大小初始化为该连接所用的最大数据报的长度值,并随后发送一个最大长度的数据报。如果该数据报在定时器超时之前得到了确认,那么发送方会在原拥塞窗口的基础上再增加一个数据报的字节值,使其为两倍最大数据报的大小,然后发送两个数据报。当这些数据报中的每一个都被确认后,拥塞窗口大小就再增加一个最大数据报的长度。当拥塞窗口是N个数据报的大小时,如果发送的所有N个数据报都被及时确认,那么将拥塞窗口大小增加N个数据报对应的字节数目。拥塞窗口保持指数规律增大,直到数据传输超时或者达到接收方设定的窗口大小。拥塞窗口便设置为恰好不造成超时或达到接收方的窗口大小的字节数。

定时器管理
TCP使用多个定时器,如重发定时器、持续定时器、"keep alive"定时器等。最重要的是重发定时器。在发送一个数据报的同时,启动一个数据重发定时器。如果在定时器超时前该数据报被确认,则关闭该定时器;相反,如果在确认到达之前定时器超时,则需要重发该数据报。

持续定时器用于防止出现死锁情况。当一个连接长时间闲置时,"keep alive"定时器会超时而使一方去检测另一方是否仍然存在。如果它未得到响应,便终止该连接。

 
 

 

阅读(1000) | 评论(1) | 转发(0) |
0

上一篇:双绞线

下一篇:ip协议

给主人留下些什么吧!~~

chinaunix网友2011-06-05 02:25:51

大连法律咨询在线 http://www.fabowang.com 大连律师在线咨询 http://www.fabowang.com 大连法律顾问网 http://www.fabowang.com 大连律师咨询 http://www.fabowang.com