每日十题八股-2025年1月10日

1.HTTP长连接与WebSocket有什么区别?

2.Nginx有哪些负载均衡算法?

3.Nginx位于七层网络结构中的哪一层?

4.说一下tcp的头部

5.TCP三次握手过程说一下?

6.tcp为什么需要三次握手建立连接?

7.TCP 三次握手,客户端第三次发送的确认包丢失了发生什么?

8.服务端发送第二个报文后连接的状态进入什么状态?

9.三次握手和 accept 是什么关系? accept 做了哪些事情?

10.客户端发送的第一个 SYN 报文,服务器没有收到怎么办?

1.HTTP长连接与WebSocket有什么区别?

在网络的领域内,单工、半双工、全双工是经常会遇见的名称,下面简单的讲述一下他们的区别。

单工:简单的说就是一方只能发信息,另一方则只能收信息,通信是单向的。

半双工:比单工先进一点,就是双方都能发信息,但同一时间则只能一方发信息。

全双工:比半双工再先进一点,就是双方不仅都能发信息,而且能够同时发送。

2.Nginx有哪些负载均衡算法?

轮询,加权轮询,IP哈希,URL哈希,最短响应时间。

3.Nginx位于七层网络结构中的哪一层?

Nginx 主要操作和处理 HTTP 请求、响应等应用层数据,因此它位于 第七层(应用层) 网络结构中。

Nginx 在作为反向代理服务器或负载均衡器时,处理的是 HTTP(或其他协议,如 HTTPS、SMTP、POP3)请求,这些都属于应用层的协议。它根据请求内容进行路由和处理,决定如何将请求转发到后端服务器。

4.说一下tcp的头部?

目的端口号和源端口号各16位序列号和确认应答号各32位 。4位首部,保留6位,6个1位的控制位 ,16位窗口,16位校验和 ,16位紧急指针。

5.TCP三次握手过程说一下?

TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。首先双方要在一个开启的状态的状态。客户端发送SYN报文。客户端在收到服务端的SYN+ACK报文后就处于established状态,服务端还要等ACK报文才能处于established。第三次握手是可以携带数据的,前两次握手是不可以携带数据的,这也是面试常问的题。



状态变化

6.tcp为什么需要三次握手建立连接?

简单来说,三次握手的首要原因是为了防止旧的重复连接初始化造成混乱。 如果仅用两次握手,可能会导致旧的连接请求被误认为是新的连接请求。通过第三次握手,双方确认双方都知道对方的初始序列号,避免了这种情况。

7.TCP 三次握手,客户端第三次发送的确认包丢失了发生什么?

如果超过最大重传次数,服务器端就直接终止这次连接。

8.服务端发送第二个报文后连接的状态进入什么状态?

SYN_RCVD。

9.三次握手和 accept 是什么关系? accept 做了哪些事情?

又是突然出现完全不知道的知识点accept是啥啊。

三次握手和 accept() 函数密切相关,accept() 是在服务器端用于接受并建立连接的系统调用。

10.客户端发送的第一个 SYN 报文,服务器没有收到怎么办?

客户端超时重传。超时时间每次翻倍,重传次数默认5次。

相关推荐
数据潜水员44 分钟前
C#基础语法
java·jvm·算法
你这个代码我看不懂1 小时前
Java项目OOM排查
java·开发语言
Zong_09151 小时前
AutoCompose - 携程自动编排【开源】
java·spring boot·开源·自动编排
.生产的驴2 小时前
SpringCloud 分布式锁Redisson锁的重入性与看门狗机制 高并发 可重入
java·分布式·后端·spring·spring cloud·信息可视化·tomcat
虾球xz2 小时前
CppCon 2014 学习:C++ Memory Model Meets High-Update-Rate Data Structures
java·开发语言·c++·学习
攒了一袋星辰2 小时前
Spring @Autowired自动装配的实现机制
java·后端·spring
Bug缔造者2 小时前
若依+vue2实现模拟登录
java·前端框架
麦兜*3 小时前
【后端架构师的发展路线】
java·spring boot·spring·spring cloud·kafka·tomcat·hibernate
占星安啦3 小时前
一个html实现数据库自定义查询
java·前端·javascript·数据库·动态查询
果壳~3 小时前
【Java】mybatis-plus乐观锁与Spring重试机制
java·spring·mybatis