当前位置: 首页 > news >正文

某游戏大厂计算机网络面试问题深度解析(一)

计算机网络是每个技术岗位都不可避免的基础知识之一,尤其在一些大厂的技术面试中,网络相关的面试题经常出现在各种岗位的面试中,特别是对于涉及到系统架构、后端开发等岗位。本文将详细解析一些常见的计算机网络面试问题,帮助大家更好地准备面试。

---

## HTTP还是HTTPS请求?有什么区别?

**HTTP**(超文本传输协议)和**HTTPS**(安全超文本传输协议)都是用于在客户端和服务器之间传输超文本的协议。两者的主要区别如下:

1. **加密与安全**:
- **HTTP**是明文传输协议,不对传输的数据进行加密,因此数据在传输过程中可能被窃取或篡改。
- **HTTPS**是在HTTP的基础上加入了SSL/TLS加密协议,保证数据传输的机密性和完整性,防止中间人攻击和数据篡改。

2. **端口号**:
- **HTTP** 默认使用 **80端口**。
- **HTTPS** 默认使用 **443端口**。

3. **性能**:
- 因为HTTPS需要建立加密连接,存在一定的计算开销,相比HTTP略微慢一些。但随着硬件和算法的进步,这种差距越来越小。

4. **认证**:
- **HTTPS** 会进行服务器的身份认证,客户端可以验证服务器的合法性,避免连接到伪造的服务器上。

---

## HTTP过程的四次挥手?

**四次挥手**是TCP协议断开连接时的过程。四次挥手(四次握手)是为了保证数据的完整传输,确保双方都知道连接关闭。过程如下:

1. **第一次挥手**:客户端发送一个 `FIN`(finish)标志位的包,表示客户端没有数据发送给服务器了,请求断开连接。

2. **第二次挥手**:服务器收到 `FIN` 包后,向客户端发送一个确认包(`ACK`)。此时服务器进入**关闭等待**状态,等待将数据发送完毕。

3. **第三次挥手**:服务器发送完数据后,发送一个 `FIN` 包,表示它也没有数据要发送,准备关闭连接。

4. **第四次挥手**:客户端收到 `FIN` 包后,回复确认包 `ACK`,进入 **TIME_WAIT** 状态,等待确认。

在这个过程的最后,连接被完全关闭。

---

## TIME_WAIT的作用?

**TIME_WAIT** 是TCP连接断开时客户端进入的一种状态。它有两个主要作用:

1. **确保数据完全传输**:当客户端发送完关闭连接的请求后,处于 `TIME_WAIT` 状态的客户端会等待一定时间(通常是2倍的最大段生存时间,MSL)。这是为了确保服务器能够接收到客户端最后一个确认包,防止数据丢失。

2. **避免旧连接干扰新连接**:如果客户端直接关闭连接,新的连接请求可能会和旧连接的数据包冲突。通过在 `TIME_WAIT` 状态中等待,客户端确保旧的连接已完全消失,不会干扰新的连接。

---

## Cookie的作用?

**Cookie** 是在客户端存储的小块数据,主要作用有:

1. **会话管理**:Cookie 可用于存储用户登录状态,保持用户会话(如用户登录、购物车状态等)。
2. **个性化设置**:网站可以使用 Cookie 存储用户的偏好设置或语言选择,提供定制化的用户体验。
3. **跟踪和分析**:Cookie 可以用于跟踪用户的行为,进行用户行为分析、广告定向等。

---

## 腾讯和百度两个网页能获取对方的cookie吗?

不能。在现代浏览器中,**同源策略**(Same-Origin Policy)限制了不同源之间的交互。因此,**腾讯和百度**两个网页属于不同的域名,它们不能访问对方的 Cookie 数据。每个网页只能访问自己域下的 Cookie。

---

## 在百度里搜索abc的过程?

1. **DNS解析**:首先,浏览器会解析“www.baidu.com”域名,向DNS服务器发送请求,将域名解析为IP地址。

2. **建立TCP连接**:浏览器使用TCP协议建立与百度服务器的连接,通常通过三次握手完成。

3. **发送HTTP请求**:建立连接后,浏览器通过HTTP协议向百度服务器发送请求,带上搜索的关键词“abc”作为参数。

4. **服务器响应**:百度服务器接收到请求后,处理搜索请求,并返回相关的搜索结果页面(HTML数据)。

5. **渲染页面**:浏览器收到响应后,将HTML、CSS、JS等内容进行解析,渲染成页面显示给用户。

6. **关闭连接**:当数据传输完成,TCP连接关闭,完成数据交换。

---

## 搜索的时候,数据包是怎么交给网卡的?(7层 5层网络模型)层层封包都加的是什么内容?

在数据传输过程中,数据从应用层通过七层协议逐层封装,最终通过网卡发送出去。具体过程如下:

1. **应用层(第7层)**:HTTP协议生成请求,包含用户搜索关键词“abc”。

2. **传输层(第4层)**:TCP协议将HTTP请求封装在TCP段中,加入源端口、目标端口、序列号等信息。

