- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LWIP协议栈详解
TCP连接的建立和终止
TCP是一个面向连接的协议,提供可靠的数据连接。在收发数据之前,需要在双方之间建立一条连接。下面以图①所示为例说明TCP连接的建立和终止。
1.1 TCP连接的建立
1) 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器的端口,以及初
始序号(ISN,在这个例子中为1415531521)。这个SYN段为报文段1。
2) 服务器发回包含服务器的初始序号的SYN报文段(报文段2)作为应答。同时,将确认
序号设置为客户的ISN加1以对客户的SYN报文段进行确认。一个SYN将占用一个序号。
3) 客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认(报文段3)。
这三个报文段完成连接的建立。这个过程也称为三次握手(three-way handshake)。
图①
1.2 TCP连接的终止
建立一个连接需要三次握手,而终止一个连接要经过4次握手。这由TCP的半关闭(half-close)造成的。既然一个TCP连接是全双工(即数据在两个方向上能同时传递),因此每个方向必须单独地进行关闭。一个TCP连接在收到一个FIN后不能接收数据,但仍能发送数据,反之一个TCP连接在发送一个FIN后不能发送数据,但仍能接收数据。
以客户端为主动关闭一方为例说明TCP连接的终止过程。首先客户端发送第一个FIN(报文段4),服务器收到FIN后,返回对该FIN的确认ACK(报文段5),然后通知应用层对方已经关闭连接,然后回复FIN(报文段6)。客户端收到该FIN后再回复一个确认ACK(报文段7),同时客户端关闭本地连接,而服务端收到该ACK后也最终关闭连接。
TCP的滑动窗口协议
2.1 使用滑动窗口的原因
TCP协议在工作时,如果发送端的TCP协议软件每传输一个数据分组后,必须等待接收端的确认才能够发送下一个分组,由于网络传输的时延,将有大量时间被用于等待确认,导致传输效率低下。为此TCP在进行数据传输时使用了滑动窗口机制。
滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。
2.2 滑动窗口简介
图②
下面以上图为例说明TCP的滑动窗口协议。图中我们将字节从1至11进行标号。接收方通告的窗口称为提出的窗口(offered window),如图所示窗口大小为6,它覆盖了从第4字节到第9字节的区域,表明接收方已经确认了包括第3字节在内的数据,窗口大小是与确认序号相对应的。发送方计算它的可用窗口,该窗口表明多少数据可以立即被发送。
当接收方确认数据后,这个滑动窗口不时地向右移动。窗口两个边沿的相对运动增加或
减少了窗口的大小。我们使用三个术语来描述窗口左右边沿的运动:
1) 称窗口左边沿向右边沿靠近为窗口合拢。这种现象发生在数据被发送和确认时。
2) 当窗口右边沿向右移动时将允许发送更多的数据,我们称之为窗口张开。这种现象发生在另一端的接收进程读取已经确认的数据并释放了TCP的接收缓存时。
3) 当右边沿向左移动时,我们称之为窗口收缩。Host Requirements RFC强烈建议不要使用这种方式。但TCP必须能够在某一端产生这种情况时进行处理。
因为窗口的左边沿受另一端发送的确认序号的控制,因此不可能向左边移动。如果接收到一个指示窗口左边沿向左移动的ACK,则它被认为是一个重复ACK,并被丢弃。如果左边沿到达右边沿,则称其为一个零窗口,此时发送方不能够发送任何数据。
3. TCP的超时重传机制
3.1 TCP的重传超时时间RTO的计算
在计算RTO之前需估计往返时间(RTT)。RTT是某个字节的数据被发出到该字节被确认返回的时间间隔。由于路由器和网络流量均会变化,因此RTT可能经常会发生变化,TCP应该跟踪这些变化并相应地改变其超时时间RTO。在一段时间内可能会发送多个数据包,但只能选择其中一包作为计算RTT的值,直到该数据包被确认返回。才开始下一次的RTT估算。
计算RTO的算法如下:
E rr= M-A
A←A+ g E rr
D←D+ h( | E rr |-D)
RTO= A+ 4D
M表示所测量到的RT T,A是被平滑的RT T(均值的估计器),E rr是刚得到的测量结果与当前的RT T估计器之差。增量g起平均作用,取为1 / 8。而D则是被平滑的均值偏差。偏差的增益是h,取值为1/4。A和D均被用于计算下一个重传时间(RTO)。
Lwip中有两个参数rttest和rttseq用于计算RTT;rttest表示开始计算RTT的滴答数(500ms一个滴答),rttesq是用于计算RTT的包的序号。下面是lwip中用于计算
您可能关注的文档
- 2016巴燕中心学校中考备考方案.doc
- 2016工作总结2017工作目标.doc
- 2016届高三生物尖子生非选择题专练.doc
- 2016年3月13日关于2015年中央和地方预算执行情况与2016年中央和地方预算草案的审查结果报告.doc
- 2016届安徽淮北一中高三最后一卷生物试卷(带解析).doc
- 2016年4月咨询工程师项目决策分析与评价考试模拟卷.docx
- 2016年4月绍兴市教学调测(一模)理科综合试卷-生物部分(word含答案).docx
- 2016年一级建造师工程项目管理重点梳理.docx
- 2016年IPO规则变化后分析文集.docx
- 2016届高三政治二轮复习作业二生活与消费2.doc
最近下载
- RIGOL普源PVP2350 无源探头用户手册.pdf VIP
- 电气试验管理制度.docx VIP
- 考研真题东北农业大学食品学院816食品生物化学历年考研真题汇编.docx VIP
- 化学锚栓计算(修改版).xls VIP
- osi七层模型教学课件.ppt VIP
- 新民主主义革命理论PPT2024版毛泽东思想和中国特色社会主义理论体系概论课件.pptx VIP
- ZOOM声乐乐器L-12快速入门(Chinese)说明书用户手册[1].pptx VIP
- 《成人密闭式吸痰技术操作规范》.pdf VIP
- 《图纸会审(表格)》.docx VIP
- 北京市房屋租赁合同(2008版-新)【模板范本】 .pdf VIP
文档评论(0)