第4讲 传输层之二.ppt
《第4讲 传输层之二.ppt》由会员分享,可在线阅读,更多相关《第4讲 传输层之二.ppt(32页珍藏版)》请在麦多课文档分享上搜索。
1、第4讲 传输层之二,4-1,第4讲 传输层之二,本讲目的: Internet传输层的实现和实例,本讲概述:面向连接的传输: TCP 可靠传输 流量控制 连接管理 TCP拥塞控制 拥塞控制原则,第4讲 传输层之二,4-2,TCP: 概述 RFCs: 793, 1122, 1323, 2018, 2581,全双工数据传输: 在同一连接上双向传输 MSS: maximum segment size(最大段字节数-1500,536,512) 面向连接: 握手过程 (交换控制信息) 在交换数据前初始化收发双方的状态,“三次握手” 流量控制: 发送方的发送速度不得超过接收方的处理速度,点对点: 一个发送方
2、, 一个接收方 可靠, 按序的字节流 : 无 “报文边界”,无结构但有顺序 流水式控制: TCP的拥塞和流量控制,设置窗口大小 发送& 接收缓存,第4讲 传输层之二,4-3,TCP 段格式(p238),URG: urgent data (一般不用),ACK: ACK # valid,PSH: push data now (一般不用),RST, SYN, FIN: connection estab (setup, teardown commands),# bytes 接收方愿意接受的,按发送数据的字节计算 (不是按段数!),Internet checksum (as in UDP),第4讲 传输
3、层之二,4-4,TCP seq. #s 和 ACKs,Seq. #s: 该数据段第一个字节在(整个报文)字节流中 “编号” ACKs: seq #为预期从对方发来的“下一个”字节的编号 积累的 ACK Q: 接收方如何接受失序的数据段 A: TCP 没有定义, - 由程序设计者决定,Host A,Host B,Seq=42, ACK=79, data = C,Seq=79, ACK=43, data = C,Seq=43, ACK=80,User types C,host ACKs receipt of echoed C,host ACKs receipt of C, echoes back
4、C,简单的 telnet 场景,第4讲 传输层之二,4-5,TCP: 可靠数据传输,简化的发送方, 假设,wait for event,wait for event,event: data received from application above,event: timer timeout for segment with seq # y,event: ACK received, with ACK # y,create, send segment,retransmit segment,ACK processing,单向数据传输 无流量, 拥塞控制,第4讲 传输层之二,4-6,TCP: 可靠
5、数据传输,00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number 02 03 loop (forever) 04 switch(event) 05 event: data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = ne
6、xtseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compue new timeout interval for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y sendbase) /* cumulative ACK o
7、f all data up to y */ 16 cancel all timers for segments with sequence numbers y 17 sendbase = y 18 19 else /* a duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y = 3) 22 /* TCP fast retransmit */ 23 resend s
8、egment with sequence number y 24 restart timer for segment y 25 26 /* end of loop forever */,简化的 TCP 发送方,第4讲 传输层之二,4-7,TCP ACK 规则 RFC 1122, RFC 2581,事件有序数据段到达, 没有缺失的段, 所有其他数据段已经 ACKed有序数据段到达, 没有缺失的段, 有一个延迟 ACK 等待失序数据段到达 seq. # 高于预期值 测到间隔到达的数据段部分或全部填满了缺失的段,TCP 接收方的动作延迟 ACK. 等待 500ms 看是否还有数据段到达. 如果没有,
9、 发送ACK立即发送一个 积欠的 ACK 发送重复的 ACK, 说明 seq. # 为下一个期望的字节立即 ACK,如果数据段处于缺失的段的较低端,第4讲 传输层之二,4-8,TCP: 重传场景,Host A,Seq=100, 20 bytes data,ACK=100,Seq=92 timeout,过早超时, 积欠 ACKs,Host B,Seq=92, 8 bytes data,ACK=120,Seq=92, 8 bytes data,Seq=100 timeout,ACK=120,第4讲 传输层之二,4-9,TCP 流量控制,接收端: 显式通知发送端 (动态变化中的) 自由缓存空间 Rc
10、vWindow TCP 数据段的字段 发送端: 需要保存已经发送, unACKed 数据可少于最近收到的RcvWindow,发送端不可发送的太多、太快以至于使得接收端的缓存溢出,接收端缓存,RcvBuffer = 接收端的 TCP 缓存大小RcvWindow = 缓存中空闲的部分,第4讲 传输层之二,4-10,TCP 交互的往返时间(RTT)和超时,Q: 如何设置 TCP 超时的值? 应较RTT长一点 注意: RTT 会变哟! 太短了: 过早出现超时 造成不必要的重传 太长了: 减缓了对数据段丢失的反应,Q: 如何估算 RTT? SampleRTT: 对数据段发送到收到ACK 回应的时间进行测
11、量 忽略重传, 积欠 ACKed 数据段 SampleRTT 是会变化的, 要使得估算的 RTT “更平滑” 使用若干新近的测量结果, 而不仅仅是最近一次的 SampleRTT,第4讲 传输层之二,4-11,TCP RTT 和超时 (p246),EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT,指数加权移动平均(EWMA) 给定样本的影响随指数形式快速递减 X的典型量值: 0.125或1/8,设置超时 EstimtedRTT 加上 “安全边际(safety margin)” 如果 EstimatedRTT变化较大 - 加大安全边际,Timeout
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输 PPT
