计算机网络自顶向下方法第三章讲义优秀PPT.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机网络自顶向下方法第三章讲义优秀PPT.ppt》由会员分享,可在线阅读,更多相关《计算机网络自顶向下方法第三章讲义优秀PPT.ppt(102页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计 算 机 网 络20142014年年9 9月月国防科技学院国防科技学院第第3 3章章 运输层运输层第第3 3章章 运输层运输层计算机网络2第第3 3章章 运输层运输层应用层:包含大量应用普遍需要的协议,支持网络应用uFTP,SMTP,HTTP运输层:主机到主机数据传输,负责从应用层接收消息,并传输应用层的message,到达目的后将消息上交应用。uTCP,UDP网络层:从源到目的地数据报的选路uIP,选路协议链路层:在邻近网元之间传输数据uPPP,以太网物理层:物理层负责将链路层帧中每一位(bit)从链路的一端传输到另一端。应用层运输层运输层网络层链路层物理层 TCP/IP五层模型3第第3
2、3章章 运输层运输层我们的目的:理解运输层服务依据的原理:uMultiplexing(多路复用)/demultiplexing(多路分解)u可靠数据传输uflow control(流量控制)ucongestion control(拥塞控制)学习因特网中的运输层协议:uUDP:无连接传输uTCP:面向连接传输uTCP 拥塞控制 第3章:运输层4第第3 3章章 运输层运输层3.1 运输层服务运输层服务3.2 复用与分解3.3 无连接传输:UDP3.4 可靠数据传输的原理3.5 面向连接的传输:TCP3.6 拥塞控制的原则3.7 TCP拥塞控制5第第3 3章章 运输层运输层在运行不同主机上应用进程之
3、间提供逻辑通信运输协议运行在端系统中u发送方:将应用报文(messages)划分为报文段(segments),传向网络层u接收方:将段重新装配为报文,传向应用层应用程序可供使用的运输协议不止一个u因特网:TCP和UDP应用层运输层网络层数据链路层物理层网络层数据链路层物理层应用层运输层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层逻辑端到端传输 运输服务和协议动画:多层通信实质6第第3 3章章 运输层运输层网络层:主机间的逻辑通信运输层:进程间的逻辑通信u依赖、强化网络层服务家庭类比:12个孩子向12个孩子发信进程=孩子应用报文=
4、信封中的信主机=家庭运输协议=Ann和Bill网络层协议=邮政服务 运输层 vs.网络层7第第3 3章章 运输层运输层可靠的、按序的交付(TCP)u拥塞控制u流量控制u连接建立不可靠、无序的交付:UDPu差错检测不可用的服务:u时延保证u带宽保证应用层运输层网络层数据链路层物理层网络层数据链路层物理层应用层运输层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层网络层数据链路层物理层逻辑端到端传输 因特网运输层协议8第第3 3章章 运输层运输层3.1 运输层服务3.2 复用与分解复用与分解3.3 无连接传输:UDP3.4 可靠数据传输的原理3.5 面向连接
5、的传输:TCP3.6 拥塞控制的原则3.7 TCP拥塞控制9第第3 3章章 运输层运输层应用层运输层网络层链路层物理层P1应用层运输层网络层链路层物理层应用层运输层网络层链路层物理层P2P3P4P1主机1主机2主机3=进程=套接字将接收到的段交付给相应的套接字(一路到多路,向上)在接收主机分解:从多个套接字收集数据,用首部封装数据(多路到一路,向下)在发送主机复用:多路复用/多路分解10第第3 3章章 运输层运输层主机接收IP数据报u每个数据报有源IP地址,目的IP地址u每个数据报承载1个运输层报文段u每个段具有源、目的端口号(回想:对特定应用程序的周知端口号)源端口#目的端口#32 bits
6、应用数据(报文)其他首部字段TCP/UDP 报文段格式 分解工作过程主机使用IP地址&端口号将报文段导向到相应的套接字11第第3 3章章 运输层运输层UDP套接字由二元组全面标识:(目的地目的地IPIP地址地址,目的地端口号目的地端口号)当主机接收UDP段时:u在段中检查目的地端口号u将UDP段定向到具有该端口号的套接字具有不同源IP地址和/或源端口号的IP数据报(目的IP地址和端口号相同)定向到相同的套接字 无连接多路复用与分解12第第3 3章章 运输层运输层客户机IP:BP2客户机 IP:AP1P1P3服务器IP:CSP:6428DP:9157SP:9157DP:6428SP:6428DP
7、:5775SP:5775DP:6428SP提供了“返回地址”无连接多路复用与分解(续)=进程=套接字13第第3 3章章 运输层运输层TCP套接字由四元组(4-tuple)标识:u源IP地址u源端口号u目的IP地址u目的端口号接收主机使用这四个值来将段定向到适当的套接字服务器主机可能支持许多并行的TCP套接字:u每个套接字由其自己的四元组标识Web服务器对每个连接的客户机具有不同的套接字u非持久HTTP将为每个请求具有不同的套接字 面向连接多路复用与分解14第第3 3章章 运输层运输层客户机IP:BP1客户机 IP:AP1P2P4服务器IP:CSP:9157DP:80SP:9157DP:80P5
8、P6P3D-IP:CS-IP:AD-IP:CS-IP:BSP:5775DP:80D-IP:CS-IP:B 面向连接多路复用与分解(续)=进程=套接字15第第3 3章章 运输层运输层客户机IP:BP1客户机 IP:AP1P2服务器IP:CSP:9157DP:80SP:9157DP:80P4P3D-IP:CS-IP:AD-IP:CS-IP:BSP:5775DP:80D-IP:CS-IP:B 面向连接分解:多线程Web服务器=进程=套接字16第第3 3章章 运输层运输层3.1 运输层服务3.2 复用与分解3.3 无连接传输无连接传输:UDP3.4 可靠数据传输的原理3.5 面向连接的传输:TCP3.
9、6 拥塞控制的原则3.7 TCP拥塞控制17第第3 3章章 运输层运输层“尽力而为”服务,UDP段可能:u丢包u对应用程序交付失序无连接u在UDP发送方和接收方之间无握手u每个UDP段的处理独立于其他段为何要有 UDP协议?无连接创建(它将增加时延)简单:在发送方、接收方无连接状态段首部小无拥塞控制:UDP能够尽可能快地传输 UDP:用户数据报协议 18第第3 3章章 运输层运输层常用于流媒体应用程序u丢包容忍u速率敏感其他UDP应用uDNSuSNMP经UDP的可靠传输:在应用层增加可靠性u应用程序特定的差错恢复!源端口#目的端口#32 bits应用数据(报文)UDP 段格式长度检查和UDP段
10、的长度,包括首部,以字节计checksum:校验和,检查和 UDP报文段结构19第第3 3章章 运输层运输层发送方:将段内容处理为16比特整数序列检查和:段内容的加法(反码和)发送方将检查和放入UDP检查和字段接收方:计算接收的段的检查和核对计算的检查和是否等于检查和字段的值:uNO 检测到差错uYES 无差错检测到。虽然如此,还可能有差错吗?目的:在传输的段中检测“差错”(如比特翻转)UDP检查和20第第3 3章章 运输层运输层注意u当数字作加法时,最高位进比特位的进位需要加到结果中例子:两个16-bit整数相加1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0
11、 1 0 1 0 1 0 1 0 1 0 1 0 11 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 11 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1回卷 和检查和 检查和例子计算步骤:求和,回卷,求反21第第3 3章章 运输层运输层3.1 运输层服务3.2 复用与分解3.3 无连接传输:UDP3.4 可靠数据传输的原理可靠数据传输的原理3.5 面向连接的传输3.6 拥塞控制的原则3.7 TCP拥塞控制22第第3 3章章 运输层运输层在应用层、运输层、数据链路层的重要性u网络中需解决的最重要的1
12、0个问题之一!不可靠信道的特点决定了可靠数据传输协议的复杂性 可靠数据传输的原理23第第3 3章章 运输层运输层发送侧接收侧rdt_send():called from above,(e.g.,by app.).Passed data to deliver to receiver upper layerudt_send():called by rdt,to transfer packet over unreliable channel to receiverrdt_rcv():called when packet arrives on rcv-side of channeldeliver_da
13、ta():called by rdt to deliver data to upper 可靠数据传输:描述函数熟悉24第第3 3章章 运输层运输层我们将:逐渐递增地研究可靠数据传输协议(rdt)的发送方和接收方u仅考虑单向数据传输u但控制信息将在两个方向流动!使用有限状态机(FSM)来定义发送方和接收方状态1状态2引起状态变迁的事件状态变迁所采取的行动状态:当位于这个“状态时”,下个状态惟一地由下个事件决定事件动作事件 有限状态机描述方法25第第3 3章章 运输层运输层3.1 运输层服务3.2 复用与分解3.3 无连接传输:UDP3.4 可靠数据传输的原理可靠数据传输的原理urdt1.0,rd
14、t2.0,rdt3.0协议协议3.5 面向连接的传输3.6 拥塞控制的原则3.7 TCP拥塞控制26第第3 3章章 运输层运输层底层信道完全可靠u无比特差错u无分组丢失发送方、接收方具有各自的FSM:u发送方将数据发向底层信道u接收方从底层信道读取数据Wait for call from abovepacket=make_pkt(data)udt_send(packet)rdt_send(data)extract(packet,data)deliver_data(data)Wait for call from belowrdt_rcv(packet)发送方接收方 rdt1.0:完全可靠信道上的
15、可靠数据传输27第第3 3章章 运输层运输层 Rdt2.0:具有比特差错的信道具有比特差错的底层信道u有比特差错u无分组丢失数据出错后处理方式u检错重传rdt2.0新增加机制(与rdt1.0比较)u检错u反馈:ACK,NAKu重传28第第3 3章章 运输层运输层 等待来自上面的调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt
16、)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待ACK 或NAK 等待来自下面的调用发送方接收方rdt_send(data)L发送方发出发送方发出1个分组,等待个分组,等待接收方响应后再继续发送。接收方响应后再继续发送。(类似(类似rdt2.0)停等协议停等协议 rdt2.0:FSM描述29第第3 3章章 运输层运输层 等待来自上面的调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,d
17、ata)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待 ACK 或NAK 等待来自下面的调用rdt_send(data)L rdt2.0:无差错时的操作30第第3 3章章 运输层运输层 等待来自上面的调用snkpkt=make_pkt(data,checksum)udt_se
18、nd(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)rdt_rcv(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&isNAK(rcvpkt)udt_send(NAK)rdt_rcv(rcvpkt)&corrupt(rcvpkt)等待ACK 或NAK 等待来自下面的调用rdt_send(data)L rdt2.0:有差错时的情况31第第3 3章章 运输层运输层如果ACK/NAK受损,将会出现何种情况?
19、发送方不知道在接收方会发生什么情况!不能只是重传:可能导致重复(duplicate)处理重复(序号机制):发送方对每个分组增加序列号如果ACK/NAK受损,发送方重传当前的分组接收方丢弃(不再向上交付)重复的分组 rdt2.0有重大的缺陷!32第第3 3章章 运输层运输层等待来自上面的调用0sndpkt=make_pkt(0,data,checksum)udt_send(sndpkt)rdt_send(data)等待 ACK 或 NAK 0udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)sndpkt=make_pkt(
20、1,data,checksum)udt_send(sndpkt)rdt_send(data)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isNAK(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt)等待来自上面的调用1等待 ACK 或NAK 1LL rdt2.1:发送方,处理受损的ACK/NAK33第第3 3章章 运输层运输层等待来自下面的调用0sndpkt=make_pkt(NAK,c
21、hksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬ corrupt(rcvpkt)&has_seq0(rcvpkt)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq1(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)等待来自上面的调用1rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_seq0(rcvpkt)extract(rcvpkt,data)deliver_data(
22、data)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)¬ corrupt(rcvpkt)&has_seq1(rcvpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)sndpkt=make_pkt(ACK,chksum)udt_send(sndpkt)sndpkt=make_pkt(NAK,chksum)udt_send(sndpkt)rdt2.1:
23、接收方,处理受损的ACK/NAK34第第3 3章章 运输层运输层发送方:序号seq#加入分组中两个序号seq.#s(0,1)将够用.(为什么?)必须检查是否收到的ACK/NAK受损 状态增加一倍u状态必须“记住”是否“当前的”分组具有0或1序号接收方:必须检查是否接收到的分组是冗余的u状态指示是否0或1是所期待的分组序号seq#注意:接收方不能知道是否它的最后的ACK/NAK在发送方已经接收OK rdt2.1:讨论35第第3 3章章 运输层运输层与rdt2.1一样的功能,仅使用ACK代替NAK,接收方对最后正确接收的分组发送ACKu接收方必须明确地包括被确认分组的序号在发送方重复的ACK导致如
24、同NAK相同的动作:重传当前分组 rdt2.2:一种无NAK的协议36第第3 3章章 运输层运输层等待来自上面的调用0sndpkt=make_pkt(0,data,checksum)udt_send(sndpkt)rdt_send(data)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|isACK(rcvpkt,1)rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&isACK(rcvpkt,0)等待ACK0发送方FSM片段等待来自下面的调用0rdt_rcv(rcvpkt)¬corrupt(rcvpkt)&has_se
25、q1(rcvpkt)extract(rcvpkt,data)deliver_data(data)sndpkt=make_pkt(ACK1,chksum)udt_send(sndpkt)rdt_rcv(rcvpkt)&(corrupt(rcvpkt)|has_seq1(rcvpkt)udt_send(sndpkt)接收方FSM片段L rdt2.2:发送方,接收方片段37第第3 3章章 运输层运输层 rdt3.0:具有差错和丢包的信道具有差错和丢包的底层信道u有比特差错u有分组丢失现有机制(检错、反馈、重传、序号)还不够增加定时机制:发送方等待ACK一段“合理的”时间u如在这段时间没有收到ACK则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 向下 方法 第三 讲义 优秀 PPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内