第八讲 传输层协议_第1页
第八讲 传输层协议_第2页
第八讲 传输层协议_第3页
第八讲 传输层协议_第4页
第八讲 传输层协议_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第八讲传输层协议,引言,传输层位于应用层和网络层中间,它把网络的底层对高层屏蔽起来,向应用层提供统一的数据通信服务接口,并为网络传输提供了错误检查、流量控制等功能。提供近程间的通信UDP协议与TCP协议是TCP/IP协议传输层上的两个主要协议用户数据报协议UDP(UserDatagramProtocol)是面向无连接的,传输控制协议TCP(TransportControlProtocol)是面向连接的。UDP协议提供高效率的服务,用于一次传输交换少量数据报的情形。TCP提供高可靠性服务,用于一次传输大量数据报的情形。UDP协议几乎直接建立在IP协议之上,比较简单。当通信子网相对可靠的时候,UDP的用处是相当大的。TCP协议为了包容通信子网中的各种不可靠因素,相对来说比较复杂。,传输层,传输层是计算机网络(包括Internet)体系结构中至关重要的一层。传输层的作用是向信源机与信宿机提供端到端数据传输,而传输层以下各层只提供相邻机器的点到点传输。从“点到点”到“端到端”是一次质的飞跃,传输层为此要引入许多新的概念和机制,传输层协议也要为此做许多工作。,传输层要解决的问题,端到端的传输层与点到点的数据链路层有许多相似之处。二者都要解决差错控制、流量控制、数据排序(链路层是帧排序,传输层是报文排序)和连接管理等问题,但问题的复杂度不一样。传输层问题的复杂度来源于子网的潜在存储能力,不像点到点连接中,数据要么传到,要么丢失;端到端连接中,数据要经过若干的点到点连接,不知会在什么地方被存储起来,延迟一段时间,不知什么时候能到达目的地。假如一定时间内未到达,不知道是丢失了,还是被延迟了,不知道它是否会突然冒出来。,传输层要解决的问题一:端到端差错控制,虽然在各条链路上的差错控制能消除大部分差错,但并不可能消除所有的差错,总是有某种类型的差错不可能被低层所发现。比如:数据通信系统可能丢失或改变分组中的一些比特或者将分组传送多次。两端主机中的任一台在执行了一个未知量(也许是全部)的事务处理后,可能使某个事务崩溃。传输层协议的重点是要防止低层网络在复位、清除、重启动之后不使数据丢失。,传输层要解决的问题二:连接端点的标识问题,一个网络上全局唯一的传输用户如何标识呢?当然,首先必须标识传输用户所在主机,其次必须标识该主机上的传输用户本身。主机可以用主机网络地址标识(如用IP地址标识),这个标识符是全局唯一的。假如再给主机上的传输用户赋予一个本地唯一的标识符,二者加起来,传输用户便获得了全局唯一的标识符。这个本地唯一的传输用户标识符描述的就是传输层服务访问点(TSAP,TransportServiceAccessPoint)。TSAP是传输用户访问传输服务的入口处,相当于硬件技术中的端口,它有一个本地唯一的代号。TCP/IP把TSAP叫作端口(port),一个端口拥有一个本地唯一的端口号,TCP/IP端口作为一种逻辑结构,可以随机分配,但有一部分保留下来作为系统专用。,端口机制,传输层协议采用抽象的目的端点端口来标识不同的进程。端口的特点:每个端口都有一个端口号端口号是对进程的标识端口号是一个16bit的数字总共有65536个端口号IP地址+端口号=套接字(socket),端口的分配,全局分配,又称统一分配由权威机构分给每个应用程序端口号,所有的应用软件都遵守这些分配,如由ICANN分配的数值为01023的端口给一些常用的应用程序,这些端口称为保留端口本地分配,又称动态绑定进程需要访问传输服务时,向本地操作系统提出动态申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用将自己和相应端口号联系起来(即绑定)。,传输层要解决的问题三:端到端传输连接管理,连接管理包括连接的建立、使用和释放。传输层连接管理的基本方法是基于“握手”规程(handshaking)和基于定时器两种方法的组合。传输层最典型的建立传输连接的机制就是三次握手(three-wayhandshaking)。,三次握手方法,三次握手方法首先要求对本次连接的所有报文进行编号,常用的方法是取当前时钟的最低n位作为初始序号。由于序号域具有足够的长度,可以绝对保证序号循环一周回来时,使用同一序号的旧报文早已传输完毕。这样,网络中不会出现关于同一连接、同一序号的两个不同报文。三次握手解决的问题是:假设A机向B机发出连接请求,但请求报文丢失,而一个延迟的重复的旧请求报文到达B。如果B接受此请求,连接就会错误地建立起来。,三次握手过程,在三次握手法的第一次中,A机向B机发出连接请求(简称CR),其中包含A机端的初始报文序号(比如X)。第二次,B机收到CR后,发回连接确认(CC),其中,包含B机端的初始报文序号(比如Y),以及B机对A机初始序号X的确认。第三次A机向B机发送X序号数据,其中包含对B机初始序号Y的确认。,传输层要解决的问题四:超时和拥塞控制,由于网络端到端传输会产生长时延而且时延的变化很大,所以在确定合适的超时和拥塞控制时会产生特殊的问题,很难使拥塞控制算法足够快地工作来防止产生很严重的拥塞。传输层的重发超时,通常是基于对来回传输时延的估算,估测的时间随着继续发送的分组而加以调整。常用的估算方法是将最当前的来回时延和以前估计的时延进行加权平均可以这样计算:WnWn-1(1-)n其中Wn是第n次估计的平均来回时延;n是最近一次来回时延;为恒定的加权因子,01,它决定了对新旧来回时间的相对权重。,传输层超时和拥塞控制,若选为1使得加权平均对很短时间内的变化不受影响,而接近0使加权平均响应时延快速的变化。通常取接近于1,以使得单个时延不会很大地影响平均值。对于TCP而言,通常建议用0.9。一个不是前面重发过的分组的重发超时通常取Wn这里1(通常建议为2)。前面已重发过的分组的(再次)重发超时时间按照后退算法(backoffalgorithm)予以增加,能提高出现拥塞情况下的性能。,传输层超时和拥塞控制,这种方法有一些问题,其中之一是在测量n时,难以适当考虑重发分组的影响。在此可以采用两种方法,一种方法是测量从第一次试图发送一个分组到它最后被确认的时间,包括所有重发的时间;另一种方法是仅仅测量最后一次发送至被确认的时间。但这两种方法都不十分满意。第一种方法可能使Wn导致很大的数值(对于丢失的分组而言,它可能是无限大),而第二种方法也可能由于最后的确认偶尔被延迟而使Wn产生失真。有人提出另一种算法,它在计算Wn时忽略所有发送重传分组的时间,但仍保留一个后退的重发超时值直到收到不需要重传的下一个分组,然后恢复重新计算Wn和超时。,传输层要解决的问题五:流量控制,在面向连接的传输过程中,发方每发出一个分组都需要得到收方的确认。那么关于面向连接数据传输的最简单协议是:每发一个分组,等待确认;收到确认后,再发下一个分组。这种协议有个很大的缺点就是效率太低,在等待确认的过程中,本连接拥有的网络资源没有充分利用起来。这种协议叫简单停等协议。若发送方可以一味地向网络注入数据,而不管网络是否拥塞,对方是否收到。当然这种方式可靠性很难保证,解决方案:滑动窗口机制,为了充分利用网络的带宽,提高网络的运行效率,又能保证可靠性,TCP采用滑动窗口机制控制数据的发送。这种方案允许一次连续传输若干数据报文而不必等待其中任何一个的确认,但连续发送的报文数不得超过一定限制。,滑动窗口机制,滑动窗口内含一组顺序排列的报文序号。在发送端,窗口内的报文序号对应的报文是可以连续发送的,具体地说,这些报文有三种情况:已发送但尚未得到确认;未发送但可连续发送;已发送且已得到确认,但本窗口中前面尚有未确认报文。各报文按序发送出去,但确认不一定按序返回。一旦窗口前面部分(不管多少)报文得到确认,则窗口向前滑动相应位置,落入窗口的后续报文又可连续发送。,发送端滑动窗口,其中报文1、2、3已发送且确认。报文4、5已发送;但至少4未确认。假如5先确认,4后确认,以后报文未确认,则窗口一次向前滑动两个位置。4确认之前,窗口是不能滑动的,4确认后窗口立即滑动。,窗口大小为4的发送滑动窗口示例,接收端滑动窗口,图中显示了接收端滑动窗口情况。在接收端,窗口内的序号对应于允许接收的帧。窗口前的帧是已收到且已发回确认的帧,是不允许接收的,窗口后的帧要等待窗口滑动后才能接收。,滑动窗口机制,发送窗口的大小限制发送端一次可发送的最大分组数,无疑会影响滑动窗口协议的性能。比如,发送窗口大小为1的协议便是简单停等协议。当接收窗大小为1时,意味着接收端只允许顺序接收分组,无分组重组问题;当接收窗无限大小(除已确认报文外)时,意味着接收端可以接收任意顺序的分组,需要做完全的重组工作。事实上,接收窗大小反映了接收端缓冲区的大小。假如收方窗口大小为n,则收方至少要有n个接收缓冲区,否则会引起不必要的报文重传。滑动窗口协议的一个重要用途是流量控制,网关和接收端可以通过某种方式(比如ICMP报文)通知发方改变其窗口大小,以限制发方报文注入网络的速度,达到流控的目的。,面向连接的协议与无连接协议,面向连接的协议,用于建立和维护互相通信的计算机之间的连接,并监控信息传输过程中该连接的状态。换句话说,在网络上发送的每个数据包均会接收到一个对方发来的回执,发送端的计算机记录下状态信息,以确保每个数据包准确无误地被对方接收。在信息传输结束时,发送端与接收端的计算机安全地关闭连接。无连接协议,用于向目的地发送单向数据报,但并不正式通知目的地的计算机数据正在传输路径上。目的计算机接收对方发来的数据,但并不将接收到的数据的状态信息返回给源计算机,TCP:面向连接的传输协议,面向数据流的处理方式TCP采用连续方式对数据进行处理。换句话说,TCP能够以每次接收一个字节的方式来接收数据,而不是按预格式化的数据块来接收。TCP将数据格式化成可变长度的段,然后传送给Internet层。重新排序如果数据到达目的地时杂乱无序,TCP模块能对数据重新排序,使之恢复原始顺序。,TCP:面向连接的传输协议,流量控制TCP的流量控制特性能确保数据传输的速度不会超过或低于目的计算机接收数据的能力。在变化无常的环境下,处理器的速度和缓存的大小变化很大,这时流量控制尤其重要。优先级和安全性美国国防部为TCP制定的技术规范要求为TCP连接设置可选的安全性和优先级。但是许多TCP工具并不提供这些安全性和优先级特性。稳妥关闭TCP在关闭一个连接时,采取与打开连接时同样的稳妥方法。这种稳妥关闭的特性可以确保连接被关闭之前所有信息段均已发送和接收。,UDP:无连接传输协议,UDP是能够执行基本的错误检查的,是具备有限错误检查功能的协议。UDP数据报还包含一个伪首标,它包含了数据报的目的地址,用于检查地址送错的数据报。如果接收端的UDP模块收到送往无效或未定义UDP端口的数据报,它就返回一个ICMP消息,通知源计算机,该端口无法抵达。UDP并不具备TCP拥有的给数据重新排序的功能。,UDP协议,UDP的特点UDP传送数据前并不与对方建立连接,即UDP是无连接的,在传输数据前,发送方和接收方相互交换信息使双方同步。UDP不对收到的数据进行排序,在UDP报文的首部中并没有关于数据顺序的信息(如TCP所采用的序号),而且报文不一定按顺序到达的,所以接收端无从排起。UDP对接收到的数据报不发送确认信号,发送端不知道数据是否被正确接收,也不会重发数据。UDP传送数据较TCP快速,系统开销也少。,UDP数据报的格式,UDP数据报包含两部分:UDP头标和UDP数据区,UDP头标各字段说明,信源端口(SourcePort):发送端UDP端口,当不需要返回数据时,该域置0。信宿端口(DestinationPort):接收端UDP端口。长度(Length):以字节计的整个报文长度,最小值为8(头标长)。校验和(Checksum):这是一个可选域,置0时表明未选,全1(负0的反码)表示校验和为0。计算校验和要用到伪头标。,UDP伪首标格式,填充域:目的在于使伪头标长度为16比特的整数倍协议(Protocol):含协议类型码(“17”代表UDP)UDP长度(UDPLENGTH):含UDP数据报(不包括伪头标)长度,UDP校验和与伪头标,使用伪头标是为了验证UDP数据报是否传到正确的信宿端。UDP数据报信宿端地址包括两部分:信宿主机地址和信宿端口号,UDP数据报本身只包含信宿端口号,由伪头标补充信宿主机地址部分。UDP数据报发送、接收端计算校验和时均加上伪头标信息。假如接收端发现校验和正确,则在一定程度上说明UDP数据报到达了正确主机上的正确端口。UDP伪头标来自于IP头标,因此在计算UDP校验和之前,UDP首先必须从IP层获取有关信息。UDP校验和的计算方式与IP数据报头标校验和计算方法完全相同,UDP的封装和解封装,UDP的封装和解封装,所谓封装实际上是接收端UDP软件将UDP报文交给IP软件后,IP软件在前面加一个头标,构成IP数据报,这一过程相当于将UDP报文装入IP数据报数据区。根据分层原则,接收端收到数据后,将对它进行一个与封装相反的过程,以保证对应层收到完全相同的数据:接收端IP软件收到(从物理接口传来的)跟发送端IP层完全相同的IP数据报,进行相应处理后,去掉头标,将数据部分(IP数据区内容)交给UDP软件(因为IP头中有一个说明协议类型的域,它指明IP数据部分是UDP协议数据),UDP便获得一个与发方UDP数据报相同的报文。UDP数据报中不指定信源主机和信宿主机地址,因为这没有必要,传输层只需识别端口,而不用识别主机,识别主机的工作由网络层(IP软件)完成。,UDP的应用,在只需要简单的数据交换应用中,如DNS服务在不需要关心数据的差错控制和流量控制的应用中,这种情况下一般是由于高层已经提供了这些机制,如TFTP(TrivialFileTransferProtocol)在实时性要求高而可承受一定的数据错误的应用中,如实时的语音传输在广播和组播服务中也使用UDP,TCP协议,(1)TCP协议是为了在主机间实现高可靠性的包交换传输协议(2)TCP与下层和上层协议关系TCP的下层是IP协议,TCP可以根据IP协议提供的服务传送大小不定的数据,IP协议负责对数据进行分段,重组,在多种网络中传送。TCP的上面就是应用程序,上层接口包括一系列类似于操作系统中断的调用。TCP必须解决可靠性,流量控制的问题,必须能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,同时TCP必须解决连接问题,也必须能够解决通信安全性的问题(3)TCP提供面向连接的流传输,TCP报文格式,TCP报文格式字段说明,源端口(16比特):报文段发送者端口号目的端口(16比特):报文段接收者端口号顺序号(32比特):TCP为每个要传送的字节分配一个正整数,称为顺序号。确认号(32比特):当控制位ACK置位时,此域包含的顺序号为接收端希望接收的下一个字节的顺序号。首部长度(4比特):以32比特为单位的报文段首部的长度,即指出数据区在报文段中的位置。保留位(6比特):保留未用,全置为0。,TCP报文格式字段说明(续),控制位(6比特)URG:置位时表示紧急指针字段有效。ACK:置位时表示确认号字段有效。PSH:置位时表示本报文段要求PUSH操作,此时TCP会立即发送缓冲区中的数据,而不必等待缓冲区填满;在接收端,TCP立即把接收到的数据送给应用程序。RST:置位时表示连接复位,用于在连接发生异常时复位连接。SYN:置位时表示与对方同步顺序号。FIN:置位时表示发送方没有数据发送了,用于关闭连接。,TCP报文格式字段说明(续),窗口(16比特):指出接收方可以接收的最大字节数,可以认为是接收端缓冲区的大小。校验和(16比特):用于检测数据是否在传输过程中受到破坏。紧急指针(16比特):当URG位置位时此字段才有效。有效时标识了此报文段中紧急数据最后一个字节相对于此保文段数据区第一个字节的偏移量。可选项:此字段位数是可变的,没用到的位用0填充使其长度为32比特。,TCP可靠性措施,顺序号确认机制滑动窗口机制和流控制拥塞控制超时重传,顺序号,顺序号(Sequencenumber)是一个正整数。当TCP要发送数据时,它随机选择一个初始顺序号,顺序号依次递加,按顺序分配给后续的每个字节的数据。如果发送端初始顺序号(ISN)为x,则它发送的第一个字节的顺序号应该为x+1,顺序号x用于同步顺序号的最大值为232-1。当数据过大,顺序号超过此数,则顺序号对232取模,确认机制,发送方在发送数据时,还启动一个计时器,如果在一定时间内接收不到确认号,发送方将认为数据丢失而重发数据。实际上,TCP不是发送一个数据报就等待一个应答,而是发送一定数量的包再等待确认;接受端也不一定接收一个报文段就发送一个确认,它可以发送一个确认报文对几个接收到的报文段进行确认。这种机制称为“累计确认”,滑动窗口机制和流控制,对于被窗口框住的数据分组,发送端可无延时地发送而不必等待应答的到来窗口是基于字节来操作的,它的大小由接受端来设置,可以控制发送端发送数据的速率和大小。如果接收端的接收缓冲区有限或网络负载过重,则减少窗口通告的值来限制发送端发送数据当接收端每次通告的窗口很小,而发送端每次也只能发出少量的数据时,会出现糊涂窗口症状(Sillywindowsyndrome),糊涂窗口症状,解决糊涂窗口症状的方法:在发送端,防止逐个字节地发送数据,而是收集了一定数量的数据后再打包发送-Nagle算法接收端糊涂窗口的一种解决方法是延迟发送确认另一种解决方法称为Clark方法,它不推迟确认,但是发回的确认的通告窗口都为零,直到空闲缓冲区大小达到最大报文段的长度或达到缓冲区的一半。,TCP的拥塞控制,拥塞也是保证可靠性的一个重要措施。假如无拥塞控制,可能因接收缓冲区溢出而丢失大量数据,导致许多重传。TCP采用可变窗口进行拥塞控制。在Internet中,拥塞是由于网关数据报超载而引起的严重延迟现象,是子网能力不足的体现。一旦发生拥塞,网关将抛弃数据报,导致重传,而大量的重传又会进一步加剧拥塞。这种恶性循环有可能导致整个Internet无法工作,即所谓“拥塞崩溃”(congestioncollapse)。因此简单地采用确认超时重传技术并不能解决传输层的所有问题,TCP还必须提供适当机制以进行拥塞控制。,TCP拥塞控制的基本策略,TCP的拥塞控制也是基于滑动窗口协议的,通过限制发送端向Internet注入报文的速率而达到控制拥塞的目的。TCP通过控制发送窗口的大小控制拥塞。决定发送窗口大小的因素有两个:第一是接收方所通告(advertising)的窗口大小(即在确认中所指出的本端缓冲区大小);第二是发送端的拥塞窗口限制,又叫拥塞窗口。发送窗口的大小是二者中的最小者,即:发送窗口min(接收方通告窗口,拥塞窗口)在非拥塞状态下,拥塞窗口和接收方通告窗口大小相等。一旦发现拥塞,TCP将减小拥塞窗口。,TCP发现拥塞后的解决方案,为迅速抑制拥塞,TCP采取成倍递减拥塞窗口的策略;一旦发现报文丢失,立即将拥塞窗口大小减半;而对于保留在发送窗口中的报文,根据Karn算法,按指数级后退重传定时器。拥塞结束后,TCP又采取一种算术级窗口恢复策略,以避免迅速增加窗口大小造成的振荡。这种策略叫“慢启动”。慢启动的过程是:当在一条新连接或经过一定时间拥塞后开始恢复的连接上传输数据时,都要从大小为1的拥塞窗口开始,之后每收到一个确认,拥塞窗口大小增加1。TCP还附加一条限制:当拥塞窗口增加到原大小的一半时,进入“拥塞避免”状态,减缓增大窗口的速率。在拥塞避免状态,TCP在收到窗口中所有报文的确认后才将拥塞窗口加1。,超时重传,为了确保可靠性,TCP要求接收端对收到的数据进行确认。TCP为每个发送报文段安排了一个定时器并设定一个溢出时间,如果在定时器溢出时还未收到确认信号,发送端则重新发送数据影响确认超时重传最关键的因素在于定时时间片的大小TCP

温馨提示

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

最新文档

评论

0/150

提交评论