TCP为什么要三次握手

第一次:由客户端发出,用来试探服务端是否在监听,即判断服务器是否正常开启

第二次:由服务短发出,当服务端监听到 客户端的请求,服务端会发出回应,表示自己可以做出正确的应答

第三次握手:由客户端发出,开始将数据封装报文,发送报文。

这里的客户端和服务器都是相对的,即站在发送报文的角度,来判断是客户端还是服务端

总结:我们前两次的握手:是为了验证 服务端 能够接受客户端的信息并能做出正确的应答

          后两次的握手:是为了保证 客户端 能够接收 服务端的信息并能做出正确的应答

 

linux 下TCP常用的集中状态:

LISTEN: 侦听来自远方的TCP端口的连接请求


SYN-SENT: 再发送连接请求后等待匹配的连接请求,于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT


SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认,确认客户端的SYN,服务端应发出ACK,同时自己向客户端发送一个SYN. 之后状态置为SYN_RECV 


ESTABLISHED: 代表一个打开的连接,双方可以进行或已经在数据交互了


FIN-WAIT-1: 主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态


FIN-WAIT-2: 从远程TCP等待连接中断请求,主动关闭端接到ACK后,就进入了FIN-WAIT-2


CLOSE-WAIT: 等待从本地用户发来的连接中断请求被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT.


CLOSING: 等待远程TCP对连接中断的确认


LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认


TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认,状态的形成只发生在主动关闭连接的一方。


CLOSED: 没有任何连接状态,连接结束

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值