3. **网络层(第3层)**:IP协议对TCP段进行封装,加入源IP地址、目标IP地址等路由信息。

4. **数据链路层(第2层)**:数据包被封装为帧,加入MAC地址等物理传输信息,准备通过网卡发送。

5. **物理层(第1层)**:数据转化为电信号或光信号,通过网络物理介质传输。

---

## 网卡怎么知道数据是发送给百度服务器的,怎么找到服务器的?

网卡根据数据包中的目标 **IP地址** 来确定数据的目的地。在发送数据包时,操作系统会选择合适的网络接口,并通过路由表找到到达目的地的最优路径。网卡根据路由表中的信息,判断目标地址并选择正确的路径,将数据包发送到正确的网络设备(例如交换机或路由器),最终到达百度服务器。

---

## 计算机网络分层,各层的协议

计算机网络分层通常采用OSI七层模型或TCP/IP四层模型。以下是TCP/IP模型的各层及常用协议:

1. **应用层**(HTTP, FTP, DNS, SMTP, POP3)
2. **传输层**(TCP, UDP)
3. **网络层**(IP, ICMP, ARP)
4. **数据链路层**(Ethernet, PPP, MAC)
5. **物理层**(光纤、铜缆、无线信号等)

---

## HTTP流量控制,拥塞避免如何实现?

1. **流量控制**:通过 **窗口机制**(Sliding Window)控制发送方的发送速率,避免接收方缓存溢出。TCP会根据接收方的接收能力动态调整发送窗口的大小。

2. **拥塞避免**:TCP使用**慢启动**、**拥塞避免**算法,如 **加法增大、乘法减小**(AIMD)来避免网络发生拥塞。它通过逐渐增加窗口大小来避免快速增加负载造成的拥塞。

---

## 多少种请求方式,GET和POST区别?

常见的HTTP请求方法有:

1. **GET**:用于请求资源,不会修改服务器上的资源,数据通过URL传递。
2. **POST**:用于提交数据,可能修改服务器上的资源,数据通过请求体传递。
3. **PUT**、**DELETE**、**PATCH**、**OPTIONS**等。

**GET与POST的区别**:
- **GET**用于获取资源,数据通过URL传递,长度有限;而 **POST** 用于提交数据,数据通过请求体传递,没有长度限制。
- **GET**是安全的(无副作用),而 **POST** 可能会改变服务器数据(如创建、更新)。
- **GET** 会将数据暴露在URL中,适用于传输不敏感的数据;而 **POST** 将数据放在请求体中,适用于传输较大的数据或敏感信息。

---

## HTTPS端口443以及实现流程

1. **端口**:HTTPS协议使用**443端口**,而HTTP使用的是80端口。

2. **实现流程**:
- 客户端发起HTTPS请求时,首先通过 **TCP三次握手** 建立连接。
- 然后,客户端与服务器进行 **SSL/TLS握手**,通过加密算法协商出会话密钥。
- 服务器发送其**数字证书**,客户端验证证书合法性。
- 完成握手后,客户端和服务器使用对称加密算法(会话密钥)加密数据,

http://www.dtcms.com/a/569290.html

相关文章:

  • C#基础:如何从现有类库复制一个新的类库,并且加入解决方案
  • C# 中 Entity Framework (EF) 和 EF Core 里的 `AsNoTracking` 方法
  • 基于视觉分析的加油站通话行为安全预警系统 构建加油安全新防线 通话行为模式识别 边缘计算通话动作监测设备
  • Traefik vs Spring Cloud:微服务架构的两种截然不同的技术路线
  • 郑州百度seo网站优广州网站开发外包哪家好
  • 高端网站建设推来客网络做seo推广公司
  • 数据挖掘6-AI总结
  • 网站首页域名如何设置访问快宿迁沭阳网站建设
  • 数据结构 —— 栈
  • 微信小程序开发案例 | 个人相册小程序(下)
  • 网站域名账号网址申请注册
  • 电商 API 数据交互最佳实践:JSON 格式优化、数据校验与异常处理
  • 重庆网站建设 沛宣织梦cms 官方网站
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十七)ELK日志分析模块--Elasticsearch介绍与配置
  • 如何使用elasticdump进行elasticsearch数据还原
  • 【运维记录】Centos 7 基础命令缺失
  • 手写 RPC 框架
  • etcd 高可用分布式键值存储
  • 【ETCD】ETCD单节点二进制部署(TLS)
  • 小网站 收入请简述网站制作流程
  • 抗辐照MCU芯片在无人叉车领域的性能评估与选型建议
  • 什么是LLM?
  • Java/PHP源码解析:一站式上门维修服务系统的全栈实现
  • MPU6050 DMP 移植中 mpu_run_self_test () 自检失败的原因与解决方法
  • 系统端实现看门狗功能
  • 算法--二分查找(二)
  • 没有网站备案可以做诚信认证嘛商城网站大概多少钱
  • 保定市场产品投放策略分析
  • Linux网络——连接、TCP全连接队列TCPdump抓包
  • Firefox 浏览器:引领网络浏览新时代