1、h125.1 传输层功能5.2 传输层服务5.3 传输层寻址5.4 用户数据报协议UDP5.5 传输控制协议TCP5.6 工程实例3l传输层提供了不同主机上应用程序进程之间的端到端的逻辑通信 l所谓“端到端”(end to end)通信,即发送端和接收端之间的通信 4传输层的主要功能有:(1)分割与重组数据:将应用层的消息分割成若干子消息并封装为报文段。(2)按端口号寻址:标识不同的应用进程,实现多个应用进程对同一个IP地址的复用。(3)连接管理:完成端到端通信链路的建立、维护和管理。(4)差错控制和流量控制 总之,传输层要向应用层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复
2、、乱序等现象。5l传输层主要提供两种服务6l过程分为三步:(1)建立连接;(2)数据传输;(3)释放连接。7l面向连接服务的特点l适合于对数据的传输可靠性非常高的场合,如文件传输、网页浏览、电子邮件等 8l无连接的服务就是通信双方不需要事先建立一条通信线路 l把每个带有目的地址的报文分组送到网络上,由网络(如路由器)根据目的地址为分组选择一条恰当的路径传送到目的地9l无连接服务的特点l无连接的UDP是网络层“尽最大努力投递”服务在传输层的进一步扩展,无法保证报文能否正确到达目的地 l适用于局域网或光纤通信;连续的大数据量的传输并能容忍一定程度的数据丢失的应用;多播应用10l端口就是应用进程的地
3、址,16bit正整数 l给应用进程分配一个传输层的地址目的是为了实现在传输层对同一个IP地址的多路复用与多路分解。11l现实例子:12l端口只具有本地意义,即端口号是为了标志本主机应用层中的各个进程,因此两个不同主机的应用进程可以使用相同的端口 l端口分为两类:熟知端口(0-1023)和一般端口 l常用的熟知端口有:13lUDP概述lUDP的数据报格式lUDP的应用14lUDP协议由RFC768定义,是无连接的,即通信双方并不需要建立连接,这种通信显然是不可靠的。但是由于UDP简单,数据传输速度快、开销小。lUDP的优势15l下图是一个典型的UDP应用例子DNS lDNS是将域名地址转换为IP
4、地址的常见UDP应用,DNS使用UDP传送报文,但DNS服务器和DNS客户所使用的端口是不一样的。DNS服务器进程是一直在运行着,其熟知端口是53,在此端口上等待DNS请求的到来。16l用户数据报UDP的报文格式由两部分构成:首部和数据 l各字段意义如下:(1)源端口:即本主机应用进程的端口号;(2)目的端口:目的主机应用进程的端口号;(3)长度:UDP用户数据报的长度;(4)检验和:用于检验UDP用户数据报在传输中是否出错 17l在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。l伪首部并不是UDP用户数据报真正的首部,仅用于计算检验和,既不向下传送也不向上递交。lUDP计算机
5、检验和的方法和计算IP数据报首部检验和的方法相似。但网络层只校验IP分组首部,不对数据进行校验。而UDP则是首部和数据一起检验 18l由于UDP无需建立、简单高效且开销小的的特点,因此得到了广泛的应用 l流式多媒体这类数据流量大而连续,且能容忍数据丢失的应用 l多播应用l如果既想利用UDP简单高效的特性,又想提供一定程度上的传输保障,则可以通过在应用层增加相应的可靠传输机制来完成。应用应用应用层协议应用层协议传输层协议传输层协议域名服务域名服务DNSUDP简单文件传输简单文件传输TFTPUDP路由信息协议路由信息协议RIPUDP动态主机配置动态主机配置DHCPUDP简单网管简单网管SNMPUD
6、PIP电话电话专用协议专用协议UDP流媒体通信流媒体通信专用协议专用协议UDP多播组管理多播组管理IGMPUDP电子邮件发送电子邮件发送SMTPTCP远程登录远程登录TELNETTCPWeb浏览浏览HTTPTCP文件传输文件传输FTPTCP19lTCP概述l可靠传输原理lTCP报文段格式lTCP连接管理lTCP的可靠传输lTCP流量控制lTCP拥塞控制20lTCP协议由RFC793定义,它是面向连接的,需要经历建立连接、数据通信和断开连接三个阶段。l这里的“连接”并不是电路交换中的物理连接,也不是像虚电路那样的逻辑连接lTCP连接是全双工的,即通信双方可以同时发送和接收数据。例如主机H1和H2
7、通信,建立TCP连接后,H1向H2发送数据时,也能接收来自H2的数据。lTCP的数据传输是可靠的,它具有重传、确认等可靠机制,一旦数据丢失或出错,那么发送方将重新发送数据,确保数据的可靠到达。l相比于UDP,TCP还提供流量控制、拥塞控制机制,用于控制发送方的发送速率。21l传输不可靠的根源在于底层物理信道的误码率,其不可靠程度取决于误码率的大小。这种底层物理信道的不可靠性就需要上层的可靠传输协议来弥补。l可靠传输的基本协议(1)理想的传输协议(2)基本停等协议(3)增加序号机制的停等协议(4)增加超时机制的停等协议22l基本假设:物理信道不会出错;网络层总是准备好发送数据;数据链路层处理速度
8、无限快l显然,这是一种理想的数据传输,因为物理信道不会出错意味着本协议无需进行校验、纠错;而网络层和数据链路层的假设意味着无需进行流量控制和保序等操作。23l基本假设如下:物理信道会出错;网络层总是准备好发送数据;数据链路层处理速度有限l物理信道此时会出错,需要有校验功能,数据链路层处理速度有限,意味着发送方不能无限度的发送数据,必须要等到接收方确认(ACK)才能继续发送。一旦收到错误的确认,就要重新发送数据。24l基本假设和第2个协议相同l在具有确认机制的可靠传输协议中,仅仅一个模糊的确认是不够的,因为有重发数据的存在l需要给发送的数据编号,称为序号。有了序号后,就能够有目的的确认。接收方也
9、就不会混淆新发帧和重发帧了。25l物理信道除了会出错外,还有可能发送数据丢失的现象。l数据一旦丢失,就必须要进行重传。l要引入一个超时(Timeout)机制,当在定时器到期之前收到了来自接收方的确认,就取消定时器发送下一个数据。若定时器超时后仍未收到确认,则认为数据传输丢失(当然也有可能是确认信息丢失),发送方将重新发送数据。26l具有确认、序号和超时机制的停等协议已经可以比较好的进行数据的可靠传输了 2728l停等协议能够正确的工作,但是它的效率非常低下 l滑动窗口协议为接收方定义了一个接收窗口,用以容纳允许接收的帧序号;发送方定义了一个发送窗口,用以容纳已经发送但尚未收到确认的帧序号 l假
10、设整个圆周所容纳帧的序号总数为N29l在正常情况下,接收方总是收到接收窗口下界帧,去掉帧头帧尾提取出分组交给网络层,然后将接收窗口向前滚动一格(即上下界帧加1并对N求模),同时发送确认帧。l在不正常的情况下,接收窗口下界帧因为丢失、出错或延迟等原因而导致“尚未收到下界帧(序号i),就收到了窗口内非下界帧(序号j)”的情况出现。为了能按序提交数据给网络层,必须把这些帧缓存起来,并发送确认帧。l当下界帧(序号i)到达时,收方将从i到m序号的帧对应的分组按序交网络层,并释放相应缓冲区,接收窗口向前滚动(mi1)mod N格,并发送确认帧,其中m是缓冲区中与i相邻帧序号集合中的最晚序号。30l帧序号空
11、间N=8,接收窗口大小w=6 31l序号空间序号空间N=8,发送窗口最大为,发送窗口最大为w=4,并假设发送方连续发送,并假设发送方连续发送0,1,2,3号帧号帧 32l在GBN协议中,接收窗口大小为1,而发送窗口大于1。因此接收方的下界帧只有一个,相当于接收方只能按序接收数据l发送窗口为4,接收方收到0,1号帧后返回ACK 0和ACK 1确认帧。发送方收到ACK 0和ACK 1后可以继续发送4,5号帧。l假设2号帧在传输过程中丢失,因此接收方无法收到2号帧。若此时3号帧到达,接收方认为这是个非窗口内的帧,因此丢弃此帧,并再次发送ACK 1,表明已经收到1号帧以前的数据,下面需要2号帧。l当3
12、,4,5号帧到达时,接收方都将返回ACK 1。发送方收到重复的ACK 1时,知道接收方还未收到2号帧,因此发送方重新从2号帧开始,发送2,3,4,5号帧,即回退了N步发送数据 33lGBN协议的效率较低,尤其是当发送窗口很大的时候。而选择性重传则可以提高传输效率。l在SR协议中,发送窗口和接收窗口都大于1。接收窗口在收到非下界帧的时候,不会将数据丢弃,而是缓存起来,并发送它对期望帧的确认。34lSR的接收窗口尺寸应满足N/2,其中N为序号空间的大小 l若接收窗口尺寸N/2,那么在非下界帧均先到,下界帧最后到时,接收窗口将一次性向前滚动N/2个号,则滚动前后将有一部分窗口是重叠的 35lTCP报
13、文段为首部和数据 36l源端口和目的端口源端口和目的端口l序号序号 l确认号确认号 l首部长度首部长度 37l保留保留 l紧急比特紧急比特U(Urgent,URG)l确认比特确认比特A(Acknowledgement,ACK)l推送比特推送比特P(PuSH,PSH)l重置比特重置比特R(ReSeT,RST)38l同步比特同步比特S(SYNchronization,SYN)l终止比特终止比特F(FINa1,FIN)l窗口大小窗口大小 l校验和校验和 l选项选项 39lTCP的连接管理有三个阶段,即连接建立、数据传送和连接释放。lTCP采用三次握手(three-way handshake)建立连接
14、,即发送方和接收方之间要经历3次交互。l防止已失效的连接请求报文段突然又传送到了主机H2,因而产生错误 40lTCP释放连接的过程与连接建立的过程类似,释放连接需要经历四次握手。双方都必须给对方发出一个断开连接的请求报文并对之确认41lTCP则提供可靠的数据传输服务,确保收发双方的数据传输按序、可靠、正确的传输。l校验和、确认、滑动窗口协议、序号以及超时机制是确保数据可靠传输的基本技术 42lTCP的确认机制涉及到首部中的确认号字段。该字段是接收方希望收到发送方的下一个报文段中第一个字节的序号。发送方看到这个确认的序号,它就知道接收方已经正确接收了该序号之前的数据。l为了提高效率,降低网络开销
15、,可以采取捎带确认,如下图(b)所示。43l累积确认:接收方不必每个报文都要发送ACK报文。l推迟确认:TCP规定,一个ACK报文可以推迟500ms发出。若500ms内有其他的报文到达,那么只需发送一个累积确认;若没有报文到达,必须立刻发送一个ACK报文。44l重复的确认(或冗余确认)l重复的确认发生在网络传输出现异常的情况45l发送方每发送一个TCP报文,将为该报文设置一个定时器,同时将报文缓存。在定时器到期之前若收到接收方的确认信息,则将取消定时器,并将缓存的报文删除。l超时机制的关键是定时器的超时时长46l定时器的时间间隔和网络的往返时延(Round Trip Time,RTT)有关l往
16、返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延 lTCP采用Jacobson提出的算法来估算往返时间RTT,RTT的计算公式如下:RTT=(old_RTT)(1-)SAMPLE 47l超时重传机制存在的一个问题是超时时间间隔(Timeout)往往太长l TCP采取了一种快速重传的机制48l流量控制就是控制发送方的发送速率不会超过接收方从缓冲区中处理数据的速率。l TCP使用滑动窗口机制来实现流量控制,滑动窗口接收方根据自己接收数据的能力来限制发送方数据的传输。lTCP对每个通信方都有一个接收窗口(Receive Window)参数,
17、当发送方收到TCP报文段时,从窗口字段中它可以获知接收方目前可以接收的数据量,根据这个值来调整发送方的发送速率。49l糊涂窗口综合症是指接收方向发送方通告只有少量的接收缓冲区可用空间,导致发送方传送多个短报文段的情况。l糊涂窗口综合症的危害是:(1)浪费网络通信容量(2)带来不必要的计算负担 l避免糊涂窗口综合症可以采用推迟通知和组块技术 50l拥塞:到达网络中某些路由器的分组数量过多过快,使得路由器来不及处理,从而导致分组丢失、分组延迟增大乃至整个网络性能下降的现象,严重时网络甚至完全崩溃瘫痪。l造成拥塞的原因51l拥塞控制的目的是为了减缓网络中的拥塞现象,本质是控制发送方减少发送到网络上的
18、分组数量,即降低发送方的发送速率l拥塞控制 vs.流量控制l常用的拥塞控制方法有两种:网络辅助的拥塞控制和端到端的拥塞控制。lTCP就是采用的是端到端的拥塞控制方法 52l发送方以一个低速率发送数据(通常设置为一个MSS)53l执行AIMD算法 54l拥塞控制机制总结:(1)TCP连接建立时,拥塞窗口设置为1个MSS大小(CW=1),并进入慢启动阶段,每收到接收方的确认,拥塞窗口加倍。(2)在拥塞避免阶段,每收到一个报文的确认,拥塞窗口线性增加,直到出现报文丢失。报文一旦丢失,临界窗口变为当前拥塞窗口的一半(TW=CW/2),并如(3)一样调整拥塞窗口大小。(3)出现报文丢失后,若是由于超时事件而判断报文丢失,则拥塞窗口降为1个MSS,重新开始慢启动阶段;若是由于收到三个重复的ACK的事件而判断的报文丢失,则拥塞窗口将为当前拥塞窗口的一半(CW=CW/2),然后执行AIMD算法。55l传输层报文实例l网络编程及实例56lUDP报文57lTCP报文58l套接字l常用套接字API59lUDP编程模型60lTCP编程模型
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。