(精品)第8章 传输层协议.ppt

上传人:s****8 文档编号:69827281 上传时间:2023-01-09 格式:PPT 页数:46 大小:243KB
返回 下载 相关 举报
(精品)第8章 传输层协议.ppt_第1页
第1页 / 共46页
(精品)第8章 传输层协议.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《(精品)第8章 传输层协议.ppt》由会员分享,可在线阅读,更多相关《(精品)第8章 传输层协议.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第8章 传输层协议8.1 进程间通信进程间通信8.2 TCP段格式段格式8.3 TCP连接的建立和拆除连接的建立和拆除8.4 TCP流量控制流量控制8.5 TCP拥塞控制拥塞控制8.6 TCP差错控制差错控制8.7 TCP状态转换图状态转换图8.8 用户数据报协议用户数据报协议UDP8.1 进程间通信进程间通信由于在一台计算机中同时存在多个进程,要进行进由于在一台计算机中同时存在多个进程,要进行进程间的通信,程间的通信,首先要解决进程的标识问题首先要解决进程的标识问题。TCPTCP和和UDPUDP采用协议采用协议端口端口来标识某一主机上的通信进程。来标识某一主机上的通信进程。必须给出必须给出全

2、局惟一全局惟一的信宿端的进程标识符。的信宿端的进程标识符。主机可主机可以用以用IPIP地址进行标识地址进行标识,IPIP地址是全局惟一的,再给地址是全局惟一的,再给主机上的进程赋予一个主机上的进程赋予一个本地惟一的标识符本地惟一的标识符端口号端口号,二者加起来,便形成了进程的全局惟一标识符。二者加起来,便形成了进程的全局惟一标识符。端口端口:传输层服务访问点:传输层服务访问点TSAP。从内部实现看,端口是一种从内部实现看,端口是一种抽象的软件结构抽象的软件结构(数据数据结构和结构和I/O缓冲区缓冲区)从通信对方看,端口是从通信对方看,端口是通信进程的标识通信进程的标识,应用进,应用进程通过系统

3、调用与端口建立关联后,传输层传给程通过系统调用与端口建立关联后,传输层传给该端口的数据都会被相应的应用进程所接收该端口的数据都会被相应的应用进程所接收从本地应用进程看,端口是进程从本地应用进程看,端口是进程访问传输服务的访问传输服务的入口点入口点。每个端口拥有一个每个端口拥有一个端口号端口号(port number),),端口号端口号是是16比特比特的标识符,因此,端口号的取值范围是从的标识符,因此,端口号的取值范围是从0到到65535。端口分配端口分配有两种基本的方式:全局端口分配和本地有两种基本的方式:全局端口分配和本地端口分配。端口分配。TCP和和UDP都是都是提供进程通信能力提供进程通

4、信能力的传输层协议,的传输层协议,各各有一套有一套端口号,都是从端口号,都是从0到到65535。同一个端口在同一个端口在TCP和和UDP中可能对应于中可能对应于不同不同类型的应类型的应用进程,也可能对应于用进程,也可能对应于相同相同类型的应用进程。为了区类型的应用进程。为了区别别TCP和和UDP的进程,除了给出主机的进程,除了给出主机IP地址和端口号地址和端口号之外,还要之外,还要指明协议指明协议。因特网中要全局惟一地标识一个进程必须采用一个因特网中要全局惟一地标识一个进程必须采用一个三三元组元组:(协议,主机地址,端口号):(协议,主机地址,端口号)网络通信是两个网络通信是两个进程之间的通信

5、进程之间的通信,两个通信的进程构,两个通信的进程构成一个成一个关联关联。这个关联应该包含两个三元组,由于通。这个关联应该包含两个三元组,由于通信双方采用的协议必须是相同的,可以用一个信双方采用的协议必须是相同的,可以用一个五元组五元组来描述两个进程的关联:(协议来描述两个进程的关联:(协议,本地主机地址本地主机地址,本地本地端口号端口号,远地主机地址远地主机地址,远地端口号)远地端口号)因特网通信进程间的因特网通信进程间的相互作用模式相互作用模式:客户客户/服务器模服务器模型型。客户。客户/服务器模型相互服务器模型相互作用的过程作用的过程是:客户向服是:客户向服务器发出服务请求,服务器完成客户

