欢迎光临
我们一直在努力

计算机网络第一讲:Introduction 复习博客

计算机网络第一讲:Introduction 复习博客

文章目录

  • 计算机网络第一讲:Introduction 复习博客
    • @[toc]
    • 前言:这一讲到底在讲什么?
    • 一、为什么要学计算机网络?
      • 1. 网络是信息社会的基础设施
      • 2. AI 时代仍然需要底层网络知识
    • 二、本章学习目标与路线图
    • 三、Internet 是什么?
      • 1. 硬件组成视角:nuts and bolts view
        • 端系统 hosts / end systems
        • 通信链路 communication links
        • 分组交换设备 packet switches
        • 网络 networks
      • 2. 服务视角:services view
    • 四、什么是协议 Protocol?
      • 1. 协议规定消息格式
      • 2. 协议规定消息顺序
      • 3. 协议规定收到消息后的动作
      • 4. 人类协议类比
    • 五、网络边缘:Network Edge
      • 1. 端系统
      • 2. 接入网络 Access Network
    • 六、家庭接入网络
      • 1. Cable-based access:有线电视网络接入
      • 2. DSL:数字用户线路
      • 3. 家庭网络结构
    • 七、企业、校园与数据中心接入
    • 八、主机如何发送数据?
    • 九、物理介质 Physical Media
      • 1. Guided media
      • 2. Unguided media
    • 十、网络核心:Network Core
    • 十一、Forwarding 和 Routing
      • 1. Forwarding:转发
      • 2. Routing:路由
      • 3. 一句话区分
    • 十二、分组交换 Packet Switching
      • 1. 基本思想
      • 2. Store-and-forward 存储转发
      • 3. 为什么会排队和丢包?
    • 十三、电路交换 Circuit Switching
      • 1. FDM 和 TDM
    • 十四、分组交换 vs 电路交换
      • 1. 电路交换
      • 2. 分组交换
      • 3. 统计复用 Statistical Multiplexing
    • 十五、Internet 结构:网络的网络
    • 十六、网络性能:Delay、Loss、Throughput
    • 十七、四种节点时延
      • 1. Processing Delay 处理时延
      • 2. Queueing Delay 排队时延
      • 3. Transmission Delay 传输时延
      • 4. Propagation Delay 传播时延
      • 5. 传输时延 vs 传播时延
    • 十八、车队类比理解时延
    • 十九、流量强度 Traffic Intensity
    • 二十、Packet Loss 丢包
    • 二十一、Traceroute 和 RTT
      • 1. Traceroute
      • 2. RTT
    • 二十二、Bandwidth、Throughput 和 BDP
      • 1. Bandwidth 带宽
      • 2. Throughput 吞吐量
      • 3. Bandwidth 和 Throughput 的区别
      • 4. BDP:Bandwidth Delay Product
      • 5. 单位换算
    • 二十三、网络安全入门
      • 1. Packet Sniffing 嗅探
      • 2. IP Spoofing 伪造身份
      • 3. DoS 拒绝服务攻击
      • 4. 防御手段
    • 二十四、为什么需要分层?
      • 1. 航空旅行类比
      • 2. 分层的好处
    • 二十五、TCP/IP 五层模型
      • 1. Application Layer 应用层
      • 2. Transport Layer 传输层
      • 3. Network Layer 网络层
      • 4. Link Layer 链路层
      • 5. Physical Layer 物理层
    • 二十六、封装 Encapsulation
    • 二十七、Host、Router、Switch 分别处理到哪一层?
    • 二十八、协议、服务、接口
    • 二十九、OSI 七层模型与 TCP/IP 模型
    • 三十、TCP/IP 沙漏模型
      • 1. Everything over IP
      • 2. IP over Everything
      • 3. 简单网络,复杂端系统
    • 三十一、互联网历史
      • 1. 1961—1972:早期分组交换与 ARPANET
      • 2. 1972—1980:互联网络思想形成
      • 3. 1980—1990:TCP/IP、DNS、SMTP、FTP
      • 4. 1990s—2000s:Web 时代
      • 5. 2005 至今:移动互联网、云、内容网络
    • 三十二、标准化组织
    • 三十三、第一次作业补充知识点
      • 1. QoS 不只包括带宽和时延
      • 2. Broadcast subnet 的碰撞概率
      • 3. Connectionless vs Connection-oriented
      • 4. Header overhead 封装开销
      • 5. 电路交换与分组交换精确时延公式
    • 三十四、本讲考试重点总结
      • 1. Internet 两种视角
      • 2. 协议定义
      • 3. 网络结构
      • 4. Forwarding vs Routing
      • 5. 分组交换 vs 电路交换
      • 6. 四种时延
      • 7. 流量强度
      • 8. 吞吐量
      • 9. BDP
      • 10. 分层和封装
      • 11. TCP/IP 沙漏模型
    • 三十五、常见易错点整理
      • 易错点 1:传输时延和传播时延混淆
      • 易错点 2:FDM 和 TDM 反了
      • 易错点 3:Forwarding 和 Routing 混淆
      • 易错点 4:吞吐量不是链路速率相加
      • 易错点 5:La/R = 1 不代表现实中稳定
      • 易错点 6:IP 地址不等于身份认证
      • 易错点 7:分层中“服务变化”和“实现变化”不同
    • 三十六、选择判断速记版
    • 三十七、计算题公式汇总
      • 1. 传输时延
      • 2. 传播时延
      • 3. 节点总时延
      • 4. 流量强度
      • 5. 吞吐量
      • 6. BDP
      • 7. Header overhead
      • 8. 碰撞概率
      • 9. 电路交换时延
      • 10. 分组交换时延
    • 结语

