《第五章传输层》课件_第1页
《第五章传输层》课件_第2页
《第五章传输层》课件_第3页
《第五章传输层》课件_第4页
《第五章传输层》课件_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机网络技术》第五章传输层电子科技大学计算机学院、软件学院1h《计算机网络技术》第五章传输层1h目录5.1传输层功能5.2传输层服务5.3传输层寻址5.4用户数据报协议UDP5.5传输控制协议TCP5.6工程实例计算机网络技术2h目录5.1传输层功能计算机网络技术2h5.1传输层功能传输层提供了不同主机上应用程序进程之间的端到端的逻辑通信所谓“端到端”(endtoend)通信,即发送端和接收端之间的通信

计算机网络技术3h5.1传输层功能传输层提供了不同主机上应用程序进程之间的端5.1传输层功能传输层的主要功能有:(1)分割与重组数据:将应用层的消息分割成若干子消息并封装为报文段。(2)按端口号寻址:标识不同的应用进程,实现多个应用进程对同一个IP地址的复用。(3)连接管理:完成端到端通信链路的建立、维护和管理。(4)差错控制和流量控制总之,传输层要向应用层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等现象。计算机网络技术4h5.1传输层功能传输层的主要功能有:计算机网络技术4h5.2传输层服务传输层主要提供两种服务一种是面向连接的服务,由TCP协议实现,它是一种可靠的服务;一种是无连接的服务,由UDP协议实现,是一种的不可靠服务。计算机网络技术5h5.2传输层服务传输层主要提供两种服务计算机网络技术5h面向连接的服务过程分为三步:(1)建立连接;(2)数据传输;(3)释放连接。计算机网络技术6h面向连接的服务过程分为三步:(1)建立连接;(2)数据传输;面向连接的服务面向连接服务的特点(1)在服务进行之前必须建立一条逻辑链路后再进行数据传输,传输完毕后,再释放连接。在数据传输过程,好象一直占用了一条这样的逻辑链路。(2)由于所有的报文都在这个管道内传送,因此报文是按序到达目的地的,即先发送的报文先到达。(3)通过可靠传输机制保证报文传输的可靠性,报文不易丢失。(4)由于需要管理和维护连接,因此协议复杂,通信效率不高。适合于对数据的传输可靠性非常高的场合,如文件传输、网页浏览、电子邮件等

计算机网络技术7h面向连接的服务面向连接服务的特点计算机网络技术7h无连接的服务无连接的服务就是通信双方不需要事先建立一条通信线路把每个带有目的地址的报文分组送到网络上,由网络(如路由器)根据目的地址为分组选择一条恰当的路径传送到目的地计算机网络技术8h无连接的服务无连接的服务就是通信双方不需要事先建立一条通信线无连接服务无连接服务的特点(1)数据传输之前不需要建立连接;(2)每个分组都携带完整的目的节点地址,各分组在网络中是独立传送的;(3)分组的传递是失序的,即后发送的分组有可能先到达目的地;(4)可靠性差,容易出现报文丢失的现象,但是协议相对简单,通信效率较高。无连接的UDP是网络层“尽最大努力投递”服务在传输层的进一步扩展,无法保证报文能否正确到达目的地适用于局域网或光纤通信;连续的大数据量的传输并能容忍一定程度的数据丢失的应用;多播应用计算机网络技术9h无连接服务无连接服务的特点计算机网络技术9h5.3传输层端口端口就是应用进程的地址,16bit正整数给应用进程分配一个传输层的地址目的是为了实现在传输层对同一个IP地址的多路复用与多路分解。

计算机网络技术10h5.3传输层端口端口就是应用进程的地址,16bit正整数5.3传输层端口现实例子:一栋写字楼中,有多个公司,每个公司都和外界有信函联系,每个公司占据一层楼(或房间号)每个公司相当于应用层的进程楼层号(或房间号)是传输层的端口地址写字楼的地址则相当于网络层的IP地址公司都使用写字楼的地址和外界通信外界的信件到达写字楼后,再由相关人员按照楼层号或房间号投递到相应的公司计算机网络技术11h5.3传输层端口现实例子:计算机网络技术11h5.3传输层端口端口只具有本地意义,即端口号是为了标志本主机应用层中的各个进程,因此两个不同主机的应用进程可以使用相同的端口端口分为两类:熟知端口(0-1023)和一般端口常用的熟知端口有:计算机网络技术12h5.3传输层端口端口只具有本地意义,即端口号是为了标志本主5.4用户数据报协议UDPUDP概述UDP的数据报格式UDP的应用计算机网络技术13h5.4用户数据报协议UDPUDP概述计算机网络技术13hUDP概述UDP协议由RFC768定义,是无连接的,即通信双方并不需要建立连接,这种通信显然是不可靠的。但是由于UDP简单,数据传输速度快、开销小。UDP的优势(1)无需建立连接和释放连接,从而减少了连接管理开销。而无需建立连接也减少了发送数据之前的时延。(2)UDP数据报只有8个字节的首部开销,比TCP的20个字节的首部要短得多。(3)由于UDP没有拥塞控制,因此UDP的传输速度很快,即使网络出现拥塞也不会降低发送速率。这对实时应用如IP电话,视频点播等是非常重要的。计算机网络技术14hUDP概述UDP协议由RFC768定义,是无连接的,即通信双UDP应用实例下图是一个典型的UDP应用例子DNSDNS是将域名地址转换为IP地址的常见UDP应用,DNS使用UDP传送报文,但DNS服务器和DNS客户所使用的端口是不一样的。DNS服务器进程是一直在运行着,其熟知端口是53,在此端口上等待DNS请求的到来。计算机网络技术15hUDP应用实例下图是一个典型的UDP应用例子DNS计算机网UDP的数据报格式

