TCP连接建立与释放_第1页
TCP连接建立与释放_第2页
TCP连接建立与释放_第3页
全文预览已结束

下载本文档

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

文档简介

1、TCP连接建立与释放TCP协议工作在传输层,与其对应的是UDP协议,TCP协议是可靠的,面向连接的协议,因此TCP需要在转送数据之前,建立一个连接,以确保数据能完整到达,同时拥有有效的重传机制,在数据包因各种网络原因造成的丢失时能及时的弥补错误。TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN

2、+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念: 未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(seq=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISH

3、ED状态。 Backlog参数:表示未连接队列的最大容纳数目。 SYN-ACK 重传次数 服务器发送完SYNACK包,如果未收到客户确认包,服务器进行首次重传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。 半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。 TCP协议通过四个报文段完成连接的建立,这个过程称为四

4、次挥手,过程如下图所示。 1. 第一次挥手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 主动方发出设置了FIN位的报文,表示主动终止从本地到远端的单向连接;此时,主动方进入FIN_WAIT1状态,意思就是它在等待远端的FIN报文;2. 远端收到FIN后,会立即发送ACK;主动方收到ACK后,进入FIN WAIT2状态,所以FIN-WAIT1状态持续的非常短;此时远端进入CLOSE-WAIT状态,一条单向连接终止了,但另一条还没有,处于HALF-CLOSE连接状态;3.当远端进行了必要的数据发送后,它发送FIN,表示从它出发的单向连接也要关闭;同时它进入LAST ACK状态;4.主动方收到FIN后,回应一个ACK;远端就此进入CLOSED状态,连接关闭;5.主动方进入TIME W

温馨提示

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

评论

0/150

提交评论