版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
所属专业:视觉传播设计与制作所属课程:《广告摄像》所属单元:《产品短视频的拍摄》
计算机网络基础第六章传输层与数据传输物联网工程学院(信息安全学院)6.3TCP协议1.TCP协议报文2.TCP重传机制3.TCP的传输连接管理TCP协议报文TCP/IP体系中面向连接的传输层协议,它提供全双工的可靠交付的服务。一个TCP报文段分为首部和数据两部分,如图6-7所示。应当指出,TCP的全部功能都体现在它的首都的各字段。TCP报文段首都的前20个字节是固定的,后面有4N字节是根据需要而增加的选项(N必须是整数)。因此TCP首部的最小长度是20字节。TCP协议报文源端口和目的端口各占两个字节是传输层与应用层的服务接口。用来将若干高层协议向下复用,也用来将传输层协议向上分用。TCP协议报文序号占4字节。TCP是面向数据流的,TCP传送的报文可看成为连续的数据流,其中每一个字节都对应于一个序号。首部中的“序号”指的是本报文段所发送的数据中第一个字节的序号。TCP协议报文确认序号占4字节,是期望收到对方的下—个报文段的数据的第一个字节的序号,也就是期望收到的下—个报文段首部的字号字段的值。TCP协议报文数据偏移占4bit,它指出数据开始的地方离TCP报文段的起始处有多远。“数据偏移”的单位不是字节,而是32bit字(即4字节字)。由于4bit能表示的最大十进制数是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大长度。TCP协议报文保留字段占6bit,保留为今后使用,但目前应置为0。TCP协议报文①紧急比特URG(URGent)当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。要与首部中第五个32bit字中的一半“紧急指针”(UrgentPointer)字段配合使用。TCP协议报文②确认比特ACK只有当ACK=1时确认序号字段才有效。当ACK=0时,确认序号无效。③推送比特PSH(Push)当两个应用进程进行文互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。在这种情况下,TCP就可以使用推送(push)操作。接收TCP收到推送比特置1的报文段,就尽快(即“推送”向前)交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。PSH比特也可叫作急迫比特。TCP协议报文④复位比特RST(Reset)当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立传输连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接。复位比特也可称为重建比特或重置比特。TCP协议报文同步比特SYN在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。终止比特FIN(Final)用来释放一个迎接,当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放传输连接。TCP协议报文窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据自己缓存的空间大小确定自己的接收窗口大小,然后通知对方来确定对方的发送窗口。TCP协议报文检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。TCP协议报文占16位,用来确定紧急数据的最后一个字节的位置。优先快速地获取紧急数据TCP协议报文长度可变。TCP只规定了一种选项,即最大报文段长度MSS(MaximumSegmentSize)。没有选项时,TCP的首部长度是20字节。TCP协议报文填充0,用于保证首部的长度是32位的整数倍TCP协议是面向字节的。TCP将所要传送的整个报文(这可能包括许多个报文段)看成是一个个字节组成的数据流,并使每一个字节对应于一个序号。TCP的确认是对接收到的数据的最高序号(即收到的数据流中的最后一个序号)表示确认。但接收端返回的确认序号是已收到的数据的最高序号加1。TCP有三种基本机制来控制报文段的发送。第一种机制是TCP维持一个变量,它等于最大报文段长度MSS,只要发送缓存从发送进程得到的数据达到MSS字节时,就组装成—个TCP报文段,然后发送出去。第二种机制是发送端的应用进程指明要求发送报文段,即TCP支持的推送(push)操作。第三种机制是发送端的一个计时器时间到了,这时就把当前已有的缓存数据装入报文段发送出去。TCP的数据编号与确认在TCP的实现中广泛使用Nagle算法。若发送端应用进程将欲发送的数据逐个字节地达到发送端的TCP缓存,则发送端就将第一个字符(—个字符的长度是一个字节)发送出去,将后面到达的字符将都缓存起来。当接收端收到对第一个字符的确认后,再将缓存中的所有字符装成一个报文段发送出去,同时继续对随后到达的字符进行缓存。只有在收到对前一个报文段的确认时才继续发送下一个报文段。当字符到达较快而网络速率较慢时,用这样的方法可明显地减少所用的网络带宽。因为Nagle算法在某一个时刻只有一个报文在传输,会导致数据传递的不够及时TCP的数据编号与确认傻窗口综合症。设想这种情况:接收端的缓存已满,而交互的应用进程一次只从缓存中读取一个字符(这样就在缓存产生1个字节的空位),然后向发送端发送确认,并将窗口设置为1个字节(但发送的数据报是40字节长)。接着,发送端又传来1个字符(但发来的IP数据报是41字节长)。接收端发回确认,仍然将窗口设置为一个字节。这样进行下去,网络的效率将会很低。这种状况称之为傻窗口综合症。要解决这个问题,可让接收端等待一段时间,使得或者缓存已能有足够的空间容纳—个最长的报文段,或者缓存已有一半的中间处于空的状态。只要出现这两种情况之一,就发出确认报文,并向发送端通知当前的窗口大小。此外,发送端也不要发送太小的报文段,而是将数据积累成足够大的报文段,或达到接收端缓存的空间的—半大小。TCP的数据编号与确认为了提高报文段的传输效率,TCP采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方为发送窗口(可增大或减小)在TCP中接收端的接收窗口总是等于发送端的发送窗口(因为后者是由前者确定的),因此—般就只使用发送窗口这个词汇。TCP的流量控制与拥塞控制(a)发送端要发送900字节长的数据,划分为9个100个节长的报文段,对方确定的发送窗口为500字节。发送端只要收到了对方的确认,发送窗口就可前移。发送端的TCP要维护一个指针。每发送一个报文段,指针就向前移动—个报文段的距离。当指针移动到发送窗口的最右端(即窗口前沿)时就不能再发送报文段了。(b)表示发送端已发送了400字节的数据,但只收到对前200字节数据的确认,同时窗口大小不变,注意到,现在发送端还可发送300字节。(c)表示发送端收到了对方对前400字节数据的确认,但窗口减小到400字节,于是,发送端还可发送400字节的数据。TCP的流量控制与拥塞控制设主机A向主机B发送数据。双方确定的窗口值是400。再设每一个报文段为100字节长,序号的初始值为1。图6-10中右边的注释可帮助理解整个的过程。应注意到,主机B进行了3次流量控制。第一次将窗口减小为300字节,第二次又减为200字节,最后减至0,即不允许对方再发送数据了。这种暂停状态将持续到主机B重新发出一个新的窗口值为止。TCP的流量控制实现流量控制并非仅仅为了使接收端来得及接收。如果发送端发出的报文过多会使网络负荷过重。由此会引起报文段的时延增大。为了避免发生拥塞,主机应当降低发送速率。发送端的主机在发送数据时,既要考虑到接收端的接收能力,又要使网络不要发生拥塞。因而发送端的发送窗口应按照以下方式确定:TCP的拥塞控制
通知窗口(advertisedwindow)是接收端根据其接收能力许诺的窗口值,是来自接收端的流量控制。接收端将通知窗口的值放在TCP报文的首部中,传送给发送端。拥塞窗口(congestionwindow)是发送端根据网络拥塞情况得出的窗口值,是来自发送端的流量控制。为了更好地进行拥塞控制,因特网标准推荐使用以下三种技术,即慢启动(slow-start)、加速递减(MultiplicativeDecrease)和拥塞避免(CongestionAvoidance)。TCP的拥塞控制1)当一个连接初始化时,将拥塞窗口置为1(即窗口允许发送1个报文段)、并设置慢启动的门限窗口值。2)发送端的发送窗口不能超过拥塞窗口和通知窗口的最小值。现在假定接收端不进行流量控制。3)发送端若收到了对所有发出的报文段的确认,就在下一次发送时将拥塞窗口加倍,可见拥塞窗口从1开始,把指数规律增长。若出现了超时,则将当时的拥塞窗口减半,作为新的门限窗口值,同时拥塞窗口再次变为1。4)拥塞窗口重新从1开始按指数规律增长。但当增长到新的门限窗口值时,就每次只将拥塞窗口加1,使拥塞窗口按线性规律增长。当网络又出现超时,仍重复上述过程。TCP每发送一个报文段,就设置一次计时器。只要计时器设置的重传时间已经到了但还没有收到确认,就要重传这一报文段。TCP的重传机制出于TCP的下层是一个互联网环境,发送的报文段可能只经过一个高速率的局域网,但也可能是经过多个低速率的局域网,并且数据报所选择的路由还可能会发生变化。右画出了数据链路层和传输层的往返时延概率分布的对比。往返时延就是从数据发出到收到对方的确认所经历的时间。对于数据链路层,其往返时延的方差很小,因此将超时时间设置为图中的T即可。但对于传输层来说,其往返时延的方差很大。若将超时时间设计为图中的T,则很多报文段的重传时间太早,因而给网络增加了许多不应有的负荷。但若将超时时间选为图中的T,则显然使网络的传输效率降低很多。
TCP的重传机制
TCP的重传机制传输连接的管理就是使传输连接的建立和释放都能正常地进行。在连接建立过程中要解决以下三个问题。1)要使每一方能够确知对方的存在。2)要允许双方协商一些参数(如最大报文段长度,最大窗口大小,服务质量等)。3)能够传输实体资源(如缓存大小,连接表中的项目等)进行分配。TCP的连接和建立都是采用客户服务端方式。主动发起连接建立的进程叫作客户(client)。而被动等待正接建立的进程叫服务器(server)。TCP的传输连接管理设主机B中运行一个服务器过程,如图6-12所示,它先发出一个被动打开(passiveopen)命令,告诉它的TCP要准备接受客户进程的连接请求。然后服务器进程就处于“听”(listen)的状态,不断检测是否有客户进程要发起连接请求,如有,即做出响应。TCP的传输连接管理主机A的TCP向主机B的TCP发出连接请求报文段,其首部的同步比特SYN应置为1,同时选样—个序号x,表明在后面传送数据时的第一个数据字节的序号是x。主机B的TCP收到连接请求报文段后,如同意,则发回确认。在确认报文段中应将SYN置为1,确认序号应为x+1,同时也为自己选择一个序号y。主机A的TCP收到此报文段后,向B给出确认,其确认序号为y+1。运行客户进程的主机A的TCP通知上层应用进程,连接已经建立(或打开)连接建立采用的这种过程叫作三次握手(there-wayhandshake),或三次联络TCP的传输连接管理为什么要发送这第三个报文段呢?这主要是为了防止己失效连接请求报文段突然又传送到了主机B,因而产生错误。主机A发出连接请求,但因连接请求报文丢失而未收到确认。主机A于是再重传—次。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接。主机A共发送了两个连接请求报文段,其中的第二个到达了主机B。主机A发出的第一个连接请求报文段并没有丢失,而是在某些网络结点滞留的时间太长,以致延误到在这次的连接释放以后才传送到主机B。TCP的传输连接管理在数据传输结束后,通信的双方都可以发出释放连接的请求。主机A的应用进程先向其TCP发出连接释放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园健康教育活动的设计与指导
- 2026下半年小学教师资格证考试英语易错题试卷及解析
- 校舍安全工作自查报告(3篇)
- 汛期特殊人群诊疗质量保障措施
- 肾脏日健康活动
- 国企员工职业规划指南
- 糖友日常健康护理
- 2026及未来5年中国发动机外壳数据监测研究报告
- 2026事业单位工勤技能-江苏-江苏热力运行工三级(高级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-江苏-江苏堤灌维护工五级(初级工)历年参考题库含答案详解3套试卷
- 2026邢台银行招聘笔试备考题库及答案详解
- 高处施工作业风险防控专项方案
- 2025年成都七初锦城初一入学语文分班考试真题含答案
- 2026-2030中国DJ设备行业市场发展趋势与前景展望战略分析研究报告
- 2026年电子商务投资合作合同模板(风险共担)
- 23G409先张法预应力混凝土管桩
- 室内设计与家居搭配培训资料
- 江河防洪系统-江河防洪系统组成
- 机器人技术及其应用课件
- 光伏组件更换专业知识
- 机械制图课程三视图的画法
评论
0/150
提交评论