TCPIP基本原理第四章传输层

上传人:cn****1 文档编号:568741880 上传时间:2024-07-26 格式:PPT 页数:60 大小:508.47KB
返回 下载 相关 举报
TCPIP基本原理第四章传输层_第1页
第1页 / 共60页
TCPIP基本原理第四章传输层_第2页
第2页 / 共60页
TCPIP基本原理第四章传输层_第3页
第3页 / 共60页
TCPIP基本原理第四章传输层_第4页
第4页 / 共60页
TCPIP基本原理第四章传输层_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《TCPIP基本原理第四章传输层》由会员分享,可在线阅读,更多相关《TCPIP基本原理第四章传输层(60页珍藏版)》请在金锄头文库上搜索。

1、4-1中国科学技术大学远程教育TCP/IP基本原理基本原理第四章第四章传输层传输层4-2中国科学技术大学远程教育本章学习要求本章学习要求:掌掌握握:端端口口、周周知知端端口口号号、TCPTCP地地址址、MSSMSS、RTTRTT、三三次次握手、套接字、慢启动等概念;握手、套接字、慢启动等概念;掌握:掌握:TCPTCP的重传机制原理的重传机制原理掌握:用三次握手建立连接、关闭连接的原理掌握:用三次握手建立连接、关闭连接的原理掌握:流量及拥塞控制原理掌握:流量及拥塞控制原理了解:了解:TCPTCP、UDPUDP的校验和原理的校验和原理了解:了解:TCPTCP、UDPUDP报文格式报文格式了解:常用

2、网络命令了解:常用网络命令4-3中国科学技术大学远程教育4.1InternetInternet传输层的基本原理传输层的基本原理传输层的功能传输层的功能目的:是在互联网层提供主机数据通信服务的基础上,向源主目的:是在互联网层提供主机数据通信服务的基础上,向源主机和宿主机之间提供端到端可靠进程通信。机和宿主机之间提供端到端可靠进程通信。功能:一是加强或弥补网络层或互联网层提供的服务;二是提功能:一是加强或弥补网络层或互联网层提供的服务;二是提供进程通信机制。供进程通信机制。端到端的通信:是由一段段点到点的通信构成的,端到端的协端到端的通信:是由一段段点到点的通信构成的,端到端的协议建立在点到点的协

3、议基础之上,提供应用进程之间的通信,议建立在点到点的协议基础之上,提供应用进程之间的通信,在其下层,是没有应用进程整个概念的。在其下层,是没有应用进程整个概念的。端口号:传输层要区分收到的数据中的不同的应用进程,方法端口号:传输层要区分收到的数据中的不同的应用进程,方法是为每个应用进程分配一个是为每个应用进程分配一个“端口号端口号PortNumber”.某一台主某一台主机上的某个应用进程由主机机上的某个应用进程由主机IP地址、端口号唯一标识端口地址、端口号唯一标识端口号也称为传输层访问点号也称为传输层访问点TSAP。传输层要解决的问题还有:差错控制、流量控制、排序和连接传输层要解决的问题还有:

4、差错控制、流量控制、排序和连接管理等问题。管理等问题。在在TCP/IP的协议簇中的传输层协议有的协议簇中的传输层协议有传输控制协议传输控制协议TCP,面向连接。面向连接。用户数据报协议用户数据报协议UDP,面向无连接。,面向无连接。4-4中国科学技术大学远程教育4.1.1 TCP4.1.1 TCP服服务 TCPTCP为为主主机机提提供供许许多多服服务务。TCPTCP是是一一个个面面向向连连接接的的协协议议,它它必必须须提提供供会会话话管管理理和和数数据据单单元元的的可可靠靠传传输输。IPIP是是一一个个无无连连接接协协议议,它依靠它依靠TIPTIP提供可靠的数据传输。提供可靠的数据传输。 TC

5、PTCP提提供供两两种种重重要要服服务务:差差错错控控制制和和流流量量控控制制。TCPTCP差差错错和和流流量量控控制制的的一一个个独独特特要要素素是是它它没没有有否否定定确确认认。它它只只发发送送肯肯定定确确认认。如如果果接接收收到到的的序序列列有有错错( (被被校校验验和和检检测测的的) ),该该数数据据单单元元就就从从缓缓冲冲区区中中删删去去。TCPTCP不不向向源源主主机机返返回回任任何何应应答答。 源源主主机机在在发发送送数数据据单单元元时时设设置置一一个个确确认认计计时时器器。当当发发生生错错误误( (校校验验和和错错或或其其它它错错) )时时,计计时时器器将将超超时时,源源主主机

6、机将将重重传传数数据据单单元元。同同样样的的机机制制也也适适用用于于接接收收数数据据单单元元的的顺顺序序出出错错。计计时时器器并并非非固固定定时时长长,它它是是可可变变的的,基基于于往往返返时时间间,往往返返时时间间包包括括前前向向时时间间( (即即到到达达目目的的的的时时间间) )、目目的的处理时间和反向延迟时间处理时间和反向延迟时间( (即确认到达源主机的时间即确认到达源主机的时间) )。4-5中国科学技术大学远程教育发起一个会话发起一个会话一台计算机中的应用程序如果需要向其它计算机中的一台计算机中的应用程序如果需要向其它计算机中的应用程序发送信息,它将把数据传递给传输层。传输应用程序发送

7、信息,它将把数据传递给传输层。传输层的层的TCP从应用程序那里接收到数据,然后将其分割从应用程序那里接收到数据,然后将其分割成较小的报文段。成较小的报文段。TCP将这些报文段封装在将这些报文段封装在IP数据报数据报中,这些数据报将在网络中路由。中,这些数据报将在网络中路由。4-6中国科学技术大学远程教育4.1.2服务质量服务质量(QoS)连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立失败的概率:在最大建立延迟时间之内,连接无法建立连接建立失败的概率:在最大建立延迟时间之内,连接无法建立的概率。的概率。吞吐率:每秒传输的数

8、据量:从源主机到宿主机的吞吐率和从宿吞吐率:每秒传输的数据量:从源主机到宿主机的吞吐率和从宿主机到源主机的吞吐率是分别衡量的。主机到源主机的吞吐率是分别衡量的。传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也是双向分别衡量的。是双向分别衡量的。残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的比率。比率。安全保护:用于防止未经授权的第三方读取或修改传输的数据。安全保护:用于防止未经授权的第三方读取或修改传输的数据。优先级:确保重要应用的数据优先得到传输服务。优先级:确保

9、重要应用的数据优先得到传输服务。4-7中国科学技术大学远程教育4.1.3传输层端口传输层端口Internet传输层与互联网层功能上的最大区别是前者提传输层与互联网层功能上的最大区别是前者提供进程通信能力,而后者不提供进程通信能力。供进程通信能力,而后者不提供进程通信能力。为了提供进程通信功能,为了提供进程通信功能,TCP/IP协议提出了端口协议提出了端口(port)的概念,用于标识通信的进程。的概念,用于标识通信的进程。端口实际上是一个抽象的软件结构(包括一些数据结端口实际上是一个抽象的软件结构(包括一些数据结构和构和I/O缓冲区)。应用程序(进程)通过系统调用与缓冲区)。应用程序(进程)通过

10、系统调用与某端口建立关联某端口建立关联(binding)后,传输层传给该端口的数后,传输层传给该端口的数据都被相应的应用进程所接收。据都被相应的应用进程所接收。端口又是应用进程访问传输服务的入口点。端口又是应用进程访问传输服务的入口点。4-8中国科学技术大学远程教育套接字套接字套接字在要领上与文件句柄类似,因为其功能是作为套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。一个应用程序通过定义三部分来网络通信的终结点。一个应用程序通过定义三部分来产生一个套接字:主机产生一个套接字:主机IP地址、服务类型地址、服务类型(面向连接的面向连接的服务是服务是TCP,无连接服务是,无连接服务

11、是UDP)、应用程序所用的端、应用程序所用的端口。口。4-9中国科学技术大学远程教育端口号分配端口号分配全局分配全局分配由一个公认的中央机构根据用户需求统一进行分配,并将结由一个公认的中央机构根据用户需求统一进行分配,并将结果公布于众。果公布于众。全局端口分配的弊端是在于不能适应大量且迅速变化的端口全局端口分配的弊端是在于不能适应大量且迅速变化的端口使用环境。使用环境。本地分配或动态联编本地分配或动态联编当某进程需要访问传输服务时,它向主机操作系统提出动态当某进程需要访问传输服务时,它向主机操作系统提出动态申请,操作系统根据主机状态为该进程分配一个本地唯一的申请,操作系统根据主机状态为该进程分

