第三章 传输层.ppt
《第三章 传输层.ppt》由会员分享,可在线阅读,更多相关《第三章 传输层.ppt(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Chapter 3Transport LayerComputer Networking:A Top Down Approach Featuring the Internet,3rd edition.Jim Kurose,Keith RossAddison-Wesley,July 2004.A note on the use of these ppt slides:Were making these slides freely available to all(faculty,students,readers).Theyre in PowerPoint form so you can add,m
2、odify,and delete slides (including this one)and slide content to suit your needs.They obviously represent a lot of work on our part.In return for use,we only ask the following:q If you use these slides(e.g.,in a class)in substantially unaltered form,that you mention their source(after all,wed like p
3、eople to use our book!)q If you post any slides in substantially unaltered form on a www site,that you note that they are adapted from(or perhaps identical to)our slides,and note our copyright of this material.Thanks and enjoy!JFK/KWRAll material copyright 1996-2005J.F Kurose and K.W.Ross,All Rights
4、 Reserved1第三章第三章:传输层传输层目标目标:理解传输层的原理理解传输层的原理:复用复用/分解复用分解复用可靠数据传输可靠数据传输流量控制流量控制拥塞控制拥塞控制学习因特网传输层协议学习因特网传输层协议:UDP:无连接传输无连接传输TCP:面向连接传输面向连接传输TCP 拥塞控制拥塞控制2第三章:内容大纲3.1 传输层服务传输层服务n3.2 多路复用与多路分解多路复用与多路分解n3.3 无连接传输无连接传输:UDPn3.4 可靠数据传输原理可靠数据传输原理n3.5 面向连接传输面向连接传输:TCP报文段结构报文段结构可靠数据传输可靠数据传输流量控制流量控制连接管理连接管理n3.6 拥
5、塞控制原理拥塞控制原理n3.7 TCP拥塞控制拥塞控制33.1.1 传输层服务和协议传输层服务和协议为两个不同主机上运行的应为两个不同主机上运行的应用程序(进程)提供用程序(进程)提供 逻辑逻辑通信通信 传输层协议运行在端系统传输层协议运行在端系统 发送方发送方:将应用层报文分将应用层报文分成报文段传递给网络层成报文段传递给网络层,接受方接受方:将报文段重新组将报文段重新组装成报文传递到应用层装成报文传递到应用层不只一个传输层协议可以用不只一个传输层协议可以用于应用程序于应用程序因特网因特网:TCP 和和 UDP应用层应用层传输层传输层网络层网络层链路层链路层物理层物理层应用层应用层传输层传输
6、层网络层网络层链路层链路层物理层物理层networkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysical逻辑上的端到端传输逻辑上的端到端传输43.1.2 传输层和网络层的关系传输层和网络层的关系n网络层:两个主机之间的逻辑通信n传输层:两个进程之间的逻辑通信 依赖或局限于网络层服务,并增强网络层服务生活中的类比:12个小孩送信给12个小孩n进程=小孩n应用层报文=信封中的信n主机=房子n传输层协议=Ann 和 Billn网
7、络层服务=邮局服务对于Internet,如网络层不提供延迟和带宽保证,传输层也无法提供;但是网络层即使不能提供可靠传输、流量控制、拥塞控制、机密性(第8章讨论)等,传输层仍然可以提供这些特定的服务!53.1.3 Internet 传输层协议传输层协议n可靠有序地传送:TCP可靠传输拥塞控制 流量控制连接管理n不可靠地无序地传送:UDP“尽力传送”的IP服务的直接扩展多路复用与多路分解nUDP/TCP没有提供的服务:延迟保证带宽保证applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphy
8、sicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicalnetworkdata linkphysicallogical end-end transport6第三章:内容大纲n3.1 传输层服务传输层服务3.2 多路复用与多路分解多路复用与多路分解n3.3 无连接传输无连接传输:UDPn3.4 可靠数据传输原理可靠数据传输原理n3.5 面向连接传输面向连接传输:TCP报文段结构报文段结构可靠数据传输可靠数据传输流量控制流量控制连接管理连接管理n3.6
9、拥塞控制原理拥塞控制原理n3.7 TCP拥塞控制拥塞控制7多路复用多路复用/多路分解多路分解applicationtransportnetworklinkphysicalP1applicationtransportnetworklinkphysicalapplicationtransportnetworklinkphysicalP2P3P4P1host 1host 2host 3=进程进程=套接字套接字将接收到的报文段传递到将接收到的报文段传递到正确的套接字(多路分解)正确的套接字(多路分解)在接收主机多路分解在接收主机多路分解:从多个套接字收集数据从多个套接字收集数据,用首部封装数据(用首部
10、封装数据(这些信息用这些信息用于以后的多路分解于以后的多路分解)在发送主机多路复用在发送主机多路复用:8多路分解的原理多路分解的原理源端口源端口#目的端口目的端口#32 bits应用程序数据应用程序数据(报文报文)其他首部域其他首部域TCP/UDP 报文段格式报文段格式n主机收到IP分组每个分组有一个源IP地址,一个目的IP地址每个分组有一个传输层报文段每个报文段有源和目的端口号(回忆:熟知端口号对应特定应用程序)n主机用IP地址和端口号将报文段传给一个合适的套接字91、无连接多路分解、无连接多路分解n用端口号创建套接字用端口号创建套接字:DatagramSocket ServerSocket
11、1=new DatagramSocket(9911);DatagramSocket ServerSocket2=new DatagramSocket(9922);nUDP套接字由一个二元组来标识:(目的目的IP地址地址,目的端口号目的端口号)n当主机收到当主机收到UDP报文段报文段:检查报文段的目的端口号将UDP报文段传给这个端口号的套接字n具有不同源具有不同源IP地址且地址且/或或具有不同源端口号的具有不同源端口号的IP数据报可以传给同一个数据报可以传给同一个套接字套接字10ClientIP:BP2client IP:AP1P1P3serverIP:CSP:6428DP:9157SP:915
12、7DP:6428SP:6428DP:5775SP:5775DP:6428请求报文段中提供返回地址(包括请求报文段中提供返回地址(包括IP地址和端口号)地址和端口号)1.无连接多路分解(续)无连接多路分解(续)DatagramSocket serverSocket=new DatagramSocket(6428);112.面向连接多路分解面向连接多路分解nTCP 套接字由4个字段标识:源 IP 地址源端口号目的IP地址目的端口号TCP套接字由1个四元组标识n接收主机使用所有4个值来将报文段传给一个合适的套接字n服务器主机可支持很多同时存在的TCP套接字:每个套接字使用自己的4个字段来标识nWeb
13、服务器对各连接客户具有不同的套接字非持久HTTP对每个请求将有一个不同的套接字12ClientIP:BP1client IP:AP1P2serverIP:CSP:9157DP:80SP:9157DP:80P4P3D-IP:CS-IP:AD-IP:CS-IP:BSP:5775DP:80D-IP:CS-IP:B2.面向连接的多路分解:(续)(续)例:多线程web服务器Web服务器对各连接客户具有不同的套接字服务器对各连接客户具有不同的套接字线程线程13第三章:内容大纲n3.1 传输层服务传输层服务n3.2 多路复用与多路分解多路复用与多路分解3.3 无连接传输无连接传输:UDPn3.4 可靠数据传
14、输原理可靠数据传输原理n3.5 面向连接传输面向连接传输:TCP报文段结构报文段结构可靠数据传输可靠数据传输流量控制流量控制连接管理连接管理n3.6 拥塞控制原理拥塞控制原理n3.7 TCP拥塞控制拥塞控制143.3.1 UDP:用户数据报协议用户数据报协议 RFC 768n“毫无修饰的,”“纯粹的”Internet 传输协议在IP之上没加入任何东西,除了多路复用/多路分解和错误检测n“尽力服务”,UDP 报文段可能:丢失传递给应用层失序n无连接UDP 发送方和接收方之间没有连接建立每个UDP报文段的处理独立于其他报文段n为什么需要为什么需要UDP?无连接 建立连接(将增加迟延)简单:发送方和
15、接收方不需要连接状态报文段首部小没有拥塞控制:UDP 能够尽量快的发送到对方15UDP:用户数据报协议(续)用户数据报协议(续)n经常用于流式多媒体应用经常用于流式多媒体应用容忍丢失容忍丢失速率敏感速率敏感n其它其它 UDP 应用应用DNSSNMPn多点传送多点传送(组播组播)基于基于UDPnUDP上的可靠传输上的可靠传输:在应用层在应用层增加可靠性增加可靠性应用特有的错误恢复应用特有的错误恢复!源端口号源端口号目的端口号目的端口号32 bits应用层数据(报文)应用层数据(报文)UDP 报文段格式报文段格式长度长度校验和校验和长度以字节为长度以字节为单位,包括报文首单位,包括报文首部和数据部
16、和数据163.3.2 UDP 校验和校验和发送者发送者:n将报文段看作16比特字的序列n校验和:报文段16比特字的和进行1的补运算n发送者将校验和的值放到UDP的校验和域接收者:接收者:n计算接收报文段的校验和n检查:计算的校验和是否等于校验和域的值:16比特字的和1111111111111111 NO 肯定检测到错误YES 没有检测到错误.但仍然可能是错误的。目的目的:检测传输的报文段的“错误”(例如位错)17Internet 校验和例子校验和例子n注意注意在加数字的时候,从最高位溢出的在加数字的时候,从最高位溢出的bit必须要必须要加到结果上回绕加到结果上回绕n例例:加两个加两个16位整数
17、位整数1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 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回绕和和校验和校验和18第三章:内容大纲n3.1 传输层服务传输层服务n3.2 多路复用与多路分解多路复用与多路分解n3.3 无连接传输无连接传输:UDP 3.4 可靠数据传输原理可靠数据传输原理n3.5 面向连接传输面向连接传输:TCP报文段结构报文段结构可靠数
18、据传输可靠数据传输流量控制流量控制连接管理连接管理n3.6 拥塞控制原理拥塞控制原理n3.7 TCP拥塞控制拥塞控制19可靠数据传输原理可靠数据传输原理n在应用层、传输层、链路层都有所应用在应用层、传输层、链路层都有所应用n不可靠信道的特性将决定可靠数据传输协议不可靠信道的特性将决定可靠数据传输协议(rdt)的复杂性的复杂性20可靠数据传输可靠数据传输:sendsidereceivesiderdt_send():上层调用该函数要求上层调用该函数要求可靠传输数据到接收方可靠传输数据到接收方udt_send():可靠传输调用该可靠传输调用该函数,在不可靠的信道上传输数函数,在不可靠的信道上传输数据
19、给接收者据给接收者rdt_rcv():接收方接收到数据后调接收方接收到数据后调用该函数完成可靠传输用该函数完成可靠传输deliver_data():可靠传输调可靠传输调用该函数将数据传给上层用该函数将数据传给上层21可靠数据传输可靠数据传输:我们将我们将逐步开发发送方和接收方的可靠数据传输协议逐步开发发送方和接收方的可靠数据传输协议(rdt)仅考虑单向数据传输仅考虑单向数据传输(双向传输概念原理上是一样的)但控制信息将双向流动但控制信息将双向流动!用有限状态机用有限状态机(FSM)来描述发送方和接收方来描述发送方和接收方状态状态1状态状态2导致状态转换的事件导致状态转换的事件状态转换时执行的动
20、作状态转换时执行的动作事件事件动作动作有限状态自动机有限状态自动机及状态的概念及状态的概念:在当前在当前“状态状态”下下,由一个事件唯由一个事件唯一确定下一个状一确定下一个状态态22Rdt1.0:完全可靠信道上的可靠数据传输完全可靠信道上的可靠数据传输在完美可靠的信道上在完美可靠的信道上没有没有bit错误错误没有包丢失没有包丢失 可靠传输可以应用在应用层、传输层和链路层,所以在讲可靠传输时,包(packet)泛指该层协议数据单元。发送方,接收方具有独立的发送方,接收方具有独立的FSMs:发送方发送数据到下层信道发送方发送数据到下层信道接收方从下层信道接收数据接收方从下层信道接收数据等待来自等待
21、来自上层的调上层的调用用packet=make_pkt(data)udt_send(packet)rdt_send(data)extract(packet,data)deliver_data(data)等待来自等待来自下层的调下层的调用用rdt_rcv(packet)senderreceiver23Rdt2.0:具有具有bit错误的信道错误的信道下层信道可能让传输分组中的下层信道可能让传输分组中的bit受损受损校验和将检测到校验和将检测到bit错误错误问题问题:如何从错误中恢复如何从错误中恢复确认确认(ACKs):接收方明确告诉发送方接收方明确告诉发送方 包接收正确包接收正确否认否认(NAKs
22、):接收方明确告诉发送方接收方明确告诉发送方 包接收出错包接收出错发送方收到发送方收到NAK后重发这个包后重发这个包rdt2.0的新机制的新机制 ARQ自动重复请求(rdt1.0没有的没有的):差错检测差错检测接收方反馈接收方反馈:控制信息(ACK,NAK)rcvr-sender重传24rdt2.0:FSM 说明说明等待上层等待上层调用调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(ACK)rdt_rcv(rcvpkt)¬corrupt(rcvpk
23、t)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 L25rdt2.0:无错的情况无错的情况等待上等待上层调用层调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliver_data(data)udt_send(A
24、CK)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 L26rdt2.0:出错的情况出错的情况等待上等待上层调用层调用snkpkt=make_pkt(data,checksum)udt_send(sndpkt)extract(rcvpkt,data)deliv
25、er_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)L27停止等待协议停止等待协议发送方发送一个包,发送方发送一个包,然后然后等待接收方的响应。等待接收方的响应。28rdt2.0 有一个致命缺陷有一个致命缺陷!如果如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 传输层 第三 传输
限制150内