前言:这一讲到底在讲什么?

第一讲是整门《计算机网络》的总览课。它不是深入讲某一个协议,而是先帮我们建立一张“网络知识地图”:Internet 到底是什么,什么是协议,网络边缘和网络核心分别是什么,数据从一台主机到另一台主机大概经历什么过程,分组交换和电路交换有什么区别,网络性能如何衡量,以及为什么网络要分层、为什么安全很重要。

这一讲最重要的不是背零散概念,而是建立主线:

应用要通信,必须依靠端系统、接入网络、网络核心、协议、分层封装以及各种性能和安全机制共同配合。

后面学习应用层、传输层、网络层、链路层时,其实都是在展开第一讲这张总图。


一、为什么要学计算机网络?

1. 网络是信息社会的基础设施

计算机网络支撑了网页搜索、远程会议、云游戏、文件传输、工业远程操控、云计算、物联网、大数据、AI、智慧城市、工业互联网、金融互联网、5G、WiFi、光纤接入和卫星互联网等大量场景。

所以网络不是简单的“能上网”,而是现代数字世界的交通系统。没有网络,应用、数据、云服务、AI 训练和推理都无法真正运转。

2. AI 时代仍然需要底层网络知识

AI 可以帮我们查资料、写代码,但不能替代我们对底层约束的理解。学习网络时要建立三种思维:

物理直觉:例如以太网为什么有最小帧长,这和传播时延、碰撞检测、网络直径有关。

约束思维:例如为什么 TCP 要三次握手,而 UDP 不需要,因为 TCP 要提供可靠、有状态的连接服务,UDP 则是无连接、轻量的。

权衡框架:例如为什么 Internet 采用“简单网络、复杂端系统”的设计,因为这样核心网络更容易扩展。

学习每个机制时都可以问三个问题:它解决什么问题?它付出什么代价?为什么不采用另一种方案?


二、本章学习目标与路线图

第一讲对应 Chapter 1 Introduction,目标是建立整体感觉和基本术语,而不是深入某个协议。