6、所要求的操作,务器发出服务请求,服务器完成客户所要求的操作,然后给出响应。然后给出响应。服务器一般先于客户端启动,为了让客户能够找到服服务器一般先于客户端启动,为了让客户能够找到服务器,服务器必须使用一个务器,服务器必须使用一个客户熟知的地址客户熟知的地址,客户可,客户可以根据此地址向服务器提出服务请求。以根据此地址向服务器提出服务请求。熟知地址的含义:熟知地址的含义:协议协议是双方约定的协议,主机是双方约定的协议,主机IP地地址址是固定且公开的,是固定且公开的,端口号端口号是大家所熟知的。是大家所熟知的。每一个标准的服务器都拥有一个熟知的端口号,不同每一个标准的服务器都拥有一个熟知的端口号,

7、不同主机上相同服务器的端口号是相同的。客户进程一般主机上相同服务器的端口号是相同的。客户进程一般采用采用临时端口号临时端口号,而不采用熟知的端口号。临时端口,而不采用熟知的端口号。临时端口是使用时向操作系统是使用时向操作系统申请申请,由操作系统,由操作系统分配分配,使用使用完完后再后再交交由操作系统管理的端口。因此,只要同一时间由操作系统管理的端口。因此,只要同一时间同一主机上的应用进程数量不超过可分配的临时端口同一主机上的应用进程数量不超过可分配的临时端口数量就能保证系统的正常运行。数量就能保证系统的正常运行。熟知端口所占端口号不多,以全局方式进行分配。熟知端口所占端口号不多,以全局方式进行

8、分配。TCP和和UDP规定,规定,小于小于1024的端口号用作熟知端口,的端口号用作熟知端口,熟知端口又称为熟知端口又称为保留端口保留端口。从从1024到到65535编号的端口为临时端口,临时端口编号的端口为临时端口,临时端口又称为又称为自由端口自由端口。临时端口占全部端口的绝大部分,。临时端口占全部端口的绝大部分,以本地方式进行分配。当进程要与远地进程通信时,以本地方式进行分配。当进程要与远地进程通信时,首先申请一个临时端口,然后根据全局分配的熟知首先申请一个临时端口,然后根据全局分配的熟知端口号与远地服务器建立联系,传输数据。端口号与远地服务器建立联系,传输数据。TCP/IP结合了两种端口

9、分配方式结合了两种端口分配方式,既保证了灵活性,既保证了灵活性,又方便了建立通信进程间的联系。又方便了建立通信进程间的联系。01023Well-known102449151Registered4915265535DynamicTCP要将数据分为分组,要将数据分为分组,TCP所采用的分组称为所采用的分组称为TCP段。段。TCP段不定长段不定长,被封装在,被封装在IP数据报中传输。数据报中传输。IP数数据报不能保证数据的按序到达,还可能造成数据的丢据报不能保证数据的按序到达,还可能造成数据的丢失或毁坏,这些问题经过失或毁坏,这些问题经过TCP协议的处理后,对上层协议的处理后,对上层提供的是提供的是

10、可靠的无差错的服务可靠的无差错的服务。返回返回8.2 TCP段格式段格式TCP将应用层的数据分块并封装成将应用层的数据分块并封装成TCP段进行发送。段进行发送。TCP段段=段首部段首部+数据数据段首部段首部(20到到60字节字节)=定长部分定长部分+变长部分变长部分定长部分定长部分长度:长度:20字节字节变长部分变长部分=选项选项+填充,长度填充,长度:0到到40字节之间。字节之间。TCP段格式中各个字段的含义和作用:段格式中各个字段的含义和作用:TCP伪首部的伪首部的信息来自信息来自IP数据报的首部数据报的首部,协议字段指明,协议字段指明当前协议为当前协议为TCP(6)。TCP段的发送端和接

11、收端在计算段的发送端和接收端在计算校验和时都会加上伪首部信息。若接收端验证校验和是校验和时都会加上伪首部信息。若接收端验证校验和是正确的,则说明数据到达了正确的,则说明数据到达了正确主机上正确协议的正确正确主机上正确协议的正确端口端口。TCP选项选项是变长字段,当前是变长字段,当前TCP使用的选项:使用的选项:选项结束选项结束标志为单字节选项,代码为标志为单字节选项,代码为0,用于表,用于表示选项结束。示选项结束。无操作无操作选项为选项为单字节选项单字节选项,代码为,代码为1,用于选项的填,用于选项的填充,实现充,实现32位对齐。位对齐。最大段大小最大段大小(MSS)选项为选项为多字节选项多字

