TCP是如何实现三次握手的?

Wesley13
• 阅读 491

什么是三次握手

  1. TCP是网络传输层的协议,提供面向连接的可靠的字节流服务,要通信得先建立连接
  2. 所谓三次握手就是指,建立一个TCP连接时,需要CLient与Server发送三个包,确认连接的建立
  3. 这一过程由Client执行connect触发

简单描述下三次握手的具体过程

第一次握手:

Client将SYN置为1,seq=随机值j,将该数据包发送给Server,
进入SYN_SENT状态,等待Server确认

第二次握手:

Server收到数据包由标志位SYN=1知道,是请求建立新连接,
将ACK置为1,ack=j+1,作为响应Client的请求,
将SYN置为1,seq=随机值k,发送给Client等待确认, Server进入SYN_RECV状态 因为是建立连接,这些信息在一个数据包中

第三次握手:

Client收到响应
检查ACK==1?,ack==j+1?,若都符合
将ACK置为1,ack=k+1,发送给Server,Client进入establish状态 Server收到响应 检查ACK==1?,ack==k+1?,若都符合 进入establish状态,三次握手完成,TCP连接建立,开始通信

TCP报文图:

TCP是如何实现三次握手的?

TCP是如何实现三次握手的?

TCP是如何实现三次握手的?

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
东方客主 东方客主
3年前
HTTP面试题精选_langsiming的博客
1.简述下TCP三次握手的过程,并解释采用3次握手建立连接的原因?1.客户端发送建立连接请求,携带信息syn1,seq X 第一次握手2.
xiguaapp xiguaapp
3年前
tcp的三次握手四次挥手
tcp的三次握手流程:在tcp/ip协议中,tcp协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送SYN包【synj】到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到SYN包,必须确认客户的SYN(ackj1),同时自己也发送一个SYN包(syn
Wesley13 Wesley13
2年前
TCP三次握手的过程
TCP(TransmissioncontrolProtocol)是一种面向连接,可靠的,基于字节流的运输层通信协议,是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的。每一次tcp连接需要3个阶段:连接建立,数据传送和连接释放三次握手发生在连接建立阶段,目的是为了防止已失效的连接请求报文端突然又传送到服务器端,因而产生错误三
Stella981 Stella981
2年前
PHP Swoole与TCP三次握手
握手常见问题1、连接拒绝2、Operationnowinprogress多是因为丢包、错误ip、backlog满了&阻塞&tcp_abort_on_overflow03、min(maxconn,backlog)sslt连接拒绝在TCP三次握手的时候,客户端发送
Wesley13 Wesley13
2年前
TCP的三次握手与四次挥手
TCP的三次握手与四次挥手一、TCP(TransmissionControlProtocol传输控制协议)TCP是面向对连接,可靠的进程到进程通信的协议TCP是提供全双工服务,即数据可在同一时间双向传输二、TCP报文段(封装在IP数据报
Wesley13 Wesley13
2年前
TCP三次握手和四次挥手
建立TCP连接:三次握手TCP在传输数据之前,首先需要建立好TCP连接,后续所有数据都基于这个已建立的连接来传输,建立TCP连接的过程通常被描述为三次握手屏幕快照2020072716.44.59!TCP三次握手和四次挥手(https://s4.51cto.com/images/blog/202007/27/e095cdb6ee5e99
Easter79 Easter79
2年前
TCP三次握手与Linux的TCP内核参数优化
感谢各位技术大佬的资料分享,这里我把我理解的内容做一个整理一:TCP的三次握手1、TCP简述  TCP是一个面向连接的协议,在连接双方发送数据之前,首先需要建立一条连接。TCP建立连接可以简单称为:三次握手(说白了就是建立一个TCP连接的时候,客户端
Wesley13 Wesley13
2年前
Go语言 之TCP三次握手
所谓三次握手(ThreeWayHandshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。好比两个人在打电话:Client:“喂,你听得到吗?”Server:“我听得到,你听得到我吗?”Client:“我能听到你,今天balabala…”建立连接(三次握手)的过程:1.客户端
Wesley13 Wesley13
2年前
TCP三次握手和四次挥手
TCP建立连接为什么是三次握手,而不是两次或四次?TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。举个日常例子,打电话时我们对话如下:对应为客户端与服务器之间的通信:!(https://oscimg.oschina.net/oscnet