TCP协议端口状态及TCP“三次握手”

TCP协议端口状态

了解TCP协议端口的连接状态,对排除和定位网络或系统故障会有很大帮助。

一 LISTENING

侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LISTENING状态,端口等待被连接。

二 SYN_SENT(客户端状态)

客户端调用connect,发送一个SYN请求建立一个连接,在发送连接请求后等待匹配的连接请求,此时状态为SYN_SENT

二 SYN_RECEIVED(服务端状态)

在收到和发送一个连接请求后,等待对方连接。

三 ESTABLISHED

表示两台机器正在传输数据

TCP“三次握手”

在这里插入图片描述

握手之前,主动打开的客户端结束CLOSE阶段,被动打开的服务器也结束CLOSED阶段,并进入LISTEN阶段

首先client向server发送一段TCP报文 ======第一次握手

  • 标记位为SYN,表示“请求建立新连接”
  • 序号为Seq=X(X一般为1)
  • 随后客户端进入SYN-SENT阶段

SYN =1 请求建立连接

其次,收到来自报文的server,结束LISTEN阶段 。并且返回一段报文 ======第二次握手

  • 标志位为SYN和ACK,表示“确定客户端的Seq序号有效,服务器能正常接收到client发送的数据,并且SYN=1,同一创建新连接”
  • 序号Seq=y
  • 确认号为Ack=x+1,表示收到了client的Seq并且将其值加1作为自己确认号Ack的值,随后服务器进入SYN-RCVD阶段。(此阶段表明能正常接收数据,RCVD)

SYN=1ACK=1能收到数据,并且同意连接
client收到报文后,明确了从client到server的数据传输是正常的,即client确定了自己可发可收。因此结束SYB-SENT阶段,并返回最后一段TCP报文。其中: ======第三次握手

  • 标志位为ACK,表示“确认收到server同意连接的信号”
  • 序号Seq为x+1,表示也知道你确认了,并将其作为自己的序号值
  • 确认号Ack=y+1,表示收到了server的序号,并将值加1
  • 随后客户端进入ESTABLISHED阶段

在这里插入图片描述

随后,server收到来自client的“确认收到服务器数据”的TCP报文后,明确了从server到client的数据传输是正常的,即自己可发可收。因此,结束SYN-RCVD,并也进入ESTABLISHED阶段

总而言之,三次握手,就是使客户端和服务端明确自己可发可收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值