TCP/IP学习笔记2-tcp协议的3次握手

本文深入解析TCP/IP协议中三次握手的过程,阐述其在确保通信双方接收与发送能力中的关键作用。通过理解三次握手,读者将能更好地掌握网络通信基础,为未来排查网络问题和深入学习互联网技术奠定坚实基础。

背景

TCP/IP协议是当前网络时代的基础,所有的网络产品,或者是开发语言、开发框架都是基于tcp/ip协议的,所以说,学好tcp/ip对个人以后从事互联网行业会有巨大的帮助。

但是这是一个基础理论课程,就像操作系统这门课一样,学完之后可能不会对你产生太大的影响,不会让你立马拥有能够投入工作中的技能。但正是因为这是一个基础理论课,所有的互联网技术都是基于它的。所以如果你了解tcp/ip协议,将会对你未来发展或者在工作中排查问题产生积极的作用。

tcp协议的3次握手

tcp的三次握手是需要确认双方的两种能力:接收能力、发送能力

三次握手

  1. 最开始双方都是Closed状态。然后某个时间点,服务端启动程序,监听了某个端口,处理Listen状态
  2. 客户端主动连接,发送SYN,自己变成SYN-Sent状态
  3. 服务端收到请求之后,回复ACKSYN,变为SYN-Revd状态
  4. 客户端收到回复后,再次发送ACK,自己变为Established状态。服务端在收到ACK之后,也变成Established状态
  5. 接下来就是数据传输的过程了

注意

  • 凡是需要对端确认的,一定要消耗TCP报文的序列号(seq number)
  • SYN需要对端确认
  • ACK不需要对端确认,它就是去确认别人的

思考

一、为什么不是2次握手
两次握手无法确认对方的接收能力

二、为什么不是4次握手
最少、最优的是3次。4次,100次都是可以的,但不是最优的

三、3次握手过程中可以顺便携带点数据吗
3的时候是可以的,前2次不行。

如果前2次可以,会造成恶意攻击。发送SYN并携带一批数据,服务器处理数据势必会消耗时间个资源,增大了被攻击的风险。

3次的时候,客户端已经处于Established状态,并且已经确认服务器的接收、处理能力正常。

四、如果客户端和服务端同时发送SYN请求会怎么样
如果同时发送连接请求,则会发生状态变迁

  1. 两边同时发送SYN报文,然后都变为SYN-Sent状态
  2. 在各自收到对方的SYN后,状态变为SYN-Revd状态
  3. 双方回复SYN + ACK
  4. 各自收到回复后,状态转变为Established
  5. 数据传输

总结

这是tcp/ip系列的第二篇,主要讲解了三次握手的过程,以及握手过程中C-S状态的转变。最后还思考了4个问题,为什么不这么做?如果发生这些情况会怎么样?等等。后面还有更深入的讲解,这个系列的文章会很长。
开始下一篇吧。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值