「客户端」学习网络编程,不了解TCP协议?难怪面试被刷下去,还不来学习!(12)
客户端调用 close 了 , 连接是断开的流程是什么?
我们看看客户端主动调用了
close
, 会发生什么?- 客户端调用 close , 表明客户端没有数据需要发送了 , 则此时会向服务端发送 FIN 报文 , 进入 FIN_WAIT_1 状态;
- 服务端接收到了 FIN 报文 , TCP 协议栈会为 FIN 包插入一个文件结束符 EOF 到接收缓冲区中 , 应用程序可以通过 read 调用来感知这个 FIN 包 。 这个 EOF 会被放在已排队等候的其他已接收的数据之后 , 这就意味着服务端需要处理这种异常情况 , 因为 EOF 表示在该连接上再无额外数据到达 。 此时 , 服务端进入 CLOSE_WAIT 状态;
- 接着 , 当处理完数据后 , 自然就会读到 EOF , 于是也调用 close 关闭它的套接字 , 这会使得会发出一个 FIN 包 , 之后处于 LAST_ACK 状态;
- 客户端接收到服务端的 FIN 包 , 并发送 ACK 确认包给服务端 , 此时客户端将进入 TIME_WAIT 状态;
- 服务端收到 ACK 确认包后 , 就进入了最后的 CLOSE 状态;
- 【「客户端」学习网络编程,不了解TCP协议?难怪面试被刷下去,还不来学习!】客户端进过 2MSL 时间之后 , 也进入 CLOSED 状态 。
推荐阅读
- 工业互联网@程序员的术与道:术——编程基本功之网络编程
- 可可酱不插电,无网络限制,学习工作效率更高,移动A4打印机:760g
- Hi威海客户端南海新区:精准护航让企业“满血复活”
- 南方Plus客户端向全球直播卖货,广州皮具商拟抱团进驻网上广交会
- 南方Plus客户端全国首台校园病毒智能监测机在深圳试用,风险“早”知道
- 简简科技机器学习修炼手册:从倔强青铜到最强王者
- 新华网客户端1800亿元投资发力数字新基建,广州市首批73个数字新基建重大项目签约
- 南方Plus客户端广州给大湾区带来什么新气象?,南方观察|1800亿新基建项目
- 北京日报客户端国家卫健委:互联网医疗不得突破现有法律法规
- 南方Plus客户端这款以色列研发的temi机器人有何亮点?,智能家居时代