12、节选项,代码为,代码为2,长度为长度为4字节,最后两个字节用于标识本机能够接收字节,最后两个字节用于标识本机能够接收的段的最大字节数。该值范围为的段的最大字节数。该值范围为0到到65535,默认值,默认值为为536。窗口规模因子窗口规模因子选项为多字节选项,代码为选项为多字节选项,代码为3,长度为,长度为3字节。在字节。在TCP段的首部存在段的首部存在16比特的窗口大小字段,比特的窗口大小字段,但在高吞吐和低延迟的网络中,但在高吞吐和低延迟的网络中,65535字节的窗口仍字节的窗口仍然嫌小。通过在选项中采用窗口规模因子,可以增然嫌小。通过在选项中采用窗口规模因子,可以增加窗口的大小。扩展后的窗

13、口大小为:加窗口的大小。扩展后的窗口大小为:Wn=Wo2fWn为新的窗口大小,为新的窗口大小,Wo为为TCP首部窗口大小字段首部窗口大小字段的值,的值,f为窗口规模因子。为窗口规模因子。时间戳时间戳选项为多字节选项,选项为多字节选项,代码为代码为8,长度为长度为10字节字节。时间戳值字段由源端在发送数据段时填写,信宿端时间戳值字段由源端在发送数据段时填写,信宿端收到后,在确认数据段中将收到的时间戳值填入时收到后,在确认数据段中将收到的时间戳值填入时间戳回显应答字段,信源端根据该时间戳值和当前间戳回显应答字段,信源端根据该时间戳值和当前时间戳可以计算出数据段的往返时间。时间戳可以计算出数据段的往

14、返时间。返回返回8.3 TCP连接的建立和拆除连接的建立和拆除8.3.1 TCP连接的建立连接的建立为了实现数据的为了实现数据的可靠传输可靠传输,TCP要在应用进程间建要在应用进程间建立传输立传输连接连接。从理论上讲,建立传输连接只需要一个请求和一个从理论上讲,建立传输连接只需要一个请求和一个响应就可以了。但是由于通信子网的问题,请求有响应就可以了。但是由于通信子网的问题,请求有可能丢失,为了解决请求的丢失问题,常用的办法可能丢失,为了解决请求的丢失问题,常用的办法是是超时重传超时重传。客户发出连接请求时,启动一个客户发出连接请求时,启动一个定时器定时器,一旦定时,一旦定时器超时,客户将被迫再

15、次发起连接请求,会导致器超时,客户将被迫再次发起连接请求,会导致重重复连接复连接。解决解决重复连接的办法:三次握手方法。重复连接的办法:三次握手方法。三次握手方法要求三次握手方法要求对所有报文进行编号对所有报文进行编号,TCP采用采用的方法是给的方法是给每个字节一个每个字节一个32比特的序号比特的序号。每次建立连接时都产生一个新的每次建立连接时都产生一个新的初始序号初始序号。序号字段位数序号字段位数定定长,序号循环使用,序号字段长,序号循环使用,序号字段位数位数较长较长,当序号循环一周回来时,使用同一序号的旧,当序号循环一周回来时,使用同一序号的旧报文段早已传输完。这样,保证网络中不会同时出报

16、文段早已传输完。这样,保证网络中不会同时出现来自同一源主机的相同序号的两个不同报文段。现来自同一源主机的相同序号的两个不同报文段。建立连接前,建立连接前,服务器端服务器端首先被动打开其熟知的端口,首先被动打开其熟知的端口,对端口进行对端口进行监听监听。当。当客户端客户端要和服务器建立连接时,要和服务器建立连接时,发起一个发起一个主动打开端口主动打开端口的请求(临时端口)。然后进的请求(临时端口)。然后进入入三次握手过程三次握手过程:第一次握手第一次握手:由要建立连接的客户向服务器发出连接:由要建立连接的客户向服务器发出连接请求段,该段首部的请求段,该段首部的同步标志同步标志SYN被置为被置为1

