TCP协议的三次握手
时间:2006-07-01 17:44:42 来源:本站搜集整理 作者:Eric
TCP提供的可靠数据传输服务,是依靠接收端TCP软件按序号对收到的数据分组进行逐一确认实现的。这个过程在TCP收发端开始通信时,被称为三次握手初始化。
三次握手的目的是使收发端的数据发送和接收同步,协调可以收发的数据量,建立虚连接。双方的TCP协议软件在交换数据时必须首先建立会话连接,然后才能够以数据分组为单位进行通信。接收端TCP协议软件每收到一个数据分组,在检验传输无误后,就对发送端计算机发送确认信息(ACK,Acknowledgement),通知该序号分组收到。
数据传输过程中,发送端对已经发出的分组要有记录,并且设置等待确认的计时器,对超过规定时间未收到确认的分组按照丢失重传处理;接收端的TCP协议软件会自动检查是否所有的数据分组都已收到,如果发现哪个数据分组损坏,接收端会将它舍弃,并通知发送端重传;接收端的TCP协议软件还能对未按顺序到达的数据分组进行重新排序,解决乱序问题。
收发端TCP协议软件进行带确认的数据传送过程如所示。在图中,发送端将序号为100的数据分组(SEQ=100)送出;接收端收到后,向发送端回应一个序号为200的分组(SEQ=200),内容是对收到序号为100的数据分组的确认,确认信息是对收到的数据分组序号加1(ACK=101);发送端得知序号100的分组收到后,发送下一个数据分组(序号为101, SEQ=101),并且在该分组中带有对收到序号为200的回应分组的确认(仍然是对收到的分组序号加1,ACK=201)。
最后,当接收端计算机的TCP协议软件确认收到的数据分组无误,就根据封装在分组头部的目的端口号,识别出目的应用程序,将分组中的数据取出并按照原来顺序组合好交付给相应程序。
三次握手的目的是使收发端的数据发送和接收同步,协调可以收发的数据量,建立虚连接。双方的TCP协议软件在交换数据时必须首先建立会话连接,然后才能够以数据分组为单位进行通信。接收端TCP协议软件每收到一个数据分组,在检验传输无误后,就对发送端计算机发送确认信息(ACK,Acknowledgement),通知该序号分组收到。
数据传输过程中,发送端对已经发出的分组要有记录,并且设置等待确认的计时器,对超过规定时间未收到确认的分组按照丢失重传处理;接收端的TCP协议软件会自动检查是否所有的数据分组都已收到,如果发现哪个数据分组损坏,接收端会将它舍弃,并通知发送端重传;接收端的TCP协议软件还能对未按顺序到达的数据分组进行重新排序,解决乱序问题。
收发端TCP协议软件进行带确认的数据传送过程如所示。在图中,发送端将序号为100的数据分组(SEQ=100)送出;接收端收到后,向发送端回应一个序号为200的分组(SEQ=200),内容是对收到序号为100的数据分组的确认,确认信息是对收到的数据分组序号加1(ACK=101);发送端得知序号100的分组收到后,发送下一个数据分组(序号为101, SEQ=101),并且在该分组中带有对收到序号为200的回应分组的确认(仍然是对收到的分组序号加1,ACK=201)。
最后,当接收端计算机的TCP协议软件确认收到的数据分组无误,就根据封装在分组头部的目的端口号,识别出目的应用程序,将分组中的数据取出并按照原来顺序组合好交付给相应程序。
上一篇:MPEG4视频压缩编码技术详解
下一篇:几种开源SIP协议栈对比
文章评论
共有 1 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面