Linux TCP Socket四次握手
来源:互联网 发布:大数据建设开展情况 编辑:程序博客网 时间:2024/06/05 02:29
B端发起主动关闭
(B) –> FIN –> (A)
B端调用了close函数 B状态:FIN_WAIT_1 A状态:CLOSE_WAIT(B) <– ACK <– (A)
A端调用了read的函数 B状态:FIN_WAIT_2 A状态:CLOSE_WAIT(B) <– FIN <– (A)
A端调用了close函数 B状态:TIME_WAIT A状态:LASK_ACK(B) –> ACK –> (A)
B端接收了到了FIN之后向A端发送ACK报文 A端接收到ACK报文之后变成CLOSED状态 B状态则还需等待2MLs
经过在Linux系统上测试,B端只要调用了close函数,状态就会变为CLOSED状态,而A端在没有调用read函数读之前,状态会直接变为CLOSE_WAIT,调用了read函数之后和调用close函数之后,状态也是CLOSE_WAIT状态,调用了close函数之后,变为CLOSED状态
测试结果表明,在网络以及系统都正常的情况下,主动关闭方只要调用了close函数,从ESTABLISHED状态变成CLOSED状态与应用层的程序都已经没关系了,而被动关闭方从ESTABLISHED状态变为CLOSE_WAIT状态与应用程序没有关系,全是系统内核在操作,调用read函数获取主动关闭方关闭套接字的信息不会改变端口状态,只有调用了close状态才会再次改变,调用了close函数之后端口状态的改变与应用层程序也已经没有关系
RST报文:
在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认
- Linux TCP Socket四次握手
- 【Linux】TCP 三次握手与四次挥手
- TCP:三次握手/四次握手
- TCP三次握手/四次握手
- TCP三次握手,四次握手
- tcp 三次握手 四次握手
- TCP三次握手,四次握手
- TCP三次握手四次握手
- TCP 三次握手 四次挥手 socket 状态 对应代码
- socket的TCP的三次握手&&四次挥手
- Socket通信——TCP三次握手、数据通信、四次关闭
- socket的TCP的三次握手&&四次挥手
- tcp断开四次握手
- socket关闭 四次握手
- tcpip,socket ,tcp/ip 三次握手,四次断开连接握手 图解
- TCP的三次握手和四次握手是在socket编程的什么阶段发生的
- 【Linux网络编程】浅谈 TCP 三次握手和四次挥手
- linux网络编程/TCP三次握手与四次挥手
- yii中缓存(cache)详解
- Editext
- Once框架使用
- fileoutputstream 抛文件找不到异常
- 【recursive autoencoder】运行str2vec
- Linux TCP Socket四次握手
- woj~24. Divide by Six(dp)
- 一个nginx C++ hello_world http module
- HashSet的判断和删除依据
- 【ssm个人博客项目实战03】左侧导航菜单功能实现
- iOS利用iTunesLookup检查更新
- Java连接数据库入门案例
- 数据结构(线性表):线性表的静态链式表示
- Logstash学习13_Logstash处理连续空格