计算机网络原理及基础知识介绍(面试必备)

  • 时间:2025-11-25 22:53 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:我将为你梳理一个从基础到核心,再到高频面试点的详细指南。 这份指南的目标是:让你不仅能回答“是什么”,更能解释“为什么”,并展示出你对网络系统设计的理解。 一、核心框架与思想 在开始前,先建立两个核心思想,这能让你的回答更有深度: 分层与封装:网络是复杂的,因此被划分为多个层次(如TCP/IP五层模型)。每一层为其上层提供服务,并使用其下层的服务。数据发送时,从上到下逐层“封
我将为你梳理一个从基础到核心,再到高频面试点的详细指南。 这份指南的目标是:让你不仅能回答“是什么”,更能解释“为什么”,并展示出你对网络系统设计的理解。

一、核心框架与思想

在开始前,先建立两个核心思想,这能让你的回答更有深度: 分层与封装:网络是复杂的,因此被划分为多个层次(如TCP/IP五层模型)。每一层为其上层提供服务,并使用其下层的服务。数据发送时,从上到下逐层“封装”(添加头部);接收时,从下到上逐层“解封装”。协议是通信的约定:网络中的所有通信都遵循预先定义好的规则,这就是协议(如HTTP, TCP, IP)。理解协议就是理解这些规则的具体内容、目的和交互过程。

二、计算机网络基础概念

1. 网络模型(必考)
面试官常通过这个问题考察你对网络整体架构的理解。 OSI七层模型(理论模型): 物、数、网、传、会、表、应。记住各层核心功能和典型设备/协议。 物理层:比特流传输,设备有中继器、集线器。数据链路层:帧传输,MAC地址,设备有交换机。网络层:IP寻址和路由,设备有路由器,协议有IP、ICMP。传输层:端到端通信,协议有TCP、UDP。会话层:建立、管理、终止会话。表示层:数据格式转换、加密解密。应用层:为用户提供网络服务,协议有HTTP、FTP、DNS。 TCP/IP五层模型(实际应用模型)应用层传输层网络层数据链路层物理层。这是学习的重点,它将OSI的上三层合并为了应用层。 面试回答技巧: “网络模型主要分为OSI七层和TCP/IP五层模型,我们通常以TCP/IP模型为基准进行学习。它从下到上分别是物理层、数据链路层、网络层、传输层和应用层。数据发送时,比如一个HTTP请求,会从应用层开始,加上HTTP头部,到传输层加上TCP头部,到网络层加上IP头部,再到数据链路层加上帧头和帧尾,最后变成比特流在物理链路上传输。”

三、核心协议与机制详解

