TCPIP基本原理传输层课件_第1页
TCPIP基本原理传输层课件_第2页
TCPIP基本原理传输层课件_第3页
TCPIP基本原理传输层课件_第4页
TCPIP基本原理传输层课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

本章学习要求:掌握:端口、周知端口号、TCP地址、MSS、RTT、三次握手、套接字、慢启动等概念;掌握:TCP的重传机制原理掌握:用三次握手建立连接、关闭连接的原理掌握:流量及拥塞控制原理了解:TCP、UDP的校验和原理了解:TCP、UDP报文格式了解:常用网络命令中国科学技术大学远程教育4-14.1

Internet传输层的基本原理传输层的功能目的:是在互联网层提供主机数据通信服务的基础上,向源主机和宿主机之间提供端到端可靠进程通信。功能:一是加强或弥补网络层或互联网层提供的服务;二是提供进程通信机制。端到端的通信:是由一段段点到点的通信构成的,端到端的协议建立在点到点的协议基础之上,提供应用进程之间的通信,在其下层,是没有应用进程整个概念的。端口号:传输层要区分收到的数据中的不同的应用进程,方法是为每个应用进程分配一个“端口号Port

Number”.某一台主机上的某个应用进程由「主机IP地址、端口号」唯一标识端口号也称为传输层访问点TSAP。传输层要解决的问题还有:差错控制、流量控制、排序和连接管理等问题。在TCP/IP的协议簇中的传输层协议有传输控制协议TCP,面向连接。用户数据报协议UDP,面向无连接。中国科学技术大学远程教育4-24.1.1

TCP服务TCP 为主机提供许多服务。

TCP 是一个面向连接的协议,须提供会话管理和数据单元的可靠传输。IP是一个无连接协议,它依靠TIP提供可靠的数据传输。TCP提供两种重要服务:差错控制和流量控制。TCP差错和流量控制的一个独特要素是它没有否定确认。它只发送肯定确认。如果接收到的序列有错(被校验和检测的),该数据单元就从缓冲区中删去。 TCP 不向源主机返回任何应答。 源主机在发送数据单元时设置一个确认计时器。当发生错误(校验和错或其它错)时,计时器将超时,源主机将重传数据单元。同样的机制也适用于接收数据单元的顺序出错。计时器并非固定时长,它是可变的,基于往返时间,往返时间包括前向时间(即到达目的的时间)、目的处理时间和反向延迟时间(即确认到达源主机的时间)。中国科学技术大学远程教育4-3发起一个会话一台计算机中的应用程序如果需要向其它计算机中的应用程序发送信息,它将把数据传递给传输层。传输层的TCP从应用程序那里接收到数据,然后将其分割成较小的报文段。TCP

将这些报文段封装在IP数据报中,这些数据报将在网络中路由。中国科学技术大学远程教育4-44.1.2

服务质量(QoS)连接建立延迟:传输连接请求和传输确认收到之间的时间延迟。连接建立失败的概率:在最大建立延迟时间之内,连接无法建立的概率。吞吐率:每秒传输的数据量:从源主机到宿主机的吞吐率和从宿主机到源主机的吞吐率是分别衡量的。传输延迟:信息从源主机传输至宿主机的持续时间,传输延迟也是双向分别衡量的。残余误码率:一段特定时间内丢失或混乱的数据量占总数据量的比率。安全保护:用于防止未经授权的第三方读取或修改传输的数据。优先级:确保重要应用的数据优先得到传输服务。中国科学技术大学远程教育4-54.1.3

