三次握手、四次挥手相关面试题


一、url到出现网页的主要过程

1、检查缓存中是否含有请求对应的页面记录,如果有,直接返回。
(浏览器缓存->本地缓存)
2、如果没有找到,则向DNS域名解析系统发起请求,得到域名对应的ip地址。(DNS中是一个存储着很多域名-ip地址对的数据库)
3、根据ip地址,客户端与服务器通过三次握手建立起连接。
4、发起http请求,服务器处理请求报文,返回响应结果。
5、拿到html、css和js等相应内容后,浏览器对其进行渲染,显示在屏幕上。
6、通过四次挥手断开连接。

二、三次握手步骤

1、客户端向服务端发送连接请求 请求连接syn=1 并携带序列号seq=n
2、服务端收到连接请求时,发送ack=n+1确认报文表示确认收到消息,同时携带服务端的同步序列号
3、客户端收到服务端确认报文后,再向客户端发送一个ack确认报文,这里时针对服务端连接的确认。

为什么要设计三次握手?

1、由于tcp是一种可靠的面向连接的传输层协议。需要保证双方的收发能力都是正常的。
2、防止旧连接引起混乱的连接现象.如果没有三次握手,无法判断当前连接是正常的还是过期的。有了三次握手,当客户端收到服务端seq+1的确认可以判断出是一个失效链接,就可以向服务端放松一个终止报文终止连接。

三、四次挥手步骤

1、客户端向服务端发送断开连接fin报文,同时携带自己的序列号seq=u。
2、服务端收到请求,发送ack=u+1表示收到客户端请求。
至此,客户端不再向服务端传送数据。
3、等到服务端的数据传送完毕后,向客户端发送连接断开报文fin,等待客户端确认。
4、客户端收到请求后,发送ack以表示确认收到。此时,客户端进入time_wait状态,服务端收到ack后关闭连接。客户端等待2msl时间后关闭。

为什么需要四次挥手?

因为需要确保双方的数据传送都已经完成了。客户端向服务端发送断开请求只表明客户端没有需要传送的数据了,可能服务端还有未传送完成的数据。

为什么需要等待2msl时间?

2msl指的是报文段存活的最大时间。确保旧连接中的报文完全消失了,防止旧连接失效的报文影响到新连接。(报文的最大传送时间是1msl,当服务端等待1msl还没收到ack时,会重新向客户端发送fin,这个过程最大也需要1msl)当客户端等待2msl时间后没收到重传的fin报文时,则进入关闭状态。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三次握手四次挥手是TCP协议中用于建立和关闭连接的过程。三次握手指的是在建立连接时,客户端和服务器之间需要进行三次通信来确认双方的发送和接收能力以及初始序列号的协商。四次挥手则是在关闭连接时,客户端和服务器之间需要进行四次通信来达成双方的关闭协议。 具体来说,三次握手的过程如下:首先,客户端向服务器发送一个SYN(同步)包,其中包含一个随机的初始序列号。服务器收到后,会回复一个SYN ACK(同步确认)包,其中包含确认号和自己的初始序列号。最后,客户端再发送一个ACK(确认)包,确认号为服务器发来的初始序列号加1。这样,双方就完成了三次握手,建立了TCP连接。 而四次挥手的过程如下:首先,当客户端希望关闭连接时,会发送一个FIN(结束)包给服务器,表示不再发送数据。服务器收到后,会回复一个ACK包作为确认。但服务器可能还有未发送完的数据,所以在发送完数据后,会发送一个FIN包给客户端。客户端收到后,发送一个ACK包作为确认。这样,双方就完成了四次挥手,关闭了TCP连接。 需要注意的是,三次握手四次挥手的目的是确保双方的数据传输能力和关闭协议的一致性。在三次握手中,通过交换确认包和初始序列号,双方确认了彼此的发送和接收能力,并且约定了初始序列号。而在四次挥手中,通过交换FIN和ACK包,双方完成了数据传输的结束和连接的关闭。这些过程是为了保证数据的可靠性和正确性,在网络通信中起着重要的作用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [面试题: TCP三次握手&& 四次挥手](https://blog.csdn.net/weixin_45522097/article/details/115498247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [TCP的三次握手四次挥手理解及面试题(很全面)](https://blog.csdn.net/terastudio/article/details/116545065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值