17、,并在首,并在首部中填入本次连接的客户端的部中填入本次连接的客户端的初始段序号初始段序号SEQ(例如例如SEQ=26500)。)。第二次握手第二次握手:服务器收到请求后,发回:服务器收到请求后,发回连接确认连接确认(SYN+ACK),),该段首部中的同步标志该段首部中的同步标志SYN被置为被置为1,表示认可连接,首部中的确认标志,表示认可连接,首部中的确认标志ACK被置为被置为1,表示对所接收的段的确认,与表示对所接收的段的确认,与ACK标志相配合的是准标志相配合的是准备接收的备接收的下一序号下一序号(ACK 26501),),该段还给出了自该段还给出了自己的己的初始序号初始序号(例如(例如S

18、EQ=29010)。)。对请求段的确对请求段的确认认完成了一个方向上连接完成了一个方向上连接。第三次握手第三次握手:客户向服务器发出的:客户向服务器发出的确认确认段,段首部段,段首部中的确认标志中的确认标志ACK被置为被置为1,表示对所接收的段的确,表示对所接收的段的确认,与认,与ACK标志相配合的准备接收的下一序号被设标志相配合的准备接收的下一序号被设置为收到的段序号加置为收到的段序号加1(ACK 29011)。完成了另一个完成了另一个方向上的连接。方向上的连接。8.3.2 TCP连接的拆除连接的拆除连接连接双方都可以发起拆除双方都可以发起拆除连接操作。连接操作。简单地拆除连接可能会造成数据

19、丢失简单地拆除连接可能会造成数据丢失。例如,。例如,A、B两主机已建立连接并传输报文,两主机已建立连接并传输报文,A主机在主机在B主机没有主机没有准备的情况下,单方面发出断开连接请求,并停止准备的情况下,单方面发出断开连接请求,并停止接收该连接上的数据。但断开连接请求的传输要有接收该连接上的数据。但断开连接请求的传输要有一段时间,而在一段时间,而在B主机未收到断开连接请求之前,随主机未收到断开连接请求之前,随时可能向时可能向A主机发送数据,会有丢失数据的可能性。主机发送数据,会有丢失数据的可能性。解决解决:TCP采用和三次握手类似的方法。这里可以将采用和三次握手类似的方法。这里可以将断开连接操

20、作视为在断开连接操作视为在两个方向上分别断开连接操作两个方向上分别断开连接操作构构成。一方发出断开连接请求后并不马上拆除连接,而成。一方发出断开连接请求后并不马上拆除连接,而是等待对方的确认,对方收到断开连接请求后,发送是等待对方的确认,对方收到断开连接请求后,发送确认报文,这时拆除的只是单方向上连接(半连接)。确认报文,这时拆除的只是单方向上连接(半连接)。对方发送完数据后,再通过发送断开连接请求来断开对方发送完数据后,再通过发送断开连接请求来断开另一个方向上的半连接。另一个方向上的半连接。返回返回8.4 TCP流量控制流量控制TCP除了提供除了提供进程通信能力进程通信能力外,主要特点是具有

21、外,主要特点是具有高高可靠性可靠性。TCP在发送端与接收端之间建立一条连接,在发送端与接收端之间建立一条连接,报文需要得到报文需要得到接收端的确认接收端的确认。TCP传输的是一个无传输的是一个无报文丢失、重复和失序的正确的数据流。报文丢失、重复和失序的正确的数据流。TCP采用的最基本的采用的最基本的可靠性技术可靠性技术:流量控制流量控制拥塞控制拥塞控制差错控制差错控制问题问题:在面向连接的传输过程中,发送方与接收方:在面向连接的传输过程中,发送方与接收方在发送报文的速率方面在发送报文的速率方面要协调一致要协调一致。若发送方一味地向网络注入数据,则可能造成网若发送方一味地向网络注入数据,则可能造

22、成网络拥塞或因接收方来不及处理而丢失数据。络拥塞或因接收方来不及处理而丢失数据。若发送方每发出一个报文都等待对方的确认,势若发送方每发出一个报文都等待对方的确认,势必造成效率低下。必造成效率低下。解决解决:滑动窗口协议滑动窗口协议。采用滑动窗口协议既能够。采用滑动窗口协议既能够保保证可靠性证可靠性,又可以,又可以充分利用网络的传输能力充分利用网络的传输能力。这种。这种方案允许方案允许连续传输多个报文连续传输多个报文而不必等待各个报文的而不必等待各个报文的确认,能够连续发送的报文数受到确认,能够连续发送的报文数受到窗口大小的限制窗口大小的限制。滑动窗口协议通过发送方窗口和接收方窗口的配合滑动窗口

23、协议通过发送方窗口和接收方窗口的配合来完成传输控制。来完成传输控制。发送缓存中是一组顺序编号的字节数据,这些数据的一发送缓存中是一组顺序编号的字节数据,这些数据的一部分在部分在发送窗口发送窗口中,另一部分在发送窗口外。图中发送中,另一部分在发送窗口外。图中发送缓存左端和右端空白处表示可以填入数据的空闲缓存,缓存左端和右端空白处表示可以填入数据的空闲缓存,实际上可以将缓存视为左端和右端相连的环。实际上可以将缓存视为左端和右端相连的环。一旦窗口内的部分数据得到确认,窗口便向右滑动,一旦窗口内的部分数据得到确认,窗口便向右滑动,将已确认的数据移到窗口的外面。这些数据所对应的将已确认的数据移到窗口的外

