博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP三次握手
阅读量:5892 次
发布时间:2019-06-19

本文共 748 字,大约阅读时间需要 2 分钟。

TCP:Transmission Control Protocol/Internet Protocol

传输控制协议/因特网互联协议


TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接

位码即tcp标志位,有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
TCP三次握手

第一次握手:客户端发送了一个带有SYN(建立连接)的Tcp报文到服务器,这个三次握手中的开始。表示客户端想要和服务端建立连接。

第二次握手:服务端接收到客户端的请求,返回客户端报文,这个报文带有SYN(建立连接)和ACK(确认)标志,询问客户端是否准备好。

第三次握手:客户端再次响应服务端一个ACK(确认),表示客户端已经准备好。


问:可不可以只进行二次握手?

答:客户端发送了第一个连接的请求报文,但是由于网络不好,这个请求没有立即到达服务端,而是在某个网络节点中滞留了,直到某个时间才到达服务端,本来这已经是一个失效的报文,但是服务端接收到这个请求报文后,还是会向客户端发出确认的报文,表示同意连接。假如不采用三次握手,那么只要服务端发出确认,新的建立就连接了,但其实这个请求是失效的请求,客户端是不会理睬服务端的确认信息,也不会向服务端发送确认的请求,但是服务端认为新的连接已经建立起来了,并一直等待客户端发来数据,这样,服务端的很多资源就没白白浪费掉了,采用三次握手就是为了防止这种情况的发生,服务端会因为收不到确认的报文,就知道客户端并没有建立连接。

转载于:https://blog.51cto.com/14127426/2339912

你可能感兴趣的文章
异步编程思想
查看>>
"数学口袋精灵"bug(团队)
查看>>
2017python第六天作业 面向对象 本节作业: 选课系统
查看>>
【找规律】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) B. Code For 1...
查看>>
Scribes:小型文本编辑器,支持远程编辑
查看>>
为什么要使用 SPL中的 SplQueue实现队列
查看>>
文件的相关操作(创建、打开、写入、读出、重命名)
查看>>
品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制
查看>>
PHP const关键字
查看>>
ssh 安装笔记
查看>>
游戏音效下载网站大全
查看>>
angular $resouse服务
查看>>
知识分析与应用基础作业(一)
查看>>
B/S与C/S区别
查看>>
实验五
查看>>
bzoj1821
查看>>
文法分析
查看>>
Java对象模型
查看>>
记那次失败了的面试
查看>>
程序包+创建包规范+创建包体+删除程序包
查看>>