首页 > 手机 > 配件 > 为什么是三次握手,三次握手协议

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

来源:整理 时间:2022-04-08 11:39:10 编辑:华为40 手机版

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

如何理解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协议有什么关系吗?

三次握手和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一次请求的建立到终止(浏览器一次网页请求)。

三次握手:可以看到,在HTTP请求之前有三次TCP的连接建立过程,这就是所谓的"三次握手"。客户端请求建立连接,SYN位--置1,Seq=0服务端收到请求,允许建立连接,并发送"通知"给客户端,SYN位--置1、ACK位--置1,Seq=0客户端收到服务端响应,返回消息给服务端,ACK位--置1四次挥手:请求端(可能是客户端也可能是服务器,这里是服务端发起)发送终止信号,FIN位(连接中断位)--置1、ACK位(此处是应答标识,不是Ack。

一个是响应标识,一个是应答码)--置1。Seq=19815,ACK=443响应端收到信号,先返回一条信息(可以理解为:我收到你的分手消息,但是我可能还有点事),ACK位--置1。Seq=443,Ack=19816(可以看到接收方的Seq为请求方的Ack,接收方的Ack为请求方Seq 1)响应端觉得自己也没啥留恋的了!也发送终止信号,FIN位--置1、ACK位--置1。

Seq=443、Ack=19816请求端收到响应端信号,返回消息。ACK位--置1。Seq=19816、Ack=444再来解释一下前面说的(此处是应答标识,不是Ack。一个是响应标识,一个是应答码)标识位(FIN、ACK)以红色方框与箭头标识,应答码(Ack)以红色圆框标识。这样费大把劲说一下发现对自己的知识巩固也是有效果的,哈哈哈哈,所以说程序员要写技术博客,作为菜鸟也要往这方面发展。

“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”在解答之前需要了解一下“三次握手”的机制:“三次握手”是指在发送数据之前,客户端与服务器端需要进行三次交互建立连接,才能正常的发送数据进行通信,主要应用于TCP协议中。如题http协议是应用层的协议,TCP协议是传输层的协议,我们明白传输层是利用网络层的功能来向比传输层更高级的层次提供更加可靠的服务。

http协议的任务是负责与服务器端交换信息,它不管如何连接到服务器,如何保证数据传输的可靠性。TCP协议的任务是通过三次握手来保证连接的可靠性,它不管具体传输的什么数据。三次握手是TCP协议的概念,不是http协议的,但http协议是基于TCP协议的,只能说在使用http协议时可能会用到跟三次握手一样的机制,并不代表http协议与三次握手有什么关系。

文章TAG:握手三次协议

最近更新