Transport Layer.ppt
《Transport Layer.ppt》由会员分享,可在线阅读,更多相关《Transport Layer.ppt(142页珍藏版)》请在麦多课文档分享上搜索。
1、Transport Layer,3-1,Chapter 3 Transport Layer,Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012,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 s
2、ee the animations; and can add, modify, 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:,If you use these slides (e.g., in a class) that you mention their source (after all,
3、wed like people to use our book!) If you post any slides 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-2012J.F Kurose and K.W. Ross, All Rights Reserved,Transp
4、ort Layer,3-2,Chapter 3: 传输层,Our goals: 理解传输层服务原理: 多路复用与多路分解 可靠数据传输 流量控制 拥塞控制,学习因特网的传输层协议: UDP: 无连接传输 TCP: 面向连接的传输 TCP拥塞控制,Transport Layer,3-3,Chapter 3 outline,3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer
5、,3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control,Transport Layer,3-4,3.1 传输服务,在应用程序看来, 源进程向本地套接字写入报文,目的进程在本地套接字即可收到报文 源进程和目的进程仿佛直接连接在一起 传输层提供了进程间的逻辑通信 在传输层看来, 发送方传输层将报文交
6、给本地网络层接口,接收方传输层从本地网络层接口即可收到报文 网络层提供了终端间的逻辑通信,Transport Layer,3-5,传输层和网络层的关系,网络层: 提供主机之间的逻辑通信 传输层: 提供进程之间的逻辑通信 传输层依赖并增强网络层服务,Household analogy: 一个家庭的12个孩子和另一个家庭的12个孩子通信,分别推选Ann和Bill负责收集和邮寄信件,以及查看信箱和分发信件 进程 = 孩子 应用报文 = 信 传输层 = Ann 和 Bill(提供人到人的服务) 主机 = 住宅 网络层 = 邮政系统(提供门到门的服务),Transport Layer,3-6,传输服务和
7、网络服务,网络层提供尽力而为的服务: 网络层尽最大努力在主机间交付分组,但不提供任何承诺 具体来说,不保证交付,不保证按序交付,不保证数据完整,不保证延迟,不保证带宽,传输层不能提供的服务: 延迟保证 带宽保证传输层可以提供的服务: 保证可靠、按序的交付:TCP 不保证可靠、按序的交付:UDP,Transport Layer,3-7,Chapter 3 outline,3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles
8、of reliable data transfer,3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control,Transport Layer,3-8,3.2 多路复用与多路分解,process,socket,transport,application,physical,link,network,P2
9、,P1,transport,application,physical,link,network,P4,transport,application,physical,link,network,P3,传输层基本服务:将主机间交付扩展到进程间交付,如何进行多路复用和多路分解?,为将邮件交付给收信人: 每个收信人应有一个信箱,写有收信人地址和姓名(唯一标识) 信封上有收信人地址和名字,为将报文段交付给套接字: 主机中每个套接字应分配一个唯一的标识 报文段中包含接收套接字的标识,Transport Layer,3-9,多路复用: 发送方传输层将源/目的套接字标识置于报文段中,交给网络层 多路分解: 接收
10、方传输层根据报文段中的目的套接字标识,将报文段交付到正确的套接字,Transport Layer,3-10,套接字与端口号,端口号是套接字标识的一部分 每个套接字在本地关联一个端口号 端口号: 一个16比特的数 01023由公共域协议使用,称众所周知的端口号 报文段中有两个字段携带端口号 源端口号:与发送进程关联的本地端口号 目的端口号:与接收进程关联的本地端口号,source port #,dest port #,32 bits,application data (message),other header fields,TCP/UDP报文段格式,如何分配UDP套接字的端口号?,自动分配:
11、例如,new Datagramsocket(),不指定端口号 通常由操作系统从102465535中分配 客户端通常使用这种方法 使用指定端口号创建套接字: 例如,new Datagramsocket(53) 实现公共域协议的服务器应分配众所周知的端口号 服务器通常采用这种方法UDP套接字标识为二元组,Transport Layer,3-11,UDP多路分解,接收方传输层收到一个UDP报文后: 检查报文中的目的端口号,将UDP报文交付到具有该端口号的套接字相同的UDP报文被交付给同一个套接字,与 无关 报文中的 被接收进程用来发送响应报文,Transport Layer,3-12,Transpo
12、rt Layer,3-13,UDP多路分解: 举例,DatagramSocket serverSocket = new DatagramSocket(6428);,transport,application,physical,link,network,P3,transport,application,physical,link,network,P1,transport,application,physical,link,network,P4,DatagramSocket mySocket1 = new DatagramSocket (5775);,DatagramSocket mySocket
13、2 = new DatagramSocket(9157);,创建TCP套接字,服务器在port=x创建一个欢迎套接字: welcomeSocket = new ServerSocket(x) 客户A创建一个与欢迎套接字通信的客户套接字(假设自动分配端口号y): clientSocket = new Socket(“hostname”, x) 服务器在收到客户A的连接请求后创建一个连接套接字: connectionSocket = welcomeSocket.accept() 该连接套接字只与客户A的套接字通信,即只接收具有以下四元组的报文段: 源IP地址 = 客户A的IP地址 源端口号 = y
14、 目的IP地址 = 服务器的IP地址 目的端口号= x 不同的客户进程与服务器上不同的连接套接字对应,Transport Layer,3-14,Transport Layer,3-15,TCP多路分解,服务器主机可能有多个连接套接字每个连接套接字与一个进程相联系,并由 四元组进行标识服务器使用该四元组将报文段交付到正确的连接套接字,Transport Layer,3-16,TCP多路分解: 举例,transport,application,physical,link,network,P3,transport,application,physical,link,transport,applica
15、tion,physical,link,network,P2,host: IP address A,host: IP address C,server: IP address B,network,P3,P4,threaded server,小结,UDP套接字,使用二元组标识套接字 服务器使用一个套接字服务所有客户,TCP套接字,使用 四元组标识连接套接字 服务器使用多个连接套接字,每个连接套接字服务一个客户,Transport Layer,3-17,Transport Layer,3-18,Chapter 3 outline,3.1 Transport-layer services 3.2 Mu
16、ltiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer,3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control,Transport Layer,
17、3-19,UDP: User Datagram Protocol RFC 768,网络层提供的服务 尽最大努力将数据包交付到目的主机 不保证可靠性和顺序 不保证带宽及延迟UDP提供的服务: 多路复用和多路分解:将数据交付到进程 检错(可选):检测并丢弃出错的报文,但不尝试恢复UDP不提供: 可靠交付 按顺序交付 延迟及带宽保证,Transport Layer,3-20,3.3.1 UDP报文结构,UDP报文: 报头:协议处理需要的信息 载荷(payload):报文携带的数据 用于多路复用/多路分解的字段: 源端口号,目的端口号 用于检测报文错误的字段: 报文长度,检查和,source port
18、 #,dest port #,32 bits,Application data (message),UDP报文格式,length,checksum,报文长度(字节数),Transport Layer,3-21,3.3.2 UDP检查和(checksum),发送方: 将报文看成是由16比特整数组成的序列 对这些整数序列计算检查和 将检查和放到UDP报文的checksum字段,接收方: 对收到的报文进行相同的计算 与报文中的checksum字段进行比较: 不相等:报文段有错误 相等:认为没有错误,目的: 对传输的报文进行检错,Transport Layer,3-22,Internet checks
19、um: example,example: add two 16-bit integers,1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 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 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1,wraparound,sum,checksum,Note: when adding numbers, a carryout from the most significant
20、 bit needs to be added to the result,UDP检查和计算,计算UDP检查和包括伪头、UDP头和数据三个部分。 检查和的使用是可选的,若不计算检查和,该字段填入0。,检查和计算举例,计算检查和时,checksum字段填0 接收方对UDP报文(包括检查和)及伪头求和,若结果为0xFFFF,认为没有错误。,Transport Layer,3-24,Transport Layer,为什么需要UDP?,应用可以尽可能快地发送报文: 无建立连接的延迟 不限制发送速率(不进行拥塞控制和流量控制) 发送时间可控 报头开销小,why is there a UDP?,UDP适合的
21、应用: 容忍丢包但对延迟敏感的应用:如流媒体 以单次请求/响应为主的应用:如DNS若应用要求基于UDP进行可靠传输: 由应用层实现可靠性,Transport Layer,3-26,Chapter 3 outline,3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer,3.5 Connection-oriented transport: TCP segment struc
22、ture reliable data transfer flow control connection management 3.6 Principles of congestion control 3.7 TCP congestion control,Transport Layer,3-27,可靠数据传输原理,服务抽象:数据通过一条可靠信道传输,数据不会有比特损坏或丢失,并按照发送的顺序被接收。,Transport Layer,3-28,可靠数据传输原理,服务抽象:数据通过一条可靠信道传输,数据不会有比特损坏或丢失,并按照发送的顺序被接收。,Transport Layer,3-29,可靠数据
23、传输原理,服务抽象:数据通过一条可靠信道传输,数据不会有比特损坏或丢失,并按照发送的顺序被接收。,不可靠信道的特性决定了可靠数据传输协议(rdt)的复杂性。,Transport Layer,3-30,3.4.1 构造可靠数据传输协议,send side,receive side,Transport Layer,3-31,getting started,我们将: 增量地开发可靠数据传输协议(rdt)的发送方和接收方 只考虑单向数据传输,但控制信息可以双向传输 使用有限状态机(FSM)来描述发送方和接收方,event causing state transition,actions taken o
24、n state transition,state: when in this “state” next state uniquely determined by next event,Transport Layer,3-32,Rdt1.0: 可靠信道上的可靠传输,下层信道是完全可靠的(理想情况) 没有比特错误,没有分组丢失 发送能力 接收能力 发送方和接收方使用各自的FSM: 发送方:从上层接收数据,封装成分组送入下层信道 接收方:从下层信道接收分组,取出数据交给上层,Wait for call from above,packet = make_pkt(data) udt_send(packe
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TRANSPORTLAYERPPT
