TCP包头分析.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP包头分析

TCP包头分析 2010-05-25 10:06 SYN 同步序号,用来发起一个连接。syn位用于建立连接的过程(如TCP三次握手)。 ACK 建立连接和数据发送,关闭连接都用。 ack位被设置为1表示ack_seq是有效的。如果ack为0,则该数据段不包含确认信息,所以,ack_seq域应该被忽略。 RST 连接异常。 FIN 用于释放一个连接。它表示发送方已经没有数据要传输了。 SEQ 等于该主机选择本次连接的初始序号加上报文段中第一个字节在整个数据流中的序号。在连接建立的时候,会随机选择一个初始序号。序号是32 bit的无符号数。 WINDOW 16 位滑动窗口的大小,单位为字节。接受方用来通知发送方接受 buffer 的大小,发送方不能过分的发送,导致接受方的 buffer 溢出。 PSH 接收方在收到数据后应立即请求将数据递交给应用程序,而不是将它缓冲起来直到整个缓冲区接收满为止(这样做的目的可能是为了效率的原因) URG 发送紧急数据。这个设施可以代替中断信息。 TCP 的重传机制 Go-Back-N ??? 接受方不断发送 ACK 信息和 32 位的 acknowledge seq number, 用来通知发送方,期望接收到数据包的序号,同时也表示已经正确接收的数据。acknowledge seq number 不一定要连续。 Delayed ACK ??? TCP 并不是对收到的数据立即发送 ACK 信息,而是希望ACK 信息随着数据一起发送。如果在 200 ms 内,没有数据需要发送,那么就发送一个不含数据的 ACK 数据包。这个数据包不应该增加 TCP 的顺序编号,接受方应该从数据长度上判断出这个包是一个控制包。 ??? 还有一种算法是如果接收到一个数据包之后,启动一个计时器,在计时器超时之前没有可供 piggy back 的数据发送,那么就发送一个 纯 ACK ,一个不带数据包的 ACK 消息。 滑动窗口 ??? 当收到 ACK 的时候,发送方的窗口变大,也叫开窗, 当发送数据的时候,发送方的窗口变小,也叫关窗。在窗子完全关闭的时候,不能在发送数据了。 下面要用到的一些术语的定义: 数据段(segment):一个数据段就是任意的TCP/IP数据或确认包(或两者兼备)。 发送端最大数据段尺寸(SMSS):SMSS是发送端能发送的最大数据段的尺寸。 接收端最大数据段尺寸(RMSS):RMSS是接收端愿意接收的最大数据段的尺寸。 满尺寸数据段:一个包括允许最大数目数据的数据段(也就是说,一个包括SMSS字节数据的数据段)。 拥塞窗口(the congestion window:cwnd):是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制。 接收端窗口(rwnd):是对未完成数据量的接收端限制。Cwnd和rwnd的最小值决定了数据传送。 慢启动阀值(ssthresh),被用来确定是用慢启动还是用拥塞避免算法来控制数据传送。 初始窗口(iw):初始窗口是三次握手完成后发送端的拥塞窗口的尺寸。 丢失窗口(lw):丢失窗口是在一个TCP根据它的重传定时器检测到了数据丢失之后,拥 塞窗口的尺寸。 重启窗口(rw):重启窗口是TCP在一段闲置期之后重新开始传送后拥塞窗口的尺寸(如 果使用慢启动算法;参见4.1节以获取更多的讨论)。 传送尺寸:已经被发送但还没有确认的数据的总量。 拥塞控制算法 ?? (四种:慢启动,拥塞避免,快速重传和快速恢复) ??? 1.慢启动和拥塞避免 ??? 慢启动算法在cwndssthresh时使用,拥塞避免算法在cwndssthresh时使用。当cwnd和ssthresh相等时,发送端既可以使用慢启动也可以使用拥塞避免。 cwndssthresh时 ??? 慢启动 ??? 发送方收到一个 ACK ,增加cwnd 。 ??? cwnd = cwnd + MSS??? (MSS SMSS) ??? cwnd = min(cwnd,rwnd) ??? 如果是 DUPACK ,那么也应该增加。一个 segment 的大小是可变的,假设是个固定值,当出现 3 个DUPACK 的时候,进入 Fast Recovery 过程。当出现超时重传,则进到 Congestion Avoid 的过程。 cwndssthresh时: ??? 拥塞避免 ??? 收到一个 ACK 的时候,增加 cwnd。 ??? cwnd = cwnd + MSS*MSS/cwnd ??? 如果有 3 各重复的 ACK ,那么应该进入 FastRecovery 的过程。如果有重传,那么应该进入 Slow Start 的过程。可以重传第一个 Unacknowledged segment ,也可以重传许多。D

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档