用户数据报UDP的报文格式由两部分构成:首部和数据各字段意义如下: (1)源端口:即本主机应用进程的端口号; (2)目的端口:目的主机应用进程的端口号; (3)长度:UDP用户数据报的长度; (4)检验和:用于检验UDP用户数据报在传输中是否出错计算机网络技术16hUDP的数据报格式用户数据报UDP的报文格式由两部分构成:UDP校验和计算在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。伪首部并不是UDP用户数据报真正的首部,仅用于计算检验和,既不向下传送也不向上递交。UDP计算机检验和的方法和计算IP数据报首部检验和的方法相似。但网络层只校验IP分组首部,不对数据进行校验。而UDP则是首部和数据一起检验计算机网络技术17hUDP校验和计算在计算检验和时,要在UDP用户数据报之前增加UDP的应用

由于UDP无需建立、简单高效且开销小的的特点,因此得到了广泛的应用流式多媒体这类数据流量大而连续,且能容忍数据丢失的应用多播应用如果既想利用UDP简单高效的特性,又想提供一定程度上的传输保障,则可以通过在应用层增加相应的可靠传输机制来完成。应用应用层协议传输层协议域名服务DNSUDP简单文件传输TFTPUDP路由信息协议RIPUDP动态主机配置DHCPUDP简单网管SNMPUDPIP电话专用协议UDP流媒体通信专用协议UDP多播组管理IGMPUDP电子邮件发送SMTPTCP远程登录TELNETTCPWeb浏览HTTPTCP文件传输FTPTCP计算机网络技术18hUDP的应用由于UDP无需建立、简单高效且开销小的的特点,5.5传输控制协议TCPTCP概述可靠传输原理TCP报文段格式TCP连接管理TCP的可靠传输TCP流量控制TCP拥塞控制计算机网络技术19h5.5传输控制协议TCPTCP概述计算机网络技术19hTCP概述TCP协议由RFC793定义,它是面向连接的,需要经历建立连接、数据通信和断开连接三个阶段。这里的“连接”并不是电路交换中的物理连接,也不是像虚电路那样的逻辑连接它的连接状态信息完全保存在两个端系统中,即网络上的路由器并不知道哪两个端系统建立了TCP连接。TCP连接是全双工的,即通信双方可以同时发送和接收数据。例如主机H1和H2通信,建立TCP连接后,H1向H2发送数据时,也能接收来自H2的数据。TCP的数据传输是可靠的,它具有重传、确认等可靠机制,一旦数据丢失或出错,那么发送方将重新发送数据,确保数据的可靠到达。相比于UDP,TCP还提供流量控制、拥塞控制机制,用于控制发送方的发送速率。计算机网络技术20hTCP概述TCP协议由RFC793定义,它是面向连接的,需要可靠传输原理传输不可靠的根源在于底层物理信道的误码率,其不可靠程度取决于误码率的大小。这种底层物理信道的不可靠性就需要上层的可靠传输协议来弥补。可靠传输的基本协议 (1)理想的传输协议 (2)基本停等协议 (3)增加序号机制的停等协议 (4)增加超时机制的停等协议计算机网络技术21h可靠传输原理传输不可靠的根源在于底层物理信道的误码率,其不可理想的传输协议基本假设:物理信道不会出错;网络层总是准备好发送数据;数据链路层处理速度无限快显然,这是一种理想的数据传输,因为物理信道不会出错意味着本协议无需进行校验、纠错;而网络层和数据链路层的假设意味着无需进行流量控制和保序等操作。

计算机网络技术22h理想的传输协议基本假设:物理信道不会出错;网络层总是准备好发基本停等协议基本假设如下:物理信道会出错;网络层总是准备好发送数据;数据链路层处理速度有限物理信道此时会出错,需要有校验功能,数据链路层处理速度有限,意味着发送方不能无限度的发送数据,必须要等到接收方确认(ACK)才能继续发送。一旦收到错误的确认,就要重新发送数据。

计算机网络技术23h基本停等协议基本假设如下:物理信道会出错;网络层总是准备增加序号机制基本假设和第2个协议相同在具有确认机制的可靠传输协议中,仅仅一个模糊的确认是不够的,因为有重发数据的存在接收方无法分辨收到的数据是新发的数据还是重新发送的数据需要给发送的数据编号,称为序号。有了序号后,就能够有目的的确认。接收方也就不会混淆新发帧和重发帧了。计算机网络技术24h增加序号机制基本假设和第2个协议相同计算机网络技术24h增加超时机制物理信道除了会出错外,还有可能发送数据丢失的现象。数据一旦丢失,就必须要进行重传。要引入一个超时(Timeout)机制,当在定时器到期之前收到了来自接收方的确认,就取消定时器发送下一个数据。若定时器超时后仍未收到确认,则认为数据传输丢失(当然也有可能是确认信息丢失),发送方将重新发送数据。

计算机网络技术25h增加超时机制物理信道除了会出错外,还有可能发送数据丢失的现象带确认、序号和超时机制的停等协议具有确认、序号和超时机制的停等协议已经可以比较好的进行数据的可靠传输了

