TCPIP原理与应用-第8章-传输层协议

上传人:艳*** 文档编号:242973179 上传时间:2024-09-13 格式:PPT 页数:62 大小:360.50KB
返回 下载 相关 举报
TCPIP原理与应用-第8章-传输层协议_第1页
第1页 / 共62页
TCPIP原理与应用-第8章-传输层协议_第2页
第2页 / 共62页
TCPIP原理与应用-第8章-传输层协议_第3页
第3页 / 共62页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章 传输层协议,网络层用,IP,数据报,统一了链路层的数据帧,用,IP,地址,统一了链路层的,MAC,地址,但网络层,没有对服务进行统一,。,由于历史和经济的原因,通信子网往往由电信运营商负责建立、维护并对外提供服务,,用户无法对通信子网进行控制,。,不同的通信子网在,服务和服务质量,QoS,上存在差异,,用户只有通过传输层对通信子网的服务加以,弥补和加强,,屏蔽通信子网的差异,向上,提供一个标准的、完善的服务界面,。,传输层的,目的,:弥补和加强通信子网服务。,弥补,是针对,服务类型,而言的,传输层提供,端到端,进程间的通信。,加强,主要是针对,QoS,而言的,通常指提高服务的可靠性。,但是,高可靠性往往伴随着较大的开销,。因此,传输层通常,提供多种不同类型的服务,让用户选择。,在,TCP/IP,协议的传输层,提供了,面向连接的传输控制协议,TCP,和,无连接的用户数据报协议,UDP,。,TCP,和,UDP,有不同的,适用范围,:,TCP,适用于可靠性较差的广域网,,UDP,适用于可靠性较高的局域网。,第,8,章 传输层协议,8.1,进程间通信,8.2,TCP,段格式,8.3,TCP,连接的建立和拆除,8.4,TCP,流量控制,8.5,TCP,拥塞控制,8.6,TCP,差错控制,8.7,TCP,状态转换图,8.8,用户数据报协议,UDP,8.1,进程间通信,传输层以下各层只提供相邻机器的点到点传输,而传输层提供了,端到端的数据传输,,这里的端到端不仅是源主机到目的主机的端到端通信,而且是源进程到目的进程的端到端通信。,在一台计算机中同时存在多个进程,要进行进程间的通信,,首先要解决进程的标识问题,。,TCP,和,UDP,采用协议,端口,来标识某一主机上的通信进程。,必须给出,全局惟一,的信宿端的进程标识符。,主机可以用,IP,地址进行标识,,,IP,地址是全局惟一的,再给主机上的进程赋予一个,本地惟一的标识符,端口号,,二者加起来,形成了进程的全局惟一标识符。,端口,:,从内部实现看,端口是一种,抽象的软件结构,(,数据结构和,I/O,缓冲区,),从通信对方看,端口是,通信进程的标识,,应用进程通过系统调用与端口建立关联后,传输层传给该端口的数据都会被相应的应用进程所接收,从本地应用进程看,端口是进程,访问传输服务的入口点,。,每个端口拥有一个,端口号,(,port number,),,端口号是,16,比特,的标识符,因此,端口号的取值范围是从,0,到,65535,。,端口分配,有两种基本的方式:全局端口分配和本地端口分配。,全局端口分配,:集中控制,由,权威管理机构,统一分配。,优点,:特定应用程序对应的端口是,众所周知,的,方便对进程的寻址。,缺点,:不能适应大量且变化迅速的端口使用环境,即使端口号再多,也无法满足无限制发展的应用程序要求,而且任何变化都会带来较大的管理工作量。,本地端口分配,:进程需要访问传输服务时,向本地操作系统提出,动态申请,,操作系统返回一个本地惟一的端口号,进程通过系统调用将自己和相应端口号关联起来;,静态指定,。,优点,:灵活方便,不受应用程序数量的限制。,缺点,:其他主机难以得知分配结果。,TCP,和,UDP,都是,提供进程通信能力,的传输层协议,,各有一套,端口号,都是从,0,到,65535,。,同一个端口在,TCP,和,UDP,中可能对应于,不同,类型的应用进程,也可能对应于,相同,类型的应用进程。为了区别,TCP,和,UDP,的进程,除了给出主机,IP,地址和端口号之外,还要,指明协议,。,因特网中要全局惟一地标识一个进程必须采用一个,三元组,:(协议,主机地址,端口号),网络通信是两个,进程之间的通信,,两个通信的进程构成一个,关联,。这个关联应该包含两个三元组,由于通信双方采用的协议必须是相同的,可以用一个,五元组,来描述两个进程的关联:(协议,本地主机地址,本地端口号,远地主机地址,远地端口号),因特网通信进程间的,相互作用模式,:,客户,/,服务器模型,。客户,/,服务器模型相互,作用的过程,是:客户向服务器发出服务请求,服务器完成客户所要求的操作,然后给出响应。,服务器一般先于客户端启动,为了让客户能够找到服务器,服务器必须使用一个,客户熟知的地址,,客户可以根据此地址向服务器提出服务请求。,熟知地址的含义:,协议,是双方约定的协议,主机,IP,地址,是固定且公开的,,端口号,是大家所熟知的。 (,知名端口号,),每一个标准的服务器都拥有一个熟知的端口号,(,知名端口号,),,不同主机上相同服务器的端口号是相同的。客户进程一般采用,临时端口号,,而不采用熟知的端口号。临时端口是使用时向操作系统,申请,,由操作系统,分配,,,使用,完后再,交,由操作系统管理的端口。因此,只要同一时间同一主机上的应用进程数量不超过可分配的临时端口数量就能保证系统的正常运行。,熟知端口所占端口号不多,以全局方式进行分配。,TCP,和,UDP,规定,,小于,1024,的端口号用作熟知端口,熟知端口又称为,保留端口,。,从,1024,到,65535,编号的端口为临时端口,临时端口又称为,自由端口,。临时端口占全部端口的绝大部分,以本地方式进行分配。当进程要与远地进程通信时,首先申请一个临时端口,然后根据全局分配的熟知端口号与远地服务器建立联系,传输数据。,TCP/IP,结合了两种端口分配方式,,既保证了灵活性,又方便了建立通信进程间的联系。,01023,Well-known,102449151,Registered,4915265535,Dynamic,套接字,socket,:,系统提供的进程通信编程界面,支持客户,/,服务器模型。,socket,地址,提供了进程通信的端点。客户和服务器进程通信之前,双方先各自创建一个端点,构成各自的半关联,然后客户根据服务器的熟知地址建立,socket,连接。一个,socket,连接,可以用一个,完整的关联,描述:,(协议,本地主机地址,本地端口号,远地主机地址,远地端口号),每个,socket,有一个由操作系统分配的,本地惟一的,socket,号,。,TCP,是,面向流的协议,。数据在建立的连接之上按顺序发送,并且按顺序到达信宿。,TCP,要将数据分为分组,,TCP,所采用的分组称为,TCP,段。,TCP,段不定长,,被封装在,IP,数据报中传输。,IP,数据报不能保证数据的按序到达,还可能造成数据的丢失或毁坏,这些问题经过,TCP,协议的处理后,对上层提供的是,可靠的无差错的服务,。,返回,8.2 TCP,段格式,TCP,将应用层的数据分块并封装成,TCP,段进行发送。,TCP,段,=,段首部,+,数据,段首部,(20,到,60,字节,)=,定长部分,+,变长部分,定长部分,长度:,20,字节,变长部分,=,选项,+,填充,长度,:0,到,40,字节之间。,TCP,段格式中各个字段的含义和作用:,源端口,:,16,比特,主机中发送本,TCP,数据段的应用程序的端口号。,目的端口,:,16,比特,接收本,TCP,数据段的应用程序的端口号。,序号,:,32,比特,指出段中的数据部分在发送端数据流中的位置。也就是发送的数据部分,第一个字节,的序号。,确认号,:,32,比特,指出接收端希望收到对方下次发送的数据的第一个字节的序号。这个序号表明该序号以前的数据已经被正确接收。,TCP,采用,载答技术,,,在发送的数据段中捎带上对对方数据的确认。,HLEN,(,首部长度,),:,4,比特,指出以,32,位字长为单位的段首部长度。,TCP,段首部包含了选项这一变长的字段,根据,HLEN,可以确定首部和数据的分界。,TCP,段首部的,定长部分为,20,个字节,,因此,不带选项和填充字段的,IP,数据报的首部长度应该是,5,。,4,比特的首部长度决定了除去定长部分后,,选项和填充不能超过,10,个单位长度(,40,字节),。,保留,:,6,比特,留作将来使用。,控制,:,6,比特,每一位都有特定的含义,指出段的,目的与内容,。,URG,:,紧急位,,和紧急指针字段配合使用,,当,URG,位置,1,时,表明此报文要尽快传送,而不按原排队次序发送,此时紧急指针字段有效,紧急指针指出本报文段中紧急数据的最后一个字节。,ACK,:,确认位,,和确认号字段配合使用,,当,ACK,位置,1,时,确认号字段有效。,PSH,:,推送位,当,PSH,位置,1,时,发送方将立即发送缓冲区中的数据,而不等待后续数据构成一个更大的段,接收方一旦收到,PSH,位为,1,的段,就立即将接收缓冲区中的数据提交给应用程序,而不等待后续数据的到达。,注意,:,PSH,位和,URG,位的差异。,PSH,位,在,Telnet,中用得较多,每当用户从键盘输入一个字符,都希望立即发送给服务器,并立即提交给应用程序。此时将,PSH,位置,1,,就可以使发送方,TCP,不必等待更多的数据以构成特定大小的段,接收同样也是根据,PSH,位立即将缓冲区中的数据提交给应用程序。尽管如此,,数据的发送和提交仍是按数据的先后次序进行处理的,。,紧急操作,则不同,当,URG,位置,1,时,要求紧急数据被优先发送,并在接收方被优先提交。例如,当发送端发现前面的操作存在问题,需要紧急停止操作时,可以将终止操作命令(,Control+C,),通过,URG,位置,1,的数据段发出,紧急数据将被插入到当前段的最前面进行发送,接收方根据紧急指针将紧急数据抽取出来立即提交给应用程序。,紧急数据可以不按顺序排队地进行优先处理,。,RST,:,复位位,当,RST,位置,1,时,表明有严重差错,必须释放连接。,SYN,:,同步位,当,SYN,位置,1,时,表示请求建立连接。,FIN,:,终止位,当,FIN,位置,1,时,表明数据已经发送完,请求释放连接。,窗口大小,:,16,比特,用于向对方通告当前本机的接收缓冲区的大小(以字节为单位)。,校验和,:,16,比特。校验,范围,包括段首部、数据以及伪首部。,计算方法,与,IP,数据报首部校验和计算相同。,计算校验和时,引入伪首部的目的,是验证,TCP,数据段是否传送到了正确的信宿端。由于,TCP,数据段本身只包含目的端口号,不能构成一个完整的信宿端应用进程的标识。,TCP,伪首部的,信息主要来自,IP,数据报的首部,,协议字段指明当前协议为,TCP(6),。,TCP,段的发送端和接收端在计算校验和时都会加上伪首部信息。若接收端验证校验和是正确的,则说明数据到达了,正确主机上正确协议的正确端口,。,TCP,选项,是变长字段,当前,TCP,使用的选项:,选项结束,标志为单字节选项,代码为,0,,用于表示选项结束。,无操作,选项为,单字节选项,,代码为,1,,用于选项的填充,实现,32,位对齐。,最大段大小,(,MSS,),选项为,多字节选项,,代码为,2,,长度为,4,字节,最后两个字节用于标识,本机能够接收的段的最大字节数,。该值范围为,0,到,65535,,默认值为,536,。,窗口规模因子,选项为多字节选项,代码为,3,,长度为,3,字节。在,TCP,段的首部存在,16,比特的窗口大小字段,但在高吞吐和低延迟的网络中,,65535,字节的窗口仍然嫌小。通过在选项中采用窗口规模因子,可以增加窗口的大小。扩展后的窗口大小为:,Wn,=Wo2,f,Wn,为新的窗口大小,,Wo,为,TCP,首部窗口大小字段的值,,f,为窗口规模因子。,时间戳,选项为多字节选项,,代码为,8,,,长度为,10,字节,。时间戳值字段由源端在发送数据段时填写,信宿端收到后,在确认数据段中将收到的时间戳值填入时间戳回显应答字段,信源端根据该时间戳值和当前时间戳可以计算出数据段的往返时间。,返回,8.3 TCP,连接的建立和拆除,8.3.1 TCP,连接的建立,为了实现数据的,可靠传输,,,TCP,要在应用进程间建立传输,连接,。,从理论上讲,建立传输连接只需要一个请求和一个响应就可以了。但是由于通信子网的问题,请求有可能丢失,为了解决请求的丢失问题,常用的办法是,超时重传,。,客户发出连接请求时,启动一个,定时器,,一旦定时器超时,客户将被迫再次发起连接请求,会导致,重复连接,。,解决,重复连接的办法:三次握手方法。,三次握手方法要求,对所有报文进行编号,,,TCP,采用的方法是给,每个字节一个,32,比特的序号,。,每次建立连接时都产生一个新的,初始序号,。,序号字段位数,定,长,序号循环使用,序号字段,位数较长,,当序号循环一周回来时,使用同一序号的旧报文段早已传输完。这样,保证网络中不会同时出现来自同一源主机的相同序号的两个不同报文段。,建立连接前,,服务器端,首先被动打开其熟知的端口,对端口进行,监听,。当,客户端,要和服务器建立连接时,发起一个,主动打开端口,的请求(临时端口)。然后进入,三次握手过程,:,第一次握手,:由要建立连接的客户向服务器发出连接请求段,该段首部的,同步标志,SYN,被置为,1,,并在首部中填入本次连接的客户端的,初始段序号,SEQ,(,例如,SEQ=26500,)。,第二次握手,:服务器收到请求后,发回,连接确认,(,SYN+ACK,),,该段首部中的同步标志,SYN,被置为,1,,表示认可连接,首部中的确认标志,ACK,被置为,1,,表示对所接收的段的确认,与,ACK,标志相配合的是准备接收的,下一序号,(,ACK 26501,),,该段还给出了自己的,初始序号,(例如,SEQ=29010,)。,对请求段的确认,完成了一个方向上连接,。,第三次握手,:客户向服务器发出的,确认,段,段首部中的确认标志,ACK,被置为,1,,表示对所接收的段的确认,与,ACK,标志相配合的准备接收的下一序号被设置为收到的段序号加,1(ACK 29011),。,完成了另一个方向上的连接。,8.3.2 TCP,连接的拆除,连接,双方都可以发起拆除,连接操作。,简单地拆除连接可能会造成数据丢失,。例如,,A,、,B,两主机已建立连接并传输报文,,A,主机在,B,主机没有准备的情况下,单方面发出断开连接请求,并停止接收该连接上的数据。但断开连接请求的传输要有一段时间,而在,B,主机未收到断开连接请求之前,随时可能向,A,主机发送数据,会有丢失数据的可能性。,解决,:,TCP,采用和三次握手类似的方法。这里可以将断开连接操作视为在,两个方向上分别断开连接操作,构成。一方发出断开连接请求后并不马上拆除连接,而是等待对方的确认,对方收到断开连接请求后,发送确认报文,这时拆除的只是单方向上连接(半连接)。对方发送完数据后,再通过发送断开连接请求来断开另一个方向上的半连接。,返回,8.4 TCP,流量控制,TCP,除了提供,进程通信能力,外,主要特点是具有,高可靠性,。,TCP,在发送端与接收端之间建立一条连接,报文需要得到,接收端的确认,。,TCP,传输的是一个无报文丢失、重复和失序的正确的数据流。,TCP,采用的最基本的,可靠性技术,:,流量控制,拥塞控制,差错控制,问题,:在面向连接的传输过程中,发送方与接收方在发送报文的速率方面,要协调一致,。,若发送方一味地向网络注入数据,则可能造成网络拥塞或因接收方来不及处理而丢失数据。,若发送方每发出一个报文都等待对方的确认,势必造成效率低下。,解决,:,滑动窗口协议,。采用滑动窗口协议既能够,保证可靠性,,又可以,充分利用网络的传输能力,。这种方案允许,连续传输多个报文,而不必等待各个报文的确认,能够连续发送的报文数受到,窗口大小的限制,。,滑动窗口协议通过,发送方窗口和接收方窗口的配合,来完成传输控制。,发送缓存中是一组顺序编号的字节数据,这些数据的一部分在,发送窗口,中,另一部分在发送窗口外。图中发送缓存左端和右端空白处表示可以填入数据的空闲缓存,实际上可以将缓存视为左端和右端相连的环。,一旦窗口内的部分数据得到确认,窗口便向右滑动,将已确认的数据移到窗口的外面。这些数据所对应的缓冲单元成为空闲单元。窗口右边沿的移动使新的数据又落入到窗口中,成为可以被连续发送的数据的一部分。,接收方的窗口,反映当前能够接收的数据的数量。图,8-9,给出了接收方缓存与窗口的示意图。,接收端窗口的大小,W,对应接收端缓存可以继续接收的数据量,它等于接收缓存大小,M,减去缓存中尚未提交的数据字节数,N,,即,W=M-,N,。,接收方窗口的大小取决于,接收方处理数据的速度和发送方发送数据的速度,当从缓存取走数据的速度低于数据进入缓存的速度时,接收窗口逐渐缩小,反之则逐渐扩大。,接收方将当前窗口大小通告给发送方,(利用,TCP,段首部的窗口大小字段),发送方根据接收窗口,调整其发送窗口,,使发送方窗口始终小于或等于接收方窗口的大小。,通过使用滑动窗口协议限制发送方一次可以发送的数据量,就可以实现流量控制的目的。这里的关键是要,保证发送方窗口小于或等于接收方窗口的大小,。,当发送方窗口大小为,1,时,每发送一个字节的数据都要等待对方的确认,这便是,简单停等协议,。,流量控制可以在网络协议的不同层次上实现,,TCP,的流量控制是在传输层上实现的,端到端的流量控制,。,返回,8.5 TCP,拥塞控制,流量控制,是由于接收端不能及时处理数据而引发的控制机制。,拥塞,是由于网络中的路由器超载而引起的严重延迟现象。,拥塞,的发生会造成数据的,丢失,,数据的丢失会引起超时,重传,,而超时重传的数据又会进一步,加剧拥塞,,如果不加以控制,最终将会导致系统的,崩溃,。,拥塞造成的数据丢失,仅仅靠超时重传是无法解决的。,因此,TCP,提供了,拥塞控制,机制。,TCP,的,拥塞控制,,仍然是利用发送方的窗口来控制注入网络的数据流的速度。减缓注入网络的数据流后,拥塞就会被解除。,引入拥塞控制后,,发送窗口的大小取决于,两个方面的因素:,接收方的处理能力,确认报文所通告的窗口大小(即,可用的接收缓存,的大小)来表示;,网络的处理能力,发送方所设置的变量,拥塞窗口,来表示。,发送窗口大小取通告窗口和拥塞窗口中小的一个。,发送窗口大小,=min(,接收方通告窗口大小,拥塞窗口大小,),和接收窗口一样,,拥塞窗口也处于不断的调整,中。一旦发现拥塞,,TCP,将减小拥塞窗口。,为了避免和消除拥塞,,TCP,周而复始地采用,三种策略,来控制拥塞窗口的大小。,首先是使用,慢启动策略,,在建立连接时拥塞窗口被设置为,一个,最大段大小,MSS,。,对于每一个段的确认都会使拥塞窗口,增加一个,MSS,,,实际上这种增加方式是指数级的增加。例如,开始时只能发送一个数据段,当收到该段的确认后拥塞窗口加大到两个,MSS,,,发送方接着发送两个段,收到这两个段的确认后,拥塞窗口加大到,4,个,MSS,,,接下来发送,4,个段,拥塞窗口加大到,8,个,MSS,。,当拥塞窗口加大到,门限值,(拥塞发生时拥塞窗口的一半)时,进入,拥塞避免阶段,,在这一阶段,使用的策略是,,每个收到确认的往返延迟,拥塞窗口加大,1,个,MSS,,,即使确认是针对多个段的,拥塞窗口也只加大,1,个,MSS,,,这在一定程度上减缓了拥塞窗口的增长。但在此阶段,拥塞窗口仍在增长,最终可能导致拥塞。,拥塞使重传定时器超时,,发送方进入,拥塞解决阶段,。,发送方在进行重传,的同时,将,门限值,调整为拥塞窗口的一半,并将,拥塞窗口,恢复成一个,MSS,,,然后进入新一轮的循环。,返回,8.6 TCP,差错控制,差错控制是,TCP,保证可靠性的手段之一。,TCP,的差错控制,包括差错检测和纠正,。,TCP,处理的差错有数据被破坏、重复、失序和丢失。,数据被破坏,可以通过,TCP,的,校验和检测,出来,接收方,丢弃出错的数据,,而且,不给出确认,,发送方,定时器超时,后,,重发该数据。,重复,数据段一般是由超时重传造成的,,接收方可以根据序号判断是否是重复数据段,,对于重复数据段只需要简单地,丢弃,即可。发确认。,数据失序,是由于,TCP,下面的,IP,协议是无连接的数据报协议,不能保证数据报的按序到达。,TCP,对于提前到达(前面的数据还未到达)的数据,,暂不确认,直到前面的数据到达后再一起确认,。,数据丢失,错误也是通过,超时重传,来进行恢复。但是确认报文段的丢失一般不会造成任何影响,因为,TCP,采用的是,累计确认,,,TCP,确认针对流中的字节序号,而不是段号。一般情况下,接收方确认已正确收到的、连续的流前部。对于接下去的数据段的确认也就包含了对前面数据的确认。若下一个确认未能在重传定时器超时之前到达发送方,则会出现重复报文段。,重复数据会被接收方鉴别出来(根据序号),并被丢弃,。,超时重传最关键的因素是,重传定时器的定时时间片的大小,。由于在因特网这种大型网络中,传输延迟变化范围很大,,从发出数据到收到确认所需的往返时间,(Round,Tript,Time,,,RTT),动态变化,很难确定。,为了适应传输延迟的动态变化,,TCP,的重传定时值也要不断调整。,TCP,通过测试连接的往返时间,对重传定时值进行修正。,TCP,的重传定时值根据下式进行计算:,Timeout= RTT (1),为大于,1,的常数加权因子,(,推荐,=2),,,RTT,为估算的往返时间。,RTT,根据下式进行计算:,RTT=RTTo+(1,)RTTn,(2),RTTo,是上一次往返时间的估算值,,RTTn,是实际测出的前一个段的往返时间。,是加权因子,(0,1),。,当,的取值,趋向,0,时,,RTT,主要考虑当前新测出的往返时间;,当,的取值,趋向,1,时,,RTT,主要考虑历史的往返时间。,加权因子是为了在历史的,RTT,和新测得的,RTT,间进行折中。,返回,8.7 TCP,状态转换图,TCP,建立连接、传输数据和断开连接是一个复杂的过程。为了准确地描述这一过程,可以采用,有限状态机,。有限状态机包含有限个状态,在某一时刻,机器必然处于某一特定状态,当在一个状态下发生特定事件时,机器会进入一个新的状态。在进行状态转换时,机器可以执行一些动作。,图,8-11,是,TCP,的有限状态机,图中,状态,用方框表示,,状态转移,用带箭头的线表示,线旁的说明用斜线分为两部分,斜线前是引起状态转移的,事件,,斜线后是状态转移时所发出的,动作,。,CLOSED,:,无连接状态。,LISTEN,:,监听状态,等待连接请求,SYN,。,SYN-SENT,:,已发送连接请求,SYN,状态,等待确认,ACK,。,SYN-RCVD,:,已收到送连接请求,SYN,状态。,ESTABLISHED,:,已建立连接状态。,FIN-WAIT-1,:,应用程序要求关闭连接,断开请求,FIN,已经发出状态。,FIN-WAIT-2,:,已关闭半连接状态,等待对方关闭另一个半连接。,CLOSING,:,双方同时决定关闭连接状态。,TIME-WAIT,:,等待超时状态。,CLOSE-WAIT,:,等待关闭连接状态,等待来自应用程序的关闭要求。,LAST-ACK,:,等待关闭确认状态。,图,8-11,包含了客户和服务器的状态和转移,如果将客户端和服务器的状态转换图分开来,再加入一些交互的报文描述,就可以更清楚地看到通信双方连接的建立、使用和关闭过程。图,8-12,给出了客户端和服务器各自的状态转换图。,服务器被动打开,客户端主动打开,经过三次握手建立连接,然后交换数据,最后经过四次握手断开连接的完整过程。,返回,8.8,用户数据报协议,UDP,用户数据报协议,UDP,(,User Datagram Protocol,)是,TCP/IP,传输层的另一个协议。,TCP/IP,同时提供,TCP,服务和,UDP,服务的目的是为了给用户更加灵活的选择。,UDP,同,IP,协议一样提供,无连接数据报传输,,,UDP,在,IP,协议上增加了,进程通信能力,。,UDP,除了提供进程间的通信能力外,,还提供了简单的差错控制,。但,UDP,不提供流量控制,也不对,UDP,数据报进行确认。,由于,UDP,不解决可靠性问题,,所以,UDP,的运行环境,应该是高可靠性、低延迟的网络。如果是运行在不可靠的通信网络上,那么,UDP,上面的应用程序必须能够解决报文毁坏、丢失、重复、失序以及流量控制等可靠性问题。,UDP,最吸引人的地方在于它的,高效率,。,UDP,是一个非常简单的协议,由于发送数据报时不需要建立连接,所以开销很小。,UDP,往往用在交易型应用中,一次交易一般只需要一个来回的两个报文交换即可完成。,8.8.1 UDP,数据报格式,UDP,将应用层的数据封装成,UDP,数据报进行发送。,UDP,数据报由,首部,和,数据,构成。,UDP,采用,定长首部,,长度为,8,个字节,。,UDP,数据报格式如图,8-13,所示。,源端口,字段长度为,16,比特,定义主机中发送本,UDP,数据报的应用程序的端口号。当不需要返回数据时,该字段可置为,0,。,目的端口,字段长度为,16,比特,定义接收本,UDP,数据报的应用程序的端口号。,客户端的端口号一般用临时端口号,服务器一般采用熟知端口号,。,UDP,总长度,字段为,16,比特,以字节为单位指示整个,UDP,数据报的长度,其最小值为,8,,是不含数据的,UDP,首部长度。,UDP,建立在,IP,之上,,整个,UDP,数据报被封装在,IP,数据报中传输。虽然,16,比特的,UDP,总长度字段可以标识,65535,字节,但由于,IP,数据报总长度,65535,的限制及,IP,数据报首部占用,20,字节,实际,UDP,最大长度为,65515,字节,,UDP,最大数据长度为,65507,字节,。(,65506,),UDP,的,校验和,字段长度为,16,比特,是,可选字段,,置,0,时表明不对,UDP,进行校验。,8.8.2 UDP,伪首部,UDP,数据报的校验和用于实现,有限的差错控制,。,UDP,校验和的计算与,TCP,相同,计算校验和时,除了,UDP,数据报本身外,它还加上一个,伪首部,。伪首部不是,UDP,数据报的有效成分,只是验证,UDP,数据报是否传到正确的信宿端的手段。,UDP,伪首部的格式如图,8-14,所示。,UDP,数据报的发送端和接收端在计算校验和时都加上伪首部信息。若接收端验证校验和是正确的,则说明数据到达了,正确主机上正确协议的正确端口,。,8,比特全,0,字段,起填充作用,目的是使伪首部的长度为,16,比特的整数倍。,协议字段,指明当前协议为,UDP,,,UDP,协议的值为,17,。,UDP,总长度字段,以字节为单位指明,UDP,数据报的长度,该长度不包括伪首部在内。,面向连接,无连接,高可靠,高效率,一次传输交换大量报文,一次传输交换少量信息,复杂 简单,表,8-1 TCP,和,UDP,的特点比较,传输控制协议,TCP,用户数据报协议,UDP,本章要点,传输层,承上启下,屏蔽通信子网的细节,向上提供通用的进程通信服务。,传输层是对网络层的加强与弥补,。,TCP,和,UDP,是传输层的两大协议,。,端口分配,有两种基本的方式:全局端口分配和本地端口分配。,在因特网中采用一个,三元组,(协议,主机地址,端口号)来全局惟一地标识一个进程。用一个,五元组,(协议,本地主机地址,本地端口号,远地主机地址,远地端口号)来描述两个进程的关联。,TCP,和,UDP,都是提供进程通信能力的传输层协议。它们各有一套,端口号,,两套端口号相互独立,都是,从,0,到,65535,。,TCP,和,UDP,在计算校验和时引入,伪首部,的目的是为了能够验证数据是否传送到了正确的信宿端。,为了实现数据的可靠传输,,TCP,在应用进程间建立传输连接。,TCP,在建立连接时采用,三次握手方法解决重复连接的问题,。在拆除连接时采用,四次握手方法解决数据丢失问题,。,建立连接前,服务器端首先,被动打开其熟知的端口,,对端口进行监听。当客户端要和服务器建立连接时,发出一个主动打开端口的请求,客户端一般使用临时端口。,TCP,采用的最基本的,可靠性技术,包括流量控制、拥塞控制和差错控制。,TCP,采用,滑动窗口协议实现流量控制,,滑动窗口协议通过发送方窗口和接收方窗口的配合来完成传输控制。,TCP,的,拥塞控制,利用发送方的窗口来控制注入网络的数据流的速度。发送窗口的大小取通告窗口和拥塞窗口中小的一个。,TCP,通过,差错控制,解决数据的毁坏、重复、失序和丢失等问题。,UDP,在,IP,协议上增加了进程通信能力。此外,UDP,通过可选的校验和提供简单的差错控制。但,UDP,不提供流量控制和数据报确认 。,返回,习题,8-1,为什么常用的服务器的端口号都采用熟知端口号,而客户端一般采用临时端口号,?,8-2 TCP,段首部中的序号和确认号的含义和作用是什么?,8-3 TCP,段首部中的控制字段各位的含义和作用是什么?,8-4 TCP,包含哪些选项?这些选项的作用是什么?,8-5,解释滑动窗口协议是如何实现流量控制的。,8-6,为了避免和消除拥塞,,TCP,采用了哪些策略来控制拥塞窗口?,8-7,说明图,8-12,中客户端的状态转换过程。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!