24、面。这些数据所对应的缓冲单元成为空闲单元。窗口右边沿的移动使新的数缓冲单元成为空闲单元。窗口右边沿的移动使新的数据又落入到窗口中,成为可以被连续发送的数据的一据又落入到窗口中,成为可以被连续发送的数据的一部分。部分。接收方的窗口接收方的窗口反映当前能够接收的数据的数量。图反映当前能够接收的数据的数量。图8-9给出了接收方缓存与窗口的示意图。给出了接收方缓存与窗口的示意图。接收端窗口的大小接收端窗口的大小W对应接收端缓存可以继续接收的对应接收端缓存可以继续接收的数据量,它等于接收缓存大小数据量,它等于接收缓存大小M减去缓存中尚未提交减去缓存中尚未提交的数据字节数的数据字节数N,即,即W=M-N。

25、接收方窗口的大小取决于接收方窗口的大小取决于接收方处理数据的速度和接收方处理数据的速度和发送方发送数据的速度,当从缓存取走数据的速度发送方发送数据的速度,当从缓存取走数据的速度低于数据进入缓存的速度时,接收窗口逐渐缩小,低于数据进入缓存的速度时,接收窗口逐渐缩小,反之则逐渐扩大。反之则逐渐扩大。接收方将当前窗口大小通告给发送方接收方将当前窗口大小通告给发送方(利用(利用TCP段段首部的窗口大小字段),发送方根据接收窗口首部的窗口大小字段),发送方根据接收窗口调整调整其发送窗口其发送窗口,使发送方窗口始终小于或等于接收方,使发送方窗口始终小于或等于接收方窗口的大小。窗口的大小。通过使用滑动窗口协

26、议限制发送方一次可以发送的通过使用滑动窗口协议限制发送方一次可以发送的数据量,就可以实现流量控制的目的。这里的关键数据量,就可以实现流量控制的目的。这里的关键是要是要保证发送方窗口小于或等于接收方窗口的大小保证发送方窗口小于或等于接收方窗口的大小。当发送方窗口大小为当发送方窗口大小为1时,每发送一个字节的数据都时,每发送一个字节的数据都要等待对方的确认,这便是要等待对方的确认,这便是简单停等协议简单停等协议。流量控制可以在网络协议的不同层次上实现,流量控制可以在网络协议的不同层次上实现,TCP的流量控制是在传输层上实现的的流量控制是在传输层上实现的端到端的流量控制端到端的流量控制。返回返回8.

27、5 TCP拥塞控制拥塞控制流量控制流量控制是由于接收端不能及时处理数据而引发的是由于接收端不能及时处理数据而引发的控制机制。控制机制。拥塞拥塞是由于网络中的路由器超载而引起的严重延迟是由于网络中的路由器超载而引起的严重延迟现象。现象。拥塞拥塞的发生会造成数据的的发生会造成数据的丢失丢失,数据的丢失,数据的丢失会引起超时会引起超时重传重传,而超时重传的数据又会进一步,而超时重传的数据又会进一步加加剧拥塞剧拥塞,如果不加以控制,最终将会导致系统的,如果不加以控制,最终将会导致系统的崩崩溃溃。拥塞造成的数据丢失,仅仅靠超时重传是无法解决拥塞造成的数据丢失,仅仅靠超时重传是无法解决的。的。因此因此,T

28、CP提供了提供了拥塞控制拥塞控制机制。机制。TCP的的拥塞控制拥塞控制,仍然是利用发送方的窗口来控制,仍然是利用发送方的窗口来控制注入网络的数据流的速度。减缓注入网络的数据流注入网络的数据流的速度。减缓注入网络的数据流后,拥塞就会被解除。后,拥塞就会被解除。引入拥塞控制后,引入拥塞控制后,发送窗口的大小取决于发送窗口的大小取决于两个方面两个方面的因素:的因素:接收方的处理能力接收方的处理能力确认报文所通告的窗口大确认报文所通告的窗口大小(即小(即可用的接收缓存可用的接收缓存的大小)来表示;的大小)来表示;网络的处理能力网络的处理能力发送方所设置的变量发送方所设置的变量拥塞拥塞窗口窗口来表示。发

