🚥 计算机网络课程笔记导航

  1. 第 1 章 计算机网络和因特网 ⇦ 当前位置 🪂

1 什么是因特网

因特网是一个世界范围的计算机网络。

1.1 具体构成描述

  • 节点
    • 终端节点:主机(host)及其运行的应用程序
    • 中间节点:路由器(router)、交换机(switch)等网络交换设备
  • 边(通信链路)
    • 接入网链路(Access Link):主机连接到互联网的链路
    • 主干链路(Backbone Link):路由器之间的链路
  • 计算设备:数以亿计的互联设备
    • 主机:运行网络应用程序
  • 分组交换设备:路由器(router)和交换机(switch),用于转发分组(packets)
  • 通信链路:光纤、同轴电缆、无线电、卫星等
  • 协议:规范和控制消息的发送和接收
    • 如 TCP、IP、HTTP、FTP
    • 对等层实体沟通的标准,包括报文格式、次序及传输动作

1.2 服务描述

  • 分布式应用:如 Web、VoIP、email、游戏、电子商务、社交网络, …
  • 套接字接口(socket interface)
    • 将收发数据的应用与互联网连接起来
    • 为应用提供服务选择,类似于邮政服务

1.3 什么是协议

协议定义了在两个或多个通信实体之间交换的消息格式和次序,以及在消息传输和接收或其他事件方面所采取的动作。

  • 通信模式
    • C/S 模式(Client/Server Model):客户端请求服务,服务器响应
      • 如 Web 浏览器和服务器、Email 客户端和服务器
    • P2P 模式(Peer-to-Peer Model):每个主机同时是客户端和服务器
      -如 Gnutella、KaZaA、Emule
  • 传输协议
    • 传输控制协议(TCP:Transmission Control Protocol)
      • 可靠、保序的数据传输
      • 流量控制和拥塞控制
    • 用户数据报协议(UDP:User Datagram Protocol)
      • 无连接、不可靠、不保序的数据传输
      • 无流量控制和拥塞控制
  • 应用实例
    • 使用 TCP:HTTP、FTP、Telnet、SMTP
    • 使用 UDP:流媒体、远程会议、DNS、Internet 电话

举例子: 一种人类协议和计算机网络协议:

2 网络边缘

网络边缘包括主机(端系统)及其运行的应用程序。主机有时又被进一步划分为两类:客户端(client)和服务器 (server);服务器通常位于数据中心。

2.1 接入网

将端系统物理连接到其边缘路由器(edge router)的网络;分为有线接入和无线接入。

线缆网络(Cable Network):电缆(Cable)、光纤(Fiber)网络将家庭连接到 ISP 路由器

  • 有线电视信号线缆双向改造:在不同频段传输不同信道的数据,数字电视和上网数据(上下行)
  • 光纤和同轴电缆:线缆和光纤将家庭用户接入到 ISP 路由器,各用户贡献到线缆头端的接入网络

