TCP的运输连接管理_第1页
TCP的运输连接管理_第2页
TCP的运输连接管理_第3页
TCP的运输连接管理_第4页
TCP的运输连接管理_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

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

文档简介

TCP的运输连接管理运输连接的三个阶段TCP是面向连接的协议。TCP连接有三个阶段:连接建立数据传送连接释放TCP连接的管理就是使TCP连接的建立和释放都能正常地进行。TCP连接建立过程中要解决的三个问题要使每一方能够确知对方的存在。要允许双方协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)。能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。客户—服务器方式TCP连接的建立采用客户服务器方式。主动发起连接建立的应用进程叫做客户

(client)。被动等待连接建立的应用进程叫做服务器

(server)。1TCP的连接建立TCP建立连接的过程叫做握手。握手需要在客户和服务器之间交换三个TCP报文段。称之为三报文握手。采用三报文握手主要是为了防止已失效的连接请求报文段突然又传送到了,因而产生错误。TCP的连接建立:采用三报文握手CLOSEDCLOSEDAB客户服务器TCP的连接建立:采用三报文握手CLOSEDCLOSED被动打开AB客户服务器B的TCP服务器进程先创建传输控制块TCB,准备接受客户进程的连接请求。TCP的连接建立:采用三报文握手SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器A的TCP向B发出连接请求报文段,其首部中的同步位SYN=1,并选择序号seq=x,表明传送数据时的第一个数据字节的序号是x。TCP的连接建立:采用三报文握手SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1B的TCP收到连接请求报文段后,如同意,则发回确认。B在确认报文段中应使SYN=1,使ACK=1,其确认号ack=x+1,自己选择的序号seq=y。TCP的连接建立:采用三报文握手SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器A收到此报文段后向B给出确认,其ACK=1,确认号ack=y+1。A的TCP通知上层应用进程,连接已经建立。SYN=1,ACK=1,seq=y,ack=x1ACK=1,seq=x+1,ack=y+1TCP的连接建立:采用三报文握手SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器B的TCP收到主机A的确认后,也通知其上层应用进程:TCP连接已经建立。SYN=1,ACK=1,seq=y,ack=x1ACK=1,seq=x+1,ack=y+1数据传送TCP的连接建立:采用三报文握手SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器SYN=1,ACK=1,seq=y,ack=x1ACK=1,seq=x+1,ack=y+1数据传送采用三报文握手建立TCP连接的各状态SYN-SENTESTAB-LISHEDSYN-RCVDLISTENESTAB-LISHED2TCP的连接释放TCP连接释放过程比较复杂。数据传输结束后,通信的双方都可释放连接。TCP连接释放过程是四报文握手。TCP的连接释放:采用四报文握手FIN=1,seq=u主动关闭数据传送AB客户服务器ESTAB-LISHEDESTAB-LISHED数据传输结束后,通信的双方都可释放连接。现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。A把连接释放报文段首部的FIN=1,其序号seq=u,等待B的确认。TCP的连接释放:采用四报文握手FIN=1,seq=u主动关闭数据传送AB客户服务器ESTAB-LISHEDESTAB-LISHEDB发出确认,确认号ack=u+1,而这个报文段自己的序号seq=v。TCP服务器进程通知高层应用进程。从A到B这个方向的连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。通知应用进程ACK=1,seq=v,ack=u1TCP的连接释放:采用四报文握手FIN=1,seq=u主动关闭数据传送AB客户服务器ESTAB-LISHEDESTAB-LISHED若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。通知应用进程FIN=1,ACK=1,seq=w,ack=u1数据传送ACK=1,seq=v,ack=u1被动关闭TCP的连接释放:采用四报文握手FIN=1,seq=u主动关闭数据传送AB客户服务器ESTAB-LISHEDESTAB-LISHED

A收到连接释放报文段后,必须发出确认。通知应用进程FIN=1,ACK=1,seq=w,ack=u1数据传送ACK=1,seq=v,ack=u1被动关闭ACK=1,seq=u+1,ack=w1TCP的连接释放:采用四报文握手FIN=1,seq=u主动关闭数据传送AB客户服务器ESTAB-LISHEDESTAB-LISHED在确认报文段中ACK=1,确认号ack=w+1,自己的序号seq=u+1。通知应用进程FIN=1,ACK=1,seq=w,ack=u1数据传送ACK=1,seq=v,ack=u1被动关闭ACK=1,seq=u+1,ack=w1TCP的连接释放:采用四报文握手ACK=1,seq=u+1,ack=w1FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待2MSLTIME-WAIT

主动关闭被动关闭数据传送通知应用进程AB客户服务器数据传送CLOSEDESTAB-LISHEDESTAB-LISHEDCLOSEDA必须等待2MSL的时间第一,为了保证A发送的最后一个ACK报文段能够到达B。第二,防止“已失效的连接请求报文段”出现在本连接中。保活计时器用来防止在TCP连接出现长时期的空闲。保活计时器通常设置为2小时。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。3TCP的有限状态机箭头旁边的字,表明引起这种变迁的原因,或表明发生状态变迁后又出现什么动作。图中有三种不同的箭头。粗实线箭头表示对客户进程的正常变迁。粗虚线箭头表示对服务器进程的正常变迁。细线箭头表示异常变迁。CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主动打开被动打开被动关闭主动关闭起点被动打开主动打开发送SYN同时打开收到SYN,发送SYN,

ACK收到ACK数据传送阶段

关闭发送FIN

关闭发送FIN

关闭发送FIN收到RST

收到SYN发送

温馨提示

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

评论

0/150

提交评论