为什么是三次握手,三次握手协议

三次握手是TCP协议的概念,不是http协议的,但http协议是基于TCP协议的,只能说在使用http协议时可能会用到跟三次握手一样的机制,并不代表http协议与三次握手有什么关系 。三次握手:可以看到,在HTTP请求之前有三次TCP的连接建立过程,这就是所谓的"三次握手" 。
如何理解TCP的三次握手原理?

为什么是三次握手,三次握手协议


根据我所知道的回答一下这个问题 。TCP的三次握手,有两个作用:建立通信双方的端到端的连接完成通信双方的认证TCP建立连接的三次握手TCP建立连接的过程是客户端和服务器之间的通信过程 。TCP建立连接三次握手的过程如下图所示:第一次握手:客户端发送SYN=1,seq=x报文到服务器端第二次握手:服务端收到客户端报文之后,发送SYN=1,seq=y(服务端的序列号),ack=x 1(确认客户端的序列号)第三次握手:客户端收到服务端的报文之后,发送ACK=1(标识确认报文) seq=x 1,ack=y 1(确认服务端的序列号为y报文)TCP报文的首部要深入了解TCP建立连接的三次握手,需要了解一下TCP报文的首部信息 。
【为什么是三次握手,三次握手协议】如下图所示,显示了TCP报文的首部,与TCP三次握手相关的字段是:控制位(5位):SYN、ACK 。用于传输TCP建立连接的控制数据,SYN标识同步报文、ACK标识确认报文 。序号(32位):Seq 。用于标识传输报文的序号,同时用于双方的认证,用(源ip地址、目的ip地址、源端口、目的端口)标识端对端的通信,用(序列号、确认号)标识报文 。
确认号(32位):Ack 。用于标识传输报文的确认号,确认对方的报文 。总结TCP的三次握手是TCP连接的第一步,完成客户端和服务端的建立连接 。TCP三次握手的过程,同时完成了客户端和服务端通过序列号和确认号完成双方的认证 。对于TCP三次握手,建立连接,完成认证,大家有什么看法呢,欢迎在评论区留言讨论 。如需更多帮助,请私信关注 。
三次握手和http协议有什么关系吗?
为什么是三次握手,三次握手协议


TCP/IP是一种笼统的称呼,实际上是两种不同层次的协议 。网络通信拓扑结构包含8层(由于个人疏忽,这句认真讲是错误的 。更正为:OSI/RM参考模型为七层,因为过于复杂/庞大,引入了现在更为常用的TCP/IP四层模型),IP属于网络层协议(不同于电脑Ip),TCP属于传输层协议(UDP也在这层),TCP/IP 构成了现代网络通信的基础 。
TCP 建立连接需要"三次握手"的过程,是为了保证连接的安全可靠性(实际情况可能不一定),所以说TCP 是可靠连接 。为什么需要三次而不是两次?如果是两次会发生什么?举个栗子,客户端一次请求因为各种原因(如网络延迟),隔了很长时间才发送到服务器,服务器一看,咦,生意上门!马上给个回复:可以招呼!然后满怀期待的等客户端发送信息 。
而实际上客户端早已认为这次请求已失效,根本就不想理服务端了,不再发送有效信息给服务端 。但服务端此时已确认连接建立,只能苦苦等消息 。这样子服务端资源就被无情的占用了,多了可能导致服务端过载之类的情况 。回到问题 。HTTP协议实际属于应用层协议,也就是说是基于TCP 的,所以每次完整的HTTP请求都会有TCP的"三次握手"用来建立连接 。
另外,连接结束后也会由一端请求终止连接,也就是TCP的"四次挥手" 。这两天正好在复习TCP/IP,刚刚下载了个wareshark抓包几遍完整的过程,希望对你有帮助 。上厕所纯手打,脚都蹲麻了…回到电脑旁 。。。既然感觉自己用心了,那就再用点心好好补充一下 。下面是HTTP一次请求的建立到终止(浏览器一次网页请求) 。

推荐阅读