12、配一个本地唯一的端口号,然后该进程再通过系统调用将自己与相应的端口号端口号,然后该进程再通过系统调用将自己与相应的端口号进行关联操作。进行关联操作。本地分配方式不受网络规模的限制,但其它主机仍然无法获本地分配方式不受网络规模的限制,但其它主机仍然无法获知分配情况,进程之间的通信依然难以建立。知分配情况,进程之间的通信依然难以建立。4-10中国科学技术大学远程教育Internet端口号分配端口号分配Internet将端口分为两部分,一部分是保留端口,一部将端口分为两部分,一部分是保留端口,一部分是自由端口。分是自由端口。其中保留端口只占很小的数目,它以全局方式进行其中保留端口只占很小的数目,它以

13、全局方式进行分配,对应于前面所讨论的服务器进程。在分配,对应于前面所讨论的服务器进程。在Internet中,每一个标准的服务器进程都拥有一个中,每一个标准的服务器进程都拥有一个全局公认的端口号,不同机器上相同的服务器进程,全局公认的端口号,不同机器上相同的服务器进程,其端口号相同。其端口号相同。TCP和和UDP都规定,小于都规定,小于256的端的端口号才能作为保留端口口号才能作为保留端口。自由端口以本地方式进行分配。当某进程要与远地自由端口以本地方式进行分配。当某进程要与远地进程通信之前,首先申请一个自由端口号并与之进进程通信之前,首先申请一个自由端口号并与之进行关联操作,然后与远地进程进行通

14、信。行关联操作,然后与远地进程进行通信。4-11中国科学技术大学远程教育TCP和和UDP的保留端口的保留端口4-12中国科学技术大学远程教育常用周知端口号列表常用周知端口号列表端口号端口号协议协议关键词关键词UNIX关键词关键词描述描述1TCPTCPMUX-TCP复用器复用器7TCP/UDPECHOEcho回送回送9TCP/UDPDISCARDDiscard丢弃丢弃15TCP/UDP-Netstat网络状态程序网络状态程序20TCPFTP-DATAftp-data文件传输协议文件传输协议(数据数据)21TCPFTPftp文件传输协议文件传输协议22TCP/UDPSSHSsh安全安全shell远

15、程登录远程登录23TCPTELNETtelnet远程登录远程登录25TCPSMTPSmtp简单邮件传输协议简单邮件传输协议37TCP/UDP-Time时间时间42TCP/UDPNAMESERVERName主机名称服务器主机名称服务器43TCP/UDPNICNAMEWhois是谁是谁53TCP/UDPDOMAINNameserver域名服务器域名服务器67UDPBOOTPSBootps引导协议服务器引导协议服务器68UDPBOOTPCbootpc引导协议客户引导协议客户69UDPTFTPTftp简单文件传输协议简单文件传输协议79TCPFINGERFingerFinger4-13中国科学技术大学

16、远程教育常用周知端口号列表常用周知端口号列表(续续)端口号端口号协议协议关键词关键词UNIX关键词关键词描述描述80TCPHTTPhttp超文本传输协议超文本传输协议88TCPKERBEROSKerberosKerberos协议协议93TCPDCP-设备控制协议设备控制协议101TCPHOSTNAMEHostnameNIC主机名字服务器主机名字服务器110TCPPOP3Pop3邮局协议邮局协议v3111TCP/UDPSUNRPCSunrpcSunMicrosystemRPC119TCPNNTPnntpUSENET新闻传送协议新闻传送协议123UDPNTPNtp网络时间协议网络时间协议139TC

17、PNETBIOS-SSN-NETBIOS会话协议会话协议161UDP-Snmp简单网络管理协议简单网络管理协议162UDP-Snmp-trapSNMP陷阱陷阱389TCPLDAPLdap轻量目录访问协议轻量目录访问协议443TCPHTTPShttps安全安全HTTP协议协议513UDP-WhoUNIXrwhodaemon514UDP-Syslog系统日志系统日志525UDP-TimedUNIXtimedaemon546TCPDHCP-CLIENTDhcp-slient动态主机配置协议客户动态主机配置协议客户4-14中国科学技术大学远程教育4.2用户数据报协议用户数据报协议UDP(UserDat

18、agramProtocol)特点特点建立在建立在IP协议协议之上之上唯一增加的能力是提供协议端口,实现进程通信唯一增加的能力是提供协议端口,实现进程通信UDP使用使用IP协议提供的不可靠的数据报服务,通过端口号识协议提供的不可靠的数据报服务,通过端口号识别互相通信的实体。别互相通信的实体。UDP提供的是无连接的、不可靠的用户提供的是无连接的、不可靠的用户数据报服务数据报服务面向交易型应用面向交易型应用机制机制端系统使用端系统使用UDP协议相互通信时,协议相互通信时,UDP协议只负责将应用程协议只负责将应用程序传给序传给IP层的数据发送出去,但是并不保证它们能到达。如传输层的数据发送出去,但是并

19、不保证它们能到达。如传输中数据出错,中数据出错,UDP协议不负责重传,而由更高层负责。当数据正协议不负责重传,而由更高层负责。当数据正确到达后,接收端不负责确认。也由更高层负责确到达后,接收端不负责确认。也由更高层负责4-15中国科学技术大学远程教育UDP报文格式报文格式UDPUDP校验和覆盖了除报文头外的一个附加头部,包括:校验和覆盖了除报文头外的一个附加头部,包括:源源IPIP地址、目的地址、目的IPIP地址、协议、地址、协议、UDPUDP长度长度 目的:验证目的:验证UDPUDP数据报是否传到正确的目的端数据报是否传到正确的目的端4-16中国科学技术大学远程教育UDP头结构定义为头结构定

20、义为:structudphdru_int16_tsource;/发送主机的发送主机的UDP端口端口u_int16_tdest;/目标主机的目标主机的UDP端口端口u_int16_tlen;/UDP消息的长度消息的长度u_int16_tcheck;/校验和校验和;4-17中国科学技术大学远程教育UDP的校验和的校验和UDP计算校验和时,用到一个计算校验和时,用到一个12字节的伪头结构。见下图示:字节的伪头结构。见下图示:其中源其中源IP地址和目标地址和目标IP地址来自于地址来自于IP分组头,分组头,UDP协议号为协议号为17,长度是长度是UDP头结构中的长度相同。伪头结构只用于校验和,使用头结构

21、中的长度相同。伪头结构只用于校验和,使用伪头结构进行校验的目的是伪头结构进行校验的目的是为了进一步证实数据被送到正确的目为了进一步证实数据被送到正确的目的地。收方的地。收方UDP校验出收到的数据有错后,只是简单地丢弃数据,校验出收到的数据有错后,只是简单地丢弃数据,而不向源报告错误。而不向源报告错误。UDP的伪头结构的伪头结构031源源IP地址地址目的目的IP地址地址00000000 协议号协议号(17)UDP长度长度4-18中国科学技术大学远程教育UDP的应用范围的应用范围UDP不用于那些使用虚电路的面向连接的服务,而主不用于那些使用虚电路的面向连接的服务,而主要用于那些面向查询要用于那些面

22、向查询-应答的服务,例如应答的服务,例如NFS。相对。相对于于FTP或或Telnet,这些服务需要交换的信息量较小。使,这些服务需要交换的信息量较小。使用用UDP的服务包括的服务包括NTP(网落时间协议)和(网落时间协议)和DNS(DNS也使用也使用TCP)。)。4-19中国科学技术大学远程教育4.3TCP协议协议特点特点面向连接传输层协议,非常复杂面向连接传输层协议,非常复杂提供高可靠性服务提供高可靠性服务一次传输交换大量报文一次传输交换大量报文例子例子文件传输、远程登录等文件传输、远程登录等4-20中国科学技术大学远程教育4.3.1TCP报文格式报文格式源端口和目的端口:各源端口和目的端口

23、:各2个字节,表示源和目的端口号。个字节,表示源和目的端口号。发送序号:发送序号:4字节,指出报文中数据在发送方的数据流中的位置字节,指出报文中数据在发送方的数据流中的位置(以以字节编号字节编号)。确认序号:确认序号:4字节,指接收方希望下一次接收的字节序号。字节,指接收方希望下一次接收的字节序号。TCP头长:头长:4比特,指出以比特,指出以32比特为单位的报文头部长度。该域是针比特为单位的报文头部长度。该域是针对变长的对变长的“选项选项”域设计的。域设计的。紧急标志位紧急标志位URG:当:当URG=1时,表明此报时,表明此报文是紧急数据,应尽文是紧急数据,应尽快传送出去。快传送出去。确认标志

