Skip to content

计网高频考点

计算机网络体系结构

常见的计算机网络体系结构:

  • OSI(Open System Interconnection)参考模型:
    • 由国际标准化组织(ISO)在20世纪70年代提出。
    • 分为七个层次:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    • 为了便于教学,简化为五层:物理层、数据链路层、网络层、传输层、应用层。
  • TCP/IP(Transmission Control Protocol/Internet Protocol)体系结构:
    • 最初用于互联网的体系结构。
    • 它分为四个层次:网络接口层、网际层、传输层、应用层。

图参考自《深入浅出计算机网络》

HTTP 相关


什么是 HTTP


  • HTTP 是一种端到端的超文本传输协议,底层是 TCP/IP 协议。
  • HTTP 工作在计算机网络模型中的应用层,工作原理基于请求-响应模式。
  • HTTP 是无状态的,在同一个连接中,两个执行成功的请求之间是没有关系的。

HTTP 和 HTTPS 的区别


  • 安全性:HTTP是明文传输,容易受到中间人攻击,而HTTPS使用SSL/TLS加密数据传输,更安全。
  • 连接建立:HTTP连接建立只需要TCP三次握手,而HTTPS在TCP三次握手之后,还需进行SSL/TLS的握手过程。
  • 默认端口:HTTP默认端口为80,HTTPS默认端口为443。
  • 性能:HTTP性能通常比HTTPS更高,因为不需要加密和解密数据;但现代计算机和服务器通常能够处理HTTPS的计算开销。

HTTP/1.0/2.0/3.0 的区别


  • HTTP/1.0:每个请求都需建立新连接,采用纯文本格式传输,解析效率低。
  • HTTP/2.0:通过二进制传输、多路复用、头部压缩和服务器推送等机制,大幅提升了传输效率和性能。
  • HTTP/3.0:在 HTTP/2 的基础上,通过引入 QUIC 协议,消除了TCP队头阻塞问题,支持 0-RTT 重连,可以在很短的时间内建立连接。


Cookie:

  • 存储在用户浏览器中的小块数据,用于存储用户偏好和会话信息。
  • 可以设置过期时间,过期后自动删除。
  • 由于Cookie在客户端存储,容易受到篡改和窃取,安全性较低。

Session:

  • 存储在服务器端,用于存储用户的状态信息。
  • 通过Session ID与用户浏览器建立关联,浏览器通过Cookie存储Session ID。
  • Session可以跨多个请求保持用户状态,但每个用户都需要服务器分配内存,资源消耗较大。

Token:

  • Token是一种无状态的,通常是一个加密的字符串,包含用户身份信息。
  • Token由服务器生成并返回给客户端,客户端在每次请求时携带Token进行身份验证。
  • Token不依赖于服务器存储,可以跨多个服务和域名使用,灵活性更高。

TCP/IP 相关


TCP 连接的建立和释放


图参考自《深入浅出计算机网络》

TCP 建立连接三次握手:

  • 客户端发送一个SYN(同步序列编号)报文给服务器,请求建立连接。
  • 服务器收到SYN报文后,回复一个SYN+ACK(同步和确认)报文,表示同意建立连接。
  • 客户端收到SYN+ACK报文后,发送一个ACK(确认)报文给服务器,完成握手过程。

三次握手的主要目的是同步连接双方的序列号和确认双方的接收能力,确保连接的可靠性。

图参考自《深入浅出计算机网络》

TCP 释放连接四次挥手:

  • 客户端发送一个FIN(结束)报文给服务器,请求关闭连接。
  • 服务器收到FIN报文后,回复一个ACK报文,表示收到关闭请求。
  • 服务器发送一个FIN+ACK报文给客户端,请求关闭连接。
  • 客户端收到FIN+ACK报文后,发送一个ACK报文给服务器,完成挥手过程。

四次挥手的主要目的是确保双方都能完成数据传输,然后安全地关闭连接。


TCP 和 UDP 的区别


TCP:

  • 连接方式:TCP是面向连接的协议,需要建立连接后才能进行数据传输。
  • 可靠性:通过确认机制、序列号、重传等机制确保数据准确无误地到达。
  • 传输速率:需要进行连接建立、数据确认等操作,传输速度相对较慢。
  • 头部开销:TCP头部包含序列号、确认号等信息,导致头部开销较大。
  • 拥塞控制:TCP具有拥塞控制机制,可以根据网络状况动态调整发送速率。

