1. 首页
  2. 网络技术
  3. 网络基础
  4. TCP协议传输机制

TCP协议传输机制

上传者: 2018-12-25 17:13:54上传 PDF文件 397.07KB 热度 43次
TCP协议是面向连接的协议,负责把信息划分成IP协议所能够处理的,也要能把接收到的包拼成一个完整的信息,实现网络数据在运输层的可靠传输。TCP链路的建立和数据通信通过三次握手和四次挥手完成。为实现TCP数据包可靠传输,TCP协议利用滑动窗口进行流量,利用慢开始、拥塞避免、快重传和快恢复四种算法实现拥塞控制,并通过差错控制来确保数据包正确的到达另一方应用程序。三次握手协议可以完成两个功能。它确保连接双方做好传输准备,并使传输双方统一了初始序列号。在关闭连接时,TCP通过修改三次握手协议来关闭连接,以结束会话。3.1三次握手与四次挥手第一次握手:建立连接时,客户端发送SYN包(SY-i)到服务器,并进入 SYN SEⅧ状态,等待服务器确认:第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入 SYN RECV状态第三次握手:客户端收到服务器的SY+ACK包.向服务器发送确认包ACK(ACK-k+1).此包发送完毕.客户端和服务器进入ES_ TABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。需要断开连接的时候,TCP也需要互相确认才口以断开连接,采用四次挥手断开一个连接。在第一次交互中,首先发送一个FIN=1的请求,要求断开,目标主机在得到请求后发送ACK-进行确认;在确认信息发出后,就发送了一个FIN=1的包,与源主札断廾;随后源主札返回一条ACK=1的信息,这样一次完整的TCP会话就结束了。TCP三次握手TCP四次挥手clientseNver被动方客户端友送synSYN=1 Seg=x王报文并置龙序FiAk报文,并Fin=1 Ack=Z Sag=X被动力发送ACK报号为置发送亨号为XZ在确认序号为服务端友ACKeX+1 Seg=Zsy大ck报又,并SYN=1 ACK=X+1 Seg=Y发送序号Y,在动方发F+AckFin=1 Ack=X Seg=Y报文子置发送序号Y在确序为X客广崭发达ack报文主动发发送ak根文,許音友达序号为ZAcK=Y+1 Sed=Z并苴发送序导力X在強认序号为Y+1角认序号为YACKeY Seg= x图3.1三次握手和四次挥手3.2TCP数据传送连接建立后.双向的数据传送就可以开始。客户和服务器都可以在两个方冋传送数据和确认,两端使用缓存提高了TCP的效率。(1)推送数据有些时候一方的应用程序打算把亡键人的字符发给对方并期望立即收到响应,数据的延迟传输和延迟交付对应用程序来说是不可接受的,此时发送端可以请求推操作。衣示发送端TCP不必等待窗口被填满,它每创建一个报文段就立即发送发送端TCP还必须改置推送位PSH以告诉接收端TCP,这个报文段所包括的数据必须尽快地交付接收应用程序,而不要等待更多的数据的到来。(2)紧急数据有时候发送应用程序希望某一块数据由接收应用程序不按序读出,解决这个问题的方法是发送LRG位置⊥的报文段。发送应用程序告诉发送端TCP这块数据足紧急的,发送端"CP创建报文段。并把紧急数据放在报文段的廾始。报文其余部分可以包括来自缓存的止常数据。首部中的紧急指针字段了紧急数据的结束和正常数据的开始。当接收端TCP收到URG位置1的报文段时,它就利用紧急指针的值从报文段中提取出紧急数据,并不按序把它交付给接收应用程序。4T呷P流量控制般来说,我们只是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就有可能来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方速率不要太快,要让接攻方来得及接收。4.↑利用滑动窗口实现流量控制假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗∏大小3发送数据。当接收方设备要求降低或者增大网络流量吋,可以对窗∏大小进行减小或者增加,本例降低窗口大小为2,每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据传输。滑动窗口杋制为端到端设备间的数据传输提供了可靠的流量控制机制。然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗∏机制将不起作用5TcP拥塞控制在某段吋间,石对网络中的某段资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏,这种情况就叫做拥塞。即拥塞条件为:∑对资源的需求>可用资源拥塞一口产生,就会表现为数据包时延増加、丟弃概率增大、上层应用系统性能下降等,严重时会发生“拥塞崩溃”, Floyd总结出拥塞崩溃主要包括以下几种:传统的崩溃、未传送数据包导致的崩溃、由于数据包分段造成的崩溃、日袷増长的控制信息流造成的崩溃等5.1成因分析对于拥塞现象,我们可以进一步用图1米措述。当网络负载较小时,吞吐量基本上随着负载的增长而増长,呈线性关系,响应时冋增长缓慢。当负载达到网络容量时,吞吐量现出缓慢増长,响应时间急剧增加,这一点称为Knee。如果负载继续増加,路由器开始丢包,当负载超过一定量时,吞吐量开始急剧下降,这一点称为 Cliff。拥塞控制就是网络节点采取措施来避免拥塞的发生或者对拥塞的发生做出反应。拥塞控制的目标就是使网终在Kne附近工。在拥塞控制算法中,包含拥塞避免( Congestion Avoidance)和拥塞控制( Congestion Control)两和不同的机制。Cliffaee上LoadLoad图5.1拥塞控制曲线5.2拥塞控制策略传统TCP中的拥塞控制杋制主要是基于 Van jacobsen提岀的“慢启动”算法,“拥塞避免”算法和一个用于估计周转RTT( round trip time)的算法。“慢启动”算法的核心思想就是:通过观察新分组进入网络的速率应该与另一端返回确认的速率相同而进行工作。慢启动为发送方的TCP增加了另一个窗口:拥塞窗口( congestion window),记为cwnd。当与另一个网络的主机建立TCP连接时,拥塞窗凵被初始化为1个报文段(即另一端通告的报文段大小)。每收到个ACK拥塞窗口就增加个报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增由)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可以发送两个报文段。当收到这两个报文段的ACK时。拥塞窗冂就增加为4,这是种指数增加的关系。在某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。(1)拥塞避免:“拥塞避免”算法是一种处理云失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1%),因此分组丢失就意味着在源主机和目的主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。但是当拥塞发生时,我们希望降低分组进入网络的传输速率,于是可以调用慢启动来儆到这ˉ点。在实际中这两个算法通常在一起实现。〔2)慢启动:慢启动( slow start)算法通过逐渐增加cwd的大小来探测可用的网络容量。防止连接开始时采用不合适的发送量导致网络拥塞。然而有时该算法乜会浪费可用的网络容量,因为慢启动算法总是从cwnd=1开始,每收到一个ACK,cwnd增加1对RTT时间长的网络,为使cwnd达到个合适的值,需要花很长的吋间,特别是网络实际容量很大吋,会造成浪费。为此可采用大的初始窗口,人的初始窗口避免了延迟ACK机制下单个报文段初始窗口的等待超时问题,缩短了小TCP流的传输时问和大延迟链路上的慢启动时间。6差错控制rCP是—个可靠的传输层协议,这种可靠性是依赖」差错控制来实现的。差错控制包括用于检测并重发损坏段的机制、用于重发丢失的段的机制、用于存储失序的段直到丢失段到达的机制,以及检测并丢弃重复段的机制。TCP中的差错检测和纠正通过三种简单工具米完成:校验和、确认和超时。6.1校验和锊个段都包括校验和字段,用来检査损坏的段。如果段被损坏,它将被目的端TCP丢弃,并被认为是丢失了。TCP在每段中强制使用一个16位的校验和。6.2确认rP使用确认方法来证实收到了数据段。不携带数据但占用序号的些控制段也要确认,但ACK段是不确认的。ACK段不占用序号,它不需要确认。另外一种称为选择性确认( selective acknowledgment)或SACK的确认类型。SACK并不替代ACK,但它向发送方报告额外的信息。SACK报告失序字节块,也报告重复字节块,即接收了一次以上的字节块。然而,因为TCP头部没有为加入这种类型的信息做准备,SACK以一种TCP头部末端选项的形式实现。6.3超时重传差错控制杋制的核心是段的重传。当一个段被发送,它就被储存在一个队列中直到被确认。当重传计时器超时或当发送方接收到对队列中的第个段的三次重复ACK时,就重传这个段。KIO之后重传。发送方TCP为每个连接维护一个重传超时( retransmission time-out,RT0)。当计时器到时,即超时,TCP重发队列前面的段(具有最小序号的段)并重启计时器,RTO的数值在TCP中是动态的,并根据段的往返时间( round- trip time,RTT)进行更新。RTT是一个段到达目的端并接收到一个确认所需要的时间参考文献[1]谢希仁,计算机网络(第五版)[M].北京:电子工业出版社,2009[2]李超.TP/IP体系结构中传输层协议浅析[J].信息通信,2008.L3」罗万明,林闯,阎保平等.TCP/IP拥塞控制研究LJ」.计算机学报,2001,24(1):1-18[]付慧,高思庆.TCP协议分析报告[J.科技信息,208,(28):60-61[5]霸桂芳,杨金山.TCP′邗拥塞控带研究现状的分析[J].衡水学院学报,2007,9(1):6971[6]朱晶.TCP协议简述与三次握手原理解析[J].电脑知识与技术,2009[门]邱进被,基于ICP的网络拥寒控制研究[J].科技研究,2013[8]赵毅.剖析TCP和UDP协议[J].安顺学院学报,2008,10(4):93—94
下载地址
用户评论