24、位确认标志位ACK:只:只有当有当ACK=1时确认序时确认序号字段才有意义。号字段才有意义。当当ACK=0时,确认序时,确认序号没有意义。号没有意义。4-21中国科学技术大学远程教育急迫标志位急迫标志位PSH(PuSH):当:当PSH=1时,请求远地时,请求远地TCP软件将该报软件将该报文立即送给应用程序。文立即送给应用程序。重建标志位重建标志位RST(ReseT):当:当RST=1时,表明出现严重差错,必须时,表明出现严重差错,必须释放连接,然后重新建立连接。释放连接,然后重新建立连接。同步标志位同步标志位SYN:当:当SYN=1而而ACK=0时,表明这是一个建立连接时,表明这是一个建立连接

25、请求报文,若对方同意建立该连接,则应在发回的报文中使将请求报文,若对方同意建立该连接,则应在发回的报文中使将SYN和和ACK标志位同时置标志位同时置1。终止标志位终止标志位FIN(Final):当:当FIN1时,表明数据已经发送完毕,时,表明数据已经发送完毕,并请求释放连接。并请求释放连接。窗口:窗口:2字节。该字段实际上是接收方告诉发送方它的接收窗口大字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。窗口域主要是用于流量控制和拥塞控制。小,其单位为字节。窗口域主要是用于流量控制和拥塞控制。校验和:校验和:2字节。校验和也和字节。校验和也和UDP协议一样,使用伪头校验,只协议

26、一样,使用伪头校验,只不过协议号为不过协议号为6。可选项:长度可变。可选项:长度可变。TCP只规定了一种选项,即最长报文段只规定了一种选项,即最长报文段MSS(MaximumSegmentSize)。4-22中国科学技术大学远程教育TCP层格式中的控制信息字段层格式中的控制信息字段控制信息字段:控制信息字段:在报头中按照从左到右的顺序在报头中按照从左到右的顺序URG、ACK、PSH、RST、SYN、FIN,总共占用了,总共占用了6比特,对比特,对TCP数据流的发送和接收起到控制的作数据流的发送和接收起到控制的作用。在这些控制信息标志中,用。在这些控制信息标志中,SYN、FIN占用一个序列号。其

27、余占用一个序列号。其余4个控制标个控制标志则不占用序列号空间。志则不占用序列号空间。URG:紧急指针有效:紧急指针有效ACK:确认字段有效:确认字段有效PSH:推送功能:推送功能RST:复位:复位SYN:对各帧序列号进行同步:对各帧序列号进行同步FIN:不再有来自发送方的数据:不再有来自发送方的数据选项选项选项列表结束:指示选项列表的结束选项列表结束:指示选项列表的结束无操作:用于各个选项之间无操作:用于各个选项之间段最大尺寸:指明了发送此段的段最大尺寸:指明了发送此段的TCP上可接收的段的最大尺寸,该字上可接收的段的最大尺寸,该字段只在初始连接请求阶段被发送出去(段只在初始连接请求阶段被发送

28、出去(SYN置位时)。置位时)。TCP必须能够必须能够实现发送和接收最大分段尺寸选项。如果在连接建立阶段没有收到该实现发送和接收最大分段尺寸选项。如果在连接建立阶段没有收到该选项,则选项,则TCP必须采用默认的发送必须采用默认的发送MSS5364-23中国科学技术大学远程教育4.3.2 TCP4.3.2 TCP的超时重传机制的超时重传机制背景背景TCP是一个可靠的数据传输协议,它要求接收方是一个可靠的数据传输协议,它要求接收方收到收到TCP段后必须给予应答但段后必须给予应答但TCP只能用只能用acknowledgementnumber域中的序号来表示该序号前域中的序号来表示该序号前的所有字节都

29、已正确接收,而没有其他否定应答或选的所有字节都已正确接收,而没有其他否定应答或选择重发的功能。也就是说,当接收方择重发的功能。也就是说,当接收方TCP实体收到一实体收到一个出错的个出错的TCP段后,只是将其丢弃而不作应答,因而段后,只是将其丢弃而不作应答,因而发送方必须采用超时重传的机制来重发久未应答的段。发送方必须采用超时重传的机制来重发久未应答的段。由于在一个巨大的互联网络中,由于在一个巨大的互联网络中,TCP段可能在不同速段可能在不同速率的物理线路上传输,信源和信宿间的距离可近可远,率的物理线路上传输,信源和信宿间的距离可近可远,而且每时每该网络中的拥塞情况也不同,因此要选择而且每时每该

30、网络中的拥塞情况也不同,因此要选择一个合适的超时时间并不太一件容易的事。一个合适的超时时间并不太一件容易的事。4-24中国科学技术大学远程教育原理原理TCP使用一种动态算法随时调整超时间隔。对于每个连接,使用一种动态算法随时调整超时间隔。对于每个连接,都维持一个变量都维持一个变量RTT。RTT(Round-tripTime)是当前发送方到接是当前发送方到接收方来回时间的最佳估算值。每当发送了一个段,发送方即启动收方来回时间的最佳估算值。每当发送了一个段,发送方即启动一个计时器,一方面用来测量从发送一个计时器,一方面用来测量从发送TCP段到收到应答的来回时段到收到应答的来回时间,另一方面当超过估

31、算的超时间隔后即进行重发。间,另一方面当超过估算的超时间隔后即进行重发。算法算法每当收到一个应答,每当收到一个应答,TCP就从计时器中得到当前的来回时间就从计时器中得到当前的来回时间M,然后利用公式:,然后利用公式:RTT*RTT+(1-)M估算出新的估算出新的RTT值,值,是一个平滑因于,通常取为是一个平滑因于,通常取为7/8。因为实际的来回时间同估算值。因为实际的来回时间同估算值总会有一个偏差,因此利用公式总会有一个偏差,因此利用公式Dd+(1-)|RTT-M|计算出实际计算出实际来回时间同来回时间同RTT的偏差范围,这里的的偏差范围,这里的和估算和估算RTT的的可能不同。可能不同。最后利

32、用公式最后利用公式Timeout=RTT+4D确定出当前的超时间隔。确定出当前的超时间隔。评价评价这种算法在网络拥塞或收发双方距离较远时能够自动延长超这种算法在网络拥塞或收发双方距离较远时能够自动延长超时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传输速度。输速度。4-25中国科学技术大学远程教育4.3.3TCP连接连接TCPTCP为每个数据流初始化并维护特定的状态信息的组合,称为一个连接。每为每个数据流初始化并维护特定

33、的状态信息的组合,称为一个连接。每个连接由标识该连接两端的一对套接字唯一确定,套接字是由端口号和个连接由标识该连接两端的一对套接字唯一确定,套接字是由端口号和IPIP地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的TCPTCP必必须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。TCPTCP连接的建立连接的建立通过通过“三次握手三次握手”来建立一条连接,以减少错误连接的可能性。来建立一条连接,以减少错误连接的可能性。利用利用TCPTCP中的中的SYN

34、 SYN 同步标志位,启动一条连接的建立。同步标志位,启动一条连接的建立。利用利用TCPTCP中的中的RST RST 复位标志位,中止异常连接的建立复位标志位,中止异常连接的建立。TCPTCP连接的关闭连接的关闭关闭关闭(CLOSECLOSE)操作的意思是)操作的意思是“ “ 我没有更多的数据要发送我没有更多的数据要发送”,通过,通过TCPTCP中的中的FINFIN控制位启动控制位启动关闭关闭连接的操作。连接的操作。负责负责关闭关闭的用户可以继续的用户可以继续接收接收(RECEIVEDRECEIVED)操作,直到它被告知另一方)操作,直到它被告知另一方已经关闭已经关闭接收到接收到关闭关闭的用户

