《TCPIP基本原理传输层课件.pptx》由会员分享,可在线阅读,更多相关《TCPIP基本原理传输层课件.pptx(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4-1中国科学技术大学 远程教育本章学习要求本章学习要求:掌掌握握:端端口口、周周知知端端口口号号、TCPTCP地地址址、MSSMSS、RTTRTT、三三次次握手、套接字、慢启动等概念;握手、套接字、慢启动等概念;掌握:掌握:TCPTCP的重传机制原理的重传机制原理掌握:用三次握手建立连接、关闭连接的原理掌握:用三次握手建立连接、关闭连接的原理掌握:流量及拥塞控制原理掌握:流量及拥塞控制原理了解:了解:TCPTCP、UDPUDP的校验和原理的校验和原理了解:了解:TCPTCP、UDPUDP报文格式报文格式了解:常用网络命令了解:常用网络命令4-2中国科学技术大学 远程教育4.1Internet
2、Internet传输层的基本原理传输层的基本原理传输层的功能传输层的功能目的:是在互联网层提供主机数据通信服务的基础上,向源主目的:是在互联网层提供主机数据通信服务的基础上,向源主机和宿主机之间提供端到端可靠进程通信。机和宿主机之间提供端到端可靠进程通信。功能:一是加强或弥补网络层或互联网层提供的服务;二是提功能:一是加强或弥补网络层或互联网层提供的服务;二是提供进程通信机制。供进程通信机制。端到端的通信:是由一段段点到点的通信构成的,端到端的协端到端的通信:是由一段段点到点的通信构成的,端到端的协议建立在点到点的协议基础之上,提供应用进程之间的通信,议建立在点到点的协议基础之上,提供应用进程
3、之间的通信,在其下层,是没有应用进程整个概念的。在其下层,是没有应用进程整个概念的。端口号:传输层要区分收到的数据中的不同的应用进程,方法端口号:传输层要区分收到的数据中的不同的应用进程,方法是为每个应用进程分配一个是为每个应用进程分配一个“端口号端口号PortNumber”.某一台主某一台主机上的某个应用进程由主机机上的某个应用进程由主机IP地址、端口号唯一标识端口地址、端口号唯一标识端口号也称为传输层访问点号也称为传输层访问点TSAP。传输层要解决的问题还有:差错控制、流量控制、排序和连接传输层要解决的问题还有:差错控制、流量控制、排序和连接管理等问题。管理等问题。在在TCP/IP的协议簇
4、中的传输层协议有的协议簇中的传输层协议有传输控制协议传输控制协议TCP,面向连接。面向连接。用户数据报协议用户数据报协议UDP,面向无连接。,面向无连接。4-3中国科学技术大学 远程教育4.1.1 TCP4.1.1 TCP服务服务 TCPTCP为为主主机机提提供供许许多多服服务务。TCPTCP是是一一个个面面向向连连接接的的协协议议,它它必必须须提提供供会会话话管管理理和和数数据据单单元元的的可可靠靠传传输输。IPIP是是一一个个无无连连接接协协议议,它依靠它依靠TIPTIP提供可靠的数据传输。提供可靠的数据传输。TCPTCP提提供供两两种种重重要要服服务务:差差错错控控制制和和流流量量控控制
5、制。TCPTCP差差错错和和流流量量控控制制的的一一个个独独特特要要素素是是它它没没有有否否定定确确认认。它它只只发发送送肯肯定定确确认认。如如果果接接收收到到的的序序列列有有错错(被被校校验验和和检检测测的的),该该数数据据单单元元就就从从缓缓冲冲区区中中删删去去。TCPTCP不不向向源源主主机机返返回回任任何何应应答答。源源主主机机在在发发送送数数据据单单元元时时设设置置一一个个确确认认计计时时器器。当当发发生生错错误误(校校验验和和错错或或其其它它错错)时时,计计时时器器将将超超时时,源源主主机机将将重重传传数数据据单单元元。同同样样的的机机制制也也适适用用于于接接收收数数据据单单元元的
6、的顺顺序序出出错错。计计时时器器并并非非固固定定时时长长,它它是是可可变变的的,基基于于往往返返时时间间,往往返返时时间间包包括括前前向向时时间间(即即到到达达目目的的的的时时间间)、目目的的处理时间和反向延迟时间处理时间和反向延迟时间(即确认到达源主机的时间即确认到达源主机的时间)。4-4中国科学技术大学 远程教育发起一个会话发起一个会话一台计算机中的应用程序如果需要向其它计算机中的一台计算机中的应用程序如果需要向其它计算机中的应用程序发送信息,它将把数据传递给传输层。传输应用程序发送信息,它将把数据传递给传输层。传输层的层的TCP从应用程序那里接收到数据,然后将其分割从应用程序那里接收到数
7、据,然后将其分割成较小的报文段。成较小的报文段。TCP将这些报文段封装在将这些报文段封装在IP数据报数据报中,这些数据报将在网络中路由。中,这些数据报将在网络中路由。4-5中国科学技术大学 远程教育4.1.2服务质量服务质量(QoS)连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立失败的概率:在最大建立延迟时间之内,连接无法建立连接建立失败的概率:在最大建立延迟时间之内,连接无法建立的概率。的概率。吞吐率:每秒传输的数据量:从源主机到宿主机的吞吐率和从宿吞吐率:每秒传输的数据量:从源主机到宿主机的吞吐率和从宿主机到源主机的
8、吞吐率是分别衡量的。主机到源主机的吞吐率是分别衡量的。传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也是双向分别衡量的。是双向分别衡量的。残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的比率。比率。安全保护:用于防止未经授权的第三方读取或修改传输的数据。安全保护:用于防止未经授权的第三方读取或修改传输的数据。优先级:确保重要应用的数据优先得到传输服务。优先级:确保重要应用的数据优先得到传输服务。4-6中国科学技术大学 远程教育4.1.3传输层端口传输层端口Intern
9、et传输层与互联网层功能上的最大区别是前者提传输层与互联网层功能上的最大区别是前者提供进程通信能力,而后者不提供进程通信能力。供进程通信能力,而后者不提供进程通信能力。为了提供进程通信功能,为了提供进程通信功能,TCP/IP协议提出了端口协议提出了端口(port)的概念,用于标识通信的进程。的概念,用于标识通信的进程。端口实际上是一个抽象的软件结构(包括一些数据结端口实际上是一个抽象的软件结构(包括一些数据结构和构和I/O缓冲区)。应用程序(进程)通过系统调用与缓冲区)。应用程序(进程)通过系统调用与某端口建立关联某端口建立关联(binding)后,传输层传给该端口的数后,传输层传给该端口的数
10、据都被相应的应用进程所接收。据都被相应的应用进程所接收。端口又是应用进程访问传输服务的入口点。端口又是应用进程访问传输服务的入口点。4-7中国科学技术大学 远程教育套接字套接字套接字在要领上与文件句柄类似,因为其功能是作为套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。一个应用程序通过定义三部分来网络通信的终结点。一个应用程序通过定义三部分来产生一个套接字:主机产生一个套接字:主机IP地址、服务类型地址、服务类型(面向连接的面向连接的服务是服务是TCP,无连接服务是,无连接服务是UDP)、应用程序所用的端、应用程序所用的端口。口。4-8中国科学技术大学 远程教育端口号分配端口号
11、分配全局分配全局分配由一个公认的中央机构根据用户需求统一进行分配,并将结由一个公认的中央机构根据用户需求统一进行分配,并将结果公布于众。果公布于众。全局端口分配的弊端是在于不能适应大量且迅速变化的端口全局端口分配的弊端是在于不能适应大量且迅速变化的端口使用环境。使用环境。本地分配或动态联编本地分配或动态联编当某进程需要访问传输服务时,它向主机操作系统提出动态当某进程需要访问传输服务时,它向主机操作系统提出动态申请,操作系统根据主机状态为该进程分配一个本地唯一的申请,操作系统根据主机状态为该进程分配一个本地唯一的端口号,然后该进程再通过系统调用将自己与相应的端口号端口号,然后该进程再通过系统调用
12、将自己与相应的端口号进行关联操作。进行关联操作。本地分配方式不受网络规模的限制,但其它主机仍然无法获本地分配方式不受网络规模的限制,但其它主机仍然无法获知分配情况,进程之间的通信依然难以建立。知分配情况,进程之间的通信依然难以建立。4-9中国科学技术大学 远程教育Internet端口号分配端口号分配Internet将端口分为两部分,一部分是保留端口,一部将端口分为两部分,一部分是保留端口,一部分是自由端口。分是自由端口。其中保留端口只占很小的数目,它以全局方式进行其中保留端口只占很小的数目,它以全局方式进行分配,对应于前面所讨论的服务器进程。在分配,对应于前面所讨论的服务器进程。在Intern
13、et中,每一个标准的服务器进程都拥有一个中,每一个标准的服务器进程都拥有一个全局公认的端口号,不同机器上相同的服务器进程,全局公认的端口号,不同机器上相同的服务器进程,其端口号相同。其端口号相同。TCP和和UDP都规定,小于都规定,小于256的端的端口号才能作为保留端口口号才能作为保留端口。自由端口以本地方式进行分配。当某进程要与远地自由端口以本地方式进行分配。当某进程要与远地进程通信之前,首先申请一个自由端口号并与之进进程通信之前,首先申请一个自由端口号并与之进行关联操作,然后与远地进程进行通信。行关联操作,然后与远地进程进行通信。4-10中国科学技术大学 远程教育TCP和和UDP的保留端口
14、的保留端口4-11中国科学技术大学 远程教育常用周知端口号列表常用周知端口号列表端口号端口号协议协议关键词关键词UNIX关键词关键词描述描述1TCPTCPMUX-TCP复用器复用器7TCP/UDPECHOEcho回送回送9TCP/UDPDISCARDDiscard丢弃丢弃15TCP/UDP-Netstat网络状态程序网络状态程序20TCPFTP-DATAftp-data文件传输协议文件传输协议(数据数据)21TCPFTPftp文件传输协议文件传输协议22TCP/UDPSSHSsh安全安全shell远程登录远程登录23TCPTELNETtelnet远程登录远程登录25TCPSMTPSmtp简单邮
15、件传输协议简单邮件传输协议37TCP/UDP-Time时间时间42TCP/UDPNAMESERVERName主机名称服务器主机名称服务器43TCP/UDPNICNAMEWhois是谁是谁53TCP/UDPDOMAINNameserver域名服务器域名服务器67UDPBOOTPSBootps引导协议服务器引导协议服务器68UDPBOOTPCbootpc引导协议客户引导协议客户69UDPTFTPTftp简单文件传输协议简单文件传输协议79TCPFINGERFingerFinger4-12中国科学技术大学 远程教育常用周知端口号列表常用周知端口号列表(续续)端口号端口号协议协议关键词关键词UNIX关
16、键词关键词描述描述80TCPHTTPhttp超文本传输协议超文本传输协议88TCPKERBEROSKerberosKerberos协议协议93TCPDCP-设备控制协议设备控制协议101TCPHOSTNAMEHostnameNIC主机名字服务器主机名字服务器110TCPPOP3Pop3邮局协议邮局协议v3111TCP/UDPSUNRPCSunrpcSunMicrosystemRPC119TCPNNTPnntpUSENET新闻传送协议新闻传送协议123UDPNTPNtp网络时间协议网络时间协议139TCPNETBIOS-SSN-NETBIOS会话协议会话协议161UDP-Snmp简单网络管理协议
17、简单网络管理协议162UDP-Snmp-trapSNMP陷阱陷阱389TCPLDAPLdap轻量目录访问协议轻量目录访问协议443TCPHTTPShttps安全安全HTTP协议协议513UDP-WhoUNIXrwhodaemon514UDP-Syslog系统日志系统日志525UDP-TimedUNIXtimedaemon546TCPDHCP-CLIENTDhcp-slient动态主机配置协议客户动态主机配置协议客户4-13中国科学技术大学 远程教育4.2用户数据报协议用户数据报协议UDP(UserDatagramProtocol)特点特点建立在建立在IP协议协议之上之上唯一增加的能力是提供协议
18、端口,实现进程通信唯一增加的能力是提供协议端口,实现进程通信UDP使用使用IP协议提供的不可靠的数据报服务,通过端口号识协议提供的不可靠的数据报服务,通过端口号识别互相通信的实体。别互相通信的实体。UDP提供的是无连接的、不可靠的用户提供的是无连接的、不可靠的用户数据报服务数据报服务面向交易型应用面向交易型应用机制机制端系统使用端系统使用UDP协议相互通信时,协议相互通信时,UDP协议只负责将应用程协议只负责将应用程序传给序传给IP层的数据发送出去,但是并不保证它们能到达。如传输层的数据发送出去,但是并不保证它们能到达。如传输中数据出错,中数据出错,UDP协议不负责重传,而由更高层负责。当数据
19、正协议不负责重传,而由更高层负责。当数据正确到达后,接收端不负责确认。也由更高层负责确到达后,接收端不负责确认。也由更高层负责4-14中国科学技术大学 远程教育UDP报文格式报文格式UDPUDP校验和覆盖了除报文头外的一个附加头部,包括:校验和覆盖了除报文头外的一个附加头部,包括:源源IPIP地址、目的地址、目的IPIP地址、协议、地址、协议、UDPUDP长度长度 目的:验证目的:验证UDPUDP数据报是否传到正确的目的端数据报是否传到正确的目的端4-15中国科学技术大学 远程教育UDP头结构定义为头结构定义为:structudphdru_int16_tsource;/发送主机的发送主机的UD
20、P端口端口u_int16_tdest;/目标主机的目标主机的UDP端口端口u_int16_tlen;/UDP消息的长度消息的长度u_int16_tcheck;/校验和校验和;4-16中国科学技术大学 远程教育UDP的校验和的校验和UDP计算校验和时,用到一个计算校验和时,用到一个12字节的伪头结构。见下图示:字节的伪头结构。见下图示:其中源其中源IP地址和目标地址和目标IP地址来自于地址来自于IP分组头,分组头,UDP协议号为协议号为17,长度是长度是UDP头结构中的长度相同。伪头结构只用于校验和,使用头结构中的长度相同。伪头结构只用于校验和,使用伪头结构进行校验的目的是伪头结构进行校验的目的
21、是为了进一步证实数据被送到正确的目为了进一步证实数据被送到正确的目的地。收方的地。收方UDP校验出收到的数据有错后,只是简单地丢弃数据,校验出收到的数据有错后,只是简单地丢弃数据,而不向源报告错误。而不向源报告错误。UDP的伪头结构的伪头结构031源源IP地址地址目的目的IP地址地址00000000协议号协议号(17)UDP长度长度4-17中国科学技术大学 远程教育UDP的应用范围的应用范围UDP不用于那些使用虚电路的面向连接的服务,而主不用于那些使用虚电路的面向连接的服务,而主要用于那些面向查询要用于那些面向查询-应答的服务,例如应答的服务,例如NFS。相对。相对于于FTP或或Telnet,
22、这些服务需要交换的信息量较小。使,这些服务需要交换的信息量较小。使用用UDP的服务包括的服务包括NTP(网落时间协议)和(网落时间协议)和DNS(DNS也使用也使用TCP)。)。4-18中国科学技术大学 远程教育4.3TCP协议协议特点特点面向连接传输层协议,非常复杂面向连接传输层协议,非常复杂提供高可靠性服务提供高可靠性服务一次传输交换大量报文一次传输交换大量报文例子例子文件传输、远程登录等文件传输、远程登录等4-19中国科学技术大学 远程教育4.3.1TCP报文格式报文格式源端口和目的端口:各源端口和目的端口:各2个字节,表示源和目的端口号。个字节,表示源和目的端口号。发送序号:发送序号:
23、4字节,指出报文中数据在发送方的数据流中的位置字节,指出报文中数据在发送方的数据流中的位置(以字以字节编号节编号)。确认序号:确认序号:4字节,指接收方希望下一次接收的字节序号。字节,指接收方希望下一次接收的字节序号。TCP头长:头长:4比特,指出以比特,指出以32比特为单位的报文头部长度。该域是针比特为单位的报文头部长度。该域是针对变长的对变长的“选项选项”域设计的。域设计的。紧急标志位紧急标志位URG:当:当URG=1时,表明此报时,表明此报文是紧急数据,应尽文是紧急数据,应尽快传送出去。快传送出去。确认标志位确认标志位ACK:只:只有当有当ACK=1时确认序时确认序号字段才有意义。号字段
24、才有意义。当当ACK=0时,确认序时,确认序号没有意义。号没有意义。4-20中国科学技术大学 远程教育急迫标志位急迫标志位PSH(PuSH):当:当PSH=1时,请求远地时,请求远地TCP软件将该报软件将该报文立即送给应用程序。文立即送给应用程序。重建标志位重建标志位RST(ReseT):当:当RST=1时,表明出现严重差错,必须时,表明出现严重差错,必须释放连接,然后重新建立连接。释放连接,然后重新建立连接。同步标志位同步标志位SYN:当:当SYN=1而而ACK=0时,表明这是一个建立连接时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使将请求报文,若对方同意建立该
25、连接,则应在发回的报文中使将SYN和和ACK标志位同时置标志位同时置1。终止标志位终止标志位FIN(Final):当:当FIN1时,表明数据已经发送完毕,时,表明数据已经发送完毕,并请求释放连接。并请求释放连接。窗口:窗口:2字节。该字段实际上是接收方告诉发送方它的接收窗口大字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。窗口域主要是用于流量控制和拥塞控制。小,其单位为字节。窗口域主要是用于流量控制和拥塞控制。校验和:校验和:2字节。校验和也和字节。校验和也和UDP协议一样,使用伪头校验,只协议一样,使用伪头校验,只不过协议号为不过协议号为6。可选项:长度可变。可选项:长度
26、可变。TCP只规定了一种选项,即最长报文段只规定了一种选项,即最长报文段MSS(MaximumSegmentSize)。4-21中国科学技术大学 远程教育TCP层格式中的控制信息字段层格式中的控制信息字段控制信息字段:控制信息字段:在报头中按照从左到右的顺序在报头中按照从左到右的顺序URG、ACK、PSH、RST、SYN、FIN,总共占用了总共占用了6比特,对比特,对TCP数据流的发送和接收起到控制的作数据流的发送和接收起到控制的作用。在这些控制信息标志中,用。在这些控制信息标志中,SYN、FIN占用一个序列号。其余占用一个序列号。其余4个控制标个控制标志则不占用序列号空间。志则不占用序列号空
27、间。URG:紧急指针有效紧急指针有效ACK:确认字段有效确认字段有效PSH:推送功能推送功能RST:复位复位SYN:对各帧序列号进行同步对各帧序列号进行同步FIN:不再有来自发送方的数据不再有来自发送方的数据选项选项选项列表结束:指示选项列表的结束选项列表结束:指示选项列表的结束无操作:用于各个选项之间无操作:用于各个选项之间段最大尺寸:段最大尺寸:指明了发送此段的指明了发送此段的TCP上可接收的段的最大尺寸,该字上可接收的段的最大尺寸,该字段只在初始连接请求阶段被发送出去(段只在初始连接请求阶段被发送出去(SYN置位时)。置位时)。TCP必须能够必须能够实现发送和接收最大分段尺寸选项。如果在
28、连接建立阶段没有收到该实现发送和接收最大分段尺寸选项。如果在连接建立阶段没有收到该选项,则选项,则TCP必须采用默认的发送必须采用默认的发送MSS5364-22中国科学技术大学 远程教育4.3.2 TCP4.3.2 TCP的的超时重传机制超时重传机制背景背景TCP是一个可靠的数据传输协议,它要求接收方是一个可靠的数据传输协议,它要求接收方收到收到TCP段后必须给予应答但段后必须给予应答但TCP只能用只能用acknowledgementnumber域中的序号来表示该序号前域中的序号来表示该序号前的所有字节都已正确接收,而没有其他否定应答或选的所有字节都已正确接收,而没有其他否定应答或选择重发的功
29、能。也就是说,当接收方择重发的功能。也就是说,当接收方TCP实体收到一实体收到一个出错的个出错的TCP段后,只是将其丢弃而不作应答,因而段后,只是将其丢弃而不作应答,因而发送方必须采用超时重传的机制来重发久未应答的段。发送方必须采用超时重传的机制来重发久未应答的段。由于在一个巨大的互联网络中,由于在一个巨大的互联网络中,TCP段可能在不同速段可能在不同速率的物理线路上传输,信源和信宿间的距离可近可远,率的物理线路上传输,信源和信宿间的距离可近可远,而且每时每该网络中的拥塞情况也不同,因此要选择而且每时每该网络中的拥塞情况也不同,因此要选择一个合适的超时时间并不太一件容易的事。一个合适的超时时间
30、并不太一件容易的事。4-23中国科学技术大学 远程教育原理原理TCP使用一种动态算法随时调整超时间隔。对于每个连接,使用一种动态算法随时调整超时间隔。对于每个连接,都维持一个变量都维持一个变量RTT。RTT(Round-tripTime)是当前发送方到接是当前发送方到接收方来回时间的最佳估算值。每当发送了一个段,发送方即启动收方来回时间的最佳估算值。每当发送了一个段,发送方即启动一个计时器,一方面用来测量从发送一个计时器,一方面用来测量从发送TCP段到收到应答的来回时段到收到应答的来回时间,另一方面当超过估算的超时间隔后即进行重发。间,另一方面当超过估算的超时间隔后即进行重发。算法算法每当收到
31、一个应答,每当收到一个应答,TCP就从计时器中得到当前的来回时间就从计时器中得到当前的来回时间M,然后利用公式:,然后利用公式:RTT*RTT+(1-)M估算出新的估算出新的RTT值,值,是一个平滑因于,通常取为是一个平滑因于,通常取为7/8。因为实际的来回时间同估算值。因为实际的来回时间同估算值总会有一个偏差,因此利用公式总会有一个偏差,因此利用公式Dd+(1-)|RTT-M|计算出实际计算出实际来回时间同来回时间同RTT的偏差范围,这里的的偏差范围,这里的和估算和估算RTT的的可能不同。可能不同。最后利用公式最后利用公式Timeout=RTT+4D确定出当前的超时间隔。确定出当前的超时间隔
32、。评价评价这种算法在网络拥塞或收发双方距离较远时能够自动延长超这种算法在网络拥塞或收发双方距离较远时能够自动延长超时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传输速度。输速度。4-24中国科学技术大学 远程教育4.3.3TCP连接连接TCPTCP为每个数据流初始化并维护特定的状态信息的组合,称为一个连接为每个数据流初始化并维护特定的状态信息的组合,称为一个连接。每每个连接由标识该连接两端的一对套接字唯一确定,套接字是由
33、端口号和个连接由标识该连接两端的一对套接字唯一确定,套接字是由端口号和IPIP地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的TCPTCP必必须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。TCPTCP连接的建立连接的建立通过通过“三次握手三次握手”来建立一条连接,以减少错误连接的可能性。来建立一条连接,以减少错误连接的可能性。利用利用TCPTCP中的中的SYN SYN 同步标志位,启动一条连接的建立。同步标志位,启动一条连接的建立。利用利用TCP
34、TCP中的中的RST RST 复位标志位,中止异常连接的建立复位标志位,中止异常连接的建立。TCPTCP连接的关闭连接的关闭关闭关闭(CLOSECLOSE)操作的意思是)操作的意思是“我没有更多的数据要发送我没有更多的数据要发送”,通过,通过TCPTCP中的中的FINFIN控制位启动控制位启动关闭关闭连接的操作。连接的操作。负责负责关闭关闭的用户可以继续的用户可以继续接收接收(RECEIVEDRECEIVED)操作,直到它被告知另一方)操作,直到它被告知另一方已经关闭已经关闭接收到接收到关闭关闭的用户可以继续的用户可以继续发送发送(SENDSEND)操作,使得发出操作,使得发出关闭关闭的用户能
35、的用户能够听到该连接成功的关闭了。够听到该连接成功的关闭了。4-25中国科学技术大学 远程教育连接请求连接请求(SYN=1,seq=client_isn)(SYN=1,seq=client_isn)同意连接同意连接(SYN=1,seq=server_isn,(SYN=1,seq=server_isn,Ack=client_isn+1)Ack=client_isn+1)确认确认(SYN=0,seq=client_isn,(SYN=0,seq=client_isn,ack=server_isn+1)ack=server_isn+1)客户客户服务器服务器TCPTCP建立连接的三次握手建立连接的三次握
36、手时时间间时时间间4-26中国科学技术大学 远程教育TCPTCP连接的状态连接的状态一条一条TCPTCP连接在其生命期内会经历一系列的状态。这些状态有:连接在其生命期内会经历一系列的状态。这些状态有:LISTENLISTEN:正在等待一个来自任何远程正在等待一个来自任何远程TCPTCP和端口的连接请求。和端口的连接请求。SYNSYNSENTSENT:在已经发出一个连接请求后正在等待一个匹配的连接请求在已经发出一个连接请求后正在等待一个匹配的连接请求SYNSYNRECEIVEDRECEIVED:在已经收到并发出了一个连接请求后等待一个证实连接请求的确认。在已经收到并发出了一个连接请求后等待一个证
37、实连接请求的确认。ESTABLISHEDESTABLISHED:一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连接的数据传输阶段的正常状态。接的数据传输阶段的正常状态。FINFINWAITWAIT1 1:或正在等待一个针对先前发送的连接终止请求的确认。或正在等待一个针对先前发送的连接终止请求的确认。FINFINWAITWAIT2 2:正在等待一个来自远程正在等待一个来自远程TCPTCP的连接终止请求。的连接终止请求。CLOSECLOSEWAITWAIT:正在等待一个来自本地用户的连接终止请求正在等待一个来自
38、本地用户的连接终止请求CLOSINGCLOSING:正在等待一个来自远程正在等待一个来自远程TCPTCP的连接终止请求的确认。的连接终止请求的确认。LASTLASTACKACK:正在等待一个先前发往远程正在等待一个先前发往远程TCPTCP的连接终止请求的确认(包括对其连接终止请求的连接终止请求的确认(包括对其连接终止请求的确认)的确认)TIMETIMEWAITWAIT:等足够的时间以确保远程等足够的时间以确保远程TCPTCP接收到了其连接终止请求的确认接收到了其连接终止请求的确认CLOSEDCLOSED:根本不存在连接的状态。根本不存在连接的状态。4-27中国科学技术大学 远程教育TCP连接端
39、点连接端点TCP连接端点连接端点TCP把端点定义为一对整数,即把端点定义为一对整数,即(host,port),其中,其中host是主机的是主机的IP地址,而地址,而port则是该主机上的则是该主机上的TCP端口号。端口号。TCP连接连接是用它的两个端点来表示;是用它的两个端点来表示;中国科大的一台中国科大的一台IP地址为地址为202.38.64.180的主机与清的主机与清华大学的一台地址为华大学的一台地址为202.192.1.12的主机之间建立连的主机之间建立连接的话,它可能会由端点定义成:接的话,它可能会由端点定义成:(202.38.64.180,1234)和()和(202.192.1.12
40、,25)4-28中国科学技术大学 远程教育TCPTCP连接的连接的建立建立过程过程 客户 TCP 服务器 TCP1.CLOSE LISTEN2.SYN-SENT SYN-RECEIVED 3.ESTABLISHED SYN-RECEIVED4.ESTABLISHED ESTABLISHED5.ESTABLISHED ESTABLSHED说明:说明:TCP ATCP A、B B在初始时分别是处于在初始时分别是处于CLOSEDCLOSED和和LISTENLISTEN状态。状态。A A端首先端首先发送一个发送一个SEQSEQ100100的初始化序列,的初始化序列,SYNSYN置位,占用一个序列号;置
41、位,占用一个序列号;B B端端在收到该请求后,发送一个序列号为在收到该请求后,发送一个序列号为300300,确认号为,确认号为101101的段,这个的段,这个段的段的SYNSYN、ACKACK均置位,说明均置位,说明B B端的初始发送序列号为端的初始发送序列号为300300,同时又确,同时又确认了认了A A的的SEQSEQ100100的段,的段,A A在收到了在收到了B B的应答后,对其初始序列号确的应答后,对其初始序列号确认,来响应认,来响应B B的初始化序列,然后的初始化序列,然后A A就可以发送事件了。其中第就可以发送事件了。其中第2 2、3 3、4 4行,称之为行,称之为“三次握手三次
42、握手”4-29中国科学技术大学 远程教育在在TCP连接的生存期中,通过多种状态进行传输。这连接的生存期中,通过多种状态进行传输。这些状态称为些状态称为TCP状态。一个客户机按照下列顺序经历状态。一个客户机按照下列顺序经历一系列的一系列的TCP状态。如下图示:状态。如下图示:4-30中国科学技术大学 远程教育CLOSECLOSEFIN_WAIT_1FIN_WAIT_1TIME_WAITTIME_WAITFIN_WAIT_2FIN_WAIT_2SYN_SENTSYN_SENTESTABLISHEDESTABLISHED接收接收SYNSYN和和ACKACK发送发送ACKACK发送发送FINFIN接收
43、接收ACKACK不发送不发送接收接收FINFIN发送发送ACKACK等待等待3030秒秒客户主机客户主机TCPTCP的状态顺序的状态顺序4-31中国科学技术大学 远程教育于客户机一样,服务器也经历各种于客户机一样,服务器也经历各种TCP状态。如下图状态。如下图示:示:4-32中国科学技术大学 远程教育CLOSECLOSEESTABLISHEDESTABLISHEDLAST_ACKLAST_ACKCLOSED_WAITCLOSED_WAITLISTENLISTENSYN_RCVDSYN_RCVD接收接收SYNSYN发送发送SYNSYN和和ACKACK接收接收CAKCAK不发送不发送接收接收FIN
44、FIN不发送不发送发送发送FINFIN接收接收ACKACK不发送不发送服务器服务器TCPTCP的状态顺序的状态顺序4-33中国科学技术大学 远程教育TCPTCP连接的关闭过程连接的关闭过程TCP ATCP B1.ESTABLISHED ESTABLISHED2.(关闭)(关闭)FIN-WAIT-1 CLOSE-WAIT3.FIN-WAIT-2 CLOSE-WAIT4.(关闭关闭)TIME-WAIT LAST-ACK5.TIME-WAIT CLOSED6.(2 MSL)关闭关闭说明:说明:TCP ATCP A启动启动TCPTCP关闭某连接的,关闭某连接的,TCP BTCP B收到一个收到一个FI
45、NFIN段,进入段,进入CLOSEWAITCLOSEWAIT状态。状态。在第在第3 3行中,如果行中,如果TCP BTCP B还有数据要发送,在报头之后,会有数据,同时对还有数据要发送,在报头之后,会有数据,同时对TCP ATCP A发发来的来的FINFIN确认(确认(FINFIN占用一个序列号)。发送完数据后,在第占用一个序列号)。发送完数据后,在第4 4行,行,TCP BTCP B再发送一再发送一个个FINFIN段,在没有收到确认之前是段,在没有收到确认之前是LASTLASTACKACK(等待发往远程等待发往远程TCPTCP的的FINFIN的确认)状的确认)状态。第态。第5 5行中,行中,
46、TCP BTCP B在收到了它发出的在收到了它发出的FINFIN的确认后,进入的确认后,进入CLOSEDCLOSED状态,状态,TCP ATCP A在在超时时间到后,自动关闭。超时时间到后,自动关闭。4-34中国科学技术大学 远程教育TCP关闭连接为什么采用三次握手法关闭连接为什么采用三次握手法正常关闭时,一端用户发出一个正常关闭时,一端用户发出一个DR(释放连接请求释放连接请求)TPDU,首先要,首先要求释放连接。当该求释放连接。当该TPDU到达对方到达对方后,收方也回送一个后,收方也回送一个DRTPDU,并同时启动定时器以防止其并同时启动定时器以防止其DRTPDU丢失。当应答方的丢失。当应
47、答方的DR到达到达后,最初提出释放连接的一方又后,最初提出释放连接的一方又回送一个回送一个ACK(确认确认)TPDU,并断,并断开连接。最后,当开连接。最后,当ACKTPDU抵抵达目的地后,接收方也释放连接。达目的地后,接收方也释放连接。释放一个连接意味着传输实体从释放一个连接意味着传输实体从其记载所有接通的连接的表中删其记载所有接通的连接的表中删除该连接的有关信息并设法通知除该连接的有关信息并设法通知该连接的所有者该连接的所有者(传输用户传输用户)。4-35中国科学技术大学 远程教育图图b表示,如果最后的表示,如果最后的ACK(确认确认)TPDU丢失,就需要用定时器来丢失,就需要用定时器来补
48、救。当定时器超过时限后,连接将被强行释放。补救。当定时器超过时限后,连接将被强行释放。图图c表示,当第二个表示,当第二个DR(响应的响应的DR)丢失的情形。这时,首先提出丢失的情形。这时,首先提出释放连接的用户将不能收到所期待的响应,待到定时器超时,再释放连接的用户将不能收到所期待的响应,待到定时器超时,再次开始要求释放连接。从图次开始要求释放连接。从图c中可以看到这种情况下是如何工作的,中可以看到这种情况下是如何工作的,假设第二次没有任何假设第二次没有任何TPDU丢失,并且所有丢失,并且所有TPDU都正确、及时地都正确、及时地到达目的地。到达目的地。最后一种情况如图最后一种情况如图d所示。除
49、了假设由于丢失所示。除了假设由于丢失TPDU使所有重发使所有重发DR的尝试均失败以外,其他情况与图的尝试均失败以外,其他情况与图c完全相同。这样,经过完全相同。这样,经过N次尝试后,发送方次尝试后,发送方(提出释放连接的一方提出释放连接的一方)只好放弃努力并断开连只好放弃努力并断开连接。同时,接收方接。同时,接收方(被动释放连接的一方被动释放连接的一方)因为定时器超时也释放因为定时器超时也释放掉连接。掉连接。可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭的情形。但理论上当第一个的情形。但理论上当第一个DR和所有和所有N次重发均被
50、丢失的情况下,次重发均被丢失的情况下,该协议便会失败。因为此时发送方将放弃重发并释放连接,而另该协议便会失败。因为此时发送方将放弃重发并释放连接,而另一方却对对方的释放连接企图一无所知,而处于连接有效状态。一方却对对方的释放连接企图一无所知,而处于连接有效状态。这种情况将导致一个半接通的连接。这种情况将导致一个半接通的连接。4-36中国科学技术大学 远程教育消除半接通连接的可行方法消除半接通连接的可行方法消除半接通连接的一种方法是,如果在一段时间内没消除半接通连接的一种方法是,如果在一段时间内没有收到任何有收到任何TPDU,连接便自动释放。这样,如果一方,连接便自动释放。这样,如果一方已经释放