单位接入网络(企业网络):端系统直接连接在以太网交换机上(公司、大学等机构

2.2 物理媒介

导引性媒体(Guided Media)

  • 同轴电缆(Coaxial Cable):两根同轴地铜导线、双向
    • 基带电缆(Baseband Cable):电缆上有单个信道
    • 宽带电缆(Broadband Cable):电缆上有多个信道
  • 光纤和光缆(Fiber Optics):光脉冲,⼀个脉冲代表 1bit,高速、低误码率、安全

非导引性媒体(Unguided Media)

  • 无线电(Radio):开放空间传输电磁波无需物理线缆
    • 传播环境效应:反射、吸收、干扰
    • 类型:地面微波、WLAN(WiFi)、wide-area(蜂窝)、卫星

3 网络核心

定义: 由路由器构成的网状网络。

3.1 分组交换

分组交换(Packet Switching): 主机将应用层消息分为多个分组(packets)

  • 将要传输的数据分成一个个单位(分组),以分组为单位进行存储、转发
  • 将分组从一个路由器传到相邻路由器(Hop)一段段最终从源端传到目标端
  • 在转发之前,节点必须收到整个分组
  • 排队延迟和丢失:如果分组到达速率高于链路传输速率,分组会排队等待传输;如果路由器缓存用完了,分组会被抛弃

分组交换的两个核心功能

  • 路由(Routing):用路由算法决定分组采用的从源到目标的路径
  • 转发(Forwarding):将分组从路由器的输入链路转移到输出链路

3.2 电路交换

电路交换(Circuit Switching): 为每个路由/路径分配一个特定的线路

  • 为每个呼叫预留专有电路
  • 独享资源,适合电话网
  • 不适合计算机通信,因连接建立时间长、资源浪费
  • 网络资源被分成片,有频分(Frequency Division)、时分(Time Division),为呼叫分配片,如果某呼叫没有数据,则其资源片处于空闲状态

3.3 网络的网络

ISP(Internet Service Provider):向用户提供互联网接入和服务的公司或组织

  • ISP 之间必须进行互联:任何两台主机都可以互相发送数据包
  • 由此产生的网络嵌套非常复杂(网络的网络),且受经济和国家政策驱动影响而演化

端系统通过接入 ISP链接到互联网,接入 ISP 是互相连接的;每个 ISP 都连接到全局 ISP(Global ISP),接入 ISP 和全局 ISP 往往有经济合约。

  • 对等连接(Peering Connection):对等连接是指两个或多个 ISP 之间直接互联,以交换流量,而不通过第三方网络。

4 分组交换网的时延、丢包和吞吐量

4.1 分组交换网中的时延

分组延时(Packet Delay):当分组从一个节点 (主机或路由器)时沿着这条路径到后继节点(主机或路由器)时,该分组在沿途的每个节点经受了 4 种不同类型的时延。

  1. (节点)处理延时:检查 bit 级差错,检查分组头部并决定将分组导向何处。
  2. 排队延时:在输出链路上等待传输的时间,依赖于路由器的拥塞程度。
  3. 传输延时:$T_{trans} = \frac{L}{R}$,其中 $R$ 是链路带宽(bps),$L$ 是分组长度(bits)。
  4. 传播延时:$T_{trans} = \frac{L}{R}$,其中 $d$ 是物理链路的长度(km),$s$ 是媒介传输速度(km/s)。

节点延时:$d_{nodal} = d_{proc} + d_{queue} + d_{trans} + d_{prop}$

4.2 排队时延和丢包

流量强度:$I = \frac{La}{R}$($a$:分组到达队列的平均速率),流量强度不能超过 1。

分组丢失(Packet Loss):由于链路的队列缓冲区容量有限,当分组到达⼀个满的队列时,该分组会丢失(丢包)。丢失的分组可能会被前⼀个节点或端系统重传,或根本不重传。

4.3 计算机网络中的吞吐量

定义:在源端和目标端之间的传输速率(数据量/单位时间)

  • 瞬间吞吐量(Instantaneous Throughput):某一时刻的传输速率,反映当前网络的瞬时性能。
  • 平均吞吐量(Average Throughput):在一段时间内的平均传输速率,反映网络的整体性能。
  • 瓶颈链路(Bottleneck Link):端到端的路径上,限制端到端吞吐的链路。

5 协议层次及其服务模型

5.1 分层的体系结构

层次化方式实现复杂网络功能

  • 将网络复杂的功能分成功能明确的分层次,每一层实现其中一组功能,功能中有其上层可以使用的功能:服务
  • 本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务。
  • 在实现本层协议的时候,直接利用了下层所提供的服务。

服务(Service):下层实体向上层实体提供的它们之间通信的能力。

原语(Primitive):上层使用下层服务的形式,上层使用下层提供的服务以及下层向上层提供服务的都是通过服务访问原语来进行交互的。

服务访问点(Service Access Point):上层使用下层提供的服务通过的层间接口,用于下层服务区分不同的上层用户。

  • 传输层的 SAP:端口(Port)
  • 邮箱的 SAP:地址(Address)

服务类型

  • 面向连接的服务(Connection-Oriented Service):建立连接、通信、拆除连接,网络层的连接成为虚电路,适合传输大的数据块。
  • 无连接的服务(Connectionless Service):两个对等层实体在通信前不需要建立连接,适用于传输。

互联网协议栈

  1. 应用层(Application Layer):为应用进程提供网络应用服务,如 FTP、SMTP、HTTP、DNS。
  2. 传输层(Transport Layer):在网络层提供的端到端通信基础上,细分为进程到进程的通信,如 TCP 和 UDP。
  3. 网络层(Network Layer):为数据报从源主机到目标主机选择路由,传输以分组为单位的端到端的数据,如 IP、路由协议。
  4. 链路层(Link Layer)相邻 2 个网络节点之间传输以为单位的数据,如点对点协议、802.11(WiFi)、Ethernet。
  5. 物理层(Physical Layer):在线路上传输 bit。

OSI 模型:比互联网协议栈多了表示层(Presentation Layer)和会话层(Session Layer)

  • 表示层(Presentation Layer):允许应用解释传输的数据,加密、压缩、机器相关的表示转换。
  • 会话层(Session Layer):数据交换的同步、检查点、恢复。

5.2 封装

数据单元(Data Unit)

  • 服务数据单元(Service Data Unit, SDU):某一层从上层接收到的数据单元,是该层需要处理或传输的有效载荷(Payload)
  • 协议数据单元(Protocol Data Unit, PDU):头部 + 服务数据单元;如果服务数据很大,可能被拆成多份并分别加上头部;如果服务数据很小,可能和多个服务数据合成一份并加上头部。

各层的协议数据单元的名称

不同协议层次对 PDU 的命名不同。

  1. 应用层(Application Layer):报文(message)
  2. 传输层(Transport Layer):报文段(segment,TCP)或数据报(datagram,UDP)
  3. 网络层(Network Layer):(IP)分组(packet,有连接)或数据报(datagram,无连接)
  4. 链路层(Link Layer):帧(frame)
  5. 物理层(Physical Layer):位(bit)

封装过程: