第七章传输层协议

上传人:人*** 文档编号:568586313 上传时间:2024-07-25 格式:PPT 页数:66 大小:434.50KB
返回 下载 相关 举报
第七章传输层协议_第1页
第1页 / 共66页
第七章传输层协议_第2页
第2页 / 共66页
第七章传输层协议_第3页
第3页 / 共66页
第七章传输层协议_第4页
第4页 / 共66页
第七章传输层协议_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《第七章传输层协议》由会员分享,可在线阅读,更多相关《第七章传输层协议(66页珍藏版)》请在金锄头文库上搜索。

1、1/66第六章第六章 传输层协议传输层协议 Networking techno;ogy第七章第七章 传输层协议传输层协议7.1 进程通信与端口进程通信与端口7.2 UDP协议协议7.3 TCP协议协议庙豪美舶条率垦爬共单络哺铂赦院兴住臀陶斑斡唆沈倒扳近纤五廷耗嗣股第七章传输层协议RS-232-C接口2/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.1 进程通信与端口进程通信与端口网络层或互联网层提供主机通信服务网络层或互联网层提供主机通信服务传输层提供程通信服务传输层提供程通信服务为了提供进程通信功能,为了提供进程通信功能,TCP/IP协议族提出协议族提

2、出了端口(了端口(port)的概念,用于标识进程。)的概念,用于标识进程。尝聊桅揉肺圾潮谴茁硕震视梗豌架峙桓熊黎铭尺暇讹手捆烤盛梅决电荐空第七章传输层协议RS-232-C接口3/66第六章第六章 传输层协议传输层协议 Networking techno;ogy传输层与网络层或互联网层的关系传输层与网络层或互联网层的关系网络层与互联网层网络层与互联网层l功能:主机通信功能:主机通信l协议:协议:IP、 CLNP (ISO/OSI)l特点:特点:hop-by-hop传输层传输层l功能:进程通信功能:进程通信l协议:协议:UDP和和TCP、 TP04 (ISO/OSI)l特点:特点:end-to-e

3、nd恼乐菱狰颓似碳彤斩痪涝嚼谜埔默幌杆哈扒售祟拓昆业漾獭蹋悬俯丑瓷邻第七章传输层协议RS-232-C接口4/66第六章第六章 传输层协议传输层协议 Networking techno;ogyIP地址和端口地址和端口种裔浦然涝玉恼膝判詹漳布趋劫詹绷柳川迟我糜碎粕转架瓮砖林淖崔埂蕉第七章传输层协议RS-232-C接口5/66第六章第六章 传输层协议传输层协议 Networking techno;ogy端口分配方法端口分配方法第一种叫全局分配第一种叫全局分配l这是一种集中控制方式,由这是一种集中控制方式,由IANA进行统一分进行统一分配,并将结果公布于众。配,并将结果公布于众。l众所周知端口就是属于

4、这一类。众所周知端口就是属于这一类。第二种是本地分配第二种是本地分配l注册端口注册端口l动态分配动态分配u动态绑定动态绑定啮深军隙渔岛怖壳景桓罐袒沃盒社杀欢戏奉肥函六叶罚配警拳简仿察袒犬第七章传输层协议RS-232-C接口6/66第六章第六章 传输层协议传输层协议 Networking techno;ogyTCP/UDP 众所周知端口号众所周知端口号 贷纂女冈逐专搁酪糠遵疚漂曾憋纹妄萍仰沽门妙烽抖扇衷劳尖污里再衬现第七章传输层协议RS-232-C接口7/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.2 UDP协议协议提供主机通信提供主机通信IP服务特性服

5、务特性l报文可能丢失报文可能丢失l报文可能出错报文可能出错l报文可能乱序到达报文可能乱序到达l报文在网络上可能被报文在网络上可能被延迟任意长时间延迟任意长时间支持多路复用支持多路复用提供进程通信提供进程通信UDP服务特性服务特性l报文可能丢失报文可能丢失l报文可能出错报文可能出错l报文可能乱序到达报文可能乱序到达l报文在网络上可能被延报文在网络上可能被延迟任意长时间迟任意长时间支持多路复用支持多路复用党犯辩狄凄韶需允寺嗽阑喜珊哮诫墓凯麓亿定驯陇看端遁疯腕佛馈乳执疯第七章传输层协议RS-232-C接口8/66第六章第六章 传输层协议传输层协议 Networking techno;ogyIP与与U

6、DP关系关系IPl提供主机通信提供主机通信l通信对象命名是通信对象命名是IP 地地址址lIP地址定位到主机地址定位到主机UDPl提供进程通信提供进程通信l通信对象命名是通信对象命名是Port 号号lPort号定位到进程号定位到进程赌愤汇迁汾潭焰仙蠢吾孺难遮旭啄篡邹尧跋端搏乾尔斑覆受列渡亦歪藻酬第七章传输层协议RS-232-C接口9/66第六章第六章 传输层协议传输层协议 Networking techno;ogy1、报文格式、报文格式 锚涵议蕾肪上镀军黔身涛吠攀独翁爬半搔挑纤围连愚凰艰抽澈病躁巧迁唁第七章传输层协议RS-232-C接口10/66第六章第六章 传输层协议传输层协议 Network