35、可以继续的用户可以继续发送发送(SENDSEND)操作,使得发出操作,使得发出关闭关闭的用户能的用户能够听到该连接成功的关闭了。够听到该连接成功的关闭了。4-26中国科学技术大学远程教育连接请求连接请求(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=

36、server_isn+1)客户客户服务器服务器TCPTCP建立连接的三次握手建立连接的三次握手时时间间时时间间4-27中国科学技术大学远程教育TCPTCP连接的状态连接的状态一条一条TCPTCP连接在其生命期内会经历一系列的状态。这些状态有:连接在其生命期内会经历一系列的状态。这些状态有:LISTENLISTEN:正在等待一个来自任何远程:正在等待一个来自任何远程TCPTCP和端口的连接请求。和端口的连接请求。SYNSYNSENTSENT:在已经发出一个连接请求后正在等待一个匹配的连接请求:在已经发出一个连接请求后正在等待一个匹配的连接请求SYNSYNRECEIVEDRECEIVED:在已经收

37、到并发出了一个连接请求后等待一个证实连接请求的确认。:在已经收到并发出了一个连接请求后等待一个证实连接请求的确认。ESTABLISHEDESTABLISHED:一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连:一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连接的数据传输阶段的正常状态。接的数据传输阶段的正常状态。FINFINWAITWAIT1 1:或正在等待一个针对先前发送的连接终止请求的确认。:或正在等待一个针对先前发送的连接终止请求的确认。FINFINWAITWAIT2 2:正在等待一个来自远程:正在等待一个来自远程TCPTCP的连接终止请求。的连接

38、终止请求。CLOSECLOSEWAITWAIT:正在等待一个来自本地用户的连接终止请求:正在等待一个来自本地用户的连接终止请求CLOSINGCLOSING:正在等待一个来自远程:正在等待一个来自远程TCPTCP的连接终止请求的确认。的连接终止请求的确认。LASTLASTACKACK:正在等待一个先前发往远程:正在等待一个先前发往远程TCPTCP的连接终止请求的确认(包括对其连接终止请求的连接终止请求的确认(包括对其连接终止请求的确认)的确认)TIMETIMEWAITWAIT:等足够的时间以确保远程:等足够的时间以确保远程TCPTCP接收到了其连接终止请求的确认接收到了其连接终止请求的确认CLO

