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-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享