计算机网络技术26h带确认、序号和超时机制的停等协议具有确认、序号和超时机制的带确认、序号和超时机制的停等协议计算机网络技术27h带确认、序号和超时机制的停等协议计算机网络技术27h滑动窗口协议——提高数据传输率停等协议能够正确的工作,但是它的效率非常低下滑动窗口协议为接收方定义了一个接收窗口,用以容纳允许接收的帧序号;发送方定义了一个发送窗口,用以容纳已经发送但尚未收到确认的帧序号假设整个圆周所容纳帧的序号总数为N接收窗口外的帧表示已经接收过的帧或者对方尚未发出的帧;接收窗口内的下界帧是是接收方期望收到的下一帧。当接收方收到接收窗口以外的帧时,丢弃此帧,但要发送重复的确认帧。计算机网络技术28h滑动窗口协议——提高数据传输率停等协议能够正确的工作,但是它滑动窗口协议——提高数据传输率在正常情况下,接收方总是收到接收窗口下界帧,去掉帧头帧尾提取出分组交给网络层,然后将接收窗口向前滚动一格(即上下界帧加1并对N求模),同时发送确认帧。在不正常的情况下,接收窗口下界帧因为丢失、出错或延迟等原因而导致“尚未收到下界帧(序号i),就收到了窗口内非下界帧(序号j)”的情况出现。为了能按序提交数据给网络层,必须把这些帧缓存起来,并发送确认帧。当下界帧(序号i)到达时,收方将从i到m序号的帧对应的分组按序交网络层,并释放相应缓冲区,接收窗口向前滚动(m-i+1)modN格,并发送确认帧,其中m是缓冲区中与i相邻帧序号集合中的最晚序号。计算机网络技术29h滑动窗口协议——提高数据传输率在正常情况下,接收方总是收到接接收窗口例子帧序号空间N=8,接收窗口大小w=6计算机网络技术30h接收窗口例子帧序号空间N=8,接收窗口大小w=6计算机网络发送窗口例子序号空间N=8,发送窗口最大为w=4,并假设发送方连续发送0,1,2,3号帧计算机网络技术31h发送窗口例子序号空间N=8,发送窗口最大为w=4,并假设发送回退N步法——GBN协议在GBN协议中,接收窗口大小为1,而发送窗口大于1。因此接收方的下界帧只有一个,相当于接收方只能按序接收数据发送窗口为4,接收方收到0,1号帧后返回ACK0和ACK1确认帧。发送方收到ACK0和ACK1后可以继续发送4,5号帧。假设2号帧在传输过程中丢失,因此接收方无法收到2号帧。若此时3号帧到达,接收方认为这是个非窗口内的帧,因此丢弃此帧,并再次发送ACK1,表明已经收到1号帧以前的数据,下面需要2号帧。当3,4,5号帧到达时,接收方都将返回ACK1。发送方收到重复的ACK1时,知道接收方还未收到2号帧,因此发送方重新从2号帧开始,发送2,3,4,5号帧,即回退了N步发送数据计算机网络技术32h回退N步法——GBN协议在GBN协议中,接收窗口大小为1,而选择性重传协议——SR协议GBN协议的效率较低,尤其是当发送窗口很大的时候。而选择性重传则可以提高传输效率。在SR协议中,发送窗口和接收窗口都大于1。接收窗口在收到非下界帧的时候,不会将数据丢弃,而是缓存起来,并发送它对期望帧的确认。计算机网络技术33h选择性重传协议——SR协议GBN协议的效率较低,尤其是当发送SR协议SR的接收窗口尺寸应满足≤N/2,其中N为序号空间的大小若接收窗口尺寸>N/2,那么在非下界帧均先到,下界帧最后到时,接收窗口将一次性向前滚动>N/2个号,则滚动前后将有一部分窗口是重叠的计算机网络技术34hSR协议SR的接收窗口尺寸应满足≤N/2,其中N为序号空间的TCP报文段格式TCP报文段为首部和数据计算机网络技术35hTCP报文段格式TCP报文段为首部和数据计算机网络技术35源端口和目的端口各占2个字节,用于应用进程的寻址序号

占4个字节,不是给每个TCP报文编号,而是给每个字节编号序号字段的值指的是本报文段所发送的数据的第一个字节的序号确认号

占4个字节,期望收到对方的下一个报文段数据中第一个字节的序号首部长度

占4bit,就是TCP报文段首部的长度,以4字节为单位计算机网络技术36h源端口和目的端口计算机网络技术36h保留

占6bit,保留为今后使用,但目前应置为0紧急比特U(Urgent,URG)

URG为1紧急指针有效,它表示从本报文段的起始字符开始,到紧急指针指出的序号之间的部分为紧急数据确认比特A(Acknowledgement,ACK)

只有ACK=1时确认号字段才有效。当ACK=0时,确认号无效推送比特P(PuSH,PSH)

为1表示带有PUSH标志的数据重置比特R(ReSeT,RST)

为1表示出现主机崩溃等严重错误,当TCP软件收到此报文段时,必须立即释放连接计算机网络技术37h保留计算机网络技术37h同步比特S(SYNchronization,SYN)在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段终止比特F(FINa1,FIN)

用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接窗口大小

占2字节,窗口字段用来控制对方发送的数据量,用于流量控制校验和

占2个字节。检验和字段检验的范围包括首部和数据这两部分,需要伪首部选项

长度可变。TCP只规定了一种选项,即最大报文段长度MSS,默认536字节计算机网络技术38h同步比特S(SYNchronization,SYN)计算机网TCP连接管理TCP的连接管理有三个阶段,即连接建立、数据传送和连接释放。TCP采用三次握手(three-wayhandshake)建立连接,即发送方和接收方之间要经历3次交互。防止已失效的连接请求报文段突然又传送到了主机H2,因而产生错误

计算机网络技术39hTCP连接管理TCP的连接管理有三个阶段,即连接建立、数据传TCP连接管理TCP释放连接的过程与连接建立的过程类似,释放连接需要经历四次握手。双方都必须给对方发出一个断开连接的请求报文并对之确认计算机网络技术40hTCP连接管理TCP释放连接的过程与连接建立的过程类似,释放TCP的可靠传输TCP则提供可靠的数据传输服务,确保收发双方的数据传输按序、可靠、正确的传输。校验和、确认、滑动窗口协议、序号以及超时机制是确保数据可靠传输的基本技术在TCP首部中,校验和字段用于检查TCP报文段是否在传递的过程中出错序号字段用于对字节流中的每一个字节编号,使接收方能分辨收到的报文是新报文还是重复的报文通过确认号字段,发送方知道接收方目前已经接收了哪个序号之前的数据,并根据此信息决定发送的下一个报文段中第一个字节的序号对某个序号的重复确认还用于报文的快速重传计算机网络技术41hTCP的可靠传输TCP则提供可靠的数据传输服务,确保收发双方TCP的确认机制TCP的确认机制涉及到首部中的确认号字段。该字段是接收方希望收到发送方的下一个报文段中第一个字节的序号。发送方看到这个确认的序号,它就知道接收方已经正确接收了该序号之前的数据。为了提高效率,降低网络开销,可以采取捎带确认,如下图(b)所示。