39、SEDCLOSED:根本不存在连接的状态。:根本不存在连接的状态。4-28中国科学技术大学远程教育TCP连接端点连接端点TCP连接端点连接端点TCP把端点定义为一对整数,即把端点定义为一对整数,即(host,port),其,其中中host是主机的是主机的IP地址,而地址,而port则是该主机上的则是该主机上的TCP端口号。端口号。TCP连接连接是用它的两个端点来表示;是用它的两个端点来表示;中国科大的一台中国科大的一台IP地址为的主机与清华大学的一台地址为的主机与清华大学的一台地址为的主机之间建立连接的话,它可能会由端点地址为的主机之间建立连接的话,它可能会由端点定义成:定义成:(,(,123

40、4)和(,)和(,25)4-29中国科学技术大学远程教育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的初始化序列,的初始化序列,S

41、YNSYN置位,占用一个序列号;置位,占用一个序列号;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-30中国科学技术大学远程教育在在TCP连接的生存期中,通过多种状态进行传输。这连接的生存期中,通过多种状态进行传输。这些状态称为些状态称为TCP状态。一个客户机按照下列顺序经历状态。一个客户机按照下列顺序经历一系列的一系列的TCP状态。如下图示:状态。如下图示:4-31中国科学技术大学远程教育CLOSECLOSEFIN_WAIT_1FIN_WAIT_1TIME_WAITTIME_WAITFIN_WAIT_2FIN_WAIT_2SYN_SENTSYN_SENTESTABLISHEDESTABLISHED接收接收SYNSYN和和ACKACK发送发送

43、ACKACK发送发送FINFIN接收接收ACKACK不发送不发送接收接收FINFIN发送发送ACKACK等待等待3030秒秒客户主机客户主机TCPTCP的状态顺序的状态顺序4-32中国科学技术大学远程教育于客户机一样,服务器也经历各种于客户机一样,服务器也经历各种TCP状态。如下图状态。如下图示:示:4-33中国科学技术大学远程教育CLOSECLOSEESTABLISHEDESTABLISHEDLAST_ACKLAST_ACKCLOSED_WAITCLOSED_WAITLISTENLISTENSYN_RCVDSYN_RCVD接收接收SYNSYN发送发送SYNSYN和和ACKACK接收接收CAK

44、CAK不发送不发送接收接收FINFIN不发送不发送发送发送FINFIN接收接收ACKACK不发送不发送服务器服务器TCPTCP的状态顺序的状态顺序4-34中国科学技术大学远程教育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关闭某连接的,关闭

45、某连接的,TCP BTCP B收到一个收到一个FINFIN段,进入段,进入CLOSEWAITCLOSEWAIT状态。状态。在第在第3 3行中,如果行中,如果TCP BTCP B还有数据要发送,在报头之后,会有数据,同时对还有数据要发送,在报头之后,会有数据,同时对TCP ATCP A发发来的来的FINFIN确认(确认(FINFIN占用一个序列号)。发送完数据后,在第占用一个序列号)。发送完数据后,在第4 4行,行,TCP BTCP B再发送一再发送一个个FINFIN段,在没有收到确认之前是段,在没有收到确认之前是LASTLASTACKACK(等待发往远程(等待发往远程TCPTCP的的FINFI

46、N的确认)状的确认)状态。第态。第5 5行中,行中,TCP BTCP B在收到了它发出的在收到了它发出的FINFIN的确认后,进入的确认后,进入CLOSEDCLOSED状态,状态,TCP ATCP A在在超时时间到后,自动关闭。超时时间到后,自动关闭。4-35中国科学技术大学远程教育TCP关闭连接为什么采用三次握手法关闭连接为什么采用三次握手法正常关闭时,一端用户发出一个正常关闭时,一端用户发出一个DR(释放连接请求释放连接请求)TPDU,首先要,首先要求释放连接。当该求释放连接。当该TPDU到达对方到达对方后,收方也回送一个后,收方也回送一个DRTPDU,并同时启动定时器以防止其并同时启动定

47、时器以防止其DRTPDU丢失。当应答方的丢失。当应答方的DR到达到达后,最初提出释放连接的一方又后,最初提出释放连接的一方又回送一个回送一个ACK(确认确认)TPDU,并,并断开连接。最后,当断开连接。最后,当ACKTPDU抵达目的地后,接收方也释放连抵达目的地后,接收方也释放连接。接。释放一个连接意味着传输实体从释放一个连接意味着传输实体从其记载所有接通的连接的表中删其记载所有接通的连接的表中删除该连接的有关信息并设法通知除该连接的有关信息并设法通知该连接的所有者该连接的所有者(传输用户传输用户)。4-36中国科学技术大学远程教育图图b表示,如果最后的表示,如果最后的ACK(确认确认)TPD

48、U丢失,就需要用定时器来丢失,就需要用定时器来补救。当定时器超过时限后,连接将被强行释放。补救。当定时器超过时限后,连接将被强行释放。图图c表示,当第二个表示,当第二个DR(响应的响应的DR)丢失的情形。这时,首先提出丢失的情形。这时,首先提出释放连接的用户将不能收到所期待的响应,待到定时器超时,再释放连接的用户将不能收到所期待的响应,待到定时器超时,再次开始要求释放连接。从图次开始要求释放连接。从图c中可以看到这种情况下是如何工作的,中可以看到这种情况下是如何工作的,假设第二次没有任何假设第二次没有任何TPDU丢失,并且所有丢失,并且所有TPDU都正确、及时地都正确、及时地到达目的地。到达目

49、的地。最后一种情况如图最后一种情况如图d所示。除了假设由于丢失所示。除了假设由于丢失TPDU使所有重发使所有重发DR的尝试均失败以外,其他情况与图的尝试均失败以外,其他情况与图c完全相同。这样,经过完全相同。这样,经过N次尝试后,发送方次尝试后,发送方(提出释放连接的一方提出释放连接的一方)只好放弃努力并断开连只好放弃努力并断开连接。同时,接收方接。同时,接收方(被动释放连接的一方被动释放连接的一方)因为定时器超时也释放因为定时器超时也释放掉连接。掉连接。可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭的情形。但理论上当第一个的情

50、形。但理论上当第一个DR和所有和所有N次重发均被丢失的情况下,次重发均被丢失的情况下,该协议便会失败。因为此时发送方将放弃重发并释放连接,而另该协议便会失败。因为此时发送方将放弃重发并释放连接,而另一方却对对方的释放连接企图一无所知,而处于连接有效状态。一方却对对方的释放连接企图一无所知,而处于连接有效状态。这种情况将导致一个半接通的连接。这种情况将导致一个半接通的连接。4-37中国科学技术大学远程教育消除半接通连接的可行方法消除半接通连接的可行方法消除半接通连接的一种方法是,如果在一段时间内没消除半接通连接的一种方法是,如果在一段时间内没有收到任何有收到任何TPDU,连接便自动释放。这样,如

51、果一方,连接便自动释放。这样,如果一方已经释放了连接,那么另一方将检测不到对方的活动已经释放了连接,那么另一方将检测不到对方的活动因而也断开连接。当然,如果引进这一规则,就需要因而也断开连接。当然,如果引进这一规则,就需要为每个传输实体设置一个定时器,每当收到一个为每个传输实体设置一个定时器,每当收到一个TPDU时都要使定时器停止并重新启动。如果该定时器超时,时都要使定时器停止并重新启动。如果该定时器超时,就发送一个伪就发送一个伪TPDU,目的只是不让对方释放连接。,目的只是不让对方释放连接。另一方面,如果在一个处于空闲状态的连接上连续丢另一方面,如果在一个处于空闲状态的连接上连续丢失了很多的

52、伪失了很多的伪TPDU,那么连接的双方将会先后释放连,那么连接的双方将会先后释放连接。接。4-38中国科学技术大学远程教育最大报文段长度最大报文段长度MSS应用程序进程之间建立起连接后,就将进行真正的数应用程序进程之间建立起连接后,就将进行真正的数据传输。传输层从应用程序接收的数据将被分割为更据传输。传输层从应用程序接收的数据将被分割为更小的报文段。在接收端,这些报文段被重组。由于能小的报文段。在接收端,这些报文段被重组。由于能够重组的数据有其最大限制,所以报文段必须有大小够重组的数据有其最大限制,所以报文段必须有大小的限制。的限制。最大报文长度最大报文长度(MSS):报文段大小的上限。:报文

53、段大小的上限。TCP默认默认MSS是是536字节。因此,字节。因此,TCP接收到应用程序的数据后,接收到应用程序的数据后,将其分割的报文段不能超过将其分割的报文段不能超过536字节这一上限。字节这一上限。在连接建立期间,在连接建立期间,TCP提供一些选项,以指明连接可提供一些选项,以指明连接可接受的接受的MSS。这个。这个MSS是接收方发送给发送方的,指是接收方发送给发送方的,指明了服务器可能接收的最大值明了服务器可能接收的最大值X。X值既可以大于也可值既可以大于也可以小于默认的以小于默认的MSS值。值。4-39中国科学技术大学远程教育4.3.4TCP可靠传输可靠传输TCP提供面向连接的字节流

54、传输。提供面向连接的字节流传输。面向连接的传输协议对可靠性的保证首先是它在进面向连接的传输协议对可靠性的保证首先是它在进行数据传输前,必须在通信双方建立一条连接。行数据传输前,必须在通信双方建立一条连接。面向连接的传输协议要求对每一个报文都要进行确面向连接的传输协议要求对每一个报文都要进行确认,未经确认的报文被当作是错误报文。认,未经确认的报文被当作是错误报文。流相当于一个管道,发送端从管道的一端放入什么,流相当于一个管道,发送端从管道的一端放入什么,接收端就可以照原样取出什么。接收端就可以照原样取出什么。TCP连接是全双工和点到点的。连接是全双工和点到点的。全双工意味着可以同时进行双向传输。

55、全双工意味着可以同时进行双向传输。点到点的意思是每个连接只有两个端点。点到点的意思是每个连接只有两个端点。TCP不支持组播或全广播。不支持组播或全广播。4-40中国科学技术大学远程教育TCP采用的可靠性技术采用的可靠性技术可靠性传输包括以下四个含义:可靠性传输包括以下四个含义:差错控制差错控制序列控制序列控制丢失控制丢失控制重复控制重复控制4-41中国科学技术大学远程教育4.3.5TCP流量控制及拥塞控制流量控制及拥塞控制流量控制流量控制TCP采用信用量机制进行流量控制。当建立一个连接时,两采用信用量机制进行流量控制。当建立一个连接时,两端都为连接分配一块接收缓冲区。发方数据到达时先放到缓冲区

56、端都为连接分配一块接收缓冲区。发方数据到达时先放到缓冲区中,然后再发送;收方收到数据后,也是先放进缓冲区,然后在中,然后再发送;收方收到数据后,也是先放进缓冲区,然后在适当的时候由适当的时候由TCP实体交给应用程序处理。由于每个连接的接收实体交给应用程序处理。由于每个连接的接收缓冲区大小是固定的,当发送力发送过快时,会导致缓冲区溢出缓冲区大小是固定的,当发送力发送过快时,会导致缓冲区溢出造成数据丢失,因此接收方必须随时通报缓冲区的剩余空间,以造成数据丢失,因此接收方必须随时通报缓冲区的剩余空间,以便发送方调整流量。便发送方调整流量。接收方通过将缓冲区的剩余空间大小放入接收方通过将缓冲区的剩余空

57、间大小放入windowsize域来域来通知发送方,发送方每次发送的数据量不能超过通知发送方,发送方每次发送的数据量不能超过windowsize中指中指定的字节数。当定的字节数。当windowsize为为0时,发送方必须停上发送。当接时,发送方必须停上发送。当接收方将数据交给应用程序后,发送一个收方将数据交给应用程序后,发送一个ACK段(称窗口更新)来段(称窗口更新)来告知发送方新的接收窗口大小。告知发送方新的接收窗口大小。4-42中国科学技术大学远程教育流量控制机制流量控制机制TCPTCP使用序列号使用序列号(Sequence Number)(Sequence Number)、确认号确认号(A

58、cknowledge Number)(Acknowledge Number)和窗和窗口尺寸口尺寸(Window Size)(Window Size)相结合的方法来保证数据传递的可靠性。接收机端相结合的方法来保证数据传递的可靠性。接收机端根据可用的缓冲区空间大小根据可用的缓冲区空间大小( (流量控制流量控制) )来决定窗口尺寸来决定窗口尺寸( (以字节计算以字节计算) )。发送端统计出发送的字节数,并且在接收到确认号后只发送发送端统计出发送的字节数,并且在接收到确认号后只发送“与窗口相与窗口相当当”的数据字节。一旦窗口中前面部分报文得到了确认,则窗口向前滑的数据字节。一旦窗口中前面部分报文得到了

59、确认,则窗口向前滑动相应的位置。动相应的位置。TCPTCP把数据当做字节流来看待。把数据当做字节流来看待。12345678910窗口当前位置窗口当前位置下一个可发送的报文下一个可发送的报文其中:其中:1、2、3是已经发送且得是已经发送且得到确认的,到确认的,4、5为已经发送,为已经发送,但至少但至少4是未得到确认的是未得到确认的如该图中为窗口大小为如该图中为窗口大小为4,此时,如果,此时,如果5得到了确认,窗口不能向前滑得到了确认,窗口不能向前滑动,在动,在4和和5都得到了确认后,而都得到了确认后,而6还未得到确认时,窗口可以一次向前还未得到确认时,窗口可以一次向前滑动两个位置。滑动两个位置。

60、在接收端,窗口内的报文为可以接受的报文,窗口前的报文为已经收在接收端,窗口内的报文为可以接受的报文,窗口前的报文为已经收到,且已经发回确认的报文,不能接收;窗口后面多个报文则要等待到,且已经发回确认的报文,不能接收;窗口后面多个报文则要等待窗口滑动后,落入到窗口之中,才能接收。窗口滑动后,落入到窗口之中,才能接收。4-43中国科学技术大学远程教育决定滑动窗口大小的因素决定滑动窗口大小的因素决定滑动窗口大小的因素,包括网络的带宽、可靠性以及需要传输的数据量。决定滑动窗口大小的因素,包括网络的带宽、可靠性以及需要传输的数据量。WindowsNT的的TCP滑动窗口,其默认窗口大小为滑动窗口,其默认窗

61、口大小为8760,每接收两段信息就发,每接收两段信息就发回一个确认。回一个确认。TcpWindowSize规定滑动窗口的大小参数,位于规定滑动窗口的大小参数,位于HKEY_LOCAL_MACHINECurrentControlSetServicesTCPIPParameters下,缺省大小为下,缺省大小为8760。ForwardBufferMemory位于位于HKEY_LOCAL_MACHINECurrentControlSetServicesTCPIPParameters下,缺省大小为下,缺省大小为74240=50*1480DefaultTTL位于位于HKEY_LOCAL_MACHINECu

62、rrentControlSetServicesTCPIPParameters下,缺省大小为下,缺省大小为32秒秒重发计时器重发计时器(retransmittimer):在重新发送数据包之前将等待:在重新发送数据包之前将等待ACK的时间。可在的时间。可在注册表中修改重发次数,缺省为注册表中修改重发次数,缺省为5次。缺省起始时间为次。缺省起始时间为1秒。秒。重试时间分别为重试时间分别为1秒;第一次失败后的秒;第一次失败后的2秒;第二次失败后的秒;第二次失败后的4秒;第三次失败秒;第三次失败后的后的8秒;第四次失败后的秒;第四次失败后的16秒。秒。延迟延迟ACK计时器(计时器(delayed-ACK

63、timer):):定义:在重新发送数据包之前将等待定义:在重新发送数据包之前将等待ACK的时间的时间ACK定时器的延迟为硬编码定时器的延迟为硬编码200ms,为第一次重发计时器的,为第一次重发计时器的1/5。4-44中国科学技术大学远程教育拥塞控制拥塞控制为了进行拥塞控制,仅有一个接收窗口是不够的,发送方还必为了进行拥塞控制,仅有一个接收窗口是不够的,发送方还必须维持一个拥塞窗口。发送窗口必须是接收窗口和拥塞窗日中较小须维持一个拥塞窗口。发送窗口必须是接收窗口和拥塞窗日中较小的那一个。和接收窗口一样,拥塞窗口也是动态可变的。的那一个。和接收窗口一样,拥塞窗口也是动态可变的。连接建立时,拥塞窗口

64、被初始化成该连接支持的最大段长度,连接建立时,拥塞窗口被初始化成该连接支持的最大段长度,然后然后TCIP实体发送一个最大长度的段;如果这个段没有超时,则将实体发送一个最大长度的段;如果这个段没有超时,则将拥塞窗口调整成两倍最大段长度,然后拥塞窗口调整成两倍最大段长度,然后TCP发送两倍最大长度的段。发送两倍最大长度的段。每当发送出去的段都及时地得到应答,就将拥塞窗口的大小加倍,每当发送出去的段都及时地得到应答,就将拥塞窗口的大小加倍,直至最终达到接收窗口大小或发生超时,这种算法称为慢启动。直至最终达到接收窗口大小或发生超时,这种算法称为慢启动。如果发生了超时,如果发生了超时,TCP实体将一个门

65、限参数设置成当前拥塞窗实体将一个门限参数设置成当前拥塞窗口的一半,然后将拥塞窗口重新初始化长最大段段长度,再一次执口的一半,然后将拥塞窗口重新初始化长最大段段长度,再一次执行慢启动算法,直至拥塞窗口大小达到设定的门限值;这时减慢拥行慢启动算法,直至拥塞窗口大小达到设定的门限值;这时减慢拥塞窗口增大的速率,每当发送出去的段得到了及时应答,就将拥塞塞窗口增大的速率,每当发送出去的段得到了及时应答,就将拥塞窗口增加一个最大段长度,如此拥塞窗呈现线性增大直至达到接收窗口增加一个最大段长度,如此拥塞窗呈现线性增大直至达到接收窗口或又发生超时。当拥塞窗口达到接收收窗口时就不再增大,此窗口或又发生超时。当拥

66、塞窗口达到接收收窗口时就不再增大,此后一直保持不变,除非接收窗门改变或又发生超时;如果发生超时后一直保持不变,除非接收窗门改变或又发生超时;如果发生超时则使用上述拥塞控制算法重新确定合适的拥塞窗口大小。则使用上述拥塞控制算法重新确定合适的拥塞窗口大小。4-45中国科学技术大学远程教育TCPTCP与上层用户和低层协议的接口与上层用户和低层协议的接口上层用户和上层用户和TCPTCP的接口的接口详细完整的模型在提供互操作通信软件方面,详细完整的模型在提供互操作通信软件方面,TCPTCP除了接收除了接收命令,还要返回信息给它服务的进程上层用户和命令,还要返回信息给它服务的进程上层用户和TCPTCP之间

67、的接口命之间的接口命令令OPENOPEN(打开)(打开)SENDSEND(发送)(发送)RECEIVERECEIVE(接收)(接收)CLOSECLOSE(关闭)(关闭)STATUSSTATUS(状态)(状态)ABORTABORT(中止)(中止)TCPTCP和和IPIP的接口的接口TCPTCP通过调用一个低层协议模块,在一个网络中进行实际的发通过调用一个低层协议模块,在一个网络中进行实际的发送和接收信息。送和接收信息。如果低层协议是如果低层协议是IPIP,它为一个,它为一个TOSTOS和和TTLTTL提供了自变量,提供了自变量,TCPTCP为为这些自变量使用了自己的设置。这些自变量使用了自己的设

68、置。任何低层协议必须提供源地址、目的地址和协议字段,以及任何低层协议必须提供源地址、目的地址和协议字段,以及确定确定“ TCP“ TCP长度长度” ” 的一些方法,还要提供与的一些方法,还要提供与IPIP功能等同的功能等同的服务和在服务和在TCPTCP校验和中使用的部分。校验和中使用的部分。4-46中国科学技术大学远程教育4.3.6TCP与与UDP的区别的区别TCP(TransmissionControlProtocol):为典型的传输大量数:为典型的传输大量数据或需要接收数据许可的应用程序提供连接定向和可靠的通据或需要接收数据许可的应用程序提供连接定向和可靠的通信。信。UDP(UserDat

69、agramProtocol):提供无连接的通信,并不保:提供无连接的通信,并不保证数据包被发送到。典型的即时传输少量数据的应用程序使证数据包被发送到。典型的即时传输少量数据的应用程序使用用UDP。应该说可靠的发送是应用程序的责任。应该说可靠的发送是应用程序的责任。TCPUDP是否连接是否连接面向面向连接接无无连接接应用场合应用场合传输大量数据大量数据即即时传输少量数据少量数据传输可靠性传输可靠性可靠的可靠的不可靠的不可靠的传输速度传输速度慢慢快快4-47中国科学技术大学远程教育4.4r-services设远程主机是设远程主机是A,A要用要用rlogin登录到主机登录到主机B。1.当当A上的用户

70、启动了上的用户启动了rlogin,B上的上的rlogind在在B上的上的/etc/passwd中检查是否有这个用户名,如果没有则拒绝这次远程访问。中检查是否有这个用户名,如果没有则拒绝这次远程访问。2.在在/etc/hosts.equiv中检查远程主机的主机名,若有中检查远程主机的主机名,若有A的名字,的名字,则允许这次访问。则允许这次访问。3.若在若在/etc/hosts.equiv中没有中没有A的名字,则在的名字,则在B的远程用户的起的远程用户的起始目录中的始目录中的.rhosts文件中是否有远程主机文件中是否有远程主机B的名字。的名字。4.如果如果.rhosts文件中有远程主机文件中有远

71、程主机B的名字的项并且该项后没有用的名字的项并且该项后没有用户名,则允许这次访问。户名,则允许这次访问。5.如果如果.rhosts文件中有远程主机文件中有远程主机B的名字的项、该项后有用户名的名字的项、该项后有用户名并且该项后的用户名中有这个远程用户,则允许这次访问。并且该项后的用户名中有这个远程用户,则允许这次访问。6.如果如果.rhosts文件中有远程主机文件中有远程主机B的名字的项、该项后有用户名的名字的项、该项后有用户名并且该项后的用户名中没有这个远程用户,则要求用户输入口并且该项后的用户名中没有这个远程用户,则要求用户输入口令,如果口令正确则允许这次访问,否则拒绝这次访问。令,如果口

72、令正确则允许这次访问,否则拒绝这次访问。4-48中国科学技术大学远程教育4.4.1TCP/IP网络系统命令网络系统命令rwho命令:和命令:和who命令的功能很相似。它显示网络中的每个系统命令的功能很相似。它显示网络中的每个系统的当前注册的用户。的当前注册的用户。$rwhovioletrobert:tty1Sept1010:34garnetchris:tty2Sept1009:22命令命令ruptime:可以显示网络中的每个系统的信息。此信息能显示:可以显示网络中的每个系统的信息。此信息能显示出每个系统是如何执行。出每个系统是如何执行。ruptime显示系统是否运行,它运行了多显示系统是否运行

73、,它运行了多久,系统中的用户数和系统在最后久,系统中的用户数和系统在最后5、10和和15分钟内的系统负荷。分钟内的系统负荷。$ruptimevioletup11+04:10,8users,load1.201.10garnetup11+04:10,20users,load1.501.304-49中国科学技术大学远程教育命令命令.rhosts:用:用.rhosts文件控制使用文件控制使用TCP/IP命令对您帐号的访命令对您帐号的访问。用户能用标准的编辑器象问。用户能用标准的编辑器象Vi来创建他们帐号中的来创建他们帐号中的.rhosts文件。文件。它必须位于用户的主目录。下面的例子中,使用者显示文件

74、它必须位于用户的主目录。下面的例子中,使用者显示文件.rhosts文件的内容。文件的内容。$cat.rhostsgarnetchriscioletrobert.rhosts文件允许用户不提供口令而访问系统。如果需要禁止文件允许用户不提供口令而访问系统。如果需要禁止此用户访问,只须简单地从文件此用户访问,只须简单地从文件.rhost中删除系统名和用户注册中删除系统名和用户注册名。如果一个用户的注册名和系统名在文件名。如果一个用户的注册名和系统名在文件.rhost中,那么此用中,那么此用户就能不提供口令直接访问系统。并不是所有的远程注册操作都户就能不提供口令直接访问系统。并不是所有的远程注册操作都

75、需要这种访问形式;但一些远程命令要求有需要这种访问形式;但一些远程命令要求有.rhosts文件,象远程文件,象远程复制文件或远程执行复制文件或远程执行Linux命令。如果您想在远程系统的帐号中命令。如果您想在远程系统的帐号中使用这些命令,此帐号的使用这些命令,此帐号的.rhosts文件中必须有您文件中必须有您的注册名和系的注册名和系统名。统名。通过通过.rhosts对某一系统进行访问时,也允许您使用对某一系统进行访问时,也允许您使用TCP/IP命令直接访问系统中您的其他帐号。而不需要先注册到这些帐号命令直接访问系统中您的其他帐号。而不需要先注册到这些帐号中。可以把系统中您的其他帐号做为当前注册

76、帐号的扩展。不管中。可以把系统中您的其他帐号做为当前注册帐号的扩展。不管文件在的哪个账号下,都可以用文件在的哪个账号下,都可以用frcp命令从一个目录复制到另一命令从一个目录复制到另一个目录。个目录。4-50中国科学技术大学远程教育命令命令rlogin:要访问别的系统中别的帐号,首先要注册到您的系统:要访问别的系统中别的帐号,首先要注册到您的系统中,接着通过网络远程注册到帐号所在的系统中。用命令中,接着通过网络远程注册到帐号所在的系统中。用命令rlogin可可以远程注册支别的系统。命令的参数应是一个系统名。命令将把以远程注册支别的系统。命令的参数应是一个系统名。命令将把您连接到另一个系统中并开

77、始注册的过程您连接到另一个系统中并开始注册的过程.用用rlogin的注册过程和一般的注册过程有所不同的注册过程和一般的注册过程有所不同,用用rlogin时时用户不被提示输入注册名。用户不被提示输入注册名。rlogin假设您的本地系统中的注册名和假设您的本地系统中的注册名和远程系统中的一致。所以象上面执行远程系统中的一致。所以象上面执行rlogin命令时,您将马上被提命令时,您将马上被提示输入口令。输入口令后,就可进入远程系统各的帐号。示输入口令。输入口令后,就可进入远程系统各的帐号。用用rlogin假设注册名是相同的,因为大多数的人用假设注册名是相同的,因为大多数的人用rlogin访问访问别的

78、系统中的注册名一般和本地的注册名相同。然而,当远程系别的系统中的注册名一般和本地的注册名相同。然而,当远程系统中的注册名和本地系统的不同时,选项统中的注册名和本地系统的不同时,选项1-允许输入远程系统帐允许输入远程系统帐户的不同的注册名。语法如下所示:户的不同的注册名。语法如下所示:$rloginsystem-name-1login-name下面例子,用户用注册名下面例子,用户用注册名robert注册到注册到violet的系统中:的系统中:$rloginviolet-1robertpassword$:一旦注册到远程系统中,您能执行任何命令。可以用一旦注册到远程系统中,您能执行任何命令。可以用e

79、xit、CTRL-d或或logout(TCSH或或C-shell)结束连接)结束连接4-51中国科学技术大学远程教育远程复制文件远程复制文件rcp:命令:命令rcp的功能是从远程系统复制文件到本地的功能是从远程系统复制文件到本地系统中。系统中。rcp执行文件传输的功能,它的操作和执行文件传输的功能,它的操作和cp命令很相似,但命令很相似,但它是通过网络连接到另一系统。执行命令它是通过网络连接到另一系统。执行命令rcp时要求远程系统的时要求远程系统的.rhosts文件中有您的本地系统名和注册名。命令文件中有您的本地系统名和注册名。命令rcp参数为源文参数为源文件名和复制的目标文件名。为了指定文件