传输层端口Internet传输层与互联网层功能上的最大区别是前者提供进程通信能力,而后者不提供进程通信能力。为了提供进程通信功能,TCP/IP协议提出了端口(port)的概念,用于标识通信的进程。端口实际上是一个抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(进程)通过系统调用与某端口建立关联(binding)后,传输层传给该端口的数据都被相应的应用进程所接收。端口又是应用进程访问传输服务的入口点。中国科学技术大学远程教育4-6套接字套接字在要领上与文件句柄类似,因为其功能是作为网络通信的终结点。一个应用程序通过定义三部分来产生一个套接字:主机IP地址、服务类型(面向连接的服务是TCP,无连接服务是UDP)、应用程序所用的端口。中国科学技术大学远程教育4-7端口号分配全局分配由一个公认的中央机构根据用户需求统一进行分配,并将结果公布于众。全局端口分配的弊端是在于不能适应大量且迅速变化的端口使用环境。本地分配或动态联编当某进程需要访问传输服务时,它向主机操作系统提出动态申请,操作系统根据主机状态为该进程分配一个本地唯一的端口号,然后该进程再通过系统调用将自己与相应的端口号进行关联操作。本地分配方式不受网络规模的限制,但其它主机仍然无法获知分配情况,进程之间的通信依然难以建立。中国科学技术大学远程教育4-8Internet端口号分配Internet将端口分为两部分,一部分是保留端口,一部分是自由端口。其中保留端口只占很小的数目,它以全局方式进行分配,对应于前面所讨论的服务器进程。在Internet中,每一个标准的服务器进程都拥有一个全局公认的端口号,不同机器上相同的服务器进程,其端口号相同。TCP和UDP都规定,小于256的端口号才能作为保留端口。自由端口以本地方式进行分配。当某进程要与远地进程通信之前,首先申请一个自由端口号并与之进行关联操作,然后与远地进程进行通信。中国科学技术大学远程教育4-9TCP和UDP的保留端口中国科学技术大学远程教育4-10常用周知端口号列表端口号协议关键词UNIX关键词描述1TCPTCPMUX-TCP复用器7TCP/UDPECHOEcho回送9TCP/UDPDISCARDDiscard丢弃15TCP/UDP-Netstat网络状态程序20TCPFTP-DATAftp-data文件传输协议(数据)21TCPFTPftp文件传输协议22TCP/UDPSSHSsh安全shell远程登录23TCPTELNETtelnet远程登录25TCPSMTPSmtp简单邮件传输协议37TCP/UDP-Time时间42TCP/UDPNAMESERVERName主机名称服务器43TCP/UDPNICNAMEWhois是谁53TCP/UDPDOMAINNameserver域名服务器67UDPBOOTPSBootps引导协议服务器68UDPBOOTPCbootpc引导协议客户69UDPTFTPTftp简单文件传输协议79TCPFINGERFingerFinger中国科学技术大学远程教育4-11常用周知端口号列表(续)端口号协议关键词UNIX关键词描述80TCPHTTPhttp超文本传输协议88TCPKERBEROSKerberosKerberos协议93TCPDCP-设备控制协议101TCPHOSTNAMEHostnameNIC主机名字服务器110TCPPOP3Pop3邮局协议v3111TCP/UDPSUNRPCSunrpcSun

Microsystem

RPC119TCPNNTPnntpUSENET新闻传送协议123UDPNTPNtp网络时间协议139TCPNETBIOS-SSN-NETBIOS会话协议161UDP-Snmp简单网络管理协议162UDP-Snmp-trapSNMP陷阱389TCPLDAPLdap轻量目录访问协议443TCPHTTPShttps安全HTTP协议513UDP-WhoUNIX

rwho

daemon514UDP-Syslog系统日志525UDP-TimedUNIX

time

daemon546TCPDHCP-CLIENTDhcp-slient动态主机配置协议客户中国科学技术大学远程教育4-124.2

用户数据报协议UDP

(User

Datagram

Protocol)特点建立在IP协议之上唯一增加的能力是提供协议端口,实现进程通信UDP使用IP协议提供的不可靠的数据报服务,通过端口号识别互相通信的实体。UDP提供的是无连接的、不可靠的用户数据报服务面向交易型应用机制端系统使用UDP协议相互通信时,UDP协议只负责将应用程序传给IP层的数据发送出去,但是并不保证它们能到达。如传输中数据出错,UDP协议不负责重传,而由更高层负责。当数据正确到达后,接收端不负责确认。也由更高层负责中国科学技术大学远程教育4-13UDP报文格式UDP校验和覆盖了除报文头外的一个附加头部,包括:源IP地址、目的IP地址、协议、UDP长度目的:验证UDP数据报是否传到正确的目的端中国科学技术大学远程教育4-14UDP头结构定义为:struct

