每日十题八股-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次。

相关推荐
醉殇姒若梦遗年1 小时前
怎么用idea打jar包
java·intellij-idea·jar
林九生1 小时前
【Docker】Docker环境下快速部署Ollama与Open-WebUI:详细指南
java·docker·eureka
Aric_Jones2 小时前
lua入门语法,包含安装,注释,变量,循环等
java·开发语言·git·elasticsearch·junit·lua
Akiiiira2 小时前
【日撸 Java 三百行】Day 12(顺序表(二))
java·开发语言
Chase_Mos6 小时前
Spring 必会之微服务篇(1)
java·spring·微服务
小林学习编程8 小时前
SpringBoot校园失物招领信息平台
java·spring boot·后端
撸码到无法自拔8 小时前
docker常见命令
java·spring cloud·docker·容器·eureka
heart000_18 小时前
IDEA 插件推荐:提升编程效率
java·ide·intellij-idea
ŧ榕树先生9 小时前
查看jdk是否安装并且配置成功?(Android studio安装前的准备)
java·jdk
未来的JAVA高级开发工程师9 小时前
适配器模式
java