本章路线包括:

  • What is the Internet?
  • What is a protocol?
  • Network edge
  • Network core
  • Performance: loss, delay, throughput
  • Security
  • Protocol layers, service models
  • History
  • 也就是说,这一讲先回答:互联网是什么?数据怎么走?为什么会慢?为什么会丢?为什么要分层?为什么需要安全?


    三、Internet 是什么?

    Internet 可以从两个角度理解:硬件组成视角和服务视角。

    1. 硬件组成视角:nuts and bolts view

    从硬件角度看,Internet 由端系统、通信链路、分组交换设备和各种网络组成。

    端系统 hosts / end systems

    端系统就是接入网络的设备,例如笔记本电脑、手机、服务器、智能家居设备、物联网设备。端系统运行网络应用,例如浏览器、微信、邮件客户端、视频会议软件等。

    通信链路 communication links

    链路负责在两个相邻节点之间传输数据。常见链路包括光纤、铜缆、同轴电缆、双绞线、无线电波、卫星链路。链路的传输速率通常用 bps 表示,也就是 bit per second。

    分组交换设备 packet switches

    网络中间有很多交换设备,负责把数据从一条链路转发到另一条链路。主要包括 routers 和 switches。它们不理解应用内容,只是根据包头中的地址信息进行转发。

    网络 networks

    Internet 不是一个单独的大网络,而是 network of networks,即网络的网络。家庭网络、校园网络、企业网络、运营商网络、数据中心网络、内容提供商网络互相连接,最终组成全球互联网。

    2. 服务视角:services view

    从服务角度看,Internet 是给分布式应用提供通信服务的基础设施。Web、视频会议、电子邮件、在线游戏、电商、云盘、流媒体等应用都依赖 Internet。

    应用程序不需要自己关心底层链路、路由器、光纤、无线电等细节,只需要调用操作系统提供的网络接口,就可以把数据交给 Internet 传输。

    所以服务视角可以概括为:

    Internet 为分布式应用提供数据传输服务和编程接口。


    四、什么是协议 Protocol?

    协议是第一讲最核心的概念之一。

    协议规定了网络实体之间交换消息的格式、顺序,以及发送或收到消息后应该采取什么动作。

    1. 协议规定消息格式

    例如 HTTP 请求可能长这样:

    GET /index.html HTTP/1.1
    Host: example.com

    这里的 GET、路径、版本号、Host 字段都有固定格式。如果格式不对,对方就可能无法理解。

    2. 协议规定消息顺序

    例如 TCP 建立连接时不是随便发,而是有顺序的:

    客户端 -> 服务器:SYN
    服务器 -> 客户端:SYN + ACK
    客户端 -> 服务器:ACK

    这就是三次握手的消息顺序。

    3. 协议规定收到消息后的动作

    例如收到 TCP SYN 后要回复 SYN+ACK,收到 HTTP GET 后服务器要返回 HTTP Response,收到错误数据包可能丢弃或者要求重传。

    所以协议不是一个“软件名字”,而是一套通信规则。

    4. 人类协议类比

    人类聊天也有协议:

    A:你好
    B:你好
    A:现在几点?
    B:两点

    如果 A 一上来就说“两点”,B 可能不知道你在回答什么。网络协议也是一样,通信双方必须按照约定格式和顺序交换消息。


    五、网络边缘:Network Edge

    Network edge 指网络的边缘部分,主要是端系统。

    1. 端系统

    端系统包括客户端 client 和服务器 server。客户端通常是用户设备,例如手机、电脑;服务器通常部署在数据中心中,为大量客户端提供服务。

    比如你访问一个网站:浏览器所在电脑是客户端,网站服务器可能在云数据中心中。

    2. 接入网络 Access Network

    接入网络负责把端系统连接到第一个路由器,也就是 first-hop router。常见接入网络包括家庭接入网络、校园网络、企业网络、移动蜂窝网络、WiFi、数据中心网络。

    学习接入网络时要问:端系统怎么接入 Internet?接入链路速率是多少?是独享链路还是共享链路?


    六、家庭接入网络

    1. Cable-based access:有线电视网络接入

    Cable access 使用有线电视网络基础设施。它常使用 HFC,Hybrid Fiber Coax,混合光纤同轴。特点是下行和上行速率不对称,多个家庭共享到 cable headend 的接入网络,并使用 FDM 频分复用。

    FDM 是 Frequency Division Multiplexing,频分复用,把频率分成多个频段,不同信道使用不同频率。注意:FDM 是分频率,不是分时间。

    2. DSL:数字用户线路

    DSL 使用传统电话线接入 Internet。电话线同时承载语音和数据,通过 splitter 分离语音和数据,数据进入 DSLAM,语音进入电话网。ADSL 中的 A 是 asymmetric,表示非对称,即下行速率通常高于上行速率。

    3. 家庭网络结构

    典型家庭网络包括 cable/DSL modem、路由器、NAT、防火墙、WiFi AP、有线 Ethernet 接口,以及手机、电脑、电视、智能设备等终端。

    家庭路由器通常同时承担多个角色:接入 Internet、提供 WiFi、分配局域网地址、做 NAT、提供简单防火墙功能。


    七、企业、校园与数据中心接入

    企业和校园网络通常结合 Ethernet、WiFi、switches、routers 和 servers。校园网内部往往有多个子网,通过交换机和路由器互联,然后再接入运营商网络。

    数据中心网络连接大量服务器,通常要求高带宽、低延迟、高可靠性和可扩展。现代云计算、搜索引擎、AI 训练和大模型服务都严重依赖数据中心网络。


    八、主机如何发送数据?

    主机发送数据时,并不是把一个大文件一口气直接扔进网络,而是应用层产生 message,message 被切分成 packets,每个 packet 逐个发送到链路上。

    假设分组长度是 L bits,链路速率是 R bps,那么把一个分组全部推入链路所需时间是:

    d_trans = L / R

    这个叫传输时延,也叫发送时延。

    例子:如果 L = 10 Kbits,R = 100 Mbps,那么:

    d_trans = 10 × 10^3 / 100 × 10^6 = 0.0001 s = 0.1 ms

    注意:传输时延看的是“把数据推上链路需要多久”。


    九、物理介质 Physical Media

    物理介质分为 guided media 和 unguided media。

    1. Guided media

    guided media 指信号沿着固体介质传播,包括双绞线、同轴电缆和光纤。

    双绞线常用于以太网,例如 Cat5、Cat6。同轴电缆支持双向传输和多个频率信道。光纤使用光脉冲传输 bit,具有高速、低误码率、抗电磁干扰等特点,适合长距离、高带宽通信。

    2. Unguided media

    unguided media 指无线传播,比如无线电波。常见无线链路包括 WiFi、4G/5G、Bluetooth、微波和卫星。无线传播容易受到反射、遮挡、干扰、噪声和多径传播影响。


    十、网络核心:Network Core

    Network core 是由大量互联路由器组成的 mesh 网络。它的任务是把分组从源主机沿着路径一跳一跳转发到目的主机。

    Internet 核心采用的是 packet switching,分组交换。


    十一、Forwarding 和 Routing

    这是第一讲非常容易考的概念。

    1. Forwarding:转发

    Forwarding 是本地动作,发生在单个路由器内部。路由器查看到达分组的头部,根据转发表,把分组从输入链路转到合适的输出链路。

    关键词:local,per-router,input link to output link,forwarding table。

    2. Routing:路由

    Routing 是全局动作。它决定分组从源主机到目的主机应该走哪条路径。

    关键词:global,source-to-destination path,routing algorithm。

    3. 一句话区分

    Routing 决定路怎么走,Forwarding 按表把包转出去。

    类比:Routing 是出门前用地图规划路线;Forwarding 是到每个路口时按照路标转弯。


    十二、分组交换 Packet Switching

    1. 基本思想

    分组交换中,主机会把应用层消息切成一个个 packet。每个 packet 独立在网络中转发。网络中间的路由器负责把 packet 一跳一跳转发到目的地。

    2. Store-and-forward 存储转发

    store-and-forward 的意思是:路由器必须先收到完整的分组,然后才能把它转发到下一条链路。

    假设分组长度为 L bits,链路速率为 R bps,每一跳的传输时延是:

    L / R

    如果一个分组经过多条链路,每一跳都要经历一次传输时延。

    3. 为什么会排队和丢包?

    路由器输出链路速率有限。如果多个输入方向的分组都要从同一个输出链路出去,就会形成排队。当到达速率短时间超过输出链路处理能力,就会发生 queueing delay。如果 buffer 满了,新的分组就可能被丢弃,也就是 packet loss。


    十三、电路交换 Circuit Switching

    电路交换在通信前先建立一条端到端连接,并为通信预留资源。

    典型特点:先建立连接,预留端到端资源,通信期间资源专用,性能较稳定,空闲时资源浪费。传统电话网就是典型的电路交换。

    1. FDM 和 TDM

    FDM 是 Frequency Division Multiplexing,频分复用,把频率分成多个频带,每个用户占用一个频带。

    TDM 是 Time Division Multiplexing,时分复用,把时间分成多个时隙,每个用户周期性占用某些时隙。

    记忆:FDM 分 frequency,分频率;TDM 分 time,分时间。


    十四、分组交换 vs 电路交换

    1. 电路交换

    优点:预留资源,性能稳定,适合长期、连续、稳定通信,适合需要固定带宽和固定时延的业务。

    缺点:建立连接需要时间,用户不发送数据时预留资源也不能给别人用,资源利用率低,不适合突发数据。

    2. 分组交换

    优点:不需要预留固定资源,多个用户动态共享链路,适合突发数据,资源利用率高,不需要 call setup,网络更灵活。

    缺点:可能排队,可能丢包,时延不稳定,需要可靠传输和拥塞控制机制配合。

    3. 统计复用 Statistical Multiplexing

    假设链路速率为 1 Gbps,每个用户活跃时需要 100 Mbps,每个用户只有 10% 时间活跃。

    如果使用电路交换:

    1 Gbps / 100 Mbps = 10

    最多支持 10 个用户。

    但分组交换不为每个用户固定预留 100 Mbps,因为用户不是一直活跃。空闲用户不占资源,活跃用户动态共享链路。所以可以支持超过 10 个用户。

    代价是:如果同时活跃的用户太多,就会出现排队、拥塞和丢包。


    十五、Internet 结构:网络的网络

    Internet 不是一个单独运营商控制的网络,而是由很多网络互联形成的。

    Access ISP 直接给家庭、企业、校园提供接入服务。若所有 Access ISP 两两直接相连,需要 N(N-1)/2 条连接,不可扩展。

    更可扩展的方式是 Access ISP 连接到更大的 ISP,多个大型 ISP 之间再互联。Tier-1 ISP 是全球范围内连接能力很强的大型网络。

    IXP 是 Internet Exchange Point,互联网交换点,多个 ISP 可以在 IXP 互联交换流量。Peering 是网络之间的对等互联关系。

    大型内容提供商也会建设自己的网络,例如 Google、Microsoft、Akamai、Meta 和大型 CDN。它们会把内容部署到靠近用户的位置,减少访问时延,提高服务质量。


    十六、网络性能:Delay、Loss、Throughput

    第一讲性能部分主要包括 delay、loss、RTT、throughput、bandwidth 和 BDP。


    十七、四种节点时延

    一个分组经过路由器时,总节点时延是:

    d_nodal = d_proc + d_queue + d_trans + d_prop

    其中包括 processing delay、queueing delay、transmission delay、propagation delay。

    1. Processing Delay 处理时延

    处理时延包括检查 bit 错误、读取包头、查转发表、决定输出链路。通常比较小。

    2. Queueing Delay 排队时延

    排队时延发生在路由器缓冲区中。如果输出链路很忙,分组就要等待。排队时延取决于网络拥塞程度,因此变化很大。

    3. Transmission Delay 传输时延

    传输时延是把整个分组推入链路所需时间:

    d_trans = L / R

    其中 L 是分组长度,单位 bit;R 是链路速率,单位 bps。带宽越大,传输时延越小。

    4. Propagation Delay 传播时延

    传播时延是一个 bit 从链路一端传播到另一端所需时间:

    d_prop = d / s

    其中 d 是链路长度,s 是信号传播速度。传播时延和带宽没有直接关系,主要取决于距离和信号传播速度。

    5. 传输时延 vs 传播时延

    概念公式取决于类比
    传输时延 L/R 分组大小、链路速率 把车队放上高速需要多久
    传播时延 d/s 距离、信号传播速度 第一辆车从起点开到终点需要多久

    带宽变大,能让数据更快“上链路”,但不能让信号传播速度无限变快。


    十八、车队类比理解时延

    课件用车队过收费站类比分组传输:car 类比 bit,caravan 类比 packet,toll booth service 类比 transmission,highway travel 类比 propagation。

    如果一个车队有 10 辆车,收费站每辆车处理 12 秒,那么整个车队进入高速需要 10 × 12 = 120 秒。如果高速距离 100 km,车速 100 km/h,那么第一辆车到终点需要 1 小时。

    这说明收费站处理时间类似传输时延,高速行驶时间类似传播时延,两者不是一回事。


    十九、流量强度 Traffic Intensity

    流量强度公式:

    La / R

    其中 L 是每个分组长度,单位 bit;a 是平均分组到达率,单位 packets/s;R 是链路速率,单位 bps。La 表示平均每秒到达多少 bit。

    当 La/R 接近 0,说明流量远小于链路能力,排队时延很小。

    当 La/R 接近 1,说明平均到达速率接近链路处理能力,排队时延会急剧增大。注意,等于 1 并不代表真实网络中“刚好稳定”。如果到达过程完全均匀,理论上可以刚好处理;但真实网络流量有突发性,只要短时间来一波流量,队列就会堆积,而系统没有多余能力快速消化队列。

    当 La/R 大于 1,说明平均到达速率超过链路处理能力,长期来看队列会越来越长,最终 buffer 溢出,发生丢包。


    二十、Packet Loss 丢包

    路由器 buffer 是有限的。当分组到达时,如果 buffer 有空间,进入队列;如果 buffer 已满,分组被丢弃。

    丢包可能由传输层处理,例如 TCP 会检测丢包并重传。但重传也会带来额外流量,可能进一步加重拥塞。


    二十一、Traceroute 和 RTT

    1. Traceroute

    Traceroute 用来探测从源主机到目的主机经过哪些路由器。它发送带不同 TTL 的探测包,TTL 到 0 时,路由器返回错误消息,发送方根据返回消息知道路径上的路由器。每一跳通常发送 3 个 probe。

    如果 traceroute 结果出现 * * *,不一定说明网络断了,也可能是路由器不回复探测包。

    2. RTT

    RTT 是 Round-Trip Time,往返时延,含义是从发送方发出数据,到收到对方响应所经历的时间。ping 命令常用来测 RTT。RTT 可以反映网络是否连通、往返时延大小、是否可能存在丢包。


    二十二、Bandwidth、Throughput 和 BDP

    1. Bandwidth 带宽

    带宽表示链路最高传输速率,单位通常是 bps,例如 100 Mbps、1 Gbps、10 Gbps。带宽不是文件大小,而是传输能力。

    2. Throughput 吞吐量

    吞吐量是实际端到端传输速率。如果服务器到客户端路径有两条链路:

    Rs = 20 Mbps
    Rc = 5 Mbps

    那么最大吞吐量约为:

    min(20 Mbps, 5 Mbps) = 5 Mbps

    所以端到端吞吐量由瓶颈链路决定。

    3. Bandwidth 和 Throughput 的区别

    概念含义
    Bandwidth 理论最大链路速率
    Throughput 实际端到端传输速率

    带宽高不代表吞吐量一定高,因为路径中可能有瓶颈链路,也可能有拥塞、丢包、协议限制。

    4. BDP:Bandwidth Delay Product

    BDP 是带宽时延积:

    BDP = bandwidth × propagation delay

    它表示链路这根“管道”中可以同时容纳多少 bit。

    例如:

    带宽 = 100 Mbps
    传播时延 = 50 ms = 0.05 s
    BDP = 100 × 10^6 × 0.05 = 5,000,000 bits

    换算成 Byte:

    5,000,000 / 8 = 625,000 Bytes ≈ 0.625 MB

    注意:BDP 中的带宽和传播时延相乘,不是因为带宽决定传播时延,而是计算在传播时延这段时间内最多能塞进链路多少数据。

    5. 单位换算

    1 B = 8 b

    小写 b 是 bit,大写 B 是 Byte。传输速率通常用 bit/s,存储容量通常用 Byte。

    100 Mbps = 100 / 8 MB/s = 12.5 MB/s


    二十三、网络安全入门

    Internet 最初并不是以强安全为核心目标设计的。早期 Internet 更像是一个互相信任的研究网络。后来规模扩大,攻击变多,所以安全成为所有层都必须考虑的问题。

    1. Packet Sniffing 嗅探

    嗅探指读取或记录经过网络的数据包。在共享介质或无线网络中,攻击者可能通过混杂模式网卡记录经过的数据。Wireshark 就是一种抓包工具。如果数据没有加密,嗅探者可能看到敏感信息。

    2. IP Spoofing 伪造身份

    IP spoofing 指伪造源 IP 地址发送数据包。这说明 IP 地址本身不能证明身份,所以网络安全中需要 authentication,鉴权。

    3. DoS 拒绝服务攻击

    DoS 是 Denial of Service。攻击者通过大量虚假流量占满服务器、链路或其他资源,让合法用户无法正常访问服务。

    4. 防御手段

    常见防御包括 authentication 鉴权、confidentiality 加密、integrity checks 完整性检查、access restrictions 接入限制、firewalls 防火墙、DoS detection/reaction。


    二十四、为什么需要分层?

    计算机网络非常复杂,包含 hosts、routers、links、applications、protocols、hardware、software。如果不分层,所有功能搅在一起,会非常难设计、维护和扩展。

    1. 航空旅行类比

    从一个地方旅行到另一个地方,需要买票、托运行李、登机、跑道起飞、飞行路由、降落、取行李。每一步只关心自己的服务,并依赖下一层服务。网络分层也是类似思想。

    2. 分层的好处

    分层的主要优点:结构清晰,便于讨论复杂系统,模块化,易于维护和更新,某一层实现变化时可以尽量不影响其他层。

    例如 WiFi 换成 Ethernet,应用层的 HTTP 不需要改变。


    二十五、TCP/IP 五层模型

    本课程常用五层模型:

    Application
    Transport
    Network
    Link
    Physical

    1. Application Layer 应用层

    应用层直接为用户应用服务。典型协议包括 HTTP、DNS、SMTP、IMAP。数据单位通常叫 message。

    2. Transport Layer 传输层

    传输层负责端系统中进程到进程的通信。典型协议是 TCP 和 UDP。数据单位通常叫 segment。TCP 提供可靠、有序、面向连接的传输;UDP 提供无连接、不可靠、轻量的传输。

    3. Network Layer 网络层

    网络层负责主机到主机的通信和路由选择。典型协议是 IP 和 routing protocols。数据单位通常叫 datagram。

    4. Link Layer 链路层

    链路层负责相邻节点之间的数据传输。典型技术包括 Ethernet、WiFi、PPP。数据单位通常叫 frame。

    5. Physical Layer 物理层

    物理层负责在线路上传输 bit,例如电信号、光信号、无线电波。数据单位是 bits。


    二十六、封装 Encapsulation

    封装是分层体系结构中非常重要的概念。发送端数据从上往下走,每一层都会加上自己的头部。

    应用层:message
    传输层:segment = Ht + message
    网络层:datagram = Hn + segment
    链路层:frame = Hl + datagram
    物理层:bits

    可以理解成套娃:

    Frame [
    Link Header
    Datagram [
    IP Header
    Segment [
    TCP Header
    Application Message
    ]
    ]
    ]

    接收端则反过来逐层拆包:

    bits -> frame -> datagram -> segment -> message


    二十七、Host、Router、Switch 分别处理到哪一层?

    Host 主机通常实现完整五层,因为主机既要运行应用,也要收发数据。

    Router 路由器通常处理到网络层,主要看 IP 头部,根据目的 IP 决定转发方向。

    Switch 交换机通常处理到链路层,主要看 MAC 地址,在局域网内转发 frame。


    二十八、协议、服务、接口

    协议是水平的,发生在同一层的对等实体之间。例如客户端 TCP 和服务器 TCP 遵守 TCP 协议。

    服务是垂直的,是下层给上层提供的能力。例如传输层给应用层提供进程间通信服务,网络层给传输层提供主机间通信服务。

    接口是上层调用下层服务的方式。例如应用程序通过 socket API 使用传输层服务。

    如果第 k 层提供给上层的 service 发生变化,主要影响第 k+1 层,因为第 k+1 层直接依赖第 k 层服务。但第 k-1 层通常不受直接影响,因为第 k-1 层只是给第 k 层提供服务。

    一句话:服务变化主要影响上一层,实现变化通常不影响上下层。


    二十九、OSI 七层模型与 TCP/IP 模型

    OSI 七层模型从上到下是:

    Application
    Presentation
    Session
    Transport
    Network
    Link
    Physical

    TCP/IP 常见四层模型是:

    Application
    Transport
    Internet
    Network Interface

    本课程常用五层混合模型:

    Application
    Transport
    Network
    Link
    Physical

    Internet 协议栈中没有单独的表示层和会话层。如果需要加密、压缩、数据格式转换、会话同步,通常由应用层自己实现。


    三十、TCP/IP 沙漏模型

    TCP/IP 沙漏模型中,中间最窄处是 IP。

    上面可以有很多应用:HTTP、DNS、Email、Streaming、Games。下面可以有很多链路技术:Ethernet、WiFi、4G/5G、Fiber、Satellite。但是中间都通过 IP 连接起来。

    1. Everything over IP

    各种应用都可以跑在 IP 之上。

    2. IP over Everything

    IP 又可以跑在各种底层链路之上。

    3. 简单网络,复杂端系统

    Internet 的设计思想是网络核心尽量简单,复杂功能尽量放在端系统。例如 IP 尽力而为转发,可靠传输由 TCP 在端系统实现,拥塞控制由端系统配合完成,应用逻辑放在应用层。

    这样做的好处是 Internet 更容易扩展。


    三十一、互联网历史

    1. 1961—1972:早期分组交换与 ARPANET

    重要事件包括 Kleinrock 的排队论工作、Baran 的军用分组交换研究、ARPANET 构想、1972 年 ARPANET demo、NCP、email 出现、ARPANET 约 15 个节点。

    2. 1972—1980:互联网络思想形成

    重要事件包括 ALOHAnet、Cerf and Kahn 提出互联网络架构、Ethernet 在 Xerox PARC 出现、ARPANET 扩展到约 200 个节点。重要原则包括 minimalism、autonomy、best-effort service、stateless routing、decentralized control。

    3. 1980—1990:TCP/IP、DNS、SMTP、FTP

    重要事件包括 1983 年 TCP/IP 正式部署,SMTP、DNS、FTP 出现,TCP congestion control 出现,主机数量达到约 100,000。

    4. 1990s—2000s:Web 时代

    重要事件包括 ARPANET 退役、NSFnet 商业化、Web 出现、HTML、HTTP、Mosaic、Netscape、IM、P2P、安全问题凸显,backbone 速率进入 Gbps 级别。

    5. 2005 至今:移动互联网、云、内容网络

    重要变化包括宽带普及、SDN 出现、4G/5G/WiFi 普及、智能手机兴起、云计算和数据中心兴起,大型内容提供商建设自有网络,CDN 把内容靠近用户。


    三十二、标准化组织

    ISO 制定了 OSI 七层参考模型。OSI 是 de jure standard,即正式标准,但现实中 Internet 更广泛采用 TCP/IP。

    ITU 是联合国相关机构,负责通信标准制定。

    IEEE 制定很多局域网和无线局域网标准,例如 IEEE 802.3 Ethernet 和 IEEE 802.11 WiFi。

    WiFi Alliance 负责 WiFi 产品兼容认证。

    IETF 是 Internet 标准制定的核心组织。很多 Internet 协议通过 RFC 发布,例如 RFC 791 是 IP,RFC 793 是 TCP。IETF 的文化是 rough consensus and running code,即粗略共识和可运行代码。


    三十三、第一次作业补充知识点

    作业里有一些点比 PPT 主线更偏教材题,复习时也要补上。

    1. QoS 不只包括带宽和时延

    QoS 是 Quality of Service,服务质量。除了 bandwidth 和 latency,还可能包括 jitter、packet loss、reliability、security、availability。

    语音最怕时延太大、jitter 太大、连续丢包。语音可以忍受少量丢包,但不能忍受声音一会儿快一会儿慢。

    视频关心带宽、时延、jitter、丢包率。直播和视频会议比点播视频更怕 jitter 和大时延。

    金融交易更关心 reliability、security、correctness,有时也关心低时延。

    2. Broadcast subnet 的碰撞概率

    如果有 n 个主机,每个主机在一个时隙中以概率 p 发送,碰撞 collision 发生条件是同一个时隙中有 2 个或更多主机发送。

    因此:

    P(collision) = 1 – P(0个发送) – P(1个发送)

    0 个主机发送:

    P(0) = (1 – p)^n

    刚好 1 个主机发送:

    P(1) = n p (1 – p)^(n – 1)

    所以:

    P(collision) = 1 – (1 – p)^n – n p (1 – p)^(n – 1)

    3. Connectionless vs Connection-oriented

    Connectionless 无连接通信的特点是发送前不建立连接,每个分组独立处理,网络不维护连接状态,可能丢包、乱序。例子是 UDP 和 IP。

    Connection-oriented 面向连接通信的特点是发送前先建立连接,通信双方维护连接状态,通常提供可靠、有序传输,结束后释放连接。例子是 TCP。

    一句话:UDP/IP 像寄明信片;TCP 像先打电话接通,再持续通话。

    4. Header overhead 封装开销

    假设有 n 层协议,应用生成 M bytes 数据,每层添加 h bytes header。

    总 header 大小:

    n h

    总发送大小:

    M + n h

    header 占比:

    nh / (M + nh)

    如果要百分比,再乘以 100%。

    5. 电路交换与分组交换精确时延公式

    假设消息长度为 x bits,路径有 k 跳,电路建立时间为 s 秒,每跳传播时延为 d 秒,分组大小为 p bits,数据速率为 b bps。

    电路交换总时延:

    T_circuit = s + k d + x / b

    分组交换总时延,轻载、无排队、store-and-forward 情况下:

    T_packet = k d + x / b + (k – 1)p / b

    分组交换什么时候更快?比较 T_packet < T_circuit:

    kd + x/b + (k – 1)p/b < s + kd + x/b

    消去相同项:

    (k – 1)p/b < s

    所以:

    s > (k – 1)p/b

    也就是说,如果电路建立时间比分组交换的额外 store-and-forward 开销更大,那么分组交换更快。


    三十四、本讲考试重点总结

    第一讲最重要的内容可以压缩成下面这张清单。

    1. Internet 两种视角

    硬件视角:hosts + links + packet switches + networks
    服务视角:为分布式应用提供通信服务

    2. 协议定义

    协议 = 消息格式 + 消息顺序 + 收到消息后的动作

    3. 网络结构

    Network edge:主机、客户端、服务器
    Access network:把端系统接入第一个路由器
    Network core:互联路由器组成的核心网络

    4. Forwarding vs Routing

    Forwarding:本地动作,按表转发
    Routing:全局动作,决定路径

    5. 分组交换 vs 电路交换

    分组交换:共享资源,适合突发数据,可能排队和丢包
    电路交换:预留资源,性能稳定,但资源利用率低

    6. 四种时延

    d_nodal = d_proc + d_queue + d_trans + d_prop
    d_trans = L / R
    d_prop = d / s

    7. 流量强度

    Traffic intensity = La / R

    接近 1 时,排队时延急剧增大。

    8. 吞吐量

    Throughput = min(R1, R2, …, Rn)

    端到端吞吐量由瓶颈链路决定。

    9. BDP

    BDP = bandwidth × propagation delay

    表示链路中可以同时容纳多少 bit。

    10. 分层和封装

    五层模型:

    Application
    Transport
    Network
    Link
    Physical

    PDU:

    message
    segment
    datagram
    frame
    bits

    封装:

    message -> segment -> datagram -> frame -> bits

    11. TCP/IP 沙漏模型

    Everything over IP
    IP over everything

    核心思想:IP 是中间窄腰,网络核心简单,端系统复杂。


    三十五、常见易错点整理

    易错点 1:传输时延和传播时延混淆

    错误理解:带宽越大,传播时延越小。

    正确理解:带宽影响传输时延,不直接影响传播时延。

    易错点 2:FDM 和 TDM 反了

    正确:FDM 分频率,TDM 分时间。

    易错点 3:Forwarding 和 Routing 混淆

    正确:Forwarding 是路由器内部本地转发,Routing 是全局路径计算。

    易错点 4:吞吐量不是链路速率相加

    端到端吞吐量看瓶颈链路:

    min(R1, R2, …, Rn)

    易错点 5:La/R = 1 不代表现实中稳定

    只有完全均匀到达时才可能“刚好处理”。真实网络流量有突发性,所以接近 1 就已经很危险。

    易错点 6:IP 地址不等于身份认证

    IP spoofing 可以伪造源 IP,因此 IP 地址本身不能证明身份。

    易错点 7:分层中“服务变化”和“实现变化”不同

    实现变化通常对其他层透明;服务接口变化会影响上一层。


    三十六、选择判断速记版

  • Network core 主要由互联路由器组成:对。
  • 协议不只规定格式,还规定顺序和动作:对。
  • 分组交换不需要预留端到端资源:对。
  • 电路交换会预留资源,空闲时可能浪费:对。
  • Store-and-forward 要等完整分组到达后再转发:对。
  • 传输时延和传播时延不是一回事:对。
  • 提高带宽不能直接降低传播时延:对。
  • Buffer 满了会丢包:对。
  • FDM 分频率,TDM 分时间:对。
  • TCP/IP 沙漏模型中 IP 是中间窄腰:对。

  • 三十七、计算题公式汇总

    1. 传输时延

    d_trans = L / R

    2. 传播时延

    d_prop = d / s

    3. 节点总时延

    d_nodal = d_proc + d_queue + d_trans + d_prop

    4. 流量强度

    La / R

    5. 吞吐量

    Throughput = min(R1, R2, …, Rn)

    6. BDP

    BDP = R × d_prop

    7. Header overhead

    nh / (M + nh)

    8. 碰撞概率

    P(collision) = 1 – (1 – p)^n – n p (1 – p)^(n – 1)

    9. 电路交换时延

    T_circuit = s + kd + x/b

    10. 分组交换时延

    T_packet = kd + x/b + (k – 1)p/b


    结语

    第一讲看起来很杂,其实主线非常清楚:

    应用想通信,就要把消息交给协议栈;协议栈逐层封装;数据通过接入网络进入网络核心;核心路由器用分组交换一跳一跳转发;传输过程中会产生时延、排队、丢包和吞吐瓶颈;为了管理复杂性,网络被设计成分层结构;为了安全,还要考虑嗅探、伪造、DoS 和各种防御机制。

    这一讲真正要掌握的是“网络整体框架”。后面应用层、传输层、网络层、链路层,都是在这张框架图上继续展开。

    只要第一讲这张图搭好了,后面的知识就不会散。

    赞(0)
    未经允许不得转载:171主机测评 » 计算机网络第一讲:Introduction 复习博客
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址