计算机网络技术42hTCP的确认机制TCP的确认机制涉及到首部中的确认号字段。该TCP的确认机制累积确认:接收方不必每个报文都要发送ACK报文。推迟确认:TCP规定,一个ACK报文可以推迟500ms发出。若500ms内有其他的报文到达,那么只需发送一个累积确认;若没有报文到达,必须立刻发送一个ACK报文。

计算机网络技术43hTCP的确认机制累积确认:接收方不必每个报文都要发送ACKTCP的确认机制重复的确认(或冗余确认)重复的确认发生在网络传输出现异常的情况网络延迟很大时和接收方收到失序的报文时计算机网络技术44hTCP的确认机制重复的确认(或冗余确认)计算机网络技术44hTCP的超时机制发送方每发送一个TCP报文,将为该报文设置一个定时器,同时将报文缓存。在定时器到期之前若收到接收方的确认信息,则将取消定时器,并将缓存的报文删除。超时机制的关键是定时器的超时时长定时器时间若太长,发送方必须要等待很长时间接收对方的ACK报文,耗费主机资源,同时也降低了通信双方的交互性和传输效率。定时器时间若设置太短,又容易导致过早超时的现象。计算机网络技术45hTCP的超时机制发送方每发送一个TCP报文,将为该报文设置一TCP的超时机制定时器的时间间隔和网络的往返时延(RoundTripTime,RTT)有关往返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延TCP采用Jacobson提出的算法来估算往返时间RTT,RTT的计算公式如下:RTT=α•(old_RTT)+(1-α)•SAMPLE其中α称为修正因子,表示RTT与历史值的相关程度。对于TCP而言,α一般取为0.875较为合适。计算机网络技术46hTCP的超时机制定时器的时间间隔和网络的往返时延(RoundTCP的快速重传机制超时重传机制存在的一个问题是超时时间间隔(Timeout)往往太长当一个报文丢失时,发送方需要等待很长的超时时间才重发丢失的分组,这增加了端到端延时。TCP采取了一种快速重传的机制即发送方一旦收到三个重复的ACK报文,就立刻重发报文,而不必等到定时器到期。计算机网络技术47hTCP的快速重传机制超时重传机制存在的一个问题是超时时间间隔流量控制流量控制就是控制发送方的发送速率不会超过接收方从缓冲区中处理数据的速率。TCP使用滑动窗口机制来实现流量控制,滑动窗口接收方根据自己接收数据的能力来限制发送方数据的传输。TCP对每个通信方都有一个接收窗口(ReceiveWindow)参数,当发送方收到TCP报文段时,从窗口字段中它可以获知接收方目前可以接收的数据量,根据这个值来调整发送方的发送速率。计算机网络技术48h流量控制流量控制就是控制发送方的发送速率不会超过接收方从缓冲流量控制糊涂窗口综合症是指接收方向发送方通告只有少量的接收缓冲区可用空间,导致发送方传送多个短报文段的情况。例如接收方接收缓冲区已用完,如果应用程序从缓冲区读走一个字符(例如在Telnet运用时,就有这种情况),接收缓冲区可用空间为1字节接收方就通过报文段向发送方通告一个字节的接收窗口,于是发送方就发送一个字节数据的报文段接收方又发送一个确认报文段。由于报文段是封装在IP分组中的,发送一个报文段至少需要40字节的TCP首部和IP首部。因此,为了传送一个字节,需要三个报文段。糊涂窗口综合症的危害是:(1)浪费网络通信容量(2)带来不必要的计算负担避免糊涂窗口综合症可以采用推迟通知和组块技术计算机网络技术49h流量控制糊涂窗口综合症是指接收方向发送方通告只有少量的接收缓TCP拥塞控制拥塞:到达网络中某些路由器的分组数量过多过快,使得路由器来不及处理,从而导致分组丢失、分组延迟增大乃至整个网络性能下降的现象,严重时网络甚至完全崩溃瘫痪。造成拥塞的原因路由器和主机的输入部分的处理速度慢网络的局部或整体带宽容量小会加快拥塞的发生计算机网络技术50hTCP拥塞控制拥塞:到达网络中某些路由器的分组数量过多过快,TCP拥塞控制拥塞控制的目的是为了减缓网络中的拥塞现象,本质是控制发送方减少发送到网络上的分组数量,即降低发送方的发送速率拥塞控制vs.流量控制拥塞控制是网络全局性的问题,它涉及到网络中所有主机的收发行为流量控制只与某对特定的发送方和接收方之间的通信有关,是一个局部性的问题常用的拥塞控制方法有两种:网络辅助的拥塞控制和端到端的拥塞控制。TCP就是采用的是端到端的拥塞控制方法慢启动(SlowStart)阶段拥塞避免(CongestionAvoidance)阶段计算机网络技术51hTCP拥塞控制拥塞控制的目的是为了减缓网络中的拥塞现象,本质TCP拥塞控制——慢启动阶段发送方以一个低速率发送数据(通常设置为一个MSS)如果发送方发出的报文得到了对方的确认,那么发送方认为网络能够承受这样的发送速率,因此它将发送速率加倍若此报文又收到确认,则再次将发送速率加倍,如此反复一旦拥塞窗口(当前发送速率)超过了临界窗口,那么拥塞窗口值被设置为临界窗口的大小,然后进入拥塞避免阶段。计算机网络技术52hTCP拥塞控制——慢启动阶段发送方以一个低速率发送数据(通TCP拥塞控制——拥塞避免阶段执行AIMD算法在拥塞避免阶段,发送方发出报文得到确认后,发送速率线性递增,即拥塞窗口大小增加一个MSS增大到一定程度时(数据丢失),拥塞窗口需减半(乘性递减),快速降低发送速率若下一个报文收到了确认,则拥塞窗口又线性递增,增加一个MSS如此反复,使得拥塞窗口的变化呈现出锯齿形的形状

计算机网络技术53hTCP拥塞控制——拥塞避免阶段执行AIMD算法计算机网络技TCP拥塞控制拥塞控制机制总结:(1)TCP连接建立时,拥塞窗口设置为1个MSS大小(CW=1),并进入慢启动阶段,每收到接收方的确认,拥塞窗口加倍。(2)在拥塞避免阶段,每收到一个报文的确认,拥塞窗口线性增加,直到出现报文丢失。报文一旦丢失,临界窗口变为当前拥塞窗口的一半(TW=CW/2),并如(3)一样调整拥塞窗口大小。(3)出现报文丢失后,若是由于超时事件而判断报文丢失,则拥塞窗口降为1个MSS,重新开始慢启动阶段;若是由于收到三个重复的ACK的事件而判断的报文丢失,则拥塞窗口将为当前拥塞窗口的一半(CW=CW/2),然后执行AIMD算法。计算机网络技术54hTCP拥塞控制拥塞控制机制总结:计算机网络技术54h5.6工程实例传输层报文实例网络编程及实例计算机网络技术55h5.6工程实例传输层报文实例计算机网络技术55h传输层报文实例UDP报文计算机网络技术56h传输层报文实例UDP报文计算机网络技术56h传输层报文实例TCP报文计算机网络技术57h传输层报文实例TCP报文计算机网络技术57h网络编程模型套接字便于网络应用程序使用TCP/IP的网络服务,大部分系统都提供了一组基于TCP或者UDP的应用程序编程接口(API)常用套接字APISocket():创建套接字Bind():为套接字绑定IP地址和端口Listen():服务器端侦听客户端的连接请求Connect():客户端连接服务器Accept():服务器端接受客户端的请求Send()和recv():收发数据,主用用于TCP套接字Sendto()和recvfrom():收发数据,主要用于UDP套接字Close():关闭套接字,释放资源计算机网络技术58h网络编程模型套接字计算机网络技术58h网络编程模型UDP编程模型计算机网络技术59h网络编程模型UDP编程模型计算机网络技术59hTCP编程模型计算机网络技术60hTCP编程模型计算机网络技术60h《计算机网络技术》第五章传输层电子科技大学计算机学院、软件学院61h《计算机网络技术》第五章传输层1h目录5.1传输层功能5.2传输层服务5.3传输层寻址5.4用户数据报协议UDP5.5传输控制协议TCP5.6工程实例计算机网络技术62h目录5.1传输层功能计算机网络技术2h5.1传输层功能传输层提供了不同主机上应用程序进程之间的端到端的逻辑通信所谓“端到端”(endtoend)通信,即发送端和接收端之间的通信

计算机网络技术63h5.1传输层功能传输层提供了不同主机上应用程序进程之间的端5.1传输层功能传输层的主要功能有:(1)分割与重组数据:将应用层的消息分割成若干子消息并封装为报文段。(2)按端口号寻址:标识不同的应用进程,实现多个应用进程对同一个IP地址的复用。(3)连接管理:完成端到端通信链路的建立、维护和管理。(4)差错控制和流量控制总之,传输层要向应用层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等现象。计算机网络技术64h5.1传输层功能传输层的主要功能有:计算机网络技术4h5.2传输层服务传输层主要提供两种服务一种是面向连接的服务,由TCP协议实现,它是一种可靠的服务;一种是无连接的服务,由UDP协议实现,是一种的不可靠服务。计算机网络技术65h5.2传输层服务传输层主要提供两种服务计算机网络技术5h面向连接的服务过程分为三步:(1)建立连接;(2)数据传输;(3)释放连接。计算机网络技术66h面向连接的服务过程分为三步:(1)建立连接;(2)数据传输;面向连接的服务面向连接服务的特点(1)在服务进行之前必须建立一条逻辑链路后再进行数据传输,传输完毕后,再释放连接。在数据传输过程,好象一直占用了一条这样的逻辑链路。(2)由于所有的报文都在这个管道内传送,因此报文是按序到达目的地的,即先发送的报文先到达。(3)通过可靠传输机制保证报文传输的可靠性,报文不易丢失。(4)由于需要管理和维护连接,因此协议复杂,通信效率不高。适合于对数据的传输可靠性非常高的场合,如文件传输、网页浏览、电子邮件等

计算机网络技术67h面向连接的服务面向连接服务的特点计算机网络技术7h无连接的服务无连接的服务就是通信双方不需要事先建立一条通信线路把每个带有目的地址的报文分组送到网络上,由网络(如路由器)根据目的地址为分组选择一条恰当的路径传送到目的地计算机网络技术68h无连接的服务无连接的服务就是通信双方不需要事先建立一条通信线无连接服务无连接服务的特点(1)数据传输之前不需要建立连接;(2)每个分组都携带完整的目的节点地址,各分组在网络中是独立传送的;(3)分组的传递是失序的,即后发送的分组有可能先到达目的地;(4)可靠性差,容易出现报文丢失的现象,但是协议相对简单,通信效率较高。无连接的UDP是网络层“尽最大努力投递”服务在传输层的进一步扩展,无法保证报文能否正确到达目的地适用于局域网或光纤通信;连续的大数据量的传输并能容忍一定程度的数据丢失的应用;多播应用计算机网络技术69h无连接服务无连接服务的特点计算机网络技术9h5.3传输层端口端口就是应用进程的地址,16bit正整数给应用进程分配一个传输层的地址目的是为了实现在传输层对同一个IP地址的多路复用与多路分解。

计算机网络技术70h5.3传输层端口端口就是应用进程的地址,16bit正整数5.3传输层端口现实例子:一栋写字楼中,有多个公司,每个公司都和外界有信函联系,每个公司占据一层楼(或房间号)每个公司相当于应用层的进程楼层号(或房间号)是传输层的端口地址写字楼的地址则相当于网络层的IP地址公司都使用写字楼的地址和外界通信外界的信件到达写字楼后,再由相关人员按照楼层号或房间号投递到相应的公司计算机网络技术71h5.3传输层端口现实例子:计算机网络技术11h5.3传输层端口端口只具有本地意义,即端口号是为了标志本主机应用层中的各个进程,因此两个不同主机的应用进程可以使用相同的端口端口分为两类:熟知端口(0-1023)和一般端口常用的熟知端口有:计算机网络技术72h5.3传输层端口端口只具有本地意义,即端口号是为了标志本主5.4用户数据报协议UDPUDP概述UDP的数据报格式UDP的应用计算机网络技术73h5.4用户数据报协议UDPUDP概述计算机网络技术13hUDP概述UDP协议由RFC768定义,是无连接的,即通信双方并不需要建立连接,这种通信显然是不可靠的。但是由于UDP简单,数据传输速度快、开销小。UDP的优势(1)无需建立连接和释放连接,从而减少了连接管理开销。而无需建立连接也减少了发送数据之前的时延。(2)UDP数据报只有8个字节的首部开销,比TCP的20个字节的首部要短得多。(3)由于UDP没有拥塞控制,因此UDP的传输速度很快,即使网络出现拥塞也不会降低发送速率。这对实时应用如IP电话,视频点播等是非常重要的。计算机网络技术74hUDP概述UDP协议由RFC768定义,是无连接的,即通信双UDP应用实例下图是一个典型的UDP应用例子DNSDNS是将域名地址转换为IP地址的常见UDP应用,DNS使用UDP传送报文,但DNS服务器和DNS客户所使用的端口是不一样的。DNS服务器进程是一直在运行着,其熟知端口是53,在此端口上等待DNS请求的到来。计算机网络技术75hUDP应用实例下图是一个典型的UDP应用例子DNS计算机网UDP的数据报格式

用户数据报UDP的报文格式由两部分构成:首部和数据各字段意义如下: (1)源端口:即本主机应用进程的端口号; (2)目的端口:目的主机应用进程的端口号; (3)长度:UDP用户数据报的长度; (4)检验和:用于检验UDP用户数据报在传输中是否出错计算机网络技术76hUDP的数据报格式用户数据报UDP的报文格式由两部分构成:UDP校验和计算在计算检验和时,要在UDP用户数据报之前增加12个字节的伪首部。伪首部并不是UDP用户数据报真正的首部,仅用于计算检验和,既不向下传送也不向上递交。UDP计算机检验和的方法和计算IP数据报首部检验和的方法相似。但网络层只校验IP分组首部,不对数据进行校验。而UDP则是首部和数据一起检验计算机网络技术77hUDP校验和计算在计算检验和时,要在UDP用户数据报之前增加UDP的应用

由于UDP无需建立、简单高效且开销小的的特点,因此得到了广泛的应用流式多媒体这类数据流量大而连续,且能容忍数据丢失的应用多播应用如果既想利用UDP简单高效的特性,又想提供一定程度上的传输保障,则可以通过在应用层增加相应的可靠传输机制来完成。应用应用层协议传输层协议域名服务DNSUDP简单文件传输TFTPUDP路由信息协议RIPUDP动态主机配置DHCPUDP简单网管SNMPUDPIP电话专用协议UDP流媒体通信专用协议UDP多播组管理IGMPUDP电子邮件发送SMTPTCP远程登录TELNETTCPWeb浏览HTTPTCP文件传输FTPTCP计算机网络技术78hUDP的应用由于UDP无需建立、简单高效且开销小的的特点,5.5传输控制协议TCPTCP概述可靠传输原理TCP报文段格式TCP连接管理TCP的可靠传输TCP流量控制TCP拥塞控制计算机网络技术79h5.5传输控制协议TCPTCP概述计算机网络技术19hTCP概述TCP协议由RFC793定义,它是面向连接的,需要经历建立连接、数据通信和断开连接三个阶段。这里的“连接”并不是电路交换中的物理连接,也不是像虚电路那样的逻辑连接它的连接状态信息完全保存在两个端系统中,即网络上的路由器并不知道哪两个端系统建立了TCP连接。TCP连接是全双工的,即通信双方可以同时发送和接收数据。例如主机H1和H2通信,建立TCP连接后,H1向H2发送数据时,也能接收来自H2的数据。TCP的数据传输是可靠的,它具有重传、确认等可靠机制,一旦数据丢失或出错,那么发送方将重新发送数据,确保数据的可靠到达。相比于UDP,TCP还提供流量控制、拥塞控制机制,用于控制发送方的发送速率。计算机网络技术80hTCP概述TCP协议由RFC793定义,它是面向连接的,需要可靠传输原理传输不可靠的根源在于底层物理信道的误码率,其不可靠程度取决于误码率的大小。这种底层物理信道的不可靠性就需要上层的可靠传输协议来弥补。可靠传输的基本协议 (1)理想的传输协议 (2)基本停等协议 (3)增加序号机制的停等协议 (4)增加超时机制的停等协议计算机网络技术81h可靠传输原理传输不可靠的根源在于底层物理信道的误码率,其不可理想的传输协议基本假设:物理信道不会出错;网络层总是准备好发送数据;数据链路层处理速度无限快显然,这是一种理想的数据传输,因为物理信道不会出错意味着本协议无需进行校验、纠错;而网络层和数据链路层的假设意味着无需进行流量控制和保序等操作。

计算机网络技术82h理想的传输协议基本假设:物理信道不会出错;网络层总是准备好发基本停等协议基本假设如下:物理信道会出错;网络层总是准备好发送数据;数据链路层处理速度有限物理信道此时会出错,需要有校验功能,数据链路层处理速度有限,意味着发送方不能无限度的发送数据,必须要等到接收方确认(ACK)才能继续发送。一旦收到错误的确认,就要重新发送数据。

计算机网络技术83h基本停等协议基本假设如下:物理信道会出错;网络层总是准备增加序号机制基本假设和第2个协议相同在具有确认机制的可靠传输协议中,仅仅一个模糊的确认是不够的,因为有重发数据的存在接收方无法分辨收到的数据是新发的数据还是重新发送的数据需要给发送的数据编号,称为序号。有了序号后,就能够有目的的确认。接收方也就不会混淆新发帧和重发帧了。计算机网络技术84h增加序号机制基本假设和第2个协议相同计算机网络技术24h增加超时机制物理信道除了会出错外,还有可能发送数据丢失的现象。数据一旦丢失,就必须要进行重传。要引入一个超时(Timeout)机制,当在定时器到期之前收到了来自接收方的确认,就取消定时器发送下一个数据。若定时器超时后仍未收到确认,则认为数据传输丢失(当然也有可能是确认信息丢失),发送方将重新发送数据。

计算机网络技术85h增加超时机制物理信道除了会出错外,还有可能发送数据丢失的现象带确认、序号和超时机制的停等协议具有确认、序号和超时机制的停等协议已经可以比较好的进行数据的可靠传输了

计算机网络技术86h带确认、序号和超时机制的停等协议具有确认、序号和超时机制的带确认、序号和超时机制的停等协议计算机网络技术87h带确认、序号和超时机制的停等协议计算机网络技术27h滑动窗口协议——提高数据传输率停等协议能够正确的工作,但是它的效率非常低下滑动窗口协议为接收方定义了一个接收窗口,用以容纳允许接收的帧序号;发送方定义了一个发送窗口,用以容纳已经发送但尚未收到确认的帧序号假设整个圆周所容纳帧的序号总数为N接收窗口外的帧表示已经接收过的帧或者对方尚未发出的帧;接收窗口内的下界帧是是接收方期望收到的下一帧。当接收方收到接收窗口以外的帧时,丢弃此帧,但要发送重复的确认帧。计算机网络技术88h滑动窗口协议——提高数据传输率停等协议能够正确的工作,但是它滑动窗口协议——提高数据传输率在正常情况下,接收方总是收到接收窗口下界帧,去掉帧头帧尾提取出分组交给网络层,然后将接收窗口向前滚动一格(即上下界帧加1并对N求模),同时发送确认帧。在不正常的情况下,接收窗口下界帧因为丢失、出错或延迟等原因而导致“尚未收到下界帧(序号i),就收到了窗口内非下界帧(序号j)”的情况出现。为了能按序提交数据给网络层,必须把这些帧缓存起来,并发送确认帧。当下界帧(序号i)到达时,收方将从i到m序号的帧对应的分组按序交网络层,并释放相应缓冲区,接收窗口向前滚动(m-i+1)modN格,并发送确认帧,其中m是缓冲区中与i相邻帧序号集合中的最晚序号。计算机网络技术89h滑动窗口协议——提高数据传输率在正常情况下,接收方总是收到接接收窗口例子帧序号空间N=8,接收窗口大小w=6计算机网络技术90h接收窗口例子帧序号空间N=8,接收窗口大小w=6计算机网络发送窗口例子序号空间N=8,发送窗口最大为w=4,并假设发送方连续发送0,1,2,3号帧计算机网络技术91h发送窗口例子序号空间N=8,发送窗口最大为w=4,并假设发送回退N步法——GBN协议在GBN协议中,接收窗口大小为1,而发送窗口大于1。因此接收方的下界帧只有一个,相当于接收方只能按序接收数据发送窗口为4,接收方收到0,1号帧后返回ACK0和ACK1确认帧。发送方收到ACK0和ACK1后可以继续发送4,5号帧。假设2号帧在传输过程中丢失,因此接收方无法收到2号帧。若此时3号帧到达,接收方认为这是个非窗口内的帧,因此丢弃此帧,并再次发送ACK1,表明已经收到1号帧以前的数据,下面需要2号帧。当3,4,5号帧到达时,接收方都将返回ACK1。发送方收到重复的ACK1时,知道接收方还未收到2号帧,因此发送方重新从2号帧开始,发送2,3,4,5号帧,即回退了N步发送数据计算机网络技术92h回退N步法——GBN协议在GBN协议中,接收窗口大小为1,而选择性重传协议——SR协议GBN协议的效率较低,尤其是当发送窗口很大的时候。而选择性重传则可以提高传输效率。在SR协议中,发送窗口和接收窗口都大于1。接收窗口在收到非下界帧的时候,不会将数据丢弃,而是缓存起来,并发送它对期望帧的确认。计算机网络技术93h选择性重传协议——SR协议GBN协议的效率较低,尤其是当发送SR协议SR的接收窗口尺寸应满足≤N/2,其中N为序号空间的大小若接收窗口尺寸>N/2,那么在非下界帧均先到,下界帧最后到时,接收窗口将一次性向前滚动>N/2个号,则滚动前后将有一部分窗口是重叠的计算机网络技术94hSR协议SR的接收窗口尺寸应满足≤N/2,其中N为序号空间的TCP报文段格式TCP报文段为首部和数据计算机网络技术95hTCP报文段格式TCP报文段为首部和数据计算机网络技术35源端口和目的端口各占2个字节,用于应用进程的寻址序号

占4个字节,不是给每个TCP报文编号,而是给每个字节编号序号字段的值指的是本报文段所发送的数据的第一个字节的序号确认号

占4个字节,期望收到对方的下一个报文段数据中第一个字节的序号首部长度

占4bit,就是TCP报文段首部的长度,以4字节为单位计算机网络技术96h源端口和目的端口计算机网络技术36h保留

占6bit,保留为今后使用,但目前应置为0紧急比特U(Urgent,URG)

URG为1紧急指针有效,它表示从本报文段的起始字符开始,到紧急指针指出的序号之间的部分为紧急数据确认比特A(Acknowledgement,ACK)

只有ACK=1时确认号字段才有效。当ACK=0时,确认号无效推送比特P(PuSH,PSH)

为1表示带有PUSH标志的数据重置比特R(ReSeT,RST)

为1表示出现主机崩溃等严重错误,当TCP软件收到此报文段时,必须立即释放连接计算机网络技术97h保留计算机网络技术37h同步比特S(SYNchronization,SYN)在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段终止比特F(FINa1,FIN)

用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接窗口大小

占2字节,窗口字段用来控制对方发送的数据量,用于流量控制校验和

占2个字节。检验和字段检验的范围包括首部和数据这两部分,需要伪首部选项

长度可变。TCP只规定了一种选项,即最大报文段长度MSS,默认536字节计算机网络技术98h同步比特S(SYNchronization,SYN)计算机网TCP连接管理TCP的连接管理有三个阶段,即连接建立、数据传送和连接释放。TCP采用三次握手(three-wayhandshake)建立连接,即发送方和接收方之间要经历3次交互。防止已失效的连接请求报文段突然又传送到了主机H2,因而产生错误

计算机网络技术99hTCP连接管理TCP的连接管理有三个阶段,即连接建立、数据传TCP连接管理TCP释放连接的过程与连接建立的过程类似,释放连接需要经历四次握手。双方都必须给对方发出一个断开连接的请求报文并对之确认计算机网络技术100hTCP连接管理TCP释放连接的过程与连接建立的过程类似,释放TCP的可靠传输TCP则提供可靠的数据传输服务,确保收发双方的数据传输按序、可靠、正确的传输。校验和、确认、滑动窗口协议、序号以及超时机制是确保数据可靠传输的基本技术在TCP首部中,校验和字段用于检查TCP报文段是否在传递的过程中出错序号字段用于对字节流中的每一个字节编号,使接收方能分辨收到的报文是新报文还是重复的报文通过确认号字段,发送方知道接收方目前已经接收了哪个序号之前的数据,并根据此信息决定发送的下一个报文段中第一个字节的序号对某个序号的重复确认还用于报文的快速重传计算机网络技术101hTCP的可靠传输TCP则提供可靠的数据传输服务,确保收发双方TCP的确认机制TCP的确认机制涉及到首部中的确认号字段。该字段是接收方希望收到发送方的下一个报文段中第一个字节的序号。发送方看到这个确认的序号,它就知道接收方已经正确接收了该序号之前的数据。为了提高效率,降低网络开销,可以采取捎带确认,如下图(b)所示。

计算机网络技术102hTCP的确认机制TCP的确认机制涉及到首部中的确认号字段。该TCP的确认机制累积确认:接收方不必每个报文都要发送ACK报文。推迟确认:TCP规定,一个ACK报文可以推迟500ms发出。若500ms内有其他的报文到达,那么只需发送一个累积确认;若没有报文到达,必须立刻发送一个ACK报文。

计算机网络技术103hTCP的确认机制累积确认:接收方不必每个报文都要发送ACKTCP的确认机制重复的确认(或冗余确认)重复的确认发生在网络传输出现异常的情况网络延迟很大时和接收方收到失序的报文时计算机网络技术104hTCP的确认机制重复的确认(或冗余确认)计算机网络技术44hTCP的超时机制发送方每发送一个TCP报文,将为该报文设置一个定时器,同时将报文缓存。在定时器到期之前若收到接收方的确认信息,则将取消定时器,并将缓存的报文删除。超时机制的关键是定时器的超时时长定时器时间若太长,发送方必须要等待很长时间接收对方的ACK报文,耗费主机资源,同时也降低了通信双方的交互性和传输效率。定时器时间若设置太短,又容易导致过早超时的现象。计算机网络技术105hTCP的超时机制发送方每发送一个TCP报文,将为该报文设置一TCP的超时机制定时器的时间间隔和网络的往返时延(RoundTripTime,RTT)有关往返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延TCP采用Jacobson提出的算法来估算往返时间RTT,RTT的计算公式如下:RTT=α•(old_RTT)+(1-α)•SAMPLE其中α称为修正因子,表示RTT与历史值的相关程度。对于TCP而言,α一般取为0.875较为合适。计算机网络技术106hTCP的超时机制定时器的时间间隔和网络的往返时延(RoundTCP的快速重传机制超时重传机制存在的一个问题是超时时间间隔(Timeout)往往太长当一个报文丢失时,发送方需要等待很长的超时时间才重发丢失的分组,这增加了端到端延时。TCP采取了一种快速重传的机制即发送方一旦收到三个重复的ACK报文,就立刻重发报文,而不必等到定时器到期。计算机网络技术107hTCP的快速重传机制超时重传机制存在的一个问题是超时时间间隔流量控制流量控制就是控制发送方的发送速率不会超过接收方从缓冲区中处理数据的速率。TCP使用滑动窗口机制来实现流量控制,滑动窗口接收方根据自己接收数据的能力来限制发送方数据的传输。TCP对每个通信方都有一个接收窗口(ReceiveWindow)参数,当发送方收到TCP报文段时,从窗口字段中它可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论