29、送窗口的大小取通告窗口和拥塞来表示。发送窗口的大小取通告窗口和拥塞窗口中小的一个。窗口中小的一个。发送窗口大小发送窗口大小=min(接收方通告窗口大小,拥塞窗口接收方通告窗口大小,拥塞窗口大小大小)和接收窗口一样,拥塞窗口也处于不断的调整中。和接收窗口一样,拥塞窗口也处于不断的调整中。一旦发现拥塞,一旦发现拥塞,TCP将减小拥塞窗口。将减小拥塞窗口。为了避免和消除拥塞,为了避免和消除拥塞,TCP周而复始地采用周而复始地采用三种策三种策略略来控制拥塞窗口的大小。来控制拥塞窗口的大小。首先是使用首先是使用慢启动策略慢启动策略,在建立连接时拥塞窗口被,在建立连接时拥塞窗口被设置为设置为一个一个最大段

30、大小最大段大小MSS。对于每一个段的确认对于每一个段的确认都会使拥塞窗口都会使拥塞窗口增加一个增加一个MSS,实际上这种增加方实际上这种增加方式是指数级的增加。例如,开始时只能发送一个数式是指数级的增加。例如,开始时只能发送一个数据段,当收到该段的确认后拥塞窗口加大到两个据段,当收到该段的确认后拥塞窗口加大到两个MSS,发送方接着发送两个段,收到这两个段的确发送方接着发送两个段,收到这两个段的确认后,拥塞窗口加大到认后,拥塞窗口加大到4个个MSS,接下来发送接下来发送4个段,个段,拥塞窗口加大到拥塞窗口加大到8个个MSS。当拥塞窗口加大到当拥塞窗口加大到门限值门限值(拥塞发生时拥塞窗口的(拥塞

31、发生时拥塞窗口的一半)时,进入一半)时,进入拥塞避免阶段拥塞避免阶段,在这一阶段,使用,在这一阶段,使用的策略是,的策略是,每收到一个确认,拥塞窗口加大每收到一个确认,拥塞窗口加大1个个MSS,即使确认是针对多个段的,拥塞窗口也只加大即使确认是针对多个段的,拥塞窗口也只加大1个个MSS,这在一定程度上减缓了拥塞窗口的增长。但这在一定程度上减缓了拥塞窗口的增长。但在此阶段,拥塞窗口仍在增长,最终可能导致拥塞。在此阶段,拥塞窗口仍在增长,最终可能导致拥塞。拥塞使重传定时器超时,发送方进入拥塞使重传定时器超时,发送方进入拥塞解决阶段拥塞解决阶段。发送方在进行重传的同时,将门限值调整为拥塞窗发送方在进

32、行重传的同时,将门限值调整为拥塞窗口的一半口的一半,并将拥塞窗口恢复成一个,并将拥塞窗口恢复成一个MSS,然后进然后进入新一轮的循环。入新一轮的循环。返回返回8.6 TCP差错控制差错控制差错控制是差错控制是TCP保证可靠性的手段之一。保证可靠性的手段之一。TCP的差的差错控制错控制包括差错检测和纠正包括差错检测和纠正。TCP处理的差错有数处理的差错有数据被破坏、重复、失序和丢失。据被破坏、重复、失序和丢失。数据被破坏数据被破坏可以通过可以通过TCP的的校验和检测校验和检测出来,接收出来,接收方方丢弃出错的数据丢弃出错的数据,而且,而且不给出确认不给出确认,发送方,发送方定时定时器超时器超时后

33、,后,重发该数据。重发该数据。重复重复数据段一般是由超时重传造成的,数据段一般是由超时重传造成的,接收方可以接收方可以根据序号判断是否是重复数据段根据序号判断是否是重复数据段,对于重复数据段,对于重复数据段只需要简单地只需要简单地丢弃丢弃即可。即可。数据失序数据失序是由于是由于TCP下面的下面的IP协议是无连接的数据报协议是无连接的数据报协议,不能保证数据报的按序到达。协议,不能保证数据报的按序到达。TCP对于提前对于提前到达(前面的数据还未到达)的数据,到达(前面的数据还未到达)的数据,暂不确认,暂不确认,直到前面的数据到达后再一起确认直到前面的数据到达后再一起确认。数据丢失数据丢失错误也是

