### 计算机网络面试常考题总结
#### HTTP协议请求方法
HTTP协议定义了与服务器交互的不同方法,包括但不限于:
- **GET**:请求获取指定资源的信息。
- **POST**:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。
- **PUT**:请求服务器存储一个资源,覆盖原位置上的任何现存内容。
- **DELETE**:请求服务器删除指定的页面。
- **HEAD**:类似于GET请求,但服务器响应不包含消息主体,只返回头部信息。
- **OPTIONS**:请求查询服务器的性能,或者查询与资源相关的选项。
- **PATCH**:用于对已存在的资源进行局部更新。
#### HTTP协议请求头与响应头
HTTP请求头和响应头包含了用于完成HTTP请求的额外信息,如认证、编码等。
- **通用报头**:适用于所有HTTP消息头,既适用于请求消息也适用于响应消息。
- **请求头**:客户端向服务器发送额外信息的报头,如Accept-Language、User-Agent等。
- **响应头**:服务器向客户端发送额外信息的报头,如Content-Type、Server等。
#### HTTP状态码
HTTP状态码分为五大类:
- **1xx**:指示信息,表示请求已被接收,继续处理。
- **2xx**:成功,表示请求已被成功接收并处理。
- **200 OK**:请求成功。
- **3xx**:重定向,需要进一步的操作以完成请求。
- **301 Moved Permanently**:请求的资源已被永久移动到新位置。
- **302 Found**:请求的资源临时移动到新位置。
- **4xx**:客户端错误,请求中有语法错误或无法完成请求。
- **400 Bad Request**:服务器无法理解请求的格式。
- **401 Unauthorized**:请求要求用户的身份认证。
- **403 Forbidden**:服务器理解请求客户端的请求,但是拒绝执行此请求。
- **404 Not Found**:请求失败,请求所希望得到的资源未被在服务器上发现。
- **5xx**:服务器错误,服务器在处理请求的过程中发生了错误。
- **500 Internal Server Error**:服务器遇到未知错误或异常情况。
- **502 Bad Gateway**:作为网关或代理工作的服务器,从上游服务器收到了无效响应。
- **503 Service Unavailable**:服务器当前无法使用(可能是过载或停机维护)。
#### OSI七层模型与TCP/IP四层协议
**OSI七层模型**:
- **物理层**:负责比特流的传输。
- **数据链路层**:负责帧的传输。
- **网络层**:负责分组的传输。
- **传输层**:提供端到端的数据传输。
- **会话层**:建立、管理和终止表示层实体之间的通信会话。
- **表示层**:数据格式化、加密和压缩。
- **应用层**:提供应用程序间通信。
**TCP/IP四层协议**:
- **应用层**:提供应用程序间通信。
- **传输层**:提供端到端的数据传输。
- **互联网层**:负责IP地址寻址和路由选择。
- **网络接口层**:负责比特流的传输。
#### DNS服务器
- **DNS服务器**:通过使用UDP协议,在端口53上提供域名解析服务。
- **解析方式**:
- **递归解析**:客户端直接向DNS服务器发送请求,由DNS服务器递归查找结果,最后将结果返回给客户端。
- **迭代解析**:客户端向本地DNS服务器发送请求,本地DNS服务器将查询转发给其他DNS服务器,直至找到答案,每个DNS服务器只返回指向下一个DNS服务器的地址,客户端自行查询。
#### HTTP/1.0与HTTP/1.1的区别
- **HTTP/1.0**:默认使用非持久连接,即一个TCP连接只传输一个Web对象。
- **HTTP/1.1**:
- 默认使用持久连接,允许在一个TCP连接上发送多个Web对象。
- 支持管道机制,客户端可以在接收到服务器响应之前发送多个请求。
- 引入了新的状态码。
- 更加高效地利用缓存。
#### DHCP服务器
- **DHCP服务器**:使用UDP协议作为传输层协议,端口号67。
- **作用**:自动分配IP地址、子网掩码、默认网关等信息给客户端。
#### TCP与UDP的区别
- **TCP**:
- 面向连接的传输协议,提供可靠的、按序的数据传输服务。
- 支持流量控制和拥塞控制。
- 适用于需要高可靠性的场景,如文件传输、网页浏览等。
- **UDP**:
- 无连接的传输协议,提供尽力而为的服务。
- 不支持流量控制和拥塞控制。
- 适用于实时性要求较高但可靠性要求较低的场景,如语音通话、视频流等。
#### TCP报文段
- **确认号**:期望收到对方下一个报文段的第一个数据字节的序号。
- **数据偏移**:表示TCP报文段中的数据部分距离TCP首部的起始位置有多少字节。
- **URG**:表示TCP报文段中存有紧急数据。
- **ACK**:表示确认号是有效的。
- **PSH**:请求接收方尽快地交付给接收应用进程。
- **RST**:用于重置一个已经混乱的连接。
- **SYN**:在连接建立时用来同步序号。
- **FIN**:用来释放一个连接。
#### 差错控制
- **TCP**:
- 使用校验和来检测数据传输过程中的错误。
- 提供确认机制来确认数据的正确接收。
- 支持重传机制,对于未收到确认的数据包进行重传。
- **UDP**:
- 也使用校验和来检测数据传输过程中的错误。
- 但由于UDP是无连接的,因此不提供确认和重传机制,数据传输不可靠。
#### TCP三次握手与四次挥手
- **三次握手**:
- 客户端发送SYN请求连接。
- 服务器发送SYN+ACK响应,同意连接。
- 客户端发送ACK确认,完成连接。
- **四次挥手**:
- 客户端发送FIN请求断开连接。
- 服务器发送ACK确认收到。
- 服务器发送FIN请求断开连接。
- 客户端发送ACK确认收到,完成断开连接的过程。
#### 保活定时器
为了防止TCP连接长时间空闲而导致不必要的资源占用,服务器端设置保活定时器,定期向客户端发送探测报文,若一段时间内未收到回应,则认为连接已失效。
#### TCP协议的流量控制
- **滑动窗口**:用于流量控制,通过调整窗口大小来控制发送速度,避免接收方缓冲区溢出。
- **零窗口通告**:当接收方窗口大小为0时,发送方暂停发送数据,直到接收方窗口变为正数。
- **坚持定时器**:发送方设置的一个定时器,用于处理零窗口通告可能导致的死锁情况。
- **糊涂窗口综合症**:连续发送小的数据包,导致效率低下。可以通过合并多个小的数据包减少网络负载。
#### TCP协议的拥塞控制
- **拥塞窗口**:控制发送到网络的数据量。
- **门限值**:用于控制拥塞窗口的增长速率。
- **慢启动算法**:初始阶段快速增加拥塞窗口大小,直到达到门限值。
- **拥塞避免算法**:达到门限值后,缓慢增加拥塞窗口大小,避免网络拥塞。
以上是计算机网络面试中常考的一些基本知识点,掌握这些概念不仅有助于面试准备,也能加深对网络原理的理解。
2025-08-03 13:43:53
1.87MB
计算机网络面
1