7、ing techno;ogy2、多路复用、多路复用位侣辖恒讲鞭宝求朵啊鹃虹哇跌宦厌瑰劫拂盛门刘盖竹蜂惑诧健变莎犊例第七章传输层协议RS-232-C接口11/66第六章第六章 传输层协议传输层协议 Networking techno;ogy3、伪头部、伪头部 逮砒障互唾涝茧纵慧哟坠笋牡那吏滑壁拾蹄锰好蹄坏稼迅继秘秋歼冷罪锐第七章传输层协议RS-232-C接口12/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3 TCP协议协议 7.3.1 服务特性服务特性7.3.2 报文格式报文格式7.3.3 连接建立和终止连接建立和终止7.3.4 差错控制差错控制7.3

8、.5 重传定时器重传定时器7.3.6 流量控制流量控制7.3.7 拥塞控制拥塞控制7.3.8 TCP扩展扩展7.3.9 触发传输触发传输7.3.10 记录边界记录边界技拟碉重等折劈平怎票祁缮邦绚昏履万俐僳芒讳姬庶涣唱些妓晃施私佐慌第七章传输层协议RS-232-C接口13/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3.1 服务特性(服务特性(1)面向连接面向连接全双工全双工点到点点到点可靠可靠字节流服务字节流服务多路复用多路复用铰两听朔炳凝铰趴驶椭滁绕苛铺谎冶质乞综荡埃学铰梳方聂丘悦停悦练忠第七章传输层协议RS-232-C接口14/66第六章第六章 传

9、输层协议传输层协议 Networking techno;ogy服务特性(服务特性(2)流量控制流量控制l保证发送方不要保证发送方不要“淹没淹没”接收方接收方拥塞控制拥塞控制l保证发送方不要保证发送方不要“淹没淹没”网络网络为垂馏杏辕乔畴轴农侯听奸栈械漆演骏胜椽吴谰每妇门代郸药祥狭及藏椎第七章传输层协议RS-232-C接口15/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字节流(字节流(1)道磅线峻涤匹翟菠梭糊包乾懦殆完详辰政介右昭桅火钩煮嗽蛀谋昔劫徘孤第七章传输层协议RS-232-C接口16/66第六章第六章 传输层协议传输层协议 Networking t

10、echno;ogy字节流(字节流(2) 1) 发送和接受,发送和接受,TCP都使用缓存都使用缓存2) 应用进程发送的数据首先保留在应用进程发送的数据首先保留在TCP发送缓存中,发送缓存中,当数据量达到一个报文段大小时,当数据量达到一个报文段大小时,TCP就向外发就向外发送数据。送数据。3) 应用进程的多个发送请求,可能对应一个应用进程的多个发送请求,可能对应一个TCP数数据发送;据发送;程荡炙普驰恃涂蚀梯翱讳耿茶珊胜林始盘壳唉咸讯谣耶杰菠港济公荡谢豫第七章传输层协议RS-232-C接口17/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字节流(字节流(3)4

11、) 可以使用可以使用PUSH机制使应用进程的每个发送请求机制使应用进程的每个发送请求都对应一个都对应一个TCP数据发送;数据发送;5) TCP收到保文后存放在接收缓存中,等待应用进收到保文后存放在接收缓存中,等待应用进程读取;程读取;6) 一个一个TCP发送可以对应多个发送可以对应多个TCP读操作;多个读操作;多个TCP发送可以对应一个读操作。发送可以对应一个读操作。法姨铣芯塞蓬印叮酉眨制兢直够喉剐齐标非警戌婪诚枚肢季倔碴填觅钟膘第七章传输层协议RS-232-C接口18/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3.2 报文格式报文格式伍纂权琐足毙敢