udphdr{中国科学技术大学远程教育4-15u_int16_tsource;//发送主机的UDP端口u_int16_tdest;//目标主机的UDP端口u_int16_tlen;//UDP消息的长度u_int16_tcheck;//

校验和};UDP的校验和其中源IP地址和目标IP地址来自于IP分组头,UDP协议号为17,长度是UDP头结构中的长度相同。伪头结构只用于校验和,使用

伪头结构进行校验的目的是为了进一步证实数据被送到正确的目的地。收方UDP校验出收到的数据有错后,只是简单地丢弃数据,而不向源报告错误。中国科学技术大学远程教育4-16UDP计算校验和时,用到一个12字节的伪头结构。见下图示:UDP的伪头结构0

31源IP地址目的IP地址00000000协议号(17)UDP长度UDP的应用范围UDP不用于那些使用虚电路的面向连接的服务,而主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。中国科学技术大学远程教育4-174.3

TCP协议特点面向连接传输层协议,非常复杂提供高可靠性服务一次传输交换大量报文例子文件传输、远程登录等中国科学技术大学远程教育4-184.3.1

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

URG=1时,表明此报文是紧急数据,应尽快传送出去。确认标志位ACK:只有当ACK=1时确认序号字段才有意义。当ACK=0时,确认序号没有意义。中国科学技术大学远程教育4-19急迫标志位PSH(PuSH):当PSH=1时,请求远地TCP软件将该报文立即送给应用程序。重建标志位RST(ReseT):当RST=1时,表明出现严重差错,必须释放连接,然后重新建立连接。同步标志位SYN:当SYN=1而ACK=0时,表明这是一个建立连接请求报文,若对方同意建立该连接,则应在发回的报文中使将

SYN和ACK标志位同时置1。终止标志位FIN(Final):当FIN=1时,表明数据已经发送完毕,并请求释放连接。窗口:2字节。该字段实际上是接收方告诉发送方它的接收窗口大小,其单位为字节。窗口域主要是用于流量控制和拥塞控制。校验和:2字节。校验和也和UDP协议一样,使用伪头校验,只不过协议号为6。可选项:长度可变。TCP只规定了一种选项,即最长报文段MSS(Maximum

Segment

Size)。中国科学技术大学远程教育4-20TCP层格式中的控制信息字段控制信息字段:在报头中按照从左到右的顺序URG、ACK、PSH、RST、SYN、FIN,总共占用了6比特,对TCP数据流的发送和接收起到控制的作用。在这些控制信息标志中,SYN、FIN占用一个序列号。其余4个控制标志则不占用序列号空间。URG:紧急指针有效

ACK:确认字段有效

PSH:推送功能

RST:复位SYN:对各帧序列号进行同步FIN:不再有来自发送方的数据选项选项列表结束:指示选项列表的结束无操作:用于各个选项之间段最大尺寸:指明了发送此段的TCP上可接收的段的最大尺寸,该字段只在初始连接请求阶段被发送出去(SYN置位时)。TCP必须能够实现发送和接收最大分段尺寸选项。如果在连接建立阶段没有收到该选项,则TCP必须采用默认的发送MSS=536中国科学技术大学远程教育4-214.3.2

TCP的超时重传机制背景TCP是一个可靠的数据传输协议,它要求接收方收到TCP段后必须给予应答但TCP只能用

acknowledgement

number域中的序号来表示该序号前的所有字节都已正确接收,而没有其他否定应答或选

择重发的功能。也就是说,当接收方TCP实体收到一

个出错的TCP段后,只是将其丢弃而不作应答,因而

发送方必须采用超时重传的机制来重发久未应答的段。由于在一个巨大的互联网络中,TCP段可能在不同速

率的物理线路上传输,信源和信宿间的距离可近可远,而且每时每该网络中的拥塞情况也不同,因此要选择

一个合适的超时时间并不太一件容易的事。中国科学技术大学远程教育4-22原理TCP使用一种动态算法随时调整超时间隔。对于每个连接,都维持一个变量RTT。RTT

(Round-trip

Time)是当前发送方到接收方来回时间的最佳估算值。每当发送了一个段,发送方即启动一个计时器,一方面用来测量从发送TCP段到收到应答的来回时间,另一方面当超过估算的超时间隔后即进行重发。算法每当收到一个应答,TCP就从计时器中得到当前的来回时间

