单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Computer Networks,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,概述,传输层端口,用户数据包,UDP,传输控制协议,TCP,多媒体传输,第,6,章,TCP/IP,传输层,概述第6章 TCP/IP 传输层,提供端到端,(end to end),的进程间的通信;,加强底层网络数据传输的服务质量,QoS(Quality of Service),。,应用层,传输层,网际层,网络接口层,应用层,传输层,网际层,网络接口层,应用层协议,TCP/UDP,协议,IP,协议,以太网协议,6.1,概述,提供端到端(end to end)的进程间的通信;应用层传输,6.1,概述,两个并列协议共存于互联网中:,传输控制协议,TCP(Transport Control Protocol),使用,IP,提供面向连接的可靠的传输服务。,用户数据报协议,UDP(User Datagram Protocol),使用,IP,提供无连接的不可靠但效率高的传输服务。可靠性可由上层应用程序提供。,6.1 概述两个并列协议共存于互联网中:,协议端口,(protocol port,):简称端口,相当于,OSI,传输层,TSAP,,用于与上层应用进程交互。,端口号,(port number),:整数,各,65536,个。,Telnet,(23),传输层,网际层,网络接口层,应用层协议,TCP/UDP,协议,IP,协议,以太网协议,FTP,(21),QQ,(4000),Telnet,(23),传输层,网际层,网络接口层,FTP,(21),QQ,(4000),6.2,传输层端口,协议端口(protocol port):简称端口,相当于OS,端口,(port),保留端口,周知端口,(well-known port),:全局,方式统一分配,服务器进程使用,01023,例:,WWW server:80,。,自由端口:本地分配,自由使用,,1024 65535,。,当某一进程与远地的进程通信,首先在本地申请,一个自由端口,然后使用周知端口与远地服务器,建立联系,才能开始传输数据。,层次结构地址,:,端口(port)保留端口,周知端口(well-known p,6.3.1 UDP,用户数据报,1,UDP,用户数据报的封装,UDP,用户数据报,:,IP,数据报,:,UDP,用户数据报格式:,0 16 31,6.3,用户数据报协议,UDP,6.3.1 UDP用户数据报6.3 用户数据报协议UDP,用户数据,用户数据,App,首部,用户数据,App,首部,TCP/UDP,首部,用户数据,App,首部,TCP/UDP,首部,IP,首部,TCP,段,/UDP,数据报,IP,数据报,分组,(packet),用户数据,App,首部,TCP/UDP,首部,IP,首部,以太网,首部,以太网,尾部,以太网帧,14 20 20/5 4,461500,字节,数据的封装,用户数据用户数据App用户数据AppTCP/UDP用户数据A,校验时与,UDP,用户数据报组合在一起,补充了目,的站和源站,IP,地址,校验和计算后丢弃,不传送,;,取自,IP,报头。,UDP,伪报头格式,在,UDP/IP,协议组合中,,UDP,校验和是检验数据,传输正确性的唯一手段,而且还是可选的。,6.3.2 UDP,伪报头,(pseudo header),校验时与UDP用户数据报组合在一起,补充了目 6.3.2,6.3.2 UDP,伪报头,(pseudo header),为确保报文能够正确到达目的地,发送,UDP,报文的机器在计算校验和时把目的机器的,IP,地址和应有的数据都包含在内,采用上述伪首部来计算校验和。,计算时,直接将这些字段从,IP,报文的首部抽取出来,组装成伪首部格式。校验和计算仍然采用,16,位组的,1,补码运算执行累加和,再取,1,的补码。,6.3.2 UDP伪报头(pseudo header),UDP,软件与多个应用程序之间的多路复用和多路分解是通过端口机制实现的。,UDP,多路复用,UDP,的多路复用和多路分解,UDP软件与多个应用程序之间的多路复用和多路分解是通过端口,应用,程序,1,应用,程序,2,应用,程序,3,UDP,IP,进入的帧,根据,IP,首部中的协议值进行去复用,根据,TCP,或,UDP,首部中的端口号进行去复用,UDP,IP,复用,(Multiplexing),和去复用,(Demultiplexing),应用应用应用UDPIP 进入的帧根据IP首部中的协议值进行,6.3.3 UDP,的特点,(1),可靠性差,(2),效率高,(3),适合传输实时数据,6.3.3 UDP的特点(1)可靠性差,使用,IP,提供面向连接 的可靠的传输服务;,可靠性控制,:,1,)面向连接的传输机制,2,)超时重传机制,,3,)滑动窗口流量控制,4,)拥塞控制。,6.4,传输控制协议,TCP,使用IP提供面向连接 的可靠的传输服务;6.4 传输控,1.,数据流、报文段和编号,数据流,:,无结构的字节序列,数据流按字节编号。,段,(segment):,报文段,数据流划分为若干个不定长的段,封装到一个,IP,数据报中传输。,序号,:32,位;基于时钟方案,,1s,为单位的,32,位,时钟,循环一周,4000s,TTL 120s,,不重号。,初始序号建立连接时商定;不由,0/1,开始,随机选取。,6.4.1 TCP,的编号与确认,1.数据流、报文段和编号6.4.1 TCP的编号与确认,2.,确认策略,*,累积确认,(cumulative acknowledgement),:收方确认已正确收到的积累的字节序列,确认序号为该序列的最高序号加,1,。,*,推迟确认:推迟一段时间(,200ms,)确认。推 迟期间有新的数据到达,对新老数据只发一个确认。推迟期间收方若有发给发方的数据,数据捎带确认(,piggybacking,)。,*,维序:对于中间有的序号未收到(或有差错)而前后都正确收到的情况,,TCP,使用回退,-N,确认机制,后来又引入负确认,NAK,机制。,6.4.1 TCP,的编号与确认,2.确认策略*累积确认(cumulative ack,TCP,报文段,(segment),格式,首部:,20,字节定长 部分,+,可变长选项,源端口号,(16,位,),目的端口号,(16,位,),序列号,(32,位,),首部长度,(4,位,),确认号,(32,位,),保留,(6,位,),U,R,G,A,C,K,P,S,H,P,S,T,S,Y,N,F,I,N,窗口大小,(16,位,),校验和,(16,位,),紧急指针,(16,位,),选项,(,可变长度,),6.4.2 TCP,报文段,TCP报文段(segment)格式 源端口号(16位)目的,6.4.2 TCP,报文段,首部各字段意义,源端口号,用于标识发送端的应用程序或进程,目的端口号,用于标识目的端的应用程序或进程,序号,用于标识发送的数据字节流,其表示在这个报文段中的第一个数据字节。,当建立一个新的连接时,,SYN,标志为,1,,序号字段包含由这个主机选择的该连接的初始序号,。,确认序号,包含发送确认一端所期望收到的下一个序号。表明该序号以前的数据已经成功接收。,只有,ACK,标志为,1,时确认序号才有效。,6.4.2 TCP报文段首部各字段意义,码元比特:,紧急比特,URG,:,URG=1,时,紧急数据应尽快传,送;使紧急指针字段有效,指出本报文段中紧急,数据的最后一个字节的位置。,确认比特,ACK,:,ACK=1,时确认序号字段有意义。,急迫比特,PSH,:请求收方将报文段立即交应用层。,复位比特,RST,:,RST=1,时,严重差错,释放连接。,同步比特,SYN,:建立连接使用。,终止比特,FIN,:释放连接。,.,窗口大小,以字节为单位,用于流量控制。该窗口起始于确认序号字段指明的值。,6.4.2 TCP,报文段,码元比特:6.4.2 TCP报文段,校验和,覆盖整个,TCP,报文端,与,UDP,不一样的是该字段是强制性的。,源,IP,地址,(32,位,),目的,IP,地址,(32,位,),0,协议,TCP,长度(,16,位),紧急指针,当,URG,标志置为,1,时,该字段才有效。其和序号字段中的值相加表示紧急数据最后一个字节的序号。,6.4.2 TCP,报文段,校验和 覆盖整个TCP报文端,与UDP不一样的是该字,2,TCP,报文段选项,(,1,)最大报文段长度,MSS,互联网环境中选择合适的,MSS,很困难,取建立 连接时双方协商的,MSS,较小者。,(,2,)窗口比例因子,TCP,连接的最大带宽,8*65536/,RTT,(b/s),窗口比例因子:窗口值向左移位的次数,(,最大,14),,窗口可扩到,1G,字节。,(3),负确认,NAK,6.4.2 TCP,报文段,2TCP报文段选项6.4.2 TCP报文段,建立,TCP,连接,三次握手,(,three-way handshake):,主机,A,发起连接,发同步报文段,,SYN=1,,,seq=x,,,ACK=0;,主机,B,响应,发同步报文段并对,A,确认,,SYN=1,,,seq=y,ACK=1,ackseq=x+1;,主机确认,B,的同步报文段,连接建立,发出对,B,的确认,,ACK=1,ackseq=y+1,。,6.4.3 TCP,连接管理,建立TCP连接 6.4.3 TCP连接管理,TCP,的三次握手的报文序列,TCP的三次握手的报文序列,建立连接过程中,可完成以下工作:,双方使每一方都确知对方存在,已准备就绪;,双方确定了初始传输序号并获得确认;,双方可协商一些通信参数,如通告窗口大小、,MSS,和窗口比例因子等。,2.,关闭,TCP,连接,半关闭(,half-close,),TCP,连接复位,异常情况中途中断传输连接;,RST,比特置,1,。,6.4.3 TCP,连接管理,建立连接过程中,可完成以下工作:6.4.3 TCP连接,返往时间估计与重传定时时限,重传定时器(,retransmission timer,),重传定时时限,RTO(,Retransmission Time Out),使用自适应重传算法,(adaptive retransmission,algorithm,)计算,RTO,以适应互联网时延的变化。,报文段样本往返时间,RTT,(round trip time),平滑往返时间,SRTT,(Smoothed Round Trip Time),6.4.4 TCP,重传机制,返往时间估计与重传定时时限6.4.4 TCP重传机制,RTO,的自适应算法,:,(0,1,,建议,0.8,0.9,,,0.875;,推荐,=2),改进的,RTO,自适应算法,:,*,引入,RTT,(,k,),与,SRTT,(,k,),偏差的平滑值,D,(,k,):,D,(,k,)=,D,(,k-,1)+(1-,)|,RTT,(,k,)-,SRTT,(,k,)|,(0,1,,实际,:0.75,),6.4.4 TCP,重传机制,RTO的自适应算法:6.4.4 TCP重传机制,*,改进的,RTO,算法,:,6.4.4 TCP,重传机制,写成以上形式使公式系数分别为,0.125,、,0.25,等,乘法可通过移位实现,速度快。,*改进的RTO算法:6.4.4 TCP重传机制,2.Karn,算法,确认的二义性,(acknowledgement ambiguity),:,重传时发方无法分辨确认是对原传输,/,重传。,*,若认为确认是对原传输,计算的,RTT,比实际值,大,SRTT,增大,RTO,增大,传输效率降低。,*,若认为确认是对重传的,计算的,RTT,比实际值,小,SRTT,变小,RTO,变小,重传加剧。,Karn,算法:,计算平滑往返时间,SRTT,时,忽略,重传的样本;同时重传