34、通过错误也是通过超时重传超时重传来进行恢复。但是来进行恢复。但是确认报文段的丢失一般不会造成任何影响,因为确认报文段的丢失一般不会造成任何影响,因为TCP采用的是累计确认,采用的是累计确认,TCP确认针对流中的字节确认针对流中的字节序号,而不是段号。一般情况下,接收方确认已正序号,而不是段号。一般情况下,接收方确认已正确收到的、连续的流前部。对于接下去的数据段的确收到的、连续的流前部。对于接下去的数据段的确认也就包含了对前面数据的确认。若下一个确认确认也就包含了对前面数据的确认。若下一个确认未能在重传定时器超时之前到达发送方,则会出现未能在重传定时器超时之前到达发送方,则会出现重复报文段。重复

35、报文段。重复数据会被接收方鉴别出来(根据重复数据会被接收方鉴别出来(根据序号),并被丢弃序号),并被丢弃。超时重传最关键的因素是超时重传最关键的因素是重传定时器的定时时间片的重传定时器的定时时间片的大小大小。由于在因特网这种大型网络中。由于在因特网这种大型网络中传输延迟变化范传输延迟变化范围很大围很大,从发出数据到收到确认所需的往返时间,从发出数据到收到确认所需的往返时间(Round Tript Time,RTT)动态变化,很难确定。动态变化,很难确定。为了适应传输延迟的动态变化,为了适应传输延迟的动态变化,TCP的重传定时值也的重传定时值也要不断调整。要不断调整。TCP通过测试连接的往返时间

36、,对重传通过测试连接的往返时间,对重传定时值进行修正。定时值进行修正。TCP的重传定时值根据下式进行计算:的重传定时值根据下式进行计算:Timeout=RTT (1)为大于为大于1的常数加权因子的常数加权因子(推荐推荐=2),RTT为估算的为估算的往返时间。往返时间。RTT根据下式进行计算:根据下式进行计算:RTT=RTTo+(1)RTTn (2)返回返回8.7 TCP状态转换图状态转换图TCP建立连接、传输数据和断开连接是一个复杂的建立连接、传输数据和断开连接是一个复杂的过程。为了准确地描述这一过程,可以采用过程。为了准确地描述这一过程,可以采用有限状有限状态机态机。有限状态机包含有限个状态

37、,在某一时刻,。有限状态机包含有限个状态,在某一时刻,机器必然处于某一特定状态,当在一个状态下发生机器必然处于某一特定状态,当在一个状态下发生特定事件时,机器会进入一个新的状态。在进行状特定事件时,机器会进入一个新的状态。在进行状态转换时,机器可以执行一些动作。态转换时,机器可以执行一些动作。图图8-11是是TCP的有限状态机,图中的有限状态机,图中状态状态用方框表示,用方框表示,状态转移状态转移用带箭头的线表示,线旁的说明用斜线分用带箭头的线表示,线旁的说明用斜线分为两部分,斜线前是引起状态转移的为两部分,斜线前是引起状态转移的事件事件,斜线后,斜线后是状态转移时所发出的是状态转移时所发出的

38、动作动作。返回返回8.8 用户数据报协议用户数据报协议UDP用户数据报协议用户数据报协议UDP(User Datagram Protocol)是是TCP/IP传输层的另一个协议。传输层的另一个协议。TCP/IP同时提供同时提供TCP服务和服务和UDP服务的目的是为了给用户更加灵活服务的目的是为了给用户更加灵活的选择。的选择。UDP同同IP协议一样提供协议一样提供无连接数据报传输无连接数据报传输,UDP在在IP协议上增加了协议上增加了进程通信能力进程通信能力。UDP除了提供进程除了提供进程间的通信能力外,间的通信能力外,还提供了简单的差错控制还提供了简单的差错控制。但。但UDP不提供流量控制,也

39、不对不提供流量控制,也不对UDP数据报进行确认。数据报进行确认。8.8.1 UDP数据报格式数据报格式UDP将应用层的数据封装成将应用层的数据封装成UDP数据报进行发送。数据报进行发送。UDP数据报由数据报由首部首部和和数据数据构成。构成。UDP采用采用定长首部定长首部,长度为长度为8个字节个字节。UDP数据报格式如图数据报格式如图8-13所示。所示。UDP建立在建立在IP之上之上,整个,整个UDP数据报被封装在数据报被封装在IP数数据报中传输。虽然据报中传输。虽然16比特的比特的UDP总长度字段可以标总长度字段可以标识识65535字节,但由于字节,但由于IP数据报总长度数据报总长度65535