80、在远程系统中,您需要件名和复制的目标文件名。为了指定文件在远程系统中,您需要在文件名前放置一个系统名,两者之间用冒号分隔,如下所示:在文件名前放置一个系统名,两者之间用冒号分隔,如下所示:$rcpsystem-name:source-fileslystem-name:copy-file当复制一个文件到远程系统中时,复制的目标文件是远程文当复制一个文件到远程系统中时,复制的目标文件是远程文件,它要求带有系统名。而源文件在您的本机系统中,不要求系件,它要求带有系统名。而源文件在您的本机系统中,不要求系统名:统名:$rcpsource-fileremote-system-name:copy-file

81、在下面的例子中,用户从自己的系统中复制文件在下面的例子中,用户从自己的系统中复制文件weather到到远程系统远程系统violet并重命名为并重命名为monday.$rcpweatherviolet:Monday4-52中国科学技术大学远程教育小结小结传输层是网络体系结构中承上启下的一层,它起着加强互联网的传输层是网络体系结构中承上启下的一层,它起着加强互联网的服务质量服务质量QoS,并提供进程之间可靠通信的功能,并提供进程之间可靠通信的功能,TCP/IP协议是协议是利用端口来标识通信进程。利用端口来标识通信进程。TCP和和UDP是是Internet传输层的两个协议。其中传输层的两个协议。其中

