建立TCP连接需要三次握手,断开需要四次挥手。
(一)建立TCP/IP连接的三次握手
1、客户主机向服务器发送连接请求报文:SYN=1,seq=x;
2、服务器端接收连接请求后回复ACK报文,并为这次连接分配资源:SYN=1,seq=y,ack = x+1;
3、客户端接收到 ACK报文后也向服务器发送ACK报文,并分配资源:SYN=0,seq=x+1,ack = y+1;
这样一个TCP/IP连接就建立了;
(二)断开连接的四次挥手(中断连接 端可能是client端,也可能是 server端):
假设client端发起中断连接请求:
1、client 端向server端发送中断请求:发送FIN 报文
2、server端接收到FIN报文后,如果你还有数据没有发送完成,就不用急着 关闭 Socket,可以继续发送数据,所以你先发送ACK,告诉client端你的FIN请求我收到了,但是我还没有准备好,请你继续等我的消息;
这时client就进入FIN_WAIT状态,继续等待Server 端的FIN 报文;
3、当Server确认数据已经发送完成,则向client端发送FIN 报文,client端接收到FIN报文后,就知道可以关闭了,但是为了安全性,怕Server端不知道要关闭,所以 发送ACK进入TIME_WAIT状态,如果Server端没有收到则进行重传
4、Server端接收到 ACK后就知道可以断开连接了,如果client端等待了2MSL后依然没有收到回复,则证明Server端已经 正常关闭,这时候 client端 也会关闭,所有的资源(包括端口号)都被释放;
这样一个TCP/IP连接就关闭了
相关推荐
TCP三次握手与四次挥手.pdf
在TCP/IP协议中,建立连接协议是三次握手,关闭连接是四次握手。
TCP三次握手与四次挥手简解(csdn)————程序
tcp三次握手与四次挥手.pdf
tcp三次握手与四次挥手.doc
基于ajax请求过程分析Http协议的三次握手和四次挥手过程。 基于ajax请求过程分析Http协议的三次握手和四次挥手过程 基于ajax请求过程分析Http协议的三次握手和四次挥手过程 基于ajax请求过程分析Http协议的三次握手...
使用wireshark抓包分析,并且将特殊字段进行分析。
本文是关于TCP的三次握手与四次挥手的详细讲解,看了原文收益匪浅
通过X Shell登陆VM虚拟机抓取的三次握手及四次挥手的报文,下载后请使用WireShark软件打开,报文供大家学习使用!
详解TCP三次握手和四次挥手
三次握手和四次挥手详解,觉得本博文写的很好,分享给正在学习或者学习完还对TCP的三次握手和四次挥手还不熟悉的人,相信看完之后就能明白了。
Wireshark抓包分析TCP“三次握手,四次挥手”.doc
该文档详细描述了wireshark抓包分析tcp三次握手四次挥手详解及网络命令,亲自整理,适合新手借鉴
描述TCP三次握手,四次挥手的过程的图片
TCP报文分析--三次握手 四次挥手 还介绍了一点 SYN洪水攻击
主要介绍了TCP的三次握手与四次挥手详细介绍的相关资料,需要的朋友可以参考下
TCP 三次握手和四次挥手,面试题详解,图文并茂,欢迎技术交流
通过图解,简单明了的介绍了tcp三次握手/四次挥手的全过程,解释为什么建立连接协议是三次握手,而关闭连接却是四次握手
案例测试TCP的三次握手和四次挥手过程。包括C语言写的服务器端程序以及c#写的客户端程序,以及使用wirkshark进行的网络抓包分析TCP三次握手四次挥手的过程。
TCP三次握手及四次挥手