40、的限制的限制及及IP数据报首部占用数据报首部占用20字节,实际字节,实际UDP最大长度为最大长度为65515字节,字节,UDP最大数据长度为最大数据长度为65507字节字节。(65506)UDP的的校验和校验和字段长度为字段长度为16比特,是比特,是可选字段可选字段,置,置0时表明不对时表明不对UDP进行校验。进行校验。8.8.2 UDP伪首部伪首部UDP数据报的校验和用于实现数据报的校验和用于实现有限的差错控制有限的差错控制。UDP校验和的计算与校验和的计算与TCP相同,计算校验和时,除相同,计算校验和时,除了了UDP数据报本身外,它还加上一个数据报本身外,它还加上一个伪首部伪首部。伪首。伪

41、首部不是部不是UDP数据报的有效成分,只是验证数据报的有效成分,只是验证UDP数据数据报是否传到正确的信宿端的手段。报是否传到正确的信宿端的手段。UDP伪首部的格式如图伪首部的格式如图8-14所示。所示。面向连接面向连接 无连接无连接高可靠高可靠 高效率高效率一次传输交换大量报文一次传输交换大量报文 一次传输交换少量信息一次传输交换少量信息复杂复杂 简单简单表表8-1 TCP和和UDP的特点比较的特点比较传输控制协议传输控制协议TCP 用户数据报协议用户数据报协议UDP本章要点本章要点传输层传输层承上启下,屏蔽通信子网的细节,向上提供通承上启下,屏蔽通信子网的细节,向上提供通用的进程通信服务。

42、用的进程通信服务。传输层是对网络层的加强与弥补传输层是对网络层的加强与弥补。TCP和和UDP是传输层的两大协议是传输层的两大协议。端口分配端口分配有两种基本的方式:全局端口分配和本地端有两种基本的方式:全局端口分配和本地端口分配。口分配。在因特网中采用一个在因特网中采用一个三元组三元组(协议,主机地址,端口(协议,主机地址,端口号)来全局惟一地标识一个进程。用一个号)来全局惟一地标识一个进程。用一个五元组五元组(协(协议议,本地主机地址本地主机地址,本地端口号本地端口号,远地主机地址远地主机地址,远地端远地端口号)来描述两个进程的关联。口号)来描述两个进程的关联。TCP和和UDP都是提供进程通

43、信能力的传输层协议。它都是提供进程通信能力的传输层协议。它们各有一套们各有一套端口号端口号,两套端口号相互独立,都是,两套端口号相互独立,都是从从0到到65535。TCP和和UDP在计算校验和时引入在计算校验和时引入伪首部伪首部的目的是为了的目的是为了能够验证数据是否传送到了正确的信宿端。能够验证数据是否传送到了正确的信宿端。为了实现数据的可靠传输,为了实现数据的可靠传输,TCP在应用进程间建立在应用进程间建立传输连接。传输连接。TCP在建立连接时采用在建立连接时采用三次握手方法解三次握手方法解决重复连接的问题决重复连接的问题。在拆除连接时采用。在拆除连接时采用四次握手方四次握手方法解决数据丢

44、失问题法解决数据丢失问题。建立连接前,服务器端首先建立连接前,服务器端首先被动打开其熟知的端口被动打开其熟知的端口,对端口进行监听。当客户端要和服务器建立连接时,对端口进行监听。当客户端要和服务器建立连接时,发出一个主动打开端口的请求,客户端一般使用临发出一个主动打开端口的请求,客户端一般使用临时端口。时端口。TCP采用的最基本的采用的最基本的可靠性技术可靠性技术包括流量控制、拥包括流量控制、拥塞控制和差错控制。塞控制和差错控制。TCP采用采用滑动窗口协议实现流量控制滑动窗口协议实现流量控制,滑动窗口协,滑动窗口协议通过发送方窗口和接收方窗口的配合来完成传输议通过发送方窗口和接收方窗口的配合来完成传输控制。控制。TCP的的拥塞控制拥塞控制利用发送方的窗口来控制注入网络利用发送方的窗口来控制注入网络的数据流的速度。发送窗口的大小取通告窗口和拥的数据流的速度。发送窗口的大小取通告窗口和拥塞窗口中小的一个。塞窗口中小的一个。TCP通过通过差错控制差错控制解决数据的毁坏、重复、失序和解决数据的毁坏、重复、失序和丢失等问题。丢失等问题。UDP在在IP协议上增加了进程通信能力。此外协议上增加了进程通信能力。此外UDP通通过可选的校验和提供简单的差错控制。但过可选的校验和提供简单的差错控制。但UDP不提不提供流量控制和数据报确认供流量控制和数据报确认。返回返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