UDP:

  • 连接方式:UDP是无连接的协议,数据传输前不需要建立连接
  • 可靠性:UDP不保证数据传输的可靠性,数据包可能会丢失或乱序。
  • 传输速率:UDP省去了建立连接的步骤,传输速度相对较快。
  • 头部开销:UDP头部较为简单,开销较小。
  • 拥塞控制:UDP没有拥塞控制,发送速率相对固定。

应用场景:

  • TCP适用于需要可靠传输的应用,如文件传输、网页浏览等。
  • UDP适用于对实时性要求高、容忍一定丢包率的应用,如视频会议、在线游戏等。

TCP 流量控制和拥塞控制


流量控制基于滑动窗口协议:

  • 每个TCP连接都维护一个滑动窗口,表示接收端当前可接受的字节数。
  • 接收端在发送ACK时,会在TCP头部中告知一个窗口大小(即可用缓冲区大小)。
  • 发送端根据接收到的窗口大小来决定一次最多可以发送多少数据,保证不会超出接收端的处理能力。

当接收端缓冲区快满时,它会将窗口大小调小,甚至降到零,这样发送端就会暂停发送新数据,直到接收端有足够空间后才恢复发送。

拥塞控制算法:

  • 慢启动(Slow Start):
    • 连接建立初期,TCP从一个很小的拥塞窗口(cwnd)开始发送数据。
    • 每收到一个ACK,拥塞窗口就按指数级增长,直到达到一个称为慢启动阈值(ssthresh)。
  • 拥塞避免(Congestion Avoidance):
    • 当拥塞窗口达到ssthresh后,TCP不再以指数方式增长,而是线性增加,减缓对网络的冲击。
  • 快速重传(Fast Retransmit):
    • 当发送端连续收到三个重复的ACK时,表明网络中可能丢失了一个数据包,于是立即重传丢失的数据包,而无需等待超时。
  • 快速恢复(Fast Recovery):
    • 在快速重传之后,TCP不会立即进入慢启动,而是适当调整拥塞窗口,让网络尽快恢复到一个较高的传输速率。

拥塞控制主要是为了应对整个网络层面的拥堵,而不是单一连接的接收端处理能力问题。 通过动态调整拥塞窗口,TCP能够根据网络当前的状况调整数据发送速率,减少因网络拥堵引起的数据丢失和重传。


IPv4 和 IPv6 的区别


IPv4:

  • 表示形式:IPv4使用32位地址,以点分十进制形式表示,如192.0.2.235。
  • 报文首部:IPv4报文首部长度可变,包含14个字段。
  • 广播方式:IPv4地址分为单点广播、多点广播和广播地址。
  • 安全性:IPv4则需要额外配置IPSec。

IPv6:

  • 表示形式:IPv6使用128位地址,以十六进制数表示,如2001:0db8:86a3:08d3:1319:8a2e:0370:7344。
  • 报文首部:IPv6报文首部固定为40字节,简化了路由器处理的消息标头。
  • 广播方式:IPv6则分为单点广播、多点广播和任意广播地址。
  • 安全性:IPv6默认包含IPSec,提高了安全性。

IPv4向IPv6的转换:

  • 双栈技术:允许同一主机同时运行IPv4和IPv6协议栈。
  • 隧道技术:通过封装实现不同协议网络间的传输。
  • 协议转换:实现IPv4和IPv6节点间的互通。

浏览器输入url后发生了什么


  • DNS 解析:浏览器会首先对URL进行域名系统(DNS)解析来找到对应的IP地址。
  • 建立连接:浏览器使用IP地址和服务器建立TCP连接(如果是HTTPS,则是TLS/SSL安全连接)。
  • 发送HTTP请求:浏览器根据URL构建HTTP请求,然后通过前面建立的TCP连接发送到服务器。
  • 服务器处理请求并响应:服务器接收到请求后,根据请求内容来处理,然后发送回一个HTTP响应。
  • 浏览器处理响应:浏览器接收服务器的响应,并可能根据需要进行HTML、CSS和JavaScript的解析渲染,错误处理等。
  • 渲染页面加载资源:浏览器开始解析HTML文档,构建DOM树,执行CSS样式,执行JavaScript代码,最终把处理过的内容显示在屏幕上。

页面历史

Released under the CC BY-NC-SA 4.0 License

Copyright © 2025 OFFER DASH