某多多大厂面试相关计算机网络知识点总结

在电商平台如某多多的开发和架构中,计算机网络是保障系统高效通信和数据交换的关键技术。面试中,计算机网络相关的基础知识也是评估候选人技术水平的重要部分。本文将总结计算机网络中的一些核心概念,并回答面试中可能涉及的问题。


计算机网络面试问题解答 ​编辑

1. 三次握手(TCP连接建立) ​编辑
  • 第一次握手 :客户端发送一个 SYN (同步)标志位的报文段,请求建立连接。该报文段包含客户端的初始序列号。

  • 第二次握手 :服务器接收到客户端的 SYN 后,发送一个 SYN-ACK(同步确认)报文段,确认收到客户端的请求,同时也发送自己的初始序列号。

  • 第三次握手 :客户端接收到服务器的 SYN-ACK 后,再发送一个 ACK (确认)报文段,确认连接建立。此时,双方的连接就建立起来了,通信可以开始。​编辑

总结:三次握手确保双方的接收和发送都能正常工作,并且能够同步各自的序列号。


2. 四次分手(TCP连接断开) ​编辑
  • 第一次分手 :主动关闭连接的一方发送 FIN(结束)报文段,表示该方数据已经发送完毕,准备断开连接。

  • 第二次分手 :接收方确认收到 FIN 后,发送 ACK 确认报文段,表示已准备关闭自己的连接。

  • 第三次分手 :接收方如果没有数据需要发送,则发送 FIN 报文段,表示准备断开连接。

  • 第四次分手 :主动关闭连接的一方确认收到 FIN 后,发送 ACK 确认报文段,连接完全关闭。​编辑

总结:四次分手的过程确保了双方都能够确认断开连接,避免数据丢失。


3. TCP 拥塞控制算法

TCP 拥塞控制通过控制发送窗口的大小来避免网络过载,常见的算法包括:

  • 慢启动:从一个小的窗口大小开始,每收到一个确认包就将窗口大小加倍,直到网络出现拥塞。
  • 拥塞避免:当窗口大小达到阈值后,窗口大小的增加变得更加平缓,以避免过度拥塞。
  • 快速重传和快速恢复:当检测到数据包丢失时,立即重传丢失的包并调整拥塞窗口。

总结:TCP 拥塞控制算法通过动态调整窗口大小,确保了在网络负载变化时能保持稳定的数据传输。


4. TCP 和 UDP 的区别
  • TCP

    • 面向连接、可靠的协议,保证数据传输的完整性。

    • 采用三次握手建立连接,四次分手断开连接。

    • 适用于要求高可靠性的场景,如文件传输、网页浏览。

  • UDP

    • 无连接、不可靠的协议,无法保证数据的顺序和完整性。

    • 适用于实时性要求高、对丢包容忍度大的场景,如视频流、在线游戏。

总结:TCP 提供可靠的通信保证,适用于需要确保数据传输完整性的应用;而 UDP 更注重速度和效率,适用于对实时性要求较高的应用。


5. HTTPS的实现
  • 加密通信 :HTTPS 使用 SSL/TLS 协议对 HTTP 请求和响应进行加密,确保数据在传输过程中不会被窃取或篡改。

  • 身份验证:服务器通过数字证书来验证身份,防止中间人攻击。客户端会验证证书是否由受信任的机构颁发。

  • 数据完整性:SSL/TLS 协议提供消息认证码(MAC)机制,确保数据在传输过程中不被篡改。

总结:HTTPS 通过加密、身份验证和数据完整性保证了通信的安全性,常用于保护敏感信息的传输,如银行交易和个人信息。


  • Cookie
    • 存储在客户端,浏览器每次请求时会自动发送给服务器。
    • 可以存储会话信息、用户偏好等数据,但存在安全风险(如 XSS 攻击)。
  • Session
    • 存储在服务器端,客户端通过 Cookie 存储 Session ID 以识别会话。
    • 更加安全,能够避免敏感信息泄露,因为数据存储在服务器上。

总结:Cookie 存储在客户端,适合存储简单的数据;Session 存储在服务器端,适合存储敏感或大量的数据。


