第3讲 传输层协议及应用.ppt
《第3讲 传输层协议及应用.ppt》由会员分享,可在线阅读,更多相关《第3讲 传输层协议及应用.ppt(37页珍藏版)》请在麦多课文档分享上搜索。
1、1,第3讲 传输层协议及应用,本讲目的: 理解传输层服务的原理: 复用/分用 可靠数据传输 流量控制 拥塞控制 Internet传输层的实现和实例 教科书参考 第3章,本讲概述: 传输层的服务 复用/分用 无连接的传输: UDP 传输控制协议:TCP,2,传输层与网络层的关系,因特网中的传输层充当“收发室”的角色 因特网中的网络层充当“邮递业务”的角色 两个层次之间的任务可以互换,但是在实现成本上可能存在巨大差别,3,传输服务和协议,提供运行在不同主机中进程间的逻辑通信 传输协议仅运行在端系统中 传输 vs. 网络层服务 : 网络层: 在端系统间进行通信 传输层: 在进程间进行通信 依赖并加强
2、了网络层的服务,4,传输层协议,Internet 传输服务: 可靠, 按序点对点递交 (TCP) 拥塞控制 流量控制 连接建立 不可靠的 (“尽力而为”), 无序的点对点或广播递交: UDP 不能提供的服务: 实时性 带宽承诺 可靠的广播通信,5,P2,应用层对传输协议的复用/分用,segment (段)- 传输层实体间交换数据的单位 TPDU: 传输层数据单元,receiver,H,t,分用: 将接收到的段传递给正确的应用层进程,segment,segment,M,P1,P3,P4,segment header,application-layer data,6,应用层对传输协议的复用/分用,
3、复用/分用: 基于发送方, 接收方的端口号, IP 地址 源, 目的端口 #s 存在于每个段中 用于特定应用的常用端口号(well-known port number):01023,从多个应用进程获取数据, 用首部(便于随后的分用)封装数据,源端口 #,宿端口 #,32 bits,应用层数据 (报文),其他首部字段,TCP/UDP 段格式,7,复用/分用: 举例,主机 A,服务器 B,端口的使用: 简单的 telnet 应用,Web客户端 主机 A,Web 服务器 B,Web客户端 主机 C,端口的使用: Web 服务器,8,UDP: 用户数据报协议 RFC 768,“最简约的” Intern
4、et 传输协议 “尽力而为的” 服务, UDP 数据段可以: 丢失 应用数据不按序到达 无连接: 在UDP收发双方之间, 无需握手信号 每个 UDP 数据段的操作都互相独立,为什么需要 UDP? 无需建立连接 (会增加延迟) 简单: 在收发双方之间没有连接状态 段首较短 无拥塞控制: UDP 可按需要随时发送,9,UDP: (续),经常为流媒体应用使用 允许数据丢失 对传输速率敏感 其他 UDP用途 : DNS SNMP 若需要通过 UDP进行可靠传输:在应用层增加可靠性措施 在应用程序中-专门的出错恢复机制!,源端口 #,宿端口 #,32 bits,应用层数据 (报文),UDP 数据报格式,
5、length,checksum,长度, UDP 段的字节数, 包括首部,10,UDP 校验和(checksum),发送方: 将段的内容看作一串16位整数 checksum: 作段内容的加法(补码和) 发送方将补码和放入 UDP checksum 字段,接收方: 对接收到的段内容进行补码和计算 检查计算结果是否与收到的校验和相等: NO 查出错误 YES 没查出错误. 但是仍有可能存在错误?,目标: 检测传输段中的“错误” (e.g., 位错),11,TCP概述 RFCs: 793, 1122, 1323, 2018, 2581,全双工数据传输: 在同一连接上双向传输 MSS: maximum
6、segment size(最大段字节数-1500,536,512) 面向连接: 握手过程 (交换控制信息) 在交换数据前初始化收发双方的状态,“三次握手” 流量控制: 发送方的发送速度不得超过接收方的处理速度,点对点: 一个发送方, 一个接收方 可靠, 按序的字节流 : 无 “报文边界”,无结构但有顺序 流水式控制: TCP的拥塞和流量控制,设置窗口大小 发送& 接收缓存,12,TCP 段格式(p80),URG: urgent data (一般不用),ACK: ACK # valid,PSH: push data now (一般不用),RST, SYN, FIN: connection est
7、ab (setup, teardown commands),# bytes 接收方愿意接受的,按发送数据的字节计算 (不是按段数!),Internet checksum (as in UDP),13,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,Se
8、q=43, ACK=80,User types C,host ACKs receipt of echoed C,host ACKs receipt of C, echoes back C,简单的 telnet 场景,14,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
9、 segment,retransmit segment,ACK processing,单向数据传输 无流量, 拥塞控制,15,TCP: 可靠数据传输,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
10、 timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + 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 rece
11、ived, with ACK field value of y 15 if (y sendbase) /* cumulative ACK of 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 dupli
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输 协议 应用 PPT
