面试实战系列之TCP协议总结

本文于2019年10月首发于公众号“码农的修炼之道”上,本文来源于本人多次实际面试总结,希望对各位准备面试者有帮助。

在创作本文的时候,本人前前后后差不多面试了10家大型企业。由于简历上写着熟悉TCP/IP协议,而且投递的岗位都是后台研发,因此关于TCP/IP协议的问题必不可少。下面就总结一波问题,也算是一个阶段性的记录。

1、TCP协议三次握手,四次挥手都很熟悉了,那么为什么需要三次握手呢?

这是AB面试的时候问的,我首先介绍了一下三次握手的过程(包括发送包),他说这个大家都知道,问为什么需要三次握手的根本目的。

  • 第一层理解,三次握手的目的是确认双方数据包发送和接收的能力。首先假设客户端发送一个SYN包给服务端,这是第一次握手。假如此时服务端收到了该报文,说明服务端知道客户端“发送消息”没有问题。此时,服务端发送SYN+ACK消息给客户端,这是第二次握手。假如此时客户端收到了该报文,说明客户端知道服务端“发送消息”和“接收消息”没有问题。但是此时服务端只知道客户端“发送消息”没有问题,不知道它“接收能力”怎么样。此时,客户端再次发送新的ACK给服务端,这是第三次握手。假如服务端收到了,说明客户端“发送”和“接收”都没有问题。此后,可以正常通信。

  • 第二层次理解,刚开始客户端处于close状态,服务端处于listen状态(因为服务端会listen本地端口,然后accept连接,客户端发起connect)。第一次握手,客户端给服务端发送SYN,且指明了客户端初始化序列ISN,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值