M,然后利用公式:RTT=α*

RTT+(1-α)M估算出新的R

T

T值,

α是一个平滑因于,通常取为7/8。因为实际的来回时间同估算值总会有一个偏差,因此利用公式D=αd+(1-α)|RTT-M|计算出实际来回时间同RTT的偏差范围,这里的α和估算RTT的α可能不同。最后利用公式Timeout=RTT+4D

确定出当前的超时间隔。评价这种算法在网络拥塞或收发双方距离较远时能够自动延长超时间隔,减少不必要的重发,而在网络较为空闲或双方距离较近时又能迅速减小超时间隔,及时重发出错的段,从而加快数据传输速度。中国科学技术大学远程教育4-234.3.3

TCP连接TCP为每个数据流初始化并维护特定的状态信息的组合,称为一个连接。每个连接由标识该连接两端的一对套接字唯一确定,套接字是由端口号和IP地址确定,在全网范围内是唯一的。当两个进程希望通信时,它们的TCP必须首先建立一个连接,通信完成时,该连接要终止或关闭,释放资源。TCP连接的建立通过“三次握手”来建立一条连接,以减少错误连接的可能性。利用TCP中的SYN同步标志位,启动一条连接的建立。利用TCP中的RST复位标志位,中止异常连接的建立。TCP连接的关闭关闭(CLOSE)操作的意思是“我没有更多的数据要发送”,通过TCP中的FIN控制位启动关闭连接的操作。负责关闭的用户可以继续接收(RECEIVED)操作,直到它被告知另一方已经关闭接收到关闭的用户可以继续发送(SEND)操作,使得发出关闭的用户能够听到该连接成功的关闭了。中国科学技术大学远程教育4-24连接请求(SYN=1,seq=client_isn)同意连接(SYN=1,seq=server_isn,Ack=client_isn+1)确认(SYN=0,seq=client_isn,ack=server_isn+1)客户中国科学技术大学远程教育4-25服务器TCP建立连接的三次握手时间时间TCP连接的状态一条TCP连接在其生命期内会经历一系列的状态。这些状态有:

LISTEN:正在等待一个来自任何远程TCP和端口的连接请求。SYN-SENT:在已经发出一个连接请求后正在等待一个匹配的连接请求

SYN-RECEIVED:在已经收到并发出了一个连接请求后等待一个证实连接请求的确认。ESTABLISHED:一个打开的连接。通过此连接接收到的数据能够被传递到用户。该状态是此连接的数据传输阶段的正常状态。FIN-WAIT-1:或正在等待一个针对先前发送的连接终止请求的确认。

FIN-WAIT-2:正在等待一个来自远程TCP的连接终止请求。

CLOSE-WAIT:正在等待一个来自本地用户的连接终止请求CLOSING:正在等待一个来自远程TCP的连接终止请求的确认。LAST-ACK:正在等待一个先前发往远程TCP的连接终止请求的确认(包括对其连接终止请求的确认)TIME-WAIT:等足够的时间以确保远程TCP接收到了其连接终止请求的确认

CLOSED:根本不存在连接的状态。中国科学技术大学远程教育4-26TCP连接端点TCP连接端点TCP把端点定义为一对整数,即(host,port),其中

host是主机的IP地址,而port则是该主机上的TCP端口号。TCP连接是用它的两个端点来表示;中国科大的一台IP地址为80的主机与清华大学的一台地址为2的主机之间建立连接的话,它可能会由端点定义成:(80,1234)和(2,25)中国科学技术大学远程教育4-27TCP连接的建立过程服务→←→客户TCP器TCPCLOSELISTENSYN-SENT→

<SEQ=100><CTL=SYN> SYN-RECEIVEDESTABLISHED←<SEQ=300><ACK=101><CTL=SYN,ACK> SYN-RECEIVEDESTABLISHED→<SEQ=101><ACK=301><CTL=ACK> ESTABLISHEDESTABLISHED→<SEQ=101><ACK=301><CTL=ACK><DATA>

→ ESTABLSHED说明:TCP

A、B在初始时分别是处于CLOSED和LISTEN状态。A端首先发送一个SEQ=100的初始化序列,SYN置位中,国占科学用技一术个大序学列远号程教;育B端在收到该请求后,发送一个4-序28

