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

相关推荐
你想考研啊23 分钟前
linux安装jdk和tomcat和并自启动
java·linux·tomcat
悟能不能悟2 小时前
java的java.sql.Date和java.util.Date的区别,应该怎么使用
java·开发语言
高山上有一只小老虎3 小时前
java 正则表达式大全
java·正则表达式
_院长大人_4 小时前
设计模式-工厂模式
java·开发语言·设计模式
凌波粒5 小时前
MyBatis完整教程IDEA版(2)--ResultMap/注解/一对多/多对一/lombok/log4j
java·intellij-idea·mybatis
蓝-萧5 小时前
【玩转全栈】----Django基本配置和介绍
java·后端
priority_key5 小时前
排序算法:堆排序、快速排序、归并排序
java·后端·算法·排序算法·归并排序·堆排序·快速排序
汤姆yu6 小时前
基于SpringBoot的动漫周边商场系统的设计与开发
java·spring boot·后端
皮皮林5516 小时前
快速解决 Maven 版本冲突指南 !
java·maven
灰小猿6 小时前
Spring前后端分离项目时间格式转换问题全局配置解决
java·前端·后端·spring·spring cloud