1. 传输层核心:TCP vs UDP
这是面试的重中之重。
特性 TCP(传输控制协议) UDP(用户数据报协议)
连接性 面向连接 (需要三次握手) 无连接
可靠性 可靠 (确认、重传、滑动窗口) 不可靠 (尽力交付)
有序性 保证数据包顺序 不保证顺序
速度 慢(有连接开销、确认机制) 快(头部小,无控制机制)
应用场景 HTTP、HTTPS、FTP、邮件等 视频流、语音、DNS查询、直播
高频深入问题: TCP的三次握手(为什么是三次?) 过程:SYN -> SYN-ACK -> ACK。为什么不是两次? 核心为了防止已失效的连接请求报文突然又传送到服务器,从而产生错误。解释:如果客户端第一次发送的SYN报文因网络拥堵延迟了,客户端会重发一个SYN并建立连接。当之前的SYN终于到达服务器时,服务器会认为是一个新的连接请求并回应SYN-ACK。如果是两次握手,此时连接就建立了,但客户端并不会理会这个连接,导致服务器空等,浪费资源。三次握手的情况下,客户端不会对那个迟到的SYN-ACK进行确认,连接就无法建立。 TCP的四次挥手(为什么是四次?) 过程:FIN -> ACK -> FIN -> ACK。为什么需要四次? 因为TCP连接是全双工的,每个方向必须单独关闭。当一方发送FIN,只表示它没有数据要发送了,但还可以接收数据。因此,挥手通常是:A说“我发完了”(FIN),B说“好的”(ACK);然后B可能还有数据要发,等B也发完了,B说“我也发完了”(FIN),A说“好的”(ACK),连接关闭。 TCP的可靠性如何保证? 序列号和确认应答(ACK):接收方收到数据后会发送ACK确认。超时重传:发送方在一定时间内没收到ACK,会重新发送。连接管理:三次握手和四次挥手。流量控制(滑动窗口):接收方通过告知发送方自己的接收窗口大小,来控制发送方的发送速率,防止接收方缓冲区被填满。拥塞控制:防止过多的数据注入网络,导致网络负载过大。包括慢启动拥塞避免快重传快恢复算法。
2. 网络层核心:IP协议
IP地址与子网掩码:理解IPv4的构成,以及如何通过子网掩码划分网络号和主机号。ARP协议(地址解析协议):通过IP地址来寻找MAC地址的协议。工作原理:在本局域网内广播“谁是IP为X.X.X.X的主机?”,该主机会回应其MAC地址。路由过程:描述一个数据包如何从你的电脑发到百度服务器。会经过局域网、网关、运营商的多个路由器,每个路由器根据其路由表通过查找最长前缀匹配来决定下一跳。
3. 应用层核心:HTTP/HTTPS
HTTP协议 无状态协议:服务器不记录之前的状态。使用Cookie/Session来维持状态。请求方法:GET(获取)、POST(提交)、PUT、DELETE等。状态码: 1xx:信息性2xx:成功(200 OK)3xx:重定向(301 永久移动,302 临时移动)4xx:客户端错误(404 未找到,403 禁止)5xx:服务器错误(500 内部服务器错误) HTTP/1.1 vs HTTP/2:HTTP/2引入了多路复用、头部压缩、服务器推送等特性,大幅提升性能。 HTTPS = HTTP + SSL/TLS 目的:解决HTTP明文传输的不安全问题,提供加密、身份认证和数据完整性校验。核心流程(简化)客户端发起HTTPS请求服务器返回数字证书,其中包含公钥。客户端验证证书(是否由可信机构颁发、域名是否匹配、是否过期)。验证通过后,客户端生成一个随机的“对称密钥”,用证书里的公钥加密,发送给服务器。服务器用私钥解密,得到对称密钥后续通信使用这个对称密钥进行加密解密。 为什么用非对称加密交换对称密钥? 非对称加密计算复杂,速度慢,不适合加密大量数据。对称加密速度快,但密钥分发困难。因此,结合两者优势:用非对称加密的安全特性来安全地交换对称加密的密钥。 DNS(域名系统) 作用:将域名(如 www.baidu.com)解析为IP地址。查询过程:浏览器缓存 -> 系统缓存 -> 路由器缓存 -> ISP的DNS服务器 -> 根域名服务器 -> 顶级域(.com)服务器 -> 权威域名服务器(baidu.com)。这是一个递归/迭代查询的过程。

四、高频面试问题与回答思路

“在浏览器输入URL后,发生了什么?”(最经典的综合问题) 思路:按照网络模型,从应用层到物理层一步步描述。回答提纲DNS解析:将域名解析成IP地址。建立TCP连接:与服务器进行三次握手。发送HTTP/HTTPS请求:如果是HTTPS,还有TLS握手过程。服务器处理请求并返回HTTP响应浏览器解析渲染页面(涉及前端知识,可简要提)。连接结束:TCP四次挥手。 “TCP和UDP的区别?” 按照上面的表格,从连接、可靠、有序、速度、场景等方面回答。 “TCP为什么是可靠的?” 列举确认应答、超时重传、流量控制、拥塞控制等机制。 “三次握手和四次挥手的过程和原因?” 清晰描述过程,并解释“为什么不是两次握手”和“为什么需要四次挥手”。 “HTTP和HTTPS的区别?” 核心:HTTPS在HTTP之下加入了SSL/TLS层,提供加密传输。端口:HTTP是80,HTTPS是443。安全性:HTTP明文,HTTPS加密。性能:HTTPS因为加解密,稍慢一些。 “什么是Socket?” 定义:Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。本质上是对TCP/IP协议操作的封装。构成:一个Socket由IP地址和端口号唯一确定。Socket = IP地址 : 端口号

五、面试准备建议

理解而非死记:理解每个协议和机制设计的初衷和要解决的问题。画图辅助:在回答握手、挥手、HTTP流程时,可以在白板上画图,非常加分。关联实际:将知识点与你用过的工具或现象关联起来(如Ping命令用了ICMP,抓包工具Wireshark等)。保持自信,知之为知之:如果遇到不会的问题,坦诚地说“这个知识点我了解不深”,并尝试基于已有知识进行推理,展示你的思考过程。 掌握了以上内容,你就能在计算机网络面试中表现出扎实的基础和清晰的逻辑,从容应对大部分面试官的提问。祝你面试顺利!
  • 全部评论(0)
手机二维码手机访问领取大礼包
返回顶部