列号为300,确认号为101的段,这个段的SYN、ACK均置位,说明B端的初始发送序列号为300,同时又确在TCP连接的生存期中,通过多种状态进行传输。这些状态称为TCP状态。一个客户机按照下列顺序经历一系列的TCP状态。如下图示:中国科学技术大学远程教育4-29CLOSEFIN_WAIT_1TIME_WAITFIN_WAIT_2SYN_SENTESTABLISHED中国科学技术大学远程教育4-30接收SYN和ACK发送ACK发送FIN接收ACK不发送接收FIN发送ACK等待30秒客户主机TCP的状态顺序于客户机一样,服务器也经历各种TCP状态。如下图示:中国科学技术大学远程教育4-31CLOSEESTABLISHEDLAST_ACKCLOSED_WAITLISTENSYN_RCVD中国科学技术大学远程教育4-32接收SYN发送SYN和ACK接收CAK不发送接收FIN不发送发送FIN接收ACK不发送服务器TCP的状态顺序TCP连接的关闭过程…

CLOSE-←

CLOSE-(关闭)←→

CLOSEDTCP

ATCP

BESTABLISHEDESTABLISHED(关闭)FIN-WAIT-1

<SEQ=100><ACK=300><CTL=FIN,

ACK>WAITFIN-WAIT-2

<SEQ=300><ACK=101><CTL=ACK> WAIT4.TIME-WAIT←

<SEQ=300><ACK=101><CTL=FIN,

ACK>LAST-ACKTIME-WAIT→<SEQ=101><ACK=301><CTL=ACK>(2

MSL)关闭说明:TCP

A启动TCP关闭某连接的,TCP

B收到一个FIN段,进入CLOSEWAIT状态。在第3行中,如果TCP

B还有数据要发送,在报头之后,会有数据,同时对TCP

A发来的FIN确认(FIN占用一个序列号)。发送完数据后,在第4行,TCP

B再发送一个FIN段,在没有收到确认之前是4L-A33ST-ACK(等待发中往国远科程学T技CP术的大FI学N的远确程认教)育状态。第5行中,TCP

B在收到了它发出的FIN的确认后,进入CLOSED状态,TCP

A在TCP关闭连接为什么采用三次握手法正常关闭时,一端用户发出一个

DR(释放连接请求)TPDU,首先要求释放连接。当该TPDU到达对方后,收方也回送一个DR

TPDU,并同时启动定时器以防止其DRTPDU丢失。当应答方的DR到达后,最初提出释放连接的一方又

回送一个ACK(确认)TPDU,并断开连接。最后,当ACKTPDU抵达目的地后,接收方也释放连接。释放一个连接意味着传输实体从其记载所有接通的连接的表中删除该连接的有关信息并设法通知该连接的所有者(传输用户)。中国科学技术大学远程教育4-34图b表示,如果最后的ACK(确认)TPDU丢失,就需要用定时器来补救。当定时器超过时限后,连接将被强行释放。图c表示,当第二个DR(响应的DR)丢失的情形。这时,首先提出释放连接的用户将不能收到所期待的响应,待到定时器超时,再次开始要求释放连接。从图c中可以看到这种情况下是如何工作的,假设第二次没有任何TPDU丢失,并且所有TPDU都正确、及时地到达目的地。最后一种情况如图d所示。除了假设由于丢失TPDU使所有重发

DR的尝试均失败以外,其他情况与图c完全相同。这样,经过N次尝试后,发送方(提出释放连接的一方)只好放弃努力并断开连接。同时,接收方(被动释放连接的一方)因为定时器超时也释放掉连接。可见,采用三次握手法关闭连接,能解决经常出现的非正常关闭

的情形。但理论上当第一个DR和所有N次重发均被丢失的情况下,该协议便会失败。因为此时发送方将放弃重发并释放连接,而另

一方却对对方的释放连接企图一无所知,而处于连接有效状态。

这种情况将导致一个半接通的连接。中国科学技术大学远程教育4-35消除半接通连接的可行方法消除半接通连接的一种方法是,如果在一段时间内没

有收到任何TPDU,连接便自动释放。这样,如果一方已经释放了连接,那么另一方将检测不到对方的活动

