三次握手协议中的面试题

本文详细解析TCP三次握手的过程,包括为什么需要三次握手、半连接队列的概念、ISN初始序列号的特性,以及三次握手中能否携带数据等常见面试问题。通过深入理解,有助于更好地应对前端面试中的TCP相关题目。
摘要由CSDN通过智能技术生成

#加粗样式 三次握手协议中的面试题

三次握手是指客户端和服务器端之间建立一个TCP连接时,需要客户端和服务器总共发送三个包。

​进行三次握手的主要作用就是为了确认通信双方的接收能力和发送能力是否正常,指定自己的初始化序列号,为后面的可靠性传送做准备。

​实质上就是连接服务器的指定端口,建立TCP连接,并同步连接双方的序列号的确认号,交换TCP窗口大小信息。

三次握手过程:

  1. 第一次握手:客户端给服务端发送一个SYN报文,并指明客户端的初始化序列号ISN。此时客户端处于SYN_SENT状态

    ​首部的同步位SYN=1,初始序列号seq = x, SYN = 1 的报文段不能懈怠数据,但要消耗掉一个程序号

  2. 第二次握手:服务器端接收到客户端的SYN报文之后,会以自己的SYN报文作为应答,并且也是指定了自己的初始化序列号ISN(s)。同时会把客户端的ISN+1作为ACK的值,表示自己已经收到了客户端的SYN,此时度武器处于SYN_RCVD的状态。

    ​在确认报文段中SYN = 1,ACK = 1, 确认号ack = x+1, 初始序号seq = y。

  3. 第三次握手:客户端收到SYN报文之后,会发送一个ACK报文,当然,也是一样把服务器的ISN+1作为ACK的值,表示已经收到了服务器端的SYN报文,此时客户端处于ESTABLISHED状态,服务器端收到ACK报文之后࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值