7. 网络七层模型
  • 物理层:负责物理连接和信号传输。
  • 数据链路层:提供点对点的链路管理,负责帧的传输。
  • 网络层:负责数据包的路由选择和寻址(如 IP)。
  • 传输层:提供端到端的传输服务(如 TCP、UDP)。
  • 会话层:管理会话的建立、维持和终止。
  • 表示层:数据的格式化、加密和解密。
  • 应用层:直接为用户提供服务(如 HTTP、FTP)。

总结:七层模型用于标准化网络通信过程,不同层次负责不同的网络功能,帮助协议的实现和兼容。


8. IP 寻址流程

IP 寻址流程包括以下步骤:

  • 源主机:源主机根据目标 IP 地址判断是否在本地网络内。
  • 路由选择:如果目标 IP 不在本地网络,源主机将数据包发送给默认网关(路由器),路由器根据路由表进行转发。
  • 目标主机:目标主机接收到数据包,根据目标 IP 地址对数据进行处理。

总结:IP 地址决定了数据包如何在网络中进行转发,从源主机到目标主机的路径选择依赖于路由器的路由表。


9. HTTP 如何保持连接

HTTP 默认是无连接的,但可以通过以下方式保持连接:

  • HTTP/1.1 :启用了 持久连接(Connection: keep-alive),即在一次 TCP 连接中可以发送多个 HTTP 请求和响应。
  • HTTP/2:使用多路复用技术,使多个请求/响应可以共享一个连接,提高了性能。

总结:通过持久连接和多路复用,HTTP 实现了在同一 TCP 连接上多次请求/响应的传输。


10. 如果不用 HTTP,如何保持连接

可以使用其他协议保持连接:

  • WebSocket:提供全双工通信,可以保持客户端与服务器之间的连接,适合实时应用。
  • RPC(远程过程调用):客户端与服务器之间通过定义好的协议进行通信,保持连接用于调用远程服务。

总结:WebSocket 和 RPC 都可以用于保持客户端与服务器之间的长期连接,适用于实时通讯或服务调用。


  • Cookie

    • 存储在客户端,用于保存会话状态,通常由浏览器自动发送。

    • 存储敏感信息时,可能面临 XSS 或 CSRF 攻击。

  • Token

    • 一般用于认证,存储在客户端(如 localStorage)或请求头中。

    • 更加灵活,适用于跨域认证、移动端应用等场景。

总结:Token 更适用于现代 Web 应用的认证和授权,而 Cookie 更多用于浏览器端的会话管理。


12. RPC、HTTP 和消息队列三者区别
  • RPC(远程过程调用):用于不同计算机之间的通信,通过直接调用远程函数来实现。
  • HTTP:主要用于 Web 请求和响应,适用于请求-响应模型。
  • 消息队列:用于异步通信,将消息发送到队列,由消费者异步处理,适合解耦和流量削峰。

总结:RPC 适合同步调用,HTTP 适合请求-响应模式,消息队列适用于解耦和异步处理。


13. 访问一个网站的过程
  1. DNS 解析:浏览器通过 DNS 查找目标网站的 IP 地址。
  2. 建立连接:浏览器与服务器建立 TCP 连接(通过三次握手)。
  3. 发送请求:浏览器发送 HTTP 请求。
  4. 服务器响应:服务器处理请求并返回 HTTP 响应。
  5. 浏览器渲染:浏览器根据响应的数据渲染页面。
  6. 关闭连接:通过

相关推荐
千寻girling6 分钟前
滑动窗口刷了快一个月(26天)了 , 还没有刷完. | 含(操作系统学什么的Java 后端)
java·开发语言·javascript·c++·人工智能·后端·python
天天进步201520 分钟前
魔音漫创源码解析:架构总览:Electron 30 + React 18 + Zustand,构建桌面级影视生产工具
react.js·架构·electron
thatway198921 分钟前
太奶也能看懂的 M100 芯片故事
后端
木雷坞27 分钟前
K8s GPU 冷启动:把镜像预热从发布里拆出来
后端
我有一颗小慧星28 分钟前
如何懒加载Polyfill来避免低代码DSL体积爆炸
低代码·架构
渐儿32 分钟前
Dify 插件机制详解
后端
渐儿40 分钟前
Spring Boot 异步并发实现原理详解
后端
来一斤小鲜肉40 分钟前
Spring AI 多模态能力全景
后端·aigc
张立立41 分钟前
震惊!用Python每天早上8点,我准时给女神发早安,只因这个脚本…
后端·python
渐儿41 分钟前
Python 并行与并发:案例与实现
后端