因而也断开连接。当然,如果引进这一规则,就需要

为每个传输实体设置一个定时器,每当收到一个TPDU时都要使定时器停止并重新启动。如果该定时器超时,就发送一个伪TPDU,目的只是不让对方释放连接。

另一方面,如果在一个处于空闲状态的连接上连续丢

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

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

TCP可靠传输TCP提供面向连接的字节流传输。面向连接的传输协议对可靠性的保证首先是它在进行数据传输前,必须在通信双方建立一条连接。

面向连接的传输协议要求对每一个报文都要进行确认,未经确认的报文被当作是错误报文。流相当于一个管道,发送端从管道的一端放入什么,接收端就可以照原样取出什么。TCP连接是全双工和点到点的。全双工意味着可以同时进行双向传输。点到点的意思是每个连接只有两个端点。TCP不支持组播或全广播。中国科学技术大学远程教育4-38TCP采用的可靠性技术可靠性传输包括以下四个含义:差错控制序列控制丢失控制重复控制中国科学技术大学远程教育4-394.3.5

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

size域来通知发送方,发送方每次发送的数据量不能超过window

size中指定的字节数。当window

size为0时,发送方必须停上发送。当接收方将数据交给应用程序后,发送一个ACK段(称窗口更新)来告知发送方新的接收窗口大小。中国科学技术大学远程教育4-40流量控制机制TCP使用序列号(Sequence

Number)、确认号(Acknowledge

Number)和窗口尺寸(Window

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

2

3

4

5

6

7

8

9

10窗口当前位置

下一个可发送的报文中国科学技术大学远程教育4-41其中:1、2、3是已经发送且得到确认的,4、5为已经发送,但至少4是未得到确认的如该图中为窗口大小为4,此时,如果5得到了确认,窗口不能向前滑动,在4和5都得到了确认后,而6还未得到确认时,窗口可以一次向前滑动两个位置。在接收端,窗口内的报文为可以接受的报文,窗口前的报文为已经收到,且已经发回确认的报文,不能接收;窗口后面多个报文则要等待窗口滑动后,落入到窗口之中,才能接收。决定滑动窗口大小的因素决定滑动窗口大小的因素,包括网络的带宽、可靠性以及需要传输的数据量。

Windows

NT的TCP滑动窗口,其默认窗口大小为8760,每接收两段信息就发回一个确认。TcpWindowSize

规定滑动窗口的大小参数,位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小为8760。ForwardBufferMemory

位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小为74240=50*1480DefaultTTL位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小为32秒重发计时器(retransmit

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

timer):定义:在重新发送数据包之前将等待ACK的时间ACK定时器的延迟为硬编码200ms,为第一次重发计时器的1/5。中国科学技术大学远程教育4-42拥塞控制为了进行拥塞控制,仅有一个接收窗口是不够的,发送方还必须维持一个拥塞窗口。发送窗口必须是接收窗口和拥塞窗日中较小的那一个。和接收窗口一样,拥塞窗口也是动态可变的。连接建立时,拥塞窗口被初始化成该连接支持的最大段长度,然后TCIP实体发送一个最大长度的段;如果这个段没有超时,则将拥塞窗口调整成两倍最大段长度,然后TCP发送两倍最大长度的段。每当发送出去的段都及时地得到应答,就将拥塞窗口的大小加倍,

直至最终达到接收窗口大小或发生超时,这种算法称为慢启动。如果发生了超时,TCP实体将一个门限参数设置成当前拥塞窗口的一半,然后将拥塞窗口重新初始化长最大段段长度,再一次执行慢启动算法,直至拥塞窗口大小达到设定的门限值;这时减慢拥塞窗口增大的速率,每当发送出去的段得到了及时应答,就将拥塞窗口增加一个最大段长度,如此拥塞窗呈现线性增大直至达到接收窗口或又发生超时。当拥塞窗口达到接收收窗口时就不再增大,此后一直保持不变,除非接收窗门改变或又发生超时;如果发生超时则使用上述拥塞控制算法重新确定合适的拥塞窗口大小。中国科学技术大学远程教育4-43TCP与上层用户和低层协议的接口上层用户和TCP的接口详细完整的模型在提供互操作通信软件方面,TCP除了接收命令,还要返回信息给它服务的进程上层用户和TCP之间的接口命令SEND(发送)CLOSE(关闭)ABORT(中止)OPEN(打开)RECEIVE(接收)STATUS(状态)TCP和IP的接口TCP通过调用一个低层协议模块,在一个网络中进行实际的发送和接收信息。如果低层协议是IP,它为一个TOS和TTL提供了自变量,TCP为这些自变量使用了自己的设置。任何低层协议必须提供源地址、目的地址和协议字段,以及确定“TCP长度”的一些方法,还要提供与IP功能等同的服务和在TCP校验和中使用的部分。中国科学技术大学远程教育4-444.3.6

TCP与UDP的区别TCP(Transmission

Control

Protocol):为典型的传输大量数据或需要接收数据许可的应用程序提供连接定向和可靠的通信。UDP

(User

DatagramProtocol):提供无连接的通信,并不保证数据包被发送到。典型的即时传输少量数据的应用程序使用UDP。应该说可靠的发送是应用程序的责任。中国科学技术大学远程教育4-45TCPUDP是否连接面向连接无连接应用场合传输大量数据即时传输少量数据传输可靠性可靠的不可靠的传输速度慢快4.4

r-services中国科学技术大学远程教育4-46设远程主机是A,A要用rlogin登录到主机B。当A上的用户启动了rlogin,B上的rlogind在B上的/etc/passwd中检查是否有这个用户名,如果没有则拒绝这次远程访问。在/etc/hosts.equiv中检查远程主机的主机名,若有A的名字,则允许这次访问。若在/etc/hosts.equiv中没有A的名字,则在B的远程用户的起始目录中的.rhosts文件中是否有远程主机B的名字。如果.rhosts文件中有远程主机B的名字的项并且该项后没有用户名,则允许这次访问。如果.rhosts文件中有远程主机B的名字的项、该项后有用户名并且该项后的用户名中有这个远程用户,则允许这次访问。如果.rhosts文件中有远程主机B的名字的项、该项后有用户名并且该项后的用户名中没有这个远程用户,则要求用户输入口令,如果口令正确则允许这次访问,否则拒绝这次访问。4.4.1

TCP/IP网络系统命令rwho命令:和who命令的功能很相似。它显示网络中的每个系统的当前注册的用户。$rwhoviolet

robert:tty1

Sept

1010:34garnet

chris:tty2

Sept

10

09:22命令ruptime:可以显示网络中的每个系统的信息。此信息能显示出每个系统是如何执行。ruptime显示系统是否运行,它运行了多久,系统中的用户数和系统在最后5、10和15分钟内的系统负荷。$ruptimeviolet

up

11+04:10,

8

users,

load

1.20

1.10garnet

up

11+04:10,

20

users,

load

1.50

1.30中国科学技术大学远程教育4-47命令.rhosts:用.rhosts文件控制使用TCP/IP命令对您帐号的访问。用户能用标准的编辑器象Vi来创建他们帐号中的.rhosts文件。它

必须位于用户的主目录。下面的例子中,使用者显示文件.rhosts文件的内容。$cat.rhostsgarnet

chrisciolet

robert.rhosts文件允许用户不提供口令而访问系统。如果需要禁止此用户访问,只须简单地从文件.rhost中删除系统名和用户注册名。如果一个用户的注册名和系统名在文件.rhost中,那么此用户就能不提供口令直接访问系统。并不是所有的远程注册操作都需要这种访问形式;但一些远程命令要求有.rhosts文件,象远程复制文件或远程执行Linux命令。如果您想在远程系统的帐号中使用这些命令,此帐号的.rhosts文件中必须有您的注册名和系统名。通过.rhosts对某一系统进行访问时,也允许您使用TCP/IP命令直接访问系统中您的其他帐号。而不需要先注册到这些帐号中。可以把系统中您的其他帐号做为当前注册帐号的扩展。不管文件在的哪个账号下,都可以用frcp命令从一个目录复制到另一个目录。中国科学技术大学远程教育4-48命令rlogin:要访问别的系统中别的帐号,首先要注册到您的系统中,接着通过网络远程注册到帐号所在的系统中。用命令r

login可以远程注册支别的系统。命令的参数应是一个系统名。命令将把您连接到另一个系统中并开始注册的过程.用rlogin的注册过程和一般的注册过程有所不同,用rlogin时用户不被提示输入注册名。rlogin假设您的本地系统中的注册名和远程系统中的一致。所以象上面执行r

login命令时,您将马上被提示输入口令。输入口令后,就可进入远程系统各的帐号。用rlogin假设注册名是相同的,因为大多数的人用rlogin访问别的系统中的注册名一般和本地的注册名相同。然而,当远程系统中的注册名和本地系统的不同时,选项1-允许输入远程系统帐户的不同的注册名。语法如下所示:$rlogin

system-name

-1

login-name下面例子,用户用注册名robert注册到violet的系统中:$rlogin

violet-1

robertpassword$:一旦注册到远程系统中,您能执行任何命令。可以用exit、CTRL-d或logout(TCSH或C-shell)结束连接中国科学技术大学远程教育4-49远程复制文件rcp:命令rcp的功能是从远程系统复制文件到本地系统中。rcp执行文件传输的功能,它的操作和cp命令很相似,但它是通过网络连接到另一系统。执行命令rcp时要求远程系统的.rhosts文件中有您的本地系统名和注册名。命令rcp参数为源文件名和复制的目标文件名。为了指定文件在远程系统中,您需要在文件名前放置一个系统名,两者之间用冒号分隔,如下所示:$rcp

system-name:source-file

slystem-name:copy-file当复制一个文件到远程系统中时,复制的目标文件是远程文件,它要求带有系统名。而源文件在您的本机系统中,不要求系统名:$rcp

source-file

remote-system-name:copy-file在下面的例子中,用户从自己的系统中复制文件weather到远程系统violet并重命名为monday.$rcp

weather

violet:Monday中国科学技术大学远程教育4-50小结传输层是网络体系结构中承上启下的一层,它起着加强互联网的服务质量QoS,并提供进程之间可靠通信的功能,TCP/IP协议是利用端口来标识通信进程。TCP和UDP是Internet传输层的两个协议。其中TCP是面向连接的,提供可靠的字节流服务;UDP是无连接的,提供数据报服务。TCP和UDP的共同点在于它们都提供进程通信能力,为此在TCP和UDP协议中引入端口的概念。UDP是最简单的传输层协议,几乎不提供任何可靠性措施。适用

UDP的应用程序须自己进行可靠性控制。TCP为保证可靠性做了大量的工作,它提供确认、超时重传以及滑动窗口机制。TCP所面临的所有问题中,重复报文是最难解决的问题,为此TCP引入三次握手以排除在建立和撤除连接过程中重复报文的干扰。另外,TCP协议还提供紧急数据传输等操作,以满足实时应用需求中国科学技术大学远程教育4-51习题中国科学技术大学远程教育4-52习题4.1一台TCP机器在1Gb/s的通道上使用65535字节的发送窗口,单程延迟时间等于10ms。问可以取得的最大吞吐率是多少?解:10ms*2=20ms每20ms可以发送一个窗口大小的交通量,每秒50个窗口(=1000ms/20ms)。65535/8/50=26.214Mb/s26.214Mb/s/1000Mb/s≈2.6%所以,最大吞吐率是26.214Mb/s,线路效约为2.6%习题4.2一个TCP链接使用256kb/s的链路,其端到端延时为128ms。经测试发现吞吐量只有128kb/s。试问窗口是多少?忽略PDU封装的协议开销以及接收方应答分组的发射时间(假定应答分组长度很小)。解:来回路程的时延等于256ms(=128ms

*2)。设窗口值为X字节,假定一次最大发送量等于窗口值,且发射时间等于256ms,那么,每发送一次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可。这样,发射时间等于停止等待应答的时间。结果,测到的平均吞吐率就等于发送速率的一半,即128ms。8X/

(256*1000)=

256*0.001X

=

256*1000*256

*0.001/8=256*32=

8192所以,窗口值为8192。中国科学技术大学远程教育4-53习题4.3

在一个网络中,最大TPDU尺寸为128字节,最大的TPDU存活时间为30秒,使用8位序列号,问每条连接的最大数据速率是多少?解:具有相同编号的

温馨提示

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

评论

0/150

提交评论