82、TCP是面向连接是面向连接的,提供可靠的字节流服务;的,提供可靠的字节流服务;UDP是无连接的,提供数据报服务。是无连接的,提供数据报服务。TCP和和UDP的共同点在于它们都提供进程通信能力,为此在的共同点在于它们都提供进程通信能力,为此在TCP和和UDP协议中引入端口的概念。协议中引入端口的概念。UDP是最简单的传输层协议,几乎不提供任何可靠性措施。适用是最简单的传输层协议,几乎不提供任何可靠性措施。适用UDP的应用程序须自己进行可靠性控制。的应用程序须自己进行可靠性控制。TCP为保证可靠性做了大量的工作,它提供确认、超时重传以及为保证可靠性做了大量的工作,它提供确认、超时重传以及滑动窗口机

83、制。滑动窗口机制。TCP所面临的所有问题中,重复报文是最难解决所面临的所有问题中,重复报文是最难解决的问题,为此的问题,为此TCP引入三次握手以排除在建立和撤除连接过程中引入三次握手以排除在建立和撤除连接过程中重复报文的干扰。另外,重复报文的干扰。另外,TCP协议还提供紧急数据传输等操作,协议还提供紧急数据传输等操作,以满足实时应用需求以满足实时应用需求4-53中国科学技术大学远程教育习题习题习题习题4.1一台一台TCP机器在机器在1Gb/s的通道上使用的通道上使用65535字节的字节的发送窗口,单程延迟时间等于发送窗口,单程延迟时间等于10ms。问可以取得的最。问可以取得的最大吞吐率是多少?

84、大吞吐率是多少?解:解:10ms*2=20ms每每20ms可以发送一个窗口大小的交通量,每秒可以发送一个窗口大小的交通量,每秒50个窗个窗口口(=1000ms/20ms)。65535/8/50=26.214Mb/s26.214Mb/s/1000Mb/s2.6%所以,最大吞吐率是所以,最大吞吐率是26.214Mb/s,线路效约为线路效约为2.6%4-54中国科学技术大学远程教育习题习题4.2一个一个TCP链接使用链接使用256kb/s的链路,其端到端延时的链路,其端到端延时为为128ms。经测试发现吞吐量只有。经测试发现吞吐量只有128kb/s。试问窗口。试问窗口是多少?忽略是多少?忽略PDU封

