﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-sin的博客-随笔分类-TCP/IP</title><link>http://www.cppblog.com/sixinquan/category/20714.html</link><description>时间悄悄地流过，今天你做了什么</description><language>zh-cn</language><lastBuildDate>Sat, 26 Oct 2013 15:58:27 GMT</lastBuildDate><pubDate>Sat, 26 Oct 2013 15:58:27 GMT</pubDate><ttl>60</ttl><item><title>TCP窗口滑动机制</title><link>http://www.cppblog.com/sixinquan/archive/2013/10/18/203808.html</link><dc:creator>sin</dc:creator><author>sin</author><pubDate>Fri, 18 Oct 2013 13:54:00 GMT</pubDate><guid>http://www.cppblog.com/sixinquan/archive/2013/10/18/203808.html</guid><wfw:comment>http://www.cppblog.com/sixinquan/comments/203808.html</wfw:comment><comments>http://www.cppblog.com/sixinquan/archive/2013/10/18/203808.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixinquan/comments/commentRss/203808.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixinquan/services/trackbacks/203808.html</trackback:ping><description><![CDATA[<div>滑动窗口协议的基本原理就是在任意时刻，发送方都维持了一个连续的允许发送的帧的序号，称为发送窗口；同时，接收方也维持了一个连续的允许接收的帧的序号，称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样，甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送，但是还没有被确认的帧，或者是那些可以被发送的帧。下面举一个例子（假设发送窗口尺寸为2，接收窗口尺寸为1）：</div><br /><img alt="" src="http://www.cppblog.com/images/cppblog_com/sixinquan/1.png" height="182" width="562" /><br /><br /><div>&#9312;初始态，发送方没有帧发出，发送窗口前后沿相重合。接收方0号窗口打开，等待接收0号帧； <br />&#9313;发送方打开0号窗口，表示已发出0帧但尚确认返回信息。此时接收窗口状态不变； <br />&#9314;发送方打开0、1号窗口，表示0、1号帧均在等待确认之列。至此，发送方打开的窗口数已达规定限度，在未收到新的确认返回帧之前，发送方将暂停发送新的数据帧。接收窗口此时状态仍未变； <br />&#9315;接收方已收到0号帧，0号窗口关闭，1号窗口打开，表示准备接收1号帧。此时发送窗口状态不变；<br />&#9316;发送方收到接收方发来的0号帧确认返回信息，关闭0号窗口，表示从重发表中删除0号帧。此时接收窗口状态仍不变； <br />&#9317;发送方继续发送2号帧，2号窗口打开，表示2号帧也纳入待确认之列。至此，发送方打开的窗口又已达规定限度，在未收到新的确认返回帧之前，发送方将暂停发送新的数据帧，此时接收窗口状态仍不变； <br />&#9318;接收方已收到1号帧，1号窗口关闭，2号窗口打开，表示准备接收2号帧。此时发送窗口状态不变； <br />&#9319;发送方收到接收方发来的1号帧收毕的确认信息，关闭1号窗口，表示从重发表中删除1号帧。此时接收窗口状态仍不变。</div><img src ="http://www.cppblog.com/sixinquan/aggbug/203808.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixinquan/" target="_blank">sin</a> 2013-10-18 21:54 <a href="http://www.cppblog.com/sixinquan/archive/2013/10/18/203808.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>