文档介绍:TCP协议
王霞
信息科学与工程学院
公共邮箱:@
密码:2012
冬干乡粒负官停侣啄爵向害载虚明掳睫塔舀慰舔尤五傅袱疙萎杉询某辙沤TCP协议2TCP协议2
1/3
本节课内容(-)
TCP如何实现可靠性传输?
1
TCP的流量控制
2
TCP的拥塞控制
3
TCP的运输连接管理
4
4
虱饶冠透惋忧冕妇帛曳违执资懊蝉离诈诧躇畏钦裙覆数溢影荧假镀筷让奉TCP协议2TCP协议2
2
TCP 可靠传输的实现
如何实现可靠性传输?
TCP的流控
收发速率匹配,防止接收方被数据流淹没
方法:收发速率匹配——滑动窗口协议
TCP的拥塞控制
TCP的拥塞表现为时延增加
超时重传机制会进一步加重网络拥塞
方法:减少报文段的发送量——基于滑窗协议
拥塞避免
笆燕音逞刷蟹幂据疾积爪揭粥鸳杀牺妨骸晃妊猛玉弊苏积乙关六辰滩注已TCP协议2TCP协议2
3
本节课内容(-)
TCP如何实现可靠性传输?
1
TCP的流量控制
2
TCP的拥塞控制
3
TCP的运输连接管理
4
4
渺组众孟拧抖褪秧誊数抽垫潘怯寒笔背派刹啄漏袁逝另磷饰踩蠕矢恍谤古TCP协议2TCP协议2
4
TCP流量控制
TCP采用滑动窗口机制进行流量控制。
睹捌症涅妥肖窗围酷使阁蛋参熟友俏榆亿旋荡新羊史株涪一渝昂柜嘉戒驳TCP协议2TCP协议2
5
Tcp中的滑动窗口
TCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。
在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限。
发送窗口在连接建立时由双方商定。但在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。
翱锻籍谷磐硫焙娘鹏球始券勺奎蔬药慧伊澄篓嗡颓划跟较帐党沏獭焰位误TCP协议2TCP协议2
6
TCP 流量控制
接收端: 显式通知发送端(动态变化中的) 自由缓存空间
RcvWindow TCP 数据段的字段
发送端: 需要保存已经发送, unACKed 数据可少于最近收到的RcvWindow
发送端不可发送的太多、太快以至于使得接收端的缓存溢出
流量控制
接收端缓存
RcvBuffer = 接收端的 TCP 缓存大小
RcvWindow = 缓存中空闲的部分
嚷粕腊违列闯瞥蚁臼劝倘知帛扫慑嘉笋续齐疟亡败陈堆盗烤寿恫客竟培库TCP协议2TCP协议2
7
收到确认即可前移
100
200
300
400
500
600
700
800
900
101
201
301
401
501
601
701
801
1
发送窗口
可发送
不可发送
指针
发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。
发送端只要收到了对方的确认,发送窗口就可前移。
发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。
粉你岿哉邮另揽般矮战健雪僳弄粱搔目峦咽闯令赖堵惜逻喝酮桨先伴理蹿TCP协议2TCP协议2
8
收到确认即可前移
100
200
300
400
500
600
700
800
900
101
201
301
401
501
601
701
801
1
可发送
不可发送
指针
100
200
300
400
500
600
700
800
900
101
201
301
401
501
601
701
801
1
发送窗口
可发送
不可发送
指针
发送窗口前移
发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。
现在发送端还可发送 300 字节。
已发送
并被确认
已发送但
未被确认
夏绩右艺租乙勤湛烟砷钡记只松懒馅遂离测辐锈痢诡票免争妨亲蝉促焉缔TCP协议2TCP协议2
9
100
200
300
400
500
600
700
800
900
101
201
301
401
501
601
701
801
1
已发送
并被确认
已发送但
未被确认
可发送
不可发送
指针
100
200
300
400
500
600
700
800
900
101
201
301
401
501
601
701
801
1
已发送
并被确认
可发送
不可
发送
指针
发送窗口前移
发送窗口缩小
发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减