TCP(Transmission Control Protocol 传输控制协议)
2022/4/6 23:19:55
本文主要是介绍TCP(Transmission Control Protocol 传输控制协议),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议
TCP是一个非常复杂的传输协议,一般客户端和服务端进行通讯的时候一定通过TCP建立链接,以及断开的时候也会进行TCP链接,常用我们熟知的有三次握手以及四次挥手
客户端想要和服务端联系的时候要进行三次握手
- 当客户端想要和服务端进行联机的时候,会向服务端发送SYN码进行请求联机
- 服务端接收到联机请求后,同意联机,并且发送ACK码给客户端
- 客户端收到服务端发送的ACK码,验证成功之后,会再次发送给服务端ACK,表示开始进行联机
客户端想要和服务端断开链接会进行四次挥手
- 客户端传输数据结束,发送FIN码给服务端,要求关闭传输通道
- 服务端接收到请求之后,发送ACK码给客户端,我会关闭通道,但是我传输数据没有结束。
- 服务端在将自己传输的数据发送给客户端结束之后,再次发送FIN码给客户端,表示数据传输结束。
- 客户端接收到服务端的通知,发送ACK码给服务端,表示你可以安心的关闭传输通道了
TCP连接,属于客户端和服务端的一个交互模式,由客户端发起连接,由服务端来确认,最后还是由客户端来结束连接。
为什么挥手要比握手多一次?
应为服务端,收到 FIN 码的时候,还需要对数据是否传输完毕做确认。所以只能先回复 ACK 吗,告知客户端‘我收到FIN了,请稍等’,待传输完毕之后,再发送FIN码告知客户端传输完毕。最后客户端回复‘好的,收到了’。
这篇关于TCP(Transmission Control Protocol 传输控制协议)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升