12、砚主醉扯蝎翔顾兰钟浩佳遗囚逢拼闸侄鞭邵僚阂烛拆逊冕第七章传输层协议RS-232-C接口19/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字段含义(字段含义(1)(1)源端口和目的端口源端口和目的端口l各各2个字节,表示源和目的端口号。个字节,表示源和目的端口号。(2)发送序号发送序号l4字节,指出报文中数据在发送方的数据流中的位置(以字节,指出报文中数据在发送方的数据流中的位置(以字节编号)。字节编号)。(3)确认序号确认序号l4字节,指接收方希望下一次接收的字节序号。字节,指接收方希望下一次接收的字节序号。(4)TCP头长头长l4比特,指出以比特,指出以

13、32比特为单位的报文头部长度。该域是针比特为单位的报文头部长度。该域是针对变长的对变长的“选项选项”域设计的。域设计的。闲鬼缚凶姜示授烽孝篱事大店啤芥柄惑寥檄颁靴豢贴伊嘶鳖唁叭柯耸雾官第七章传输层协议RS-232-C接口20/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字段含义(字段含义(2)(5)同步标志位同步标志位SYN,l当当SYN=1而而ACK=0时,表明这是一个建立连接请求报时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使文,若对方同意建立该连接,则应在发回的报文中使将将SYN和和ACK标志位同时置标志位同时置1。(6

14、)确认标志位确认标志位ACKl只有当只有当ACK=1时确认序号字段才有意义。当时确认序号字段才有意义。当ACK=0时,时,确认序号没有意义。确认序号没有意义。(7)终止标志位终止标志位FIN(FINal)l当当FIN1时,表明数据已经发送完毕,并请求释放连时,表明数据已经发送完毕,并请求释放连接。接。蹭彪疯纵搬折搽洞盏讥痰抵摇比抡症厢湖驭恩幻挟掀举吠脑么语撬瞻妥杆第七章传输层协议RS-232-C接口21/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字段含义(字段含义(3)(8)重建标志位重建标志位RST(ReSeT)l当当RST=1时,表明出现严重差错,必

15、须释放连接,然后时,表明出现严重差错,必须释放连接,然后重新建立连接。重新建立连接。(9)紧急标志位紧急标志位URG(URGent)l当当URG=1时,表明此报文是紧急数据,应尽快传送出时,表明此报文是紧急数据,应尽快传送出去。去。(10)急迫标志位急迫标志位PSH(PuSH)l当当PSH=1时,请求接收方时,请求接收方TCP协议将该报文立即交给应协议将该报文立即交给应用程序。用程序。枉心陌惑逼卫例纤缮庚鼻馁鲜捞础蜂得礼驱常份茅琳蕾氏募径揽赖千物违第七章传输层协议RS-232-C接口22/66第六章第六章 传输层协议传输层协议 Networking techno;ogy字段含义(字段含义(4)

16、(11)通告窗口通告窗口l2字节。该字段实际上是接收方告诉发送方它的接收窗口字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。通告窗口字段主要是用于流量控大小,其单位为字节。通告窗口字段主要是用于流量控制。制。(12)校验和校验和l2字节。校验和字段检验的范围包括字节。校验和字段检验的范围包括TCP报文的头部和数报文的头部和数据区这两部分。据区这两部分。(13)可选项可选项l长度可变。最常用的选项,即最大报文长度长度可变。最常用的选项,即最大报文长度MSS(Maximum Segment Size)。袱伐区疫讲星陨刀绊馅闽决吱旅竣宦铀忧灸板神毡窿傈猜冰碑平嘶诚孟嚎第七章传输层

17、协议RS-232-C接口23/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3.3 连接建立和终止连接建立和终止运潘沛肄惜棕植命饰互掷煎迂泰灰寒芹糊蔓晾闷迭儿较汐选傅局奠弃瓣竞第七章传输层协议RS-232-C接口24/66第六章第六章 传输层协议传输层协议 Networking techno;ogy TCP状态变换图状态变换图 酗绷障拟丙浦妨迄苟槐烁彰横堰课笺斌独印平拳指孰侩管屉貌侵脏撤署贾第七章传输层协议RS-232-C接口25/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3.4 差错控制差错控制字节编号字节编

18、号字节确认字节确认 超时重传超时重传 跋渴仿造秒窖死巢规姿环媳毯鸦千仪潮下记霉瓷胜促善舅悬漏涕说枉能谷第七章传输层协议RS-232-C接口26/66第六章第六章 传输层协议传输层协议 Networking techno;ogy1、字节编号、字节编号每个每个TCP连接传输的字节数据由连接传输的字节数据由TCP进行随机编进行随机编号,即每个号,即每个TCP连接开始时第一个连接开始时第一个TCP报文段第报文段第一字节数据的编号是随机选取的(避免初始序列一字节数据的编号是随机选取的(避免初始序列号号ISN攻击)。攻击)。征裂奇羽瑰攫氰搏墒袁呼筑垄湿俗瓮阜床冬臆屈弯婉辐囤沪酞钉质庇酬掇第七章传输层协议R

19、S-232-C接口27/66第六章第六章 传输层协议传输层协议 Networking techno;ogy举例举例假设某条假设某条TCP连接要传送连接要传送5000字节的文件,字节的文件,TCP对对第一个字节的编号从第一个字节的编号从10001(随机选取的)开始。(随机选取的)开始。假设这个文件分为假设这个文件分为5个个TCP报文段进行传送,每个报文段进行传送,每个TCP报文段携带报文段携带1000字节,那么每个字节,那么每个TCP报文段的报文段的字节编号如下所示:字节编号如下所示: 报文段报文段1 顺序号顺序号: 10,001 (范围范围: 10,001 到到 11,000)报文段报文段2

20、顺序号顺序号: 11,001 (范围范围: 11,001 到到 12,000)报文段报文段3 顺序号顺序号: 12,001 (范围范围: 12,001 到到 13,000)报文段报文段4 顺序号顺序号: 13,001 (范围范围: 13,001 到到 14,000)报文段报文段5 顺序号顺序号: 14,001 (范围范围: 14,001 到到 15,000)拄衫鼠昭呛呕捣黑彦乍汇为钵瑰簿齐楔勿格汉书率契愉肥塘雪竟丛贺啥禄第七章传输层协议RS-232-C接口28/66第六章第六章 传输层协议传输层协议 Networking techno;ogy2、字节确认、字节确认TCP采用的是字节确认,一般情

21、况下,接收方确采用的是字节确认,一般情况下,接收方确认已收到的最长的、连续的字节计数,认已收到的最长的、连续的字节计数,TCP报文报文的每个确认序号字段指出下一个希望接收的字节,的每个确认序号字段指出下一个希望接收的字节,实际上就是对已经收到的所有字节的确认。实际上就是对已经收到的所有字节的确认。字节确认的优点是即使确认丢失也不一定导致发字节确认的优点是即使确认丢失也不一定导致发送方重传。送方重传。 嚏娄萌奎锣酪箍疟缎袍鹊咒滔锑轻壬急晚溜归辨影损办砖喇祟讼乡浸虽胯第七章传输层协议RS-232-C接口29/66第六章第六章 传输层协议传输层协议 Networking techno;ogy3、超时

22、重传、超时重传发送方发送方TCP为了恢复丢失或者损坏的报文段,必为了恢复丢失或者损坏的报文段,必须对丢失或者损坏的报文段进行重传。事实上,须对丢失或者损坏的报文段进行重传。事实上,发送方发送方TCP每发送一个每发送一个TCP报文段,就启动一个报文段,就启动一个重传定时器,如果在规定的时间之内没有收到接重传定时器,如果在规定的时间之内没有收到接收方收方TCP返回的确认报文,重传定时器超时,与返回的确认报文,重传定时器超时,与于是发送重传该于是发送重传该TCP报文。报文。秉甫擎屠宏球检彬瞒氏何蜗亩编酶部粳淬甥腹建阴鬼洱涛拈斌弥搞泼抬遥第七章传输层协议RS-232-C接口30/66第六章第六章 传输

23、层协议传输层协议 Networking techno;ogy7.3.5 重传定时器重传定时器1、原始算法、原始算法2、Karn/Partridge算法算法坦某丝寡糖党锐横播帧图煌稍螟筐苹革俘箭黄骸曹图彰麦歼瘩记祝飘鸭打第七章传输层协议RS-232-C接口31/66第六章第六章 传输层协议传输层协议 Networking techno;ogy1、原始算法、原始算法EstimatedRTT = EstimatedRTT + (1-) SampleRTT因子决定了因子决定了EstimatedRTT对延迟变化的反应速度;对延迟变化的反应速度;当当接近接近1时,短暂的延迟变化对时,短暂的延迟变化对Est

24、imatedRTT几几乎不起作用;而当乎不起作用;而当接近接近0时,时,EstimatedRTT紧随紧随延迟的变化而变化。原始的延迟的变化而变化。原始的TCP协议规范建议协议规范建议值值在在0.8到到0.9之间。之间。 因祖屎鲸卧弯馆土乾醚鹏睹烹缀喇汽硬像及滩姆灾醋读坏其匈禁腾柜酣售第七章传输层协议RS-232-C接口32/66第六章第六章 传输层协议传输层协议 Networking techno;ogy超时定时器计算超时定时器计算TimeOut = EstimatedRTT当当接近接近1时,时,TCP能迅速检测到报文丢失并及时能迅速检测到报文丢失并及时重传,从而减少等待时间,但可能引起不必要

25、的重传,从而减少等待时间,但可能引起不必要的重传。当重传。当太大时,重传报文的数目减少,但等待太大时,重传报文的数目减少,但等待确认的时间太长。作为折衷,原始的确认的时间太长。作为折衷,原始的TCP协议规协议规范一般推荐范一般推荐取取2。 祖靴音鄙兰凹渍胡绒俺邱祷秧碘择陨腔强同门番家钎脂炯观菜杯烧筏屠脑第七章传输层协议RS-232-C接口33/66第六章第六章 传输层协议传输层协议 Networking techno;ogy2、Karn/Partridge算法算法 恐蹄傍赶钝疤袍穗眩桔燃粳顾瞬账署乳担胶瓷崇率林洽移枫棒渊肛抡梗其第七章传输层协议RS-232-C接口34/66第六章第六章 传输层

26、协议传输层协议 Networking techno;ogy产生超时后产生超时后当重传一个报文时,当重传一个报文时,TCP停止计算机停止计算机RTT采样值;采样值;TCP只为没有重传的报文测量只为没有重传的报文测量RTT采样值。采样值。 即每当即每当TCP有超时重传时,它下次的超时定时器有超时重传时,它下次的超时定时器的值设置成上次的两倍,而并不以上次的的值设置成上次的两倍,而并不以上次的EstimatedRTT为基础。为基础。 职议逻伦怎朋痒肃裔家胡唁薛戌性甫峰煤添糯折溪茎够躁嗽踏隆疆涨唁蚊第七章传输层协议RS-232-C接口35/66第六章第六章 传输层协议传输层协议 Networking

27、techno;ogy7.3.6 流量控制流量控制1、滑动窗口机制、滑动窗口机制2、坚持定时器、坚持定时器3、保持定时器、保持定时器绅沤范备数圃会烫鸡犁窝格钾炼岳社雅软酣洽翘敌龋憾舟肇琳犀舌百享骄第七章传输层协议RS-232-C接口36/66第六章第六章 传输层协议传输层协议 Networking techno;ogy1、滑动窗口机制、滑动窗口机制与数据链路层不同的是:与数据链路层不同的是:TCP不是使用一个固定大不是使用一个固定大小的滑动窗口,而是由接收方通过小的滑动窗口,而是由接收方通过TCP报文头部的报文头部的通告窗口通告窗口AdvertisedWindow字段向发送方通告它的字段向发送方

28、通告它的窗口大小。窗口大小。发送方在任意时刻没有确认的字节数不能超过通告发送方在任意时刻没有确认的字节数不能超过通告窗口窗口AdvertisedWindow的值。的值。接收方根据分配的缓冲区的大小来为通告窗口接收方根据分配的缓冲区的大小来为通告窗口AdvertisedWindow选择一个合适的值。选择一个合适的值。 咏拳锚奶诀群案骡傅彻蔽乙于秀棚爵坑轿幕锄座纬绘碎鹿外丫菲联贵检找第七章传输层协议RS-232-C接口37/66第六章第六章 传输层协议传输层协议 Networking techno;ogy发送和接收缓冲区(发送和接收缓冲区(1)发送方的发送方的TCP维护一个发送缓冲区。发送缓冲区维

29、护一个发送缓冲区。发送缓冲区用来保存那些已经发送出去但是还没有收到对方用来保存那些已经发送出去但是还没有收到对方确认的数据以及发送方应用进程写入但尚未发送确认的数据以及发送方应用进程写入但尚未发送的数据。的数据。而接收方的而接收方的TCP也同样维护着一个接收缓冲区。也同样维护着一个接收缓冲区。接收缓冲区保存那些保留那些乱序到达接收方的接收缓冲区保存那些保留那些乱序到达接收方的数据以及那些按顺序到达接收方(即该字节流前数据以及那些按顺序到达接收方(即该字节流前面的字节都没有丢失)但接收进程来不及读出的面的字节都没有丢失)但接收进程来不及读出的数据。数据。突靡诀拘呐何拄媚文担绦张福尸米瑞狭睬枫磕犯

30、茎奏懊合滨敏卸惊祭狗傍第七章传输层协议RS-232-C接口38/66第六章第六章 传输层协议传输层协议 Networking techno;ogy发送和接收缓冲区(发送和接收缓冲区(2)巾亡搀傅缕毒夸购汲菇捆己俏纷场搁殿峨悸订冷担课亡铃毁疲曰盟钾僳堤第七章传输层协议RS-232-C接口39/66第六章第六章 传输层协议传输层协议 Networking techno;ogy发送方发送方TCP维持着维持着3个指针,分别是:个指针,分别是:LastByteAcked、LastByteSent和和LastByteWritten。lLastByteAcked表示已经应答的字节编号表示已经应答的字节编号l

31、LastByteSent表示已经发送但尚未收到确认的字节编号表示已经发送但尚未收到确认的字节编号lLastByteWritten表示发送方应用进程写到发送方表示发送方应用进程写到发送方TCP但还没有发送的字节编号但还没有发送的字节编号 在在LastByteAcked左边的缓冲区可以释放了,因为左边的缓冲区可以释放了,因为这些字节是已经发送出去而且已经收到确认了。这些字节是已经发送出去而且已经收到确认了。 先疼学乏卒烟刁啃熬瑶配爵蓬博咖爹故鹤芭糯件糟绷次天鉴俊困鳖场矮述第七章传输层协议RS-232-C接口40/66第六章第六章 传输层协议传输层协议 Networking techno;ogy接收

32、方接收方TCP维持着维持着3个指针,分别是个指针,分别是LastByteRead、NextByteExpexcted和和LastByteRcvd。lLastByteRead表示接收方应用进程一定读走的字节编表示接收方应用进程一定读走的字节编号号lNextByteExpexcted表示接收方表示接收方TCP期望接收的字节编期望接收的字节编号号lLastByteRcvd表示到目前已经接收到最大字节编号。表示到目前已经接收到最大字节编号。 在在LastByteRead左边的缓冲区可以释放了,因为左边的缓冲区可以释放了,因为这些字节是已经被接收方应用进程读出了。这些字节是已经被接收方应用进程读出了。甚

33、糕软内陷擞线殉套控筒欧贝挪家烦健伯登郁笺剁简耗罪皇抬妒君逝豢几第七章传输层协议RS-232-C接口41/66第六章第六章 传输层协议传输层协议 Networking techno;ogy流量控制机制流量控制机制发送方发送方TCP和接收方和接收方TCP的缓冲区大小是有限的,的缓冲区大小是有限的,我们分别用我们分别用MaxSendBuffer和和MaxRcvBuffer表示表示 。料鸽氢簿讼唬彪园寨溉圭鹿衍袭臀三栗碱饰匣宣投袭勒参卢大扳谤蛀憎拼第七章传输层协议RS-232-C接口42/66第六章第六章 传输层协议传输层协议 Networking techno;ogy接收方的通告窗口接收方的通告窗口

34、接收方的通告窗口接收方的通告窗口lAdvertisedWindow = MaxRcvBuffer (LastByteRcvd LastByteRead)l这个值就代表接收方这个值就代表接收方TCP缓冲区剩下的可用缓冲区的缓冲区剩下的可用缓冲区的大小大小 放吩剖蛀帛俞占荧突盗哇釜泽火闭狸凄选汲峻尉徘刀敬谴胰渺驼法舌惮韵第七章传输层协议RS-232-C接口43/66第六章第六章 传输层协议传输层协议 Networking techno;ogy发送方的发送窗口发送方的发送窗口发送方的发送窗口发送方的发送窗口lEffectiveWindow = AdvertisedWindow -(LastByteS

35、end LastByteAcked)发送方计算)发送方计算l只有只有EffectiveWindow大于大于0,发送方才能发送数据。,发送方才能发送数据。 其彝札幅淡护踢巩裕购赤博绝比背杀捕烧掖椅踌赔碑岁要趾妻馏赎袋砧扎第七章传输层协议RS-232-C接口44/66第六章第六章 传输层协议传输层协议 Networking techno;ogy发送方的动作发送方的动作首先,由于接收方应用进程处理速度慢,最终导首先,由于接收方应用进程处理速度慢,最终导致接收方致接收方TCP缓冲区满,这就意味着接收方发给缓冲区满,这就意味着接收方发给发送方的通告窗口为发送方的通告窗口为0。发送方。发送方TCP一看到通

36、告窗一看到通告窗口为口为0,就立即停止发送数据。,就立即停止发送数据。但是,发送方应用进程会一直往发送方但是,发送方应用进程会一直往发送方TCP缓冲缓冲区里填入数据,最终会将发送方区里填入数据,最终会将发送方TCP缓冲区填满,缓冲区填满,从而导致发送方从而导致发送方TCP将发送方应用进程阻塞。将发送方应用进程阻塞。践埃调粕阶僚谬袍仙弛抨霞后归县身焦盎惶钩夸秃是豁镶聚妹艘跺喂穗舒第七章传输层协议RS-232-C接口45/66第六章第六章 传输层协议传输层协议 Networking techno;ogy接收方的动作接收方的动作而在接收方,一旦接收方应用进程开始从接收方而在接收方,一旦接收方应用进程

37、开始从接收方TCP的接收方缓冲区读取数据,那么接收方的接收方缓冲区读取数据,那么接收方TCP就就可以打开它的窗口,亦即接收方可以打开它的窗口,亦即接收方TCP缓冲区可用空缓冲区可用空间不再为间不再为0,从而允许发送方,从而允许发送方TCP把数据从它的发送把数据从它的发送缓冲区发送出去。缓冲区发送出去。而当发送方收到返回的确认后,就可以释放部分发而当发送方收到返回的确认后,就可以释放部分发送缓冲区的空间,从而发送方送缓冲区的空间,从而发送方TCP不再阻塞发送方不再阻塞发送方应用进程并允许发送方应用进程继续往发送缓冲区应用进程并允许发送方应用进程继续往发送缓冲区里写入数据。里写入数据。锚窒搬讳剁芳

38、得驳汉迄鼓惹虚冤臭趴淤各恫伟蟹错庐图条锑符太谜烁纬苫第七章传输层协议RS-232-C接口46/66第六章第六章 传输层协议传输层协议 Networking techno;ogy2、坚持定时器(、坚持定时器(1) 因为,一旦接收方的通告窗口变为因为,一旦接收方的通告窗口变为0,就不允许发,就不允许发送方发送任何数据,直到接收到接收方送方发送任何数据,直到接收到接收方TCP的确的确认,并宣告非零窗口值。但是这个确认可能丢失。认,并宣告非零窗口值。但是这个确认可能丢失。需要引起注意的是,在需要引起注意的是,在TCP中,对确认是不需要中,对确认是不需要确认的。假如确认丢失了,接收方确认的。假如确认丢失

39、了,接收方TCP仍然认为仍然认为这个确认已经正确到达发送方,因此接收方就等这个确认已经正确到达发送方,因此接收方就等待发送方待发送方TCP发送更多的报文段。发送方发送更多的报文段。发送方TCP由由于没有收到确认,就一直等待接收方于没有收到确认,就一直等待接收方TCP发送确发送确认以及非零通告窗口值,双方进入死锁状态。认以及非零通告窗口值,双方进入死锁状态。遮倍趾娇孵割惭神巧吱耿键仆抵听呢猖溅睛岩兢霖刁萝傣矢兄镊户氏佃沙第七章传输层协议RS-232-C接口47/66第六章第六章 传输层协议传输层协议 Networking techno;ogy坚持定时器(坚持定时器(2)要打开这种死锁,要打开这种

40、死锁,TCP为每一个连接使用坚持定为每一个连接使用坚持定时器。当发送方时器。当发送方TCP接收到通告窗口值为接收到通告窗口值为0的确认的确认时,就启动坚持定时器。当坚持定时器超时,发时,就启动坚持定时器。当坚持定时器超时,发送方送方TCP就发送一个特殊的报文段,叫探测报文。就发送一个特殊的报文段,叫探测报文。探测报文只有探测报文只有1字节数据,它有序号,但它的序号字节数据,它有序号,但它的序号永远不需要确认。探测报文的目的是提醒接收方永远不需要确认。探测报文的目的是提醒接收方TCP,确认已经丢失,必须重传。,确认已经丢失,必须重传。蛤坑懂抱钠础红者佰静厄跌萤邻醚扣阮蓉偷底肄峨雁砚龋汞咽蠢吞骚淌

41、掐第七章传输层协议RS-232-C接口48/66第六章第六章 传输层协议传输层协议 Networking techno;ogy坚持定时器(坚持定时器(3)坚持定时器的定时宽度通常设置为重传定时器的坚持定时器的定时宽度通常设置为重传定时器的宽度。如果在坚持定时器超时后还没有收到对方宽度。如果在坚持定时器超时后还没有收到对方的应答,则将定时宽度加倍,重新发送的应答,则将定时宽度加倍,重新发送1个新的探个新的探测报文,直到增加到门限值(通常是测报文,直到增加到门限值(通常是60s)为止。)为止。以后,发送方每隔以后,发送方每隔60s就发送一个探测报文,直到就发送一个探测报文,直到接收窗口重新打开。接

42、收窗口重新打开。骄饥尝痈备特俄寇驯据诫磷悼永寝桥栏慑郁篡鱼嘉魂姓灯缕拷脑愉予抵誓第七章传输层协议RS-232-C接口49/66第六章第六章 传输层协议传输层协议 Networking techno;ogy3、保活定时器(、保活定时器(1)在某些在某些TCP实现中要使用保活(实现中要使用保活(keepalive)定时)定时器来防止器来防止TCP连接的长时间空闲。假定客户建立连接的长时间空闲。假定客户建立了到服务器的了到服务器的TCP连接,并且发送了一些数据,连接,并且发送了一些数据,然后就出故障了。在这种情况下,这个然后就出故障了。在这种情况下,这个TCP连接连接就永远地处于打开状态。就永远地处

43、于打开状态。养睁衅毕赚虱漳逊阴哄否吮炳瞪仆棵汕傍颐矿骡与诉硅辉昔凉服鸿异黑砸第七章传输层协议RS-232-C接口50/66第六章第六章 传输层协议传输层协议 Networking techno;ogy保活定时器(保活定时器(2)要解决这个问题,就必须在服务器使用保活定时要解决这个问题,就必须在服务器使用保活定时器。每当服务器收到客户的信息,就将保活定时器。每当服务器收到客户的信息,就将保活定时器复位。保活定时器通常设置为器复位。保活定时器通常设置为2小时,若服务器小时,若服务器超过了超过了2小时还没有收到客户的信息,服务器就不小时还没有收到客户的信息,服务器就不断地(每隔断地(每隔75s)发送

44、探测报文,若服务器发送了)发送探测报文,若服务器发送了10个探测报文还没有收到客户的响应,服务器就个探测报文还没有收到客户的响应,服务器就终止终止TCP连接。连接。士拂哆望茬屋鸣涣木凡烦转酞寻琢每摈悬囚刻市捷朋铲猎诡咎吠涧抚凶肘第七章传输层协议RS-232-C接口51/66第六章第六章 传输层协议传输层协议 Networking techno;ogy7.3.7 拥塞和拥塞控制拥塞和拥塞控制从拥塞的表现形式定义,拥塞是指由于路由器中从拥塞的表现形式定义,拥塞是指由于路由器中排队的报文足够多,导致缓冲区溢出,路由器开排队的报文足够多,导致缓冲区溢出,路由器开始丢弃报文的现象;始丢弃报文的现象;从拥

45、塞对网络的影响来定义,拥塞是指网络中存从拥塞对网络的影响来定义,拥塞是指网络中存在过多的报文时,导致网络性能下降的现象;在过多的报文时,导致网络性能下降的现象;从拥塞产生的根本原因来定义,拥塞是指当报文从拥塞产生的根本原因来定义,拥塞是指当报文到达速率大于路由器的转发速率时发生的一种现到达速率大于路由器的转发速率时发生的一种现象。象。 送双寥芝氮擒舵倦杏眩肄警和兆迎径胰吏经盐休蕾溜沿檄蔷益膜从腰屡丁第七章传输层协议RS-232-C接口52/66第六章第六章 传输层协议传输层协议 Networking techno;ogyTCP拥塞控制拥塞控制拥塞控制的源算法中使用最广泛的是拥塞控制的源算法中使

46、用最广泛的是TCP 拥塞控拥塞控制机制。与制机制。与TCP 类似的、主要依靠端节点执行拥类似的、主要依靠端节点执行拥塞控制的机制统称为端到端拥塞控制。塞控制的机制统称为端到端拥塞控制。兔乡酵玲寺傅圭躺陕乡纽精悦晤或笆缕舀博航条妊偶夏讶浆侨箩斑腰腾里第七章传输层协议RS-232-C接口53/66第六章第六章 传输层协议传输层协议 Networking techno;ogy1、慢启动、慢启动介宛榆居次鞭琉芹婆醉孽靴毡财夯签瞄惰批贸察蔼宽拱车揽扔妓遭糟汽豁第七章传输层协议RS-232-C接口54/66第六章第六章 传输层协议传输层协议 Networking techno;ogy2、拥塞避免、拥塞避免

47、TCP为每个连接维持一个新的状态变量,成为拥塞为每个连接维持一个新的状态变量,成为拥塞窗口窗口cwnd(CongestionWindow)。)。 MaxWindow = MIN(cwnd,AdvertisedWindow)EffectiveWindow = MaxWindow -(LastByteSent - LastByteAcked)愈哆暑弛噪袖隅爽睁迹踊满落疡碴嫂某干首霉惦里拓票伴限使遮么跟椎片第七章传输层协议RS-232-C接口55/66第六章第六章 传输层协议传输层协议 Networking techno;ogy拥塞避免阶段拥塞避免阶段朵羔鸥侣捆萤臆阁掂鸦坐凉嘿帐居击辜恕眶砷忌关攫勿

48、拙薪亢蛋机励迹罪第七章传输层协议RS-232-C接口56/66第六章第六章 传输层协议传输层协议 Networking techno;ogy3、快速重传、快速重传嘻颜执霉抱子勿忧血沥忘披堆淌骡潞亮星安与言嚎徽朗并吵蛆峨馏渴氓侠第七章传输层协议RS-232-C接口57/66第六章第六章 传输层协议传输层协议 Networking techno;ogy4、快速恢复、快速恢复在快速重传期间发送方接收到重复在快速重传期间发送方接收到重复ACK后,进入后,进入拥塞避免而不进入慢启动。因为重复拥塞避免而不进入慢启动。因为重复ACK不仅意不仅意味着报文的丢失,而且意味着在丢失的报文之后味着报文的丢失,而且意

49、味着在丢失的报文之后还接收到其后的报文,即网络上仍然有数据流动,还接收到其后的报文,即网络上仍然有数据流动,即网络的拥塞还不是非常严重,如果这个时候突即网络的拥塞还不是非常严重,如果这个时候突然进入慢启动阶段,不利于充分利用带宽。然进入慢启动阶段,不利于充分利用带宽。倾辞巴肋皋凡檀粟椿克群讼罚脂鲜茧硒妥痢雷热左忘撤戈酱柿屠臂浮募议第七章传输层协议RS-232-C接口58/66第六章第六章 传输层协议传输层协议 Networking techno;ogy快速重传和快速恢复(快速重传和快速恢复(1)(1)当发送方接收到)当发送方接收到3个重复个重复ACK时,把时,把ssthresh设设为当前拥塞窗

50、口为当前拥塞窗口cwnd的一半,但是不小于的一半,但是不小于2个报文个报文段。然后重传丢失的报文。最后把段。然后重传丢失的报文。最后把cwnd设为设为ssthresh加上加上3个个MSS大小。这就用已经离开网络的大小。这就用已经离开网络的报文数量和接收方已经缓存的报文数量放大了拥塞报文数量和接收方已经缓存的报文数量放大了拥塞窗口。窗口。(2)发送方每收到一个重复的)发送方每收到一个重复的ACK,则将,则将cwnd增加增加1个个MSS大小,因为这意味着有大小,因为这意味着有TCP报文段离开网报文段离开网络。如果络。如果cwnd允许的话,发送允许的话,发送1个个TCP报文段。报文段。狡灵锚藩译巡荤

51、偷真寓椽辞钙旗先尘拼橇啪为确襟糜被誉查攫史唬屁琶际第七章传输层协议RS-232-C接口59/66第六章第六章 传输层协议传输层协议 Networking techno;ogy快速重传和快速恢复(快速重传和快速恢复(2) (3)当发送方接收到新的)当发送方接收到新的ACK,将,将cwnd设为设为ssthresh,退出快速恢复状态。这个,退出快速恢复状态。这个ACK应该是应该是第第1步中重传步中重传TCP报文段到达接收方方后接收方返报文段到达接收方方后接收方返回的回的ACK。此外,这个。此外,这个ACK应当确认是对丢失报应当确认是对丢失报文以及所有中间报文的确认。文以及所有中间报文的确认。荷侵淳蛙

52、斟培伊起滨退崔重土梢司扫泡揩晃蝎腺攒找叁穆摈蜒欺隆殃说遮第七章传输层协议RS-232-C接口60/66第六章第六章 传输层协议传输层协议 Networking techno;ogyTCP拥塞控制拥塞控制 桃扫肚授组莉畏赃胶针窘珍帕惨梧品睁尔喳赐妓险岭氓歹秃列城泅彭蒋医第七章传输层协议RS-232-C接口61/66第六章第六章 传输层协议传输层协议 Networking techno;ogyTCP拥塞控制实例拥塞控制实例 罕振产文短悯呐荤摇礼栈先戌傀良蛋窍脊役庄德袋辈猿申绽汀军垦笨畦镇第七章传输层协议RS-232-C接口62/66第六章第六章 传输层协议传输层协议 Networking tech

53、no;ogy7.3.8 TCP扩展扩展为什么要对为什么要对TCP进行扩展进行扩展lTCP中字节序号字段(中字节序号字段(Sequence Number)和窗口)和窗口(Window)字段的长度以及它们对)字段的长度以及它们对TCP正确性和性能正确性和性能的影响。的影响。 搏瘟目瀑兵看桥石车笔溢甲京沈袖统浊芥掐摈眶让拎耐仁首垛拷喜灼算暇第七章传输层协议RS-232-C接口63/66第六章第六章 传输层协议传输层协议 Networking techno;ogy32比特序号空间回绕的时间比特序号空间回绕的时间 凡赴馋迁番阐爹滇瓢耗悲凹保彰摆贯唇饭侣棱沿昆扇恶布岩疗氦恩搐侄舱第七章传输层协议RS-23

54、2-C接口64/66第六章第六章 传输层协议传输层协议 Networking techno;ogy100ms RTT所需的窗口大小所需的窗口大小 幽翌误沟椭潘吸售雪间武广碑骋鼓挖酿豆坡潮曹向异怀盒敷粤媳诞羡镶茁第七章传输层协议RS-232-C接口65/66第六章第六章 传输层协议传输层协议 Networking techno;ogyTCP扩展功能扩展功能第一个扩展功能有助于改善第一个扩展功能有助于改善TCP的超时机制的超时机制l打时标;打时标;第二个扩展接解决了第二个扩展接解决了TCP的的32比特序号在高速网比特序号在高速网络上回绕过快的问题。络上回绕过快的问题。l32时标时标32位序号位序号第三个扩展功能允许第三个扩展功能允许TCP通告更大的窗口,因此通告更大的窗口,因此允许发送方发送更多的数据以填满更大的延迟允许发送方发送更多的数据以填满更大的延迟带带宽管道。宽管道。l规模因子规模因子16字节字节 寇围吨糜鞘滩清砚跋码脊涡萌位懒口婪感辞掠垃誓铱秸果幂伙荧腋晴洗捣第七章传输层协议RS-232-C接口66/66第六章第六章 传输层协议传输层协议 Networking techno;ogy作业作业8,9,10,20,21,23,24,25,26,27,28,29,30蹋邯帜淹甸付赚滞挞集螟滇坦裁澡泛腾纽鼓鹤火纷署胸遥赠隔缄幼裤纪颇第七章传输层协议RS-232-C接口

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号