版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传输层传输服务传输协议TCP协议UDP协议11/14/20221传输层传输服务11/12/20221一、传输服务传输服务传输层实体运行在用户主机中,利用通信子网提供的服务,向用户(应用进程或会话层实体)提供端到端的通信服务。面向连接的传输服务:这种服务具有基于连接的流量控制、差错控制和分组排序功能,因而面向连接意味着可靠和有序的提交。然而实现这种服务必须付出建立、维护和终止逻辑连接的开销。无连接的传输服务(数据报服务)不保证可靠的顺序提交,这个缺点有时显得不很重要。例如通过网络定期地进行数据采集时,偶然丢失数据是允许的,因为后来的数据可以弥补以前的损失。又例如向网络用户广播消息或发布实时消息时,也不在乎个别用户没有收到不很重要的报文。特别是在分布式事务处理环境中.通常采用请求—响应的工作方式,如果某个用户的请求没有得到服务器的响应,这种错误往往由用户进程处理,传输协议不必做差错恢复工作。控制单元11/14/20222一、传输服务传输服务控制单元11/12/20222传输服务(续)服务质量QoS服务质量(QualityofService,)参数在建立传输连接过程中可协商:残留错误率;传输失败的概率;平均(或最大)传输时延;平均(或最大)吞吐率;优先级。
各种网络都有特定的服务质量参数和取值范围。运行在主机中的传输实体根据下层网络提供的服务决定如何满足用户的要求。
如果下层协议提供了可选的服务质量参数,可以提供不同优先级、不同可靠性、不同的吞吐率和延迟时间的服务,则传输实体的工作只是顺水推舟地让下层实体实现用户的要求11/14/20223传输服务(续)服务质量QoS11/12/20223传输服务(续)服务质量QoS
X.25网络具有协商吞吐率的机制,它可以改变流控参数和调配网络资源的数量,提供不同吞吐率的虚电路,运行在X.25网络上的传输层在处理用户的吞吐率需求时不需要做多少工作,只是把用户的要求传达给下层网络。另外,传输实体也可采取其他的手段满足用户的要求,例如为了提高吞吐率,可以把一个传输连接分裂为几个虚电路连接。传输实体在满足用户的QoS需求时可能打折扣,甚至根本做不到。这可能是通信子网提供的能力有限,或者是用户提出的要求不能兼顾,例如可靠性和延迟时间,吞吐率和服务费用之间必须做出一定的折衷。这时传输实体会向上层实体提出指标较低的反建议,按照降低规格的QoS参数建立连接。文件传输协议需要大吞吐率,甚至还需要高可靠性,以避免文件级的多次重传。事务处理协议(实时数据库查询)要求低延迟,而电子邮件协议则要求多种优先级。实现这些特殊要求就要把服务质量请求交给传输协议来完成11/14/20224传输服务(续)服务质量QoS11/12/20224传输服务(续)加急投送服务这种服务类似于高优先级服务,但是有所区别。由于传输层要向上层提供可靠顺序的提交服务,所以对各种协议数据单元都要进行流量控制,但是加急投送数据不受流控影响。加急投送服务的数据包可以赶上和超过前边的数据包,传输实体调动可用的设施尽快地传送加急数据。在接收端,传输实体用中断方式通知用户立即接收加急数据,并用加急的协议数据单元返回应答。加急投送服务仅用于需要紧急传送的少量数据,例如终端发出的中断字符或是告警状态指示等,而优先服务只是通过资源分配和信道参数的调整使得优先级高的数据比普通数据传送得更快一些。11/14/20225传输服务(续)加急投送服务11/12/20225传输服务(续)连接管理服务传输实体要对连接的建立和释放进行管理。建立连接的过程可以是对称的,即允许任何一方用户启动建立连接的过程;也可以是非对称的,即仅允许一方提出连接请求,另一方只能接受(或不接受)对方提出的连接请求。非对称方式用于建立单向连接。连接的终止可以是突然的或平稳的,当连接突然终止时,正在传输中的数据就丢失了,而平稳终止连接则可以保证所有在传输途中的数据完整提交之前任何一方不会释放资源,不会关闭连接。11/14/20226传输服务(续)连接管理服务11/12/20226二、传输协议传输协议的分类
ISO定义了三种网络服务:A型:网络连接具有可接受的残留差错率和可接受的失效通知率。B型:网络连接具有可接受的残留差错率和不可接受的失效通知率。C型:网络层提供无连接的服务,这种服务具有不可接受的残留差错率。
所谓差错是指有丢失或重复的网络层协议数据单元。如果差错被网络协议捕获并得到纠正,则这种差错对传输实体是透明的。如果网络层检测到了差错,但不能恢复,则必须通知传输实体,这叫失效通知。例如在X.25网络中发生复位时就会通知上层协议。还有的差错既没有得到纠正,也没有通知传输实体,这就是残留差错。11/14/20227二、传输协议传输协议的分类11/12/20227传输协议(续)5种传输协议TP0协议适用于A型网络,它是CCITT为智能用户电报(Teletex)开发的协议。TP0为请求的传输连接建立一条对应的网络连接,并假定网络连接完全可靠,不再另外进行流控和排序。TP1协议适用于B型网络,它在TP0协议的基础上增加了差错恢复功能。差错恢复功能表现在对传输协议数据单元(TPDU)编号,当X.25复位命令出现后可以重新取得同步,或者在X.25重启动之后再建传输连接,流控功能仍然由网络层协议实现。这种协议也提供加急投送服务。11/14/20228传输协议(续)5种传输协议11/12/20228传输协议(续)5种传输协议TP2是TP0的增强型协议,它在TP0的基础上增加了多路复用功能,多路复用到同一网络连接上的各个传输连接必须单独提供流控功能,因为一个网络连接不能同时控制多个数据流。TP3协议综合了TP1和TP2的优点,它具有TP2的多路复用和流控能力,也提供TP1的差错恢复功能,适用于B型网络。TP4协议适用于C型网络。这种协议假定网络不可靠,本身具有差错恢复、流控和排序机制,并提供多路复用功能。TP4协议最复杂,功能最齐全。11/14/20229传输协议(续)5种传输协议11/12/20229传输协议(续)寻址问题统一的全局编址方案不可行:
有的通信实体是移动的,它的地址会改变;
有的通信设备连接到多个网络上,每个网络独立地为其指定地址。分层名字:采用<网络><系统><实体名>的形式。优点是容易增加新的名字,因为每一个通信实体的名字只在它所属的局部系统有效,分层名字还可提供地址信息,因而具有路由功能扁平名字:在整个通信环境中有全局意义,这要求整个名字空间足够大,并且预先把统一的名字空间分配给各个通信系统。增加一个新的扁平名字得考虑是否与其他全局名字相冲突,扁平名字不能指示通信实体属于哪个网络或主机系统。11/14/202210传输协议(续)寻址问题11/12/202210传输协议(续)寻址问题传输用户必须能够从名字中推导出通信对方的网络编号、站地址、传输实体标识和用户标识。站地址表示主机系统,就是网络层服务访问点NSAP;端口号与具体的用户相联系,对应于传输层服务访间点TSAP。这种地址结构中没有传输实体标识字段,通常一个站仅包含一个传输实体,所以站地址就代表了该站上的传输实体。即使一个站有几个传输实体,则各个传输实体应用的传输协议类型不同,只要指明传输协议的类型(例如TP0或TP1)就可以区分了。11/14/202211传输协议(续)寻址问题11/12/202211传输协议(续)
如何获取对方传输用户的地址?有些进程提供公共服务,其地址是众所周知的。网络中可以配置一个名字服务器,请求服务的用户可以查找名字服务器。发起端的用户进程向地址已知的远端系统特权进程发出请求,特权进程派生出新的临时进程,并被分配给一个临时的端口地址。
例如网络中有一个分时系统提供公共服务,它的地址是众所周知的,任何用户终端都可以登录在分时系统上;又例如为了均衡负载,数据输入进程可能在局域网中从一个站移动到另一个站,这个进程的名字必须保存在名字服务器中,当它移动时名字服务器随时更新其地址;在大型主机上运行一个仿真程序,则可作为一个临时进程的例子,终端用户首先向主机上的远程作业管理进程发出请求,管理进程派生出仿真进程并返回它的端口地址。11/14/202212传输协议(续)如何获取对方传输用户的地址?11/1传输协议(续)多路复用TP2~TP4类传输协议都提供多路复用功能,即由多个传输连接共享同一网络连接。由于在虚电路存续期间每个网络结点都要为之分配一定的缓冲资源,所以网络连接通常是按连接时间计费的。在单个网络连接提供的吞吐率足够的情况下,把多个传输连接复用到一条网络连接上可合理地分担费用。这种方式的多路复用可以称为向上的多路复用。向下的多路复用也叫分流,即把一个传输连接分配到多个网络连接上,这样可以获得较高的吞吐率,并增加可靠性。TP4协议提供了分流功能。11/14/202213传输协议(续)多路复用11/12/202213传输协议(续)流量控制通过传输连接的数据流动过程为:发送端用户—>发送端传输实体—>发送端网络服务—>接收端网络服务—>接收端传输实体—>接收端用户。接收端传输实体要求限制数据流动的速率可能是出于下面的原因;1)接收端用户来不及接收数据;2)接收端传输实体来不及接收数据。接收端传输实体为传输连接维持一定数量的缓冲区,用于存放TPDU。缓冲区可能溢出,所以实施流控是必要的。传输层对等实体之间不直接相连,传输实体之间的延迟大,而且延迟是变化的。所以流控难度大11/14/202214传输协议(续)流量控制接收端传输实体为传输连接维持一定数量的传输协议(续)传输层流控方案(1)接收端传输实体拒绝接受网络实体送来的TPDU;这是利用网络层流控实现传输层流控。当传输实体缓冲区充满时拒绝接受网络服务送来的数据,就触发了网络中的流控过程,从而引起发送端的网络服务不再接受它上面的传输实体发来的TPDU。当多个传输连接复用在一个网络连接上时,这种机制就完全失效了,因为网络流控无法对各个传输连接分别提供流控。(2)利用固定大小的滑动窗口协议;这是数据链路层使用的方法。每一个数据单元都有编号,窗口大小是固定的,当接收方想要减缓或者停止接收时就暂停发送应答信号,发送方发完窗口内的协议数据单元后停止发送。如果基础网络不可靠,还需要某种重传机制的辅助。
11/14/202215传输协议(续)传输层流控方案11/12/202215传输协议(续)信贷(credit)滑动窗口协议
第三种流控方案在控制数据流动速率方面给接收方提供了更大的自由度,在基础网络可靠的情况下,这种控制策略能产生平滑的数据流动,在基础网络不可靠时,它还是一种差错控制手段。这种控制技术把接收方的应答信号与流控信号分开处理,不像固定大小的滑窗协议那样对两者用同一个信号控制。11/14/202216传输协议(续)信贷(credit)滑动窗口协议11/1传输协议(续)信贷滑窗协议
接收方发出增加信贷数的时机和数量值得进一步讨论。保守的策略是当B已有空闲缓冲区时才增加信贷,信贷数的多少正好等于已有的自由缓冲区的数量。更为大胆一些的策略是B虽然没有自由缓冲区,但考虑到端到端的传输延迟,估计当要求的TPDU来到时就可释放出新的自由缓冲区,这时也可增加信贷数。在传输延迟时间很长的网络中,提前增加信贷数能改善吞吐率。如果提前的时间和发出信贷的数量掌握得不够准确,可能会在TPDU来到时还没有得到预期的自由缓冲区,从而不得不丢弃数据,这时又需要重传机制的协助,所以要优化吞吐率必然使协议操作更复杂
11/14/202217传输协议(续)信贷滑窗协议11/12/202217传输协议(续)信贷滑窗协议
在网络不可靠的情况下,对以上方案稍加改进,就可以工作得很好。假定传输实体B向A发出形式为(ACKN,CDTM)的控制信号,表示对N之前的TPDU的肯定应答,并且准备接收N到(N+M-1)的TPDU。如果B想把信贷增加到X,同时又没有收到新的TPDU,B可以发出控制信号(ACKN,CDTX);另一方面,如果B要应答Y个新接收的TPDU,而又不想增加信贷数,则B可继续发出控制信号(ACKN+Y,CDTM-Y)。如果发送端等不到新的应答信号,则超时重传TPDU,这会引起重新应答,协议继续有效。11/14/202218传输协议(续)信贷滑窗协议11/12/202218传输协议(续)信贷滑窗协议
信贷信号丢失了,则会造成死锁。可能出现这样的情况:B发出(ACKN,CDT0),暂时关闭了发送窗口,后来B发出(ACKN,CDTM),企图重新打开发送窗口,但这个流控信号丢失了。这时B认为它已发出了增加信贷的信号,而A却在等待信贷数额的到来,这样形成了互相等待的死锁状态。为了解决这个问题,B需要一个窗口定时器。B每发出一个(ACK,CDT)信号,定时器就开始计时,当定时器超时后还未等到新的TPDU,则B必须重发(ACK,CDT),这样就打破了死锁僵局。另外,也可以要求A对B发出的(ACK,CDT)做出回答,B在一定时间间隔内等不到A的回答时就重发(ACK,CDT),这时B的窗口定时器的时间间隔可以定得更长一些。(习题2)11/14/202219传输协议(续)信贷滑窗协议11/12/202219传输协议(续)连接管理传输协议需要建立和释放连接。建立连接的过程有三个作用:(1)使通信双方确认对方存在;(2)协商任选参数,例如TPDU长度、窗口大小以及服务质量等;(3)分配传输资源,例如存储缓冲区、连接入口表项等。建立和释放连接涉及传输用户和传输实体的一系列动作。用户向本地传输实体发送命令,传输实体通过控制TPDU与对等实体交互作用,执行协议过程。11/14/202220传输协议(续)连接管理11/12/202220传输协议(续)连接管理如果两边同时主动要求建立连接,协议也能正常工作。然而当一方处于空闲状态,另一方要求建立连接时,这个协议可能失败,所以需要补充以下三个子过程(任选其一);(1)传输实体发回CLS,拒绝对方的连接请求;(2)把连接请求排队,等候用户发出LISTEN命令;(3)传输实体用中断方式通知用户,要求建立连接。如果使用最后一种机制,那么LISTEN命令实际上可以不要,或者用接受命令ACCEPT(同意按照请求的参数建立连接)代替之。任何一方用户都可以(或两方同时)发出CLOSE命令来释放连接。连接释放时可以突然断连或平稳断连。为了实现平稳断连,等待CLS的一方必须继续接收TPDU,直到收到对方发来的CLS后才能释放连接。11/14/202221传输协议(续)连接管理11/12/202221传输协议(续)连接管理TP4协议中对付不可靠网络服务的过程上述连接建立过程叫做两次握手。假定A向B发出RFC,如果出现网络服务不可靠的情况,可能有两种意外发生:A的RFC丢失或B的RFC丢失。若求助于超时重传机制,A可以重发RFC,直到连接成功。超时重传可能会引起重复的协议数据单元。如果B发出的确认RFC丢失了,A超时重发RFC,B就会收到两个同样的RFC;如果B的确认RFC没有丢失,而是延迟了,A超时重发,引起B再一次应答,A就会收到两个重复的确认RFC。出现这些情况时我们要求A和B能区分重复的协议数据单元,并在连接建立后丢弃被重复的RFC。
2022/11/1422传输协议(续)连接管理2022/11/1222传输协议(续)连接管理重复的RFC可能在通信子网中存储起来,并且在连接已经释放后姗姗来迟,到达接收端。如果A发出的一个重复RFC在断连后到达B,B会以为是新来的连接请求,并照例给予响应。进一步推理,当B的响应RFC到达A时,A刚好发出过第二次连接请求,A错以为这就是对它刚发出的请求的响应,于是建立了连接。因而协议失败了。解决这个问题的办法是使用三次握手过程。这个方案要求连接请求和连接确认都要显式表示出连接的序列号,并且接收方对发送方的RFC给予应答。2022/11/1423传输协议(续)连接管理2022/11/1223传输协议(续)连接释放的过程也须考虑控制TPDU丢失和重复的情况,仍然用三次握手过程断开连接。连接管理2022/11/1424传输协议(续)连接释放的过程也须考虑控制TPDU丢失和重复的传输协议(续)11/14/202225传输协议(续)11/12/202225传输协议(续)11/14/202226传输协议(续)11/12/202226传输协议(续)网络失效的恢复不可靠的网络可能失效,网络层检测到失效后会通知上面的传输层,例如X.25网络就可能向上发出复位(Reset)或重启动(Restart)的通知。连接复位:传输实体收到网络服务的通知,知道连接已经复位并估计路途中的数据可能丢失,故必须采取以下补救措施:(1)向对方发送控制TPDU,告诉复位已经发生,并说明自己收到的最后一个TPDU的序号;(2)暂不发送新的数据TPDU,等待对方回答的控制TPDU。更严重的问题是由于网络重启动而丢失了网络连接。在这种情况下,原来首先发起连接的一方要向网络服务发出重建连接的命令,然后向对方发送新的网络连接请求,最后用上述复位过程重新取得同步。11/14/202227传输协议(续)网络失效的恢复11/12/202227传输协议(续)
系统崩溃的恢复当传输实体所在的主机系统崩溃后,所有连接状态信息都丢失了。如果主机系统重新启动,受崩溃影响的连接就变成了半连接,因为另外一方没有经历系统崩溃的灾难,并不知道这一方出了问题。传输实体应该维持一个放弃定时器,该定时器测量多次重传的TPDU的应答信号等待时间。放弃定时器超时后,传输实体就认为对方传输实体或中间的网络已经失效,自动关闭连接,并把异常情况通知上层的传输用户。在传输实体(而不是主机)失效后很快重新启动的情况下可以用复位TPDURST迅速关闭所有半连接。失效一方每收到一个TPDUX,以RSTX回答,使对方复位。收到RSTX的一方根据序号X检查其有效性,如果自己确实发出过TPDUX,则RSTX是有效的,知道对方已经复位,自己也要异常终止连接。11/14/202228传输协议(续)系统崩溃的恢复11/12/202228传输协议(续)系统崩溃的恢复经历崩溃恢复后是否重开连接由传输用户决定。如果要重开连接,如何取得同步是一个尚未解决的问题。经过崩溃的一边,一切状态信息都丢失了,只有未经过崩溃的一边才记得以前的状态。如果未经过崩溃的一边是发送方,从它的断点处继续发送,接收方收到的数据可能缺少或重复。如果未经崩溃的一边是接收方,重开连接后按它的要求继续发送,那么发送方是否保留着以前发送过的那些数据的拷贝也值得怀疑。这个问题没有一个好的解决办法,因而在系统崩溃后再行恢复总得承受数据丢失或重复的风险。11/14/202229传输协议(续)系统崩溃的恢复11/12/202229三、TCP协议
TCP服务TCP协议提供面向连接的可靠的传输服务,适用于各种可靠的或不可靠的网络。TCP的功能与ISOTP4有一个重要差别,即TCP的数据传送模型是面向字节流的,而ISOTP4是面向报文序列的。TCP用户送来的字节流形式的数据缓存在TCP实体的发送缓冲区中,TCP实体自主地决定如何把字节流分段,组成TPDU发送出去。接收端TCP实体决定何时把接收缓冲区中的字节流提交给用户。分段的大小和提交的频度是由具体的实现根据性能和开销权衡决定的,TCP规范中没有定义。即使两个TCP实体的实现不同,也可以互操作。TCP允许用户把字节流分成报文,用推进(PUSH)命令指出报文的界限。发送端TCP实体把PUSH标志之前的所有未发数据组成TPDU立即发送出去,接收端TCP实体根据PUSH标志决定提交的界限。11/14/202230三、TCP协议TCP服务11/12/202230TCP协议(续)TCP服务请求原语11/14/202231TCP协议(续)TCP服务请求原语11/12/202231TCP协议(续)TCP服务响应原语11/14/202232TCP协议(续)TCP服务响应原语11/12/202232TCP协议(续)TCP段头格式源端口(16位)和目标端口(16位);说明源服务访问点和目标服务访问点;发送顺序号(32位):本段中第一个数据字节的顺序号;应答顺序号(32);捎带应答的顺序号,指明接收方期望接收的下一个字节的顺序号;偏置值(4位):传输头中的32位字的个数;保留字段(6位):所有实现必须把这个手段置全0;标志字段(6位):表示各种控制信息,其中URG:紧急指针有效;ACK:应答顺序号有效;PSH:推进功能有效;RST:连接复位为初始状态,通常用于连接故障后的恢复;SYN:对顺序号同步,用于连接的建立;FIN:数据发送完,连接可以释放;窗口(l6位):为流控分配的信贷数;检查和(16位):段中所有16位字按模216-1相加的和,然后取1的补码;紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中的一个位置,此位置之前的数据是紧急数据;任选部分(长度可变):只有一个任选项,即指定的最大段长;补丁:补齐32位字边界。11/14/202233TCP协议(续)TCP段头格式11/12/202233TCP协议(续)三次握手建立连接
11/14/202234TCP协议(续)三次握手建立连接11/12/202234TCP协议(续)伪段头检查和的检查范围包括整个TCP段和伪段头(Pseudo-header)11/14/202235TCP协议(续)伪段头11/12/202235TCP协议(续)TCP连接管理TCP建立和释放连接的过程采用三次握手协议。这种协议的实际目的是连接两端都要声明自己的连接端点标识,并回答对方的连接端点标识,以确保不出现错误的连接。连接可能是主动建立的,也可能是被动建立的。在连接建立、存在和释放的各个阶段形成了不同的连接状态。11/14/202236TCP协议(续)TCP连接管理11/12/20223611/14/20223711/12/202237TCP协议(续)系统崩溃和重启动后的恢复设想网络中存储了一个过期的连接请求RFCX(可能是不久以前站A发出但由于网络拥挤尚未到达目标B的TPDU)。如果A崩溃后恢复,重发对B的连接请求RFCX,并且过期的连接请求可能先到达B,而B无法区分两个类似的连接请求,于是应答了过期的连接请求,丢弃了第二个连接请求,从而建立了错误的连接,这个问题三次握手也无法解决。问题出在A在很短的时间内两次对同一个目标使用了同样的连接标识,而且两次连接请求的时间间隔又很短,在第一个请求没有从网络中消失时又发出第二个连接请求。TCP的连接标识是传输头中的发送顺序号ISN,该字段有32位长,从232个顺序号中顺序地选取ISN,在很长一段时间内可以不重复,这样可以保证ISN在一段时间内的唯一性。11/14/202238TCP协议(续)系统崩溃和重启动后的恢复11/12/2022TCP协议(续)系统崩溃和重启动后的恢复
系统从崩溃中恢复后又选取了同样的ISN?重复的ISN会建立错误的连接,在数据传送阶段也会造成错误的接收。给连接请求信号打上时标以保证ISN的唯一性,时间的分辨率要足够高,以保证同一个站永远都不会发出标识相同的连接请求。美国军方的豪华版TCP规范要求利用当地时间指定ISN,时间分辨率为4μs,因而每4.5小时ISN循环一次(4.5×3600×106/4≈232),这个时间间隔被认为是段最长生存期
MSL(MaximumSegmentLifetime),超过这个时间间隔,隐藏在网络中的老的TCP段都消失了。对于一般的实现,只要每次发出连接请求时避开0、1这些特殊数字选取一个ISN就可以了。把这样简单的TCP实现用在局域网上相当安全。因为在局域网环境中MSL大概只有几微秒,任何机器也不会在几微秒内从崩溃中恢复过来,所以当机器重发以前的连接请求时MSL已经过去了。11/14/202239TCP协议(续)系统崩溃和重启动后的恢复11/12/2022TCP协议(续)对无效数据段的处理如果接收站检测到一个窗口之外的数据段,则可以断定这是属于以前的连接的残余数据段,丢弃后不必发出RST。如果没有建立连接,甚至没有收到LISTEN命令,这时对任何接收到的非RST段都要以RST回答之,特别是对那些呼叫一个并未产生端口的连接请求要以RST拒绝之;如果连接建立过程尚未完成而收到一个对从未发出过的段的应答,则必须返回一个RST,这样就消灭了那些迟到的残余应答段;连接建立后,如果收到一个对窗口之外的数据的应答,这时不能发出RST,而是立即返回一个重新声明当前发送顺序号、接收指针以及窗口的段,以便重新取得同步,排除重复段的干扰。11/14/202240TCP协议(续)对无效数据段的处理11/12/202240TCP协议(续)对无效数据段的处理发出的RST段中的发送顺序号必须与它应答的违例段的发送顺序号相同。当RST段到达接收方时,接收方检查其中的顺序号,如果顺序号落在发送窗口中,则说明数据传输出错,连接必须中止。接收方正在监听呼入请求或者在监听状态刚刚响应了一个连接请求,当RST段到达接收方时,接收方要发出监听状态作为回答。如果RST段的顺序号没有落在接收方的发送窗口中,则忽略之,接收方认为这种RST是对以前差错的反应。11/14/202241TCP协议(续)对无效数据段的处理11/12/202241TCP协议(续)连接的释放TCP采用平稳断连的方法。连接的任何一端在数据发送完时,把最后一个数据段的FIN标志置位,但是必须继续接收远端发来的数据,直到收到对方发来的FIN置位的段。这样,TCP的断连是两方独立进行的,不会破坏途中正在传送的数据,也不需要采取额外的防止数据丢失的措施。11/14/202242TCP协议(续)连接的释放11/12/202242TCP协议(续)拥塞控制TCP的拥塞控制涉及到重传计时器管理和窗口管理,其目的都是与流控机制配合,缓解互联网中的通信紧张状况。重传计时器管理TCP实体管理着多种定时器(重传定时器,放弃定时器等),用以确定网络传输时延和监视网络拥塞情况。定时器的时间界限涉及网络的端到端往返时延(RTT),静态计时方式不能适应网络通信瞬息万变的情况,所以大多数实现都是通过观察最近一段时间的报文时延来估算当前的往返时间。一种方法是取最近一段时间报文时延的算术平均值来预测未来的往返时间,其计算方法如下:11/14/202243TCP协议(续)拥塞控制11/12/202243TCP协议(续)拥塞控制指数平均法可以用下面的公式表示SRTT(K)被称为平滑往返时间估值,SRTT(0)=0,0<
<1把上式展开,得到可以看出,越是早前的观察值,对平均值的贡献越小。若
=0.5,几乎所有权重都给了最近的4或5个观察值,当
=0.875时,计算就扩大到最近的10个或更多个观察值。所得的结论是:使用的
值越小,则计算出的平均值对最近的网络通信量变化越敏感,这样做的缺点是短期的通信量变化可能影响到平滑往返时间估值的过度震荡。11/14/202244TCP协议(续)拥塞控制11/12/202244TCP协议(续)拥塞控制11/14/202245TCP协议(续)拥塞控制11/12/202245TCP协议(续)慢启动TCP实体使用的发送窗口越大,在得到确认之前发送的报文数就越多,这样就可能造成网络的拥塞,特别在TCP刚连接建立开始发送时对网络通信的影响更大。可以采用的一种策略是,让发送方实体在接收到确认之前逐步扩展窗口的大小,而不是从一开始就采用很大的窗口,这种方法称为慢启动过程。下面的慢启动过程是以报文数来描述的,报文数等于TCP段头中窗口字段的值除以报文段的字节数。慢启动过程规定,TCP实体发送窗口的大小按照下式计算awnd:允许窗口的大小,TCP实体在没有收到确认的情况下可以发送的报文数cwnd:拥塞窗口的大小,在启动阶段或拥塞期间TCP实体使用的窗口大小credit:最近一次确认报文中得到的信用量,以报文数计量11/14/202246TCP协议(续)慢启动11/12/202246TCP协议(续)
慢启动在建立一个新连接后,TCP实体初始化cwnd=1,即在发送了第一个报文段后就停止发送,等待确认后再发送下一个报文段,并且每收到一个确认,则cwnd加1,用以扩大发送窗口。最终的发送窗口大小是由收到的credit决定的。实际上,cwnd是以指数规律增长的。当第0个报文段的确认到达后,cwnd被增加到2,可以发送第1和第2段;当第1和第2个报文段的确认到达后,cwnd经过两次增加,其值已经是4了;当这4个报文段的确认都达到后,cwnd经过4次增加,其值就是8了。11/14/202247TCP协议(续) 慢启动11/12/202247TCP协议(续)慢启动VanJacobson说过“让网络进入饱和状态很容易,而让网络从拥塞中恢复却很难。”这就是高峰期的长尾效应。所以还要补充下列规则:(1)设置慢启动的门限值为目前拥塞窗口的一半,即(2)置
,并且执行慢启动过程,直到(3)当
时,每经过一个往返时间cwnd加1下图描绘了这种行为的效果。11/14/202248TCP协议(续)慢启动11/12/202248TCP协议(续)慢启动11/14/202249TCP协议(续)慢启动11/12/202249四、UDP协议UDP提供无连接的传输服务,虽然这种服务是不可靠的,但这并没有减少它的使用价值。相反,由于协议开销少而在很多场合相当实用,特别是网络管理方面,大都使用UDP协议。UDP运行在IP协议层之上,只是在IP协议之上加上端口寻址能力。UDP头包含源端口号和目标端口号。段长指整个UDP段的长度,包括头部和数据部分。检查和与TCP相同,但是任选的,如果不使用检查和,则这个字段置0。由于IP的检查和只作用于IP头,并不包括数据部分,所以当UDP的检查和字段为0时,实际上对用户数据不进行校验。11/14/202250四、UDP协议UDP提供无连接的传输服务,虽然这种服务是不可Internet11/14/202251Internet11/12/202251传输层传输服务传输协议TCP协议UDP协议11/14/202252传输层传输服务11/12/20221一、传输服务传输服务传输层实体运行在用户主机中,利用通信子网提供的服务,向用户(应用进程或会话层实体)提供端到端的通信服务。面向连接的传输服务:这种服务具有基于连接的流量控制、差错控制和分组排序功能,因而面向连接意味着可靠和有序的提交。然而实现这种服务必须付出建立、维护和终止逻辑连接的开销。无连接的传输服务(数据报服务)不保证可靠的顺序提交,这个缺点有时显得不很重要。例如通过网络定期地进行数据采集时,偶然丢失数据是允许的,因为后来的数据可以弥补以前的损失。又例如向网络用户广播消息或发布实时消息时,也不在乎个别用户没有收到不很重要的报文。特别是在分布式事务处理环境中.通常采用请求—响应的工作方式,如果某个用户的请求没有得到服务器的响应,这种错误往往由用户进程处理,传输协议不必做差错恢复工作。控制单元11/14/202253一、传输服务传输服务控制单元11/12/20222传输服务(续)服务质量QoS服务质量(QualityofService,)参数在建立传输连接过程中可协商:残留错误率;传输失败的概率;平均(或最大)传输时延;平均(或最大)吞吐率;优先级。
各种网络都有特定的服务质量参数和取值范围。运行在主机中的传输实体根据下层网络提供的服务决定如何满足用户的要求。
如果下层协议提供了可选的服务质量参数,可以提供不同优先级、不同可靠性、不同的吞吐率和延迟时间的服务,则传输实体的工作只是顺水推舟地让下层实体实现用户的要求11/14/202254传输服务(续)服务质量QoS11/12/20223传输服务(续)服务质量QoS
X.25网络具有协商吞吐率的机制,它可以改变流控参数和调配网络资源的数量,提供不同吞吐率的虚电路,运行在X.25网络上的传输层在处理用户的吞吐率需求时不需要做多少工作,只是把用户的要求传达给下层网络。另外,传输实体也可采取其他的手段满足用户的要求,例如为了提高吞吐率,可以把一个传输连接分裂为几个虚电路连接。传输实体在满足用户的QoS需求时可能打折扣,甚至根本做不到。这可能是通信子网提供的能力有限,或者是用户提出的要求不能兼顾,例如可靠性和延迟时间,吞吐率和服务费用之间必须做出一定的折衷。这时传输实体会向上层实体提出指标较低的反建议,按照降低规格的QoS参数建立连接。文件传输协议需要大吞吐率,甚至还需要高可靠性,以避免文件级的多次重传。事务处理协议(实时数据库查询)要求低延迟,而电子邮件协议则要求多种优先级。实现这些特殊要求就要把服务质量请求交给传输协议来完成11/14/202255传输服务(续)服务质量QoS11/12/20224传输服务(续)加急投送服务这种服务类似于高优先级服务,但是有所区别。由于传输层要向上层提供可靠顺序的提交服务,所以对各种协议数据单元都要进行流量控制,但是加急投送数据不受流控影响。加急投送服务的数据包可以赶上和超过前边的数据包,传输实体调动可用的设施尽快地传送加急数据。在接收端,传输实体用中断方式通知用户立即接收加急数据,并用加急的协议数据单元返回应答。加急投送服务仅用于需要紧急传送的少量数据,例如终端发出的中断字符或是告警状态指示等,而优先服务只是通过资源分配和信道参数的调整使得优先级高的数据比普通数据传送得更快一些。11/14/202256传输服务(续)加急投送服务11/12/20225传输服务(续)连接管理服务传输实体要对连接的建立和释放进行管理。建立连接的过程可以是对称的,即允许任何一方用户启动建立连接的过程;也可以是非对称的,即仅允许一方提出连接请求,另一方只能接受(或不接受)对方提出的连接请求。非对称方式用于建立单向连接。连接的终止可以是突然的或平稳的,当连接突然终止时,正在传输中的数据就丢失了,而平稳终止连接则可以保证所有在传输途中的数据完整提交之前任何一方不会释放资源,不会关闭连接。11/14/202257传输服务(续)连接管理服务11/12/20226二、传输协议传输协议的分类
ISO定义了三种网络服务:A型:网络连接具有可接受的残留差错率和可接受的失效通知率。B型:网络连接具有可接受的残留差错率和不可接受的失效通知率。C型:网络层提供无连接的服务,这种服务具有不可接受的残留差错率。
所谓差错是指有丢失或重复的网络层协议数据单元。如果差错被网络协议捕获并得到纠正,则这种差错对传输实体是透明的。如果网络层检测到了差错,但不能恢复,则必须通知传输实体,这叫失效通知。例如在X.25网络中发生复位时就会通知上层协议。还有的差错既没有得到纠正,也没有通知传输实体,这就是残留差错。11/14/202258二、传输协议传输协议的分类11/12/20227传输协议(续)5种传输协议TP0协议适用于A型网络,它是CCITT为智能用户电报(Teletex)开发的协议。TP0为请求的传输连接建立一条对应的网络连接,并假定网络连接完全可靠,不再另外进行流控和排序。TP1协议适用于B型网络,它在TP0协议的基础上增加了差错恢复功能。差错恢复功能表现在对传输协议数据单元(TPDU)编号,当X.25复位命令出现后可以重新取得同步,或者在X.25重启动之后再建传输连接,流控功能仍然由网络层协议实现。这种协议也提供加急投送服务。11/14/202259传输协议(续)5种传输协议11/12/20228传输协议(续)5种传输协议TP2是TP0的增强型协议,它在TP0的基础上增加了多路复用功能,多路复用到同一网络连接上的各个传输连接必须单独提供流控功能,因为一个网络连接不能同时控制多个数据流。TP3协议综合了TP1和TP2的优点,它具有TP2的多路复用和流控能力,也提供TP1的差错恢复功能,适用于B型网络。TP4协议适用于C型网络。这种协议假定网络不可靠,本身具有差错恢复、流控和排序机制,并提供多路复用功能。TP4协议最复杂,功能最齐全。11/14/202260传输协议(续)5种传输协议11/12/20229传输协议(续)寻址问题统一的全局编址方案不可行:
有的通信实体是移动的,它的地址会改变;
有的通信设备连接到多个网络上,每个网络独立地为其指定地址。分层名字:采用<网络><系统><实体名>的形式。优点是容易增加新的名字,因为每一个通信实体的名字只在它所属的局部系统有效,分层名字还可提供地址信息,因而具有路由功能扁平名字:在整个通信环境中有全局意义,这要求整个名字空间足够大,并且预先把统一的名字空间分配给各个通信系统。增加一个新的扁平名字得考虑是否与其他全局名字相冲突,扁平名字不能指示通信实体属于哪个网络或主机系统。11/14/202261传输协议(续)寻址问题11/12/202210传输协议(续)寻址问题传输用户必须能够从名字中推导出通信对方的网络编号、站地址、传输实体标识和用户标识。站地址表示主机系统,就是网络层服务访问点NSAP;端口号与具体的用户相联系,对应于传输层服务访间点TSAP。这种地址结构中没有传输实体标识字段,通常一个站仅包含一个传输实体,所以站地址就代表了该站上的传输实体。即使一个站有几个传输实体,则各个传输实体应用的传输协议类型不同,只要指明传输协议的类型(例如TP0或TP1)就可以区分了。11/14/202262传输协议(续)寻址问题11/12/202211传输协议(续)
如何获取对方传输用户的地址?有些进程提供公共服务,其地址是众所周知的。网络中可以配置一个名字服务器,请求服务的用户可以查找名字服务器。发起端的用户进程向地址已知的远端系统特权进程发出请求,特权进程派生出新的临时进程,并被分配给一个临时的端口地址。
例如网络中有一个分时系统提供公共服务,它的地址是众所周知的,任何用户终端都可以登录在分时系统上;又例如为了均衡负载,数据输入进程可能在局域网中从一个站移动到另一个站,这个进程的名字必须保存在名字服务器中,当它移动时名字服务器随时更新其地址;在大型主机上运行一个仿真程序,则可作为一个临时进程的例子,终端用户首先向主机上的远程作业管理进程发出请求,管理进程派生出仿真进程并返回它的端口地址。11/14/202263传输协议(续)如何获取对方传输用户的地址?11/1传输协议(续)多路复用TP2~TP4类传输协议都提供多路复用功能,即由多个传输连接共享同一网络连接。由于在虚电路存续期间每个网络结点都要为之分配一定的缓冲资源,所以网络连接通常是按连接时间计费的。在单个网络连接提供的吞吐率足够的情况下,把多个传输连接复用到一条网络连接上可合理地分担费用。这种方式的多路复用可以称为向上的多路复用。向下的多路复用也叫分流,即把一个传输连接分配到多个网络连接上,这样可以获得较高的吞吐率,并增加可靠性。TP4协议提供了分流功能。11/14/202264传输协议(续)多路复用11/12/202213传输协议(续)流量控制通过传输连接的数据流动过程为:发送端用户—>发送端传输实体—>发送端网络服务—>接收端网络服务—>接收端传输实体—>接收端用户。接收端传输实体要求限制数据流动的速率可能是出于下面的原因;1)接收端用户来不及接收数据;2)接收端传输实体来不及接收数据。接收端传输实体为传输连接维持一定数量的缓冲区,用于存放TPDU。缓冲区可能溢出,所以实施流控是必要的。传输层对等实体之间不直接相连,传输实体之间的延迟大,而且延迟是变化的。所以流控难度大11/14/202265传输协议(续)流量控制接收端传输实体为传输连接维持一定数量的传输协议(续)传输层流控方案(1)接收端传输实体拒绝接受网络实体送来的TPDU;这是利用网络层流控实现传输层流控。当传输实体缓冲区充满时拒绝接受网络服务送来的数据,就触发了网络中的流控过程,从而引起发送端的网络服务不再接受它上面的传输实体发来的TPDU。当多个传输连接复用在一个网络连接上时,这种机制就完全失效了,因为网络流控无法对各个传输连接分别提供流控。(2)利用固定大小的滑动窗口协议;这是数据链路层使用的方法。每一个数据单元都有编号,窗口大小是固定的,当接收方想要减缓或者停止接收时就暂停发送应答信号,发送方发完窗口内的协议数据单元后停止发送。如果基础网络不可靠,还需要某种重传机制的辅助。
11/14/202266传输协议(续)传输层流控方案11/12/202215传输协议(续)信贷(credit)滑动窗口协议
第三种流控方案在控制数据流动速率方面给接收方提供了更大的自由度,在基础网络可靠的情况下,这种控制策略能产生平滑的数据流动,在基础网络不可靠时,它还是一种差错控制手段。这种控制技术把接收方的应答信号与流控信号分开处理,不像固定大小的滑窗协议那样对两者用同一个信号控制。11/14/202267传输协议(续)信贷(credit)滑动窗口协议11/1传输协议(续)信贷滑窗协议
接收方发出增加信贷数的时机和数量值得进一步讨论。保守的策略是当B已有空闲缓冲区时才增加信贷,信贷数的多少正好等于已有的自由缓冲区的数量。更为大胆一些的策略是B虽然没有自由缓冲区,但考虑到端到端的传输延迟,估计当要求的TPDU来到时就可释放出新的自由缓冲区,这时也可增加信贷数。在传输延迟时间很长的网络中,提前增加信贷数能改善吞吐率。如果提前的时间和发出信贷的数量掌握得不够准确,可能会在TPDU来到时还没有得到预期的自由缓冲区,从而不得不丢弃数据,这时又需要重传机制的协助,所以要优化吞吐率必然使协议操作更复杂
11/14/202268传输协议(续)信贷滑窗协议11/12/202217传输协议(续)信贷滑窗协议
在网络不可靠的情况下,对以上方案稍加改进,就可以工作得很好。假定传输实体B向A发出形式为(ACKN,CDTM)的控制信号,表示对N之前的TPDU的肯定应答,并且准备接收N到(N+M-1)的TPDU。如果B想把信贷增加到X,同时又没有收到新的TPDU,B可以发出控制信号(ACKN,CDTX);另一方面,如果B要应答Y个新接收的TPDU,而又不想增加信贷数,则B可继续发出控制信号(ACKN+Y,CDTM-Y)。如果发送端等不到新的应答信号,则超时重传TPDU,这会引起重新应答,协议继续有效。11/14/202269传输协议(续)信贷滑窗协议11/12/202218传输协议(续)信贷滑窗协议
信贷信号丢失了,则会造成死锁。可能出现这样的情况:B发出(ACKN,CDT0),暂时关闭了发送窗口,后来B发出(ACKN,CDTM),企图重新打开发送窗口,但这个流控信号丢失了。这时B认为它已发出了增加信贷的信号,而A却在等待信贷数额的到来,这样形成了互相等待的死锁状态。为了解决这个问题,B需要一个窗口定时器。B每发出一个(ACK,CDT)信号,定时器就开始计时,当定时器超时后还未等到新的TPDU,则B必须重发(ACK,CDT),这样就打破了死锁僵局。另外,也可以要求A对B发出的(ACK,CDT)做出回答,B在一定时间间隔内等不到A的回答时就重发(ACK,CDT),这时B的窗口定时器的时间间隔可以定得更长一些。(习题2)11/14/202270传输协议(续)信贷滑窗协议11/12/202219传输协议(续)连接管理传输协议需要建立和释放连接。建立连接的过程有三个作用:(1)使通信双方确认对方存在;(2)协商任选参数,例如TPDU长度、窗口大小以及服务质量等;(3)分配传输资源,例如存储缓冲区、连接入口表项等。建立和释放连接涉及传输用户和传输实体的一系列动作。用户向本地传输实体发送命令,传输实体通过控制TPDU与对等实体交互作用,执行协议过程。11/14/202271传输协议(续)连接管理11/12/202220传输协议(续)连接管理如果两边同时主动要求建立连接,协议也能正常工作。然而当一方处于空闲状态,另一方要求建立连接时,这个协议可能失败,所以需要补充以下三个子过程(任选其一);(1)传输实体发回CLS,拒绝对方的连接请求;(2)把连接请求排队,等候用户发出LISTEN命令;(3)传输实体用中断方式通知用户,要求建立连接。如果使用最后一种机制,那么LISTEN命令实际上可以不要,或者用接受命令ACCEPT(同意按照请求的参数建立连接)代替之。任何一方用户都可以(或两方同时)发出CLOSE命令来释放连接。连接释放时可以突然断连或平稳断连。为了实现平稳断连,等待CLS的一方必须继续接收TPDU,直到收到对方发来的CLS后才能释放连接。11/14/202272传输协议(续)连接管理11/12/202221传输协议(续)连接管理TP4协议中对付不可靠网络服务的过程上述连接建立过程叫做两次握手。假定A向B发出RFC,如果出现网络服务不可靠的情况,可能有两种意外发生:A的RFC丢失或B的RFC丢失。若求助于超时重传机制,A可以重发RFC,直到连接成功。超时重传可能会引起重复的协议数据单元。如果B发出的确认RFC丢失了,A超时重发RFC,B就会收到两个同样的RFC;如果B的确认RFC没有丢失,而是延迟了,A超时重发,引起B再一次应答,A就会收到两个重复的确认RFC。出现这些情况时我们要求A和B能区分重复的协议数据单元,并在连接建立后丢弃被重复的RFC。
2022/11/1473传输协议(续)连接管理2022/11/1222传输协议(续)连接管理重复的RFC可能在通信子网中存储起来,并且在连接已经释放后姗姗来迟,到达接收端。如果A发出的一个重复RFC在断连后到达B,B会以为是新来的连接请求,并照例给予响应。进一步推理,当B的响应RFC到达A时,A刚好发出过第二次连接请求,A错以为这就是对它刚发出的请求的响应,于是建立了连接。因而协议失败了。解决这个问题的办法是使用三次握手过程。这个方案要求连接请求和连接确认都要显式表示出连接的序列号,并且接收方对发送方的RFC给予应答。2022/11/1474传输协议(续)连接管理2022/11/1223传输协议(续)连接释放的过程也须考虑控制TPDU丢失和重复的情况,仍然用三次握手过程断开连接。连接管理2022/11/1475传输协议(续)连接释放的过程也须考虑控制TPDU丢失和重复的传输协议(续)11/14/202276传输协议(续)11/12/202225传输协议(续)11/14/202277传输协议(续)11/12/202226传输协议(续)网络失效的恢复不可靠的网络可能失效,网络层检测到失效后会通知上面的传输层,例如X.25网络就可能向上发出复位(Reset)或重启动(Restart)的通知。连接复位:传输实体收到网络服务的通知,知道连接已经复位并估计路途中的数据可能丢失,故必须采取以下补救措施:(1)向对方发送控制TPDU,告诉复位已经发生,并说明自己收到的最后一个TPDU的序号;(2)暂不发送新的数据TPDU,等待对方回答的控制TPDU。更严重的问题是由于网络重启动而丢失了网络连接。在这种情况下,原来首先发起连接的一方要向网络服务发出重建连接的命令,然后向对方发送新的网络连接请求,最后用上述复位过程重新取得同步。11/14/202278传输协议(续)网络失效的恢复11/12/202227传输协议(续)
系统崩溃的恢复当传输实体所在的主机系统崩溃后,所有连接状态信息都丢失了。如果主机系统重新启动,受崩溃影响的连接就变成了半连接,因为另外一方没有经历系统崩溃的灾难,并不知道这一方出了问题。传输实体应该维持一个放弃定时器,该定时器测量多次重传的TPDU的应答信号等待时间。放弃定时器超时后,传输实体就认为对方传输实体或中间的网络已经失效,自动关闭连接,并把异常情况通知上层的传输用户。在传输实体(而不是主机)失效后很快重新启动的情况下可以用复位TPDURST迅速关闭所有半连接。失效一方每收到一个TPDUX,以RSTX回答,使对方复位。收到RSTX的一方根据序号X检查其有效性,如果自己确实发出过TPDUX,则RSTX是有效的,知道对方已经复位,自己也要异常终止连接。11/14/202279传输协议(续)系统崩溃的恢复11/12/202228传输协议(续)系统崩溃的恢复经历崩溃恢复后是否重开连接由传输用户决定。如果要重开连接,如何取得同步是一个尚未解决的问题。经过崩溃的一边,一切状态信息都丢失了,只有未经过崩溃的一边才记得以前的状态。如果未经过崩溃的一边是发送方,从它的断点处继续发送,接收方收到的数据可能缺少或重复。如果未经崩溃的一边是接收方,重开连接后按它的要求继续发送,那么发送方是否保留着以前发送过的那些数据的拷贝也值得怀疑。这个问题没有一个好的解决办法,因而在系统崩溃后再行恢复总得承受数据丢失或重复的风险。11/14/202280传输协议(续)系统崩溃的恢复11/12/202229三、TCP协议
TCP服务TCP协议提供面向连接的可靠的传输服务,适用于各种可靠的或不可靠的网络。TCP的功能与ISOTP4有一个重要差别,即TCP的数据传送模型是面向字节流的,而ISOTP4是面向报文序列的。TCP用户送来的字节流形式的数据缓存在TCP实体的发送缓冲区中,TCP实体自主地决定如何把字节流分段,组成TPDU发送出去。接收端TCP实体决定何时把接收缓冲区中的字节流提交给用户。分段的大小和提交的频度是由具体的实现根据性能和开销权衡决定的,TCP规范中没有定义。即使两个TCP实体的实现不同,也可以互操作。TCP允许用户把字节流分成报文,用推进(PUSH)命令指出报文的界限。发送端TCP实体把PUSH标志之前的所有未发数据组成TPDU立即发送出去,接收端TCP实体根据PUSH标志决定提交的界限。11/14/202281三、TCP协议TCP服务11/12/202230TCP协议(续)TCP服务请求原语11/14/202282TCP协议(续)TCP服务请求原语11/12/202231TCP协议(续)TCP服务响应原语11/14/202283TCP协议(续)TCP服务响应原语11/12/202232TCP协议(续)TCP段头格式源端口(16位)和目标端口(16位);说明源服务访问点和目标服务访问点;发送顺序号(32位):本段中第一个数据字节的顺序号;应答顺序号(32);捎带应答的顺序号,指明接收方期望接收的下一个字节的顺序号;偏置值(4位):传输头中的32位字的个数;保留字段(6位):所有实现必须把这个手段置全0;标志字段(6位):表示各种控制信息,其中URG:紧急指针有效;ACK:应答顺序号有效;PSH:推进功能有效;RST:连接复位为初始状态,通常用于连接故障后的恢复;SYN:对顺序号同步,用于连接的建立;FIN:数据发送完,连接可以释放;窗口(l6位):为流控分配的信贷数;检查和(16位):段中所有16位字按模216-1相加的和,然后取1的补码;紧急指针(16位):从发送顺序号开始的偏置值,指向字节流中的一个位置,此位置之前的数据是紧急数据;任选部分(长度可变):只有一个任选项,即指定的最大段长;补丁:补齐32位字边界。11/14/202284TCP协议(续)TCP段头格式11/12/202233TCP协议(续)三次握手建立连接
11/14/202285TCP协议(续)三次握手建立连接11/12/202234TCP协议(续)伪段头检查和的检查范围包括整个TCP段和伪段头(Pseudo-header)11/14/202286TCP协议(续)伪段头11/12/202235TCP协议(续)TCP连接管理TCP建立和释放连接的过程采用三次握手协议。这种协议的实际目的是连接两端都要声明自己的连接端点标识,并回答对方的连接端点标识,以确保不出现错误的连接。连接可能是主动建立的,也可能是被动建立的。在连接建立、存在和释放的各个阶段形成了不同的连接状态。11/14/202287TCP协议(续)TCP连接管理11/12/20223611/14/20228811/12/202237TCP协议(续)系统崩溃和重启动后的恢复设想网络中存储了一个过期的连接请求RFCX(可能是不久以前站A发出但由于网络拥挤尚未到达目标B的TPDU)。如果A崩溃后恢复,重发对B的连接请求RFCX,并且过期的连接请求可能先到达B,而B无法区分两个类似的连接请求,于是应答了过期的连接请求,丢弃了第二个连接请求,从而建立了错误的连接,这个问题三次握手也无法解决。问题出在A在很短的时间内两次对同一个目标使用了同样的连接标识,而且两次连接请求的时间间隔又很短,在第一个请求没有从网络中消失时又发出第二个连接请求。TCP的连接标识是传输头中的发送顺序号ISN,该字段有32位长,从232个顺序号中顺序地选取ISN,在很长一段时间内可以不重复,这样可以保证ISN在一段时间内的唯一性。11/14/202289TCP协议(续)系统崩溃和重启动后的恢复11/12/2022TCP协议(续)系统崩溃和重启动后的恢复
系统从崩溃中恢复后又选取了同样的ISN?重复的ISN会建立错误的连接,在数据传送阶段也会造成错误的接收。给连接请求信号打上时标以保证ISN的唯一性,时间的分辨率要足够高,以保证同一个站永远都不会发出标识相同的连接请求。美国军方的豪华版TCP规范要求利用当地时间指定ISN,时间分辨率为4μs,因而每4.5小时ISN循环一次(4.5×3600×106/4≈232),这个时间间隔被认为是段最长生存期
MSL(MaximumSegmentLifetime),超过这个时间间隔,隐藏在网络中的老的TCP段都消失了。对于一般的实现,只要每次发出连接请求时避开0、1这些特殊数字选取一个ISN就可以了。把这样简单的TCP实现用在局域网上相当安全。因为在局域网环境中MSL大概只有几微秒,任何机器也不会在几微秒内从崩溃中恢复过来,所以当机器重发以前的连接请求时MSL已经过去了。11/14/202290TCP协议(续)系统崩溃和重启动后的恢复11/12/2022TCP协议(续)对无效数据段的处理如果接收站检测到一个窗口之外的数据段,则可以断定这是属于以前的连接的残余数据段,丢弃后不必发出RST。如果没有建立连接,甚至没有收到LISTEN命令,这时对任何接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年马克思主义基本原理概论试题及答案
- 2025-2026学年淮安市六年级毕业考试数学卷(真题)(含参考答案)
- 2026 年领略祖国风光文明出行主题教育课件
- 眼科医院医疗质量不良事件上报制度V6.0考试试题及答案
- 兽医培训考核试题及答案呈现
- 《素养与情操-美术鉴赏的意义》教学设计
- 激光机装调工创新方法能力考核试卷含答案
- 中式糕点师岗前合规化考核试卷含答案
- 保险箱柜制作工安全防护能力考核试卷含答案
- 真空电子器件金属零件制造工班组评比知识考核试卷含答案
- 2026交投集团所属辽宁省高速公路运营管理有限责任公司操作岗招聘30人考试备考题库及答案详解
- 2026 年小学秋季开学第一课红色故事浸润少年心灵德育
- 新版部编人教版四年级上册道德与法治(课件)9安全文明上网
- 建筑公司安全生产资金投入保障制度范本
- 2026秋小学新版苏教版数学六年级上册教学设计(附目录)适用于新课标
- 新版西师版五年级上册数学全册教案(完整版)教学设计含教学反思
- 教科版2026年小学四年级科学上册全册教案
- 2026宁夏医科大学总医院自主招聘事业单位工作人员87人考试备考题库及答案详解
- 2026年道路运输企业主要负责人和安全生产管理人员考试机考题库及答案
- 2025年中级会计职称中级会计实务考试真题及答案
- 2026年保密工作自查报告范本(2篇)
评论
0/150
提交评论