传输层协议要素 PPT讲稿.ppt
《传输层协议要素 PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《传输层协议要素 PPT讲稿.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、传输层协议要素 第1页,共82页,编辑于2022年,星期五本章主要内容z传输层的功能z传输层协议要素zInternet的传输层:y用户数据报协议(UDP)y传输控制协议(TCP)yBerkeley Sockets第2页,共82页,编辑于2022年,星期五1 传输层的功能z传输层提供进程进程的数据交付服务:y为运行在不同主机上的应用进程提供逻辑通信功能,使得从应用程序看来这些主机是直接相连的。z传输实体y传输层上实现传输服务的硬件或软件。y传输实体可能位于操作系统内核、单独的用户进程内、应用程序库中或网络接口卡上。第3页,共82页,编辑于2022年,星期五网络层、传输层和应用层的关系第4页,共8
2、2页,编辑于2022年,星期五设置传输层的两个目的z为端系统上运行的多个进程提供多路复用和解多路复用的功能:y多路复用(multiplex):在源主机上,多个进程的数据被封装在不同的数据包中送入网络;y解多路复用(demultiplex):在目的主机上,从数据包中取出的数据被交给相应的进程处理。z为应用进程提供所需的数据传输服务:y面向连接的服务y无连接服务第5页,共82页,编辑于2022年,星期五传输层服务接口z传输服务原语(transport service primitives):y传输层向应用程序提供的一组操作,以方便应用程序调用传输层服务。y在TCP/IP协议栈中,传输层服务接口称为
3、套接字(socket),是目前网络应用编程接口的工业标准。第6页,共82页,编辑于2022年,星期五2 传输层协议要素z传输层协议要解决的主要问题:y编址:一个进程必须显式指出它要与之通信的另一个进程。y建立连接和释放连接:由于数据包在穿过通信子网时会丢失、重传、失序,这使得可靠地建立和释放传输连接非常困难。y流量控制和存储管理。第7页,共82页,编辑于2022年,星期五2.1 传输层编址z为指明将数据包交给哪个进程处理,每个进程需要一个标识。z在网络环境中标识进程的方法是为每个进程指定一个传输地址,源进程向目的进程的传输地址发送消息,目的进程在自己的传输地址上接收消息。z传输地址是传输层通信
4、的端点,其一般性的术语称为传输服务访问点(transport service access point,TSAP)。第8页,共82页,编辑于2022年,星期五TSAP、NSAP和传输实体的关系每个TSAP上绑定一个应用进程,应用进程通过各自的TSAP调用传输层服务。传输实体通过本地的NSAP调用网络层服务,与远程的对等传输实体通信。第9页,共82页,编辑于2022年,星期五举例第10页,共82页,编辑于2022年,星期五源进程如何获知目的进程的TSAP?z在客户-服务器模式中,客户进程如何知道服务器进程的TSAP?y常用的标准服务:使用众所周知的地址y不常用的服务:使用进程服务员y需要特殊硬件
5、的服务:使用目录服务zTSAP只是一种抽象,通常可由一个消息队列实现。第11页,共82页,编辑于2022年,星期五进程服务员的使用第12页,共82页,编辑于2022年,星期五2.2 建立传输连接z当应用程序要求传输层保持消息发送顺序时,传输层必须提供面向连接的服务。z所谓建立连接,就是在收发两端为通信过程分配好资源,并初始化相关的数据结构。z在一个不可靠的网络中可靠地建立传输连接是一件困难的事情。第13页,共82页,编辑于2022年,星期五问题之一:过时消息的干扰z重复的连接请求及响应消息对正常的连接建立过程产生干扰。z解决办法之一:y给每个连接指定一个连接标识,每个主机记录已用过的连接标识。
6、y资源消耗大,不可靠。z解决办法之二:y限制每个数据包的寿命。第14页,共82页,编辑于2022年,星期五问题之二:起始序号的选取z主机崩溃后可能丢失所有的状态信息,包括每个连接上要分配的下一个TPDU序号。主机恢复工作后,新连接上的TPDU序号可能和过时连接上的序号相同,产生混淆。z解决办法之一:y主机重启后至少等待时间T再建立连接,确保崩溃前的分组均已消失。z解决办法之二:基于时钟的起始序号选取算法y每个主机使用一个时钟,以二进制计数器的形式工作,每隔T计数器加1。当一个连接建立时,以计数器当前值的最低k位(TPDU的序号长度)作为起始的TPDU序号。y该方法确保连接的起始序号随时间单调增
7、长。第15页,共82页,编辑于2022年,星期五问题之三:序号的增长速度z主机发送速度过快或过慢,都会导致主机崩溃前后的序号空间发生重叠。z解决办法:y选取较小的T,确保发送序号的增长速度不会超过起始序号的增长速度。y选择较长的TPDU序号,确保序号回绕的时间远大于T。第16页,共82页,编辑于2022年,星期五第17页,共82页,编辑于2022年,星期五问题之四:如何可靠地传递起始序号?可靠建立传输连接的三次握手算法第18页,共82页,编辑于2022年,星期五2.3 释放传输连接z不对称释放:任何一方释放连接,连接即被释放(即分配给连接的资源被回收)。第19页,共82页,编辑于2022年,星
8、期五释放传输连接(续)z对称释放:y一条传输连接被看成是两个方向上的单工连接,一方释放连接只是表示它数据发完了,但它仍可以在另一个方向上接收数据。y两个方向均释放连接,连接才能被释放。第20页,共82页,编辑于2022年,星期五两军问题第21页,共82页,编辑于2022年,星期五三次握手法释放连接第22页,共82页,编辑于2022年,星期五三次握手法释放连接(续)第23页,共82页,编辑于2022年,星期五三次握手法释放连接(续)z正常释放:y主动方发出DR,响应方收到一次DR。z异常:y主动方发出DR,响应方从未收到DR,形成半开的连接。z异常处理:y引入不活动定时器,定时器超时(长时间未收
9、到数据)后自动释放连接。y引入哑TPDU,处理长时间没有数据发送的情形。第24页,共82页,编辑于2022年,星期五2.4 流量控制z流量控制是一种由接收端控制发送速度的反馈机制,通常采用滑动窗口机制实现。z数据链路层和传输层上的滑动窗口机制:y数据链路层上的滑动窗口机制采用固定缓冲区分配策略(缓冲区大小及数量都固定),这在传输层上做不到。y数据链路层上发送端和接收端都必须缓存,而在传输层上有多种缓存方案可供选择。第25页,共82页,编辑于2022年,星期五传输层上的缓存策略z发送方缓存还是接收方缓存?y若通信子网是不可靠的,发送方一般必须缓存,而接收方可以选择:x缓存:长时间、大数据量的通信
10、业务,如文件传输x不缓存:低速且数据量较小的交互式会话应用y若通信子网是可靠的,视接收方为连接预留的缓冲空间大小,发送方可以选择:x缓存:若接收方没有预留足够的缓冲空间x不缓存:若接收方预留了足够的缓冲空间第26页,共82页,编辑于2022年,星期五缓冲区分配方案z各种缓冲区分配方案:y以TPDU为单位还是以连接为单位分配?y缓冲区大小固定还是可变?y缓冲区静态分配还是动态分配?z动态缓冲区分配:y发送端可以向接收端请求需要的缓冲区数量。y接收端可以根据实际情况分配并动态调整预留的缓冲空间,并显式通知发送端。第27页,共82页,编辑于2022年,星期五动态缓冲区分配示例第28页,共82页,编辑
11、于2022年,星期五3 用户数据报协议UDP第29页,共82页,编辑于2022年,星期五UDP的服务zUDP的主要作用是向应用程序提供使用IP服务的接口,并利用端口号解复用多个应用进程。zUDP只提供检错功能,不负责出错重传和流量控制等功能。zUDP提供的是一种不可靠、无连接的服务。zUDP的优点:y延迟小:不需要建立连接y资源占用少:不需要维护状态y通信开销小、包头开销小第30页,共82页,编辑于2022年,星期五UDP的应用之一:远程过程调用RPCzRPC(remote procedure call)的基本思想y允许调用远程计算机上的过程,并使这种调用看起来象本地调用一样,方便客户-服务器
12、应用软件的编写。zRPC的实现y客户进程绑定到一个客户桩(client stub),服务器进程绑定到一个服务器桩(server stub);y客户进程调用客户桩,参数通过压栈的方式传递;y客户桩将参数封装成一个消息,执行一个系统调用发送消息;y内核通过调用传输层服务将消息发送到服务器桩;y服务器桩用传过来的参数调用服务器例程,将返回的结果封装到一个消息中,执行一个系统调用将消息发送给客户桩;y客户桩将结果返回给客户进程。第31页,共82页,编辑于2022年,星期五RPC执行过程第32页,共82页,编辑于2022年,星期五UDP的应用之二:实时多媒体传输z多媒体通信要求实时和按顺序交付数据,但能
13、容忍少量数据丢失。z从本质上说,TCP和UDP都不适合多媒体通信:yTCP:可保证顺序,但实时性不好(差错控制,拥塞控制)。yUDP:实时性好,但不保证顺序。z目前的解决方案是在UDP上面再运行一个RTP(Real Time Protocol),解决包序维持等问题。第33页,共82页,编辑于2022年,星期五RTP的位置第34页,共82页,编辑于2022年,星期五RTP头The RTP header.第35页,共82页,编辑于2022年,星期五4 传输控制协议TCPzTCP提供的服务zTCP协议yTCP段结构yTCP连接的建立和释放yTCP 流量控制yTCP拥塞控制z无线TCP第36页,共82
14、页,编辑于2022年,星期五4.1 TCP提供的服务zTCP协议被设计为在不可靠的网络中提供可靠的、有序的字节流服务。zUDP提供的是数据报服务:y应用程序的每一次输出被封装到一个UDP包中传输;每收到一个UDP包,接收端从包中取出数据交给应用程序。因此,UDP保留报文的边界。zTCP提供的是字节流服务:y应用程序的每一次输出被不加区分地放入发送缓冲区中,TCP实体将缓冲区中的数据划分成不超过64KB的段,每一段封装在一个IP包中传输。y接收端从收到的TCP段中取出数据,按字节顺序不加区分地放入接收缓冲区中,在适当的时候交给应用程序。因此,TCP不保留报文的边界。第37页,共82页,编辑于20
15、22年,星期五TCP不保留报文的边界(a)Four 512-byte segments sent as separate IP datagrams.(b)The 2048 bytes of data delivered to the application in a single READ CALL.第38页,共82页,编辑于2022年,星期五TCP服务模型zTCP使用连接进行通信。z每条TCP连接有两个端点(称套接口,socket):y每个套接口使用一对整数来标识,其中host是主机的IP地址,port是该主机上TCP的端口号(TSAP)。y如 和 唯一标识一条TCP连接。z由于TCP使用两
16、个端点来识别连接,因此一个套接口可以用于多个连接,如服务器进程可以在一个套接口上同时为很多客户进程服务。zTCP连接是全双工的,数据可以在两个方向上同时传输。zTCP连接是点到点的,即每条连接只能有两个端点,所以TCP不支持多播或广播。第39页,共82页,编辑于2022年,星期五端口与服务z小于1024的端口号称为众所周知的端口号,保留给标准服务使用。zUNIX使用一个Internet守护进程inetd监听连接请求:y系统启动时只有inetd在多个端口上监听连接请求。y当对某个服务的连接请求到来时,inetd创建该服务的一个守护进程为客户服务。yinetd从一个配置文件中获悉它要监听的端口号,
17、因此管理员可以让系统在繁忙的端口(如80)上使用永久的守护进程,而让inetd监听其余的端口。第40页,共82页,编辑于2022年,星期五4.2 TCP协议zTCP的传输单元称为段(segment)。zTCP段的组成:y20字节的固定头y(可能的)选项头y零个或多个数据字节(每个字节都有一个32比特的序号)zTCP使用滑动窗口协议传输数据。第41页,共82页,编辑于2022年,星期五(1)TCP段结构第42页,共82页,编辑于2022年,星期五TCP伪头结构第43页,共82页,编辑于2022年,星期五Maximum Segment Size(MSS)zMSS指TCP段允许携带的最大载荷长度,受
18、IP包数据域长度的限制:y若IP包的最大长度为L,则MSS=L20(IP固定头)20(TCP固定头)z为避免数据报分片和重组的开销,也有人提出基于路径MTU设置MSS:yMSS=MTU 40y以太网的MTU为1500,所以常见的MSS=1460字节第44页,共82页,编辑于2022年,星期五重要的TCP选项zMSS:y建立连接时,每个主机可以声明自己能够接受的MSS。y该选项缺省为536字节(所有路由器实现必须支持576字节的IP包)。z窗口比例因子(window scale):y建立连接时,双方可以协商一个窗口比例因子。y实际接收窗口大小=window size*2window scale。
19、z选择重传:y最初的TCP实现采用go back n滑动窗口协议。y后来引入NAK,允许接收端在选项中指明要重发的段。第45页,共82页,编辑于2022年,星期五(2)建立和释放TCP连接zTCP使用三次握手建立连接:yH1发送SYN=1、ACK=0的TCP段,给出自己的起始连接序号x。yH2发送SYN=1、ACK=1的TCP段,给出自己的起始连接序号y,并对x进行确认。yH1发送SYN=0、ACK=1的TCP段,对y进行确认。z起始序号采用基于时钟的方法确定,T=4s。第46页,共82页,编辑于2022年,星期五释放TCP连接zTCP采用对称释放法释放连接:yH1发送FIN=1的TCP段;y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传输层协议要素 PPT讲稿 传输 协议 要素 PPT 讲稿
限制150内