85、装的协议开销以及接收方应答分封装的协议开销以及接收方应答分组的发射时间组的发射时间(假定应答分组长度很小假定应答分组长度很小)。解:来回路程的时延等于解:来回路程的时延等于256ms(=128ms*2)。设窗口值。设窗口值为为X字节,假定一次最大发送量等于窗口值,且发射时字节,假定一次最大发送量等于窗口值,且发射时间等于间等于256ms,那么,每发送一次都得停下来期待再次,那么,每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可。这样,得到下一窗口的确认,以得到新的发送许可。这样,发射时间等于停止等待应答的时间。结果,测到的平发射时间等于停止等待应答的时间。结果,测到的平均吞吐

86、率就等于发送速率的一半,即均吞吐率就等于发送速率的一半,即128ms。8X/(256*1000)=256*0.001X=256*1000*256*0.001/8=256*32=8192所以,窗口值为所以,窗口值为8192。4-55中国科学技术大学远程教育习题习题4.3在一个网络中,最大在一个网络中,最大TPDU尺寸为尺寸为128字节,最字节,最大的大的TPDU存活时间为存活时间为30秒,使用秒,使用8位序列号,问每条位序列号,问每条连接的最大数据速率是多少?连接的最大数据速率是多少?解:具有相同编号的解:具有相同编号的TPDU不应该同时在网络中传输,必不应该同时在网络中传输,必须保证,当序列号

87、循环回来重复使用的时候,具有相须保证,当序列号循环回来重复使用的时候,具有相同序列号的同序列号的TPDU已经从网络中消失。现在存活时间是已经从网络中消失。现在存活时间是30秒,那么在秒,那么在30秒的时间内发送方发送的秒的时间内发送方发送的TPDU的数目的数目不能多于不能多于255个。个。255*128*86308738b/s所以,每条连接的最大数据速率是所以,每条连接的最大数据速率是8738kb/s。4-56中国科学技术大学远程教育习题习题4.4假定使用两次握手替代三次握手来建立假定使用两次握手替代三次握手来建立TCP连接,是否会产连接,是否会产生死锁?生死锁?答:我们知道答:我们知道3次握

88、手完成两个重要功能,既要双方做好发送数据的次握手完成两个重要功能,既要双方做好发送数据的准备工作准备工作(双方都知道彼此已准备好双方都知道彼此已准备好),也要允许双方就初始序列,也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送与确认。号进行协商,这个序列号在握手过程中被发送与确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机作为例子,考虑计算机A和和B之间的通信。假定之间的通信。假定B给给A发送一个连发送一个连接请求分组,接请求分组,A收到了这个分组,并发送了确认应答分组。按照收到了这个分组,并发送了

89、确认应答分组。按照两次握手的协定,两次握手的协定,A认为连接已经成功地建立了,可以开始发送认为连接已经成功地建立了,可以开始发送数据分组。可是,数据分组。可是,B在在A的应答分组在传输中被丢失的情况下,将的应答分组在传输中被丢失的情况下,将不知道不知道A是否已准备好,不知道是否已准备好,不知道A建议什么样的序列号用于建议什么样的序列号用于A到到B的交通,也不知道的交通,也不知道A是否同意是否同意B所建议的用于所建议的用于B到到A交通的初始序交通的初始序列号,列号,B甚至怀疑甚至怀疑A是否收到自己的连接请求分组。在这种情况下,是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽

90、略认为连接还未建立成功,将忽略A发来的任何数据分组,只等待发来的任何数据分组,只等待接收连接确认应答分组。而接收连接确认应答分组。而A在发出的分组超时后,重复发送同在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。样的分组。这样就形成了死锁。4-57中国科学技术大学远程教育习题习题4.5假定假定TCP拥塞窗口被置成拥塞窗口被置成18K字节,并且发生了字节,并且发生了超时事件。如果接着的超时事件。如果接着的4个突发量传输都是成功的,那个突发量传输都是成功的,那么该窗口将是多大?假定最大报文段长度是么该窗口将是多大?假定最大报文段长度是1KB。答:在答:在Internet的拥塞控制算法中,

91、除了使用慢启动的接的拥塞控制算法中,除了使用慢启动的接收窗口和拥塞窗口外,还使用第收窗口和拥塞窗口外,还使用第3个参数,即门槛值,个参数,即门槛值,开始置成开始置成64K。当发生超时的时候,该门槛值被设置成。当发生超时的时候,该门槛值被设置成当前拥塞窗口值的一半,而拥塞窗口则重置成一个最当前拥塞窗口值的一半,而拥塞窗口则重置成一个最大报文段长。然后再使用慢启动的算法决定网络可以大报文段长。然后再使用慢启动的算法决定网络可以接受的突发量,一直增长到门槛值为止。从这一点开接受的突发量,一直增长到门槛值为止。从这一点开始,成功的传输线性地增加拥塞窗口,即每一次突发始,成功的传输线性地增加拥塞窗口,即

92、每一次突发传输后只增加一个最大报文段,而不是每个报文段传传输后只增加一个最大报文段,而不是每个报文段传输后都增加一个最大报文段的窗口值。输后都增加一个最大报文段的窗口值。现在由于发生了超时,下一次传输将是现在由于发生了超时,下一次传输将是1个最大报文个最大报文段,然后是段,然后是2个、个、4个和个和8个最大报文段,所以在个最大报文段,所以在4次突次突发量传输后,拥塞窗口将是发量传输后,拥塞窗口将是8K字节。字节。4-58中国科学技术大学远程教育习题习题4.6既然在数据链路层既然在数据链路层(网络接口层网络接口层)已经有了差错处理,为什么传输已经有了差错处理,为什么传输层还需要差错处理呢?层还需

93、要差错处理呢?答:这是因为,数据链路层的功能保证每条链路中节点到节点的无差错传答:这是因为,数据链路层的功能保证每条链路中节点到节点的无差错传输。然而,节点到节点的可靠性并不保证端到端的可靠性。下图显示了输。然而,节点到节点的可靠性并不保证端到端的可靠性。下图显示了一种差错出现情况,在这种情况中,差错不能被数据链路层差错处理所一种差错出现情况,在这种情况中,差错不能被数据链路层差错处理所发现。发现。此图中,数据链路层保证在每个网络之间所传递的包是无差错的。此图中,数据链路层保证在每个网络之间所传递的包是无差错的。但是当包在路由器内部处理时,可能引入差错。这个差错将不会被下一但是当包在路由器内部

94、处理时,可能引入差错。这个差错将不会被下一个链路中的数据链路功能所发觉,这是因为数据链路功能仅仅检查在链个链路中的数据链路功能所发觉,这是因为数据链路功能仅仅检查在链路起始和终止之间是否有差错被引入。传输层因此必须进行自己的端到路起始和终止之间是否有差错被引入。传输层因此必须进行自己的端到端检查,以保证数据包可以如源所期待的那样正确地到达。端检查,以保证数据包可以如源所期待的那样正确地到达。4-59中国科学技术大学远程教育习题习题4.7如果如果TCP来回路程时间来回路程时间RTT的当前值是的当前值是30ms,随后应答分,随后应答分别在别在26、32和和24ms到来,那么新的到来,那么新的RTT

95、估算值是多少?假定估算值是多少?假定=0.9。解:对于每一条连接,解:对于每一条连接,TCP都维持一个变量都维持一个变量RTT,它是当前到达,它是当前到达目的地的最佳估计值。当发送一个报文段的时候,启动计时器,目的地的最佳估计值。当发送一个报文段的时候,启动计时器,查看应答要花多长时间,如果时间太长,就要重发报文段。如果查看应答要花多长时间,如果时间太长,就要重发报文段。如果应答在超时前返回,应答在超时前返回,TCP就测量应答花了多长时间,比如说是就测量应答花了多长时间,比如说是M,然后用下列公式更新,然后用下列公式更新RTT值:值:RTT=*RTT+(1-)*M现在现在=0.9,RTT=30ms,M1=26,M2=32,M3=24。所以。所以,RTT1=0.9*30+(1-0.9)*26=29.6RTT2=0.9*29.6+(1-0.9)*32=29.84RTT3=0.9*29.84+(1-0.9)*24=29.256因此,新的因此,新的RTT估算值分别是估算值分别是29.6ms,29.84ms和和29.256ms。4-60中国科学技术大学远程教育本章习题本章习题参见教师网页:参见教师网页:http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号