Computer Network Notes 1:the basic

把老师的 PPT 变成 md 文件之计算机网络第一章计算机网络概述自学笔记

课程来源

bilibili 网课:中科大郑烇、杨坚全套《计算机网络》


什么是 Internet

网络

由节点和边构成的拓扑结构

计算机网络

联网的计算机所构成的系统,包括主机节点 (数据源或数据目标)、数据交换节点 (路由器、中继器、交换机等)、链路

  • 节点
    • 主机及其上运行的应用程序
    • 路由器、交换机等网络交换设备
  • 边:通信链路
    • 接入网链路:主机连接到互联网的链路
    • 主干链路:路由器间链路
  • 协议
    • 对等层实体在通信过程中,应该遵守的规则的集合,包括语义、语法和时序

互联网

数以亿计的、互联的计算设备

  • 主机 = 端系统:end system / host
  • 运行网络应用程序

通信链路

  • 光纤、同轴电缆、无线电、卫星
  • 传输速率 = 带宽 (bps)

分组交换设备:转发分组 (packets)

  • 路由器和交换机

Internet

TCP、IP 协议建立起的一个网络,也是一种计算机网络。

  • 协议控制发送、接收消息:TCP、IP、HTTP、FTP、PPP 等
  • 网络的网络:松散的层次结构,互连的 ISP;公共 Internet vs 专用 intranet
  • 标准:RFC (Request For Comments);IETF(Internet Engineering Task Force)

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

从服务角度理解 Internet

  • 使用通信设施进行通信的分布式应用:Web、VoIP、email、分布式游戏、电子商务、社交网络
  • 通信基础设施为 apps 提供编程接口 (通信服务):将发送和接收数据的 apps 与互联网连接起来;为 apps 提供服务选择,类似于邮件服务,包括无连接不可靠服务和面向连接的可靠服务

网络边缘

网络结构

网络边缘 (edge)

  • 主机
  • 应用程序:客户端和服务器

网络核心 (core):数据交换

  • 互连着的路由器
  • 网络的网络

接入网、物理媒体 (access)

  • 有线或无线通信链路

网络边缘

端系统 (主机):运行应用程序,如 Web、Email,在“网络的边缘”

客户/服务模式

  • 一种主从模式,可扩展性、可靠性有问题
  • 客户端向服务器请求、接收服务,如 Web 浏览器/服务器,Email 客户端/服务器

对等 (peer - peer) 模式

  • 每个节点既是客户端有时服务器
  • 分布式的文件系统
  • 很少 (甚至没有) 专门的服务器,如 Gmutella、KaZaA、Emule、迅雷、电驴

面向连接的通信服务

采用网络设施的面向连接服务

目标:在端系统之间传输数据

  • “握手”:在数据传输之前做好准备,为通信准备好相应的资源、设置
  • 两个通信主机之间为连接建立状态,端系统维护连接,只有端系统“知道”连接

TCP (Transmission Control Protocol) 传输控制协议 [RFC 793]

  • Internet 上面向连接的服务
  • 使用 TCP 的应用:HTTP (Web)、FTP (文件传输)、Telnet (远程登陆)、SMTP (Email)
  • 可靠地、按顺序地传送数据:确认和重传
  • 流量控制:平衡发送方和接收方,发送方不会淹没接收方
  • 拥塞控制:了解网络路径情况,当网络拥塞时,发送方降低发送速率

采用基础设施的无连接服务

目标

  • 在端系统之间传输数据
  • 无连接服务:直接发送,不打招呼

UDP (User Datagram Protocol) 用户数据报协议 [RFC 768]

  • 无连接
  • 不可靠数据传输
  • 无流量控制
  • 无拥塞控制
  • 使用 UDP 的应用:流媒体、远程会议、DNS、Internet 电话

网络核心

定义

路由器的网状网络

通过网络传输数据的方式

电路交换

为每个预叫预留一条专有电路,如电话网

电路交换

为呼叫预留端-端资源

  • 链路带宽,交换能力
  • 专用资源:不共享
  • 保证性能
  • 要求建立呼叫链接

网络资源 (如带宽) 被分成片

  • 可频分 (Frequency-division multiplexing, FDM),称频段;可时分 (Time-division multiplexing, TDM),称时间周期片;可波分 (Wave-division multiplexing, WDM),称波段
  • 为呼叫分配片
  • 如果某个呼叫没有数据,则其资源片处于空闲状态 (不共享)

特点

  • 连接建立时间长
  • 计算机之间的通信具有突发性,若使用电路交换则浪费片较多
  • 可靠性不高 (维护 piece 间的 mapping 关系,若核心节点损毁则会造成大面积瘫痪)

分组交换 (packet switch)

简介

  • 将要传输的数据分成一个个单位:分组
  • 将分组从一个路由器传到一个相邻的路由器 (hop),一段段最终从源端到目标端
  • 每段:采用链路的最大传输能力 (带宽)

以分组为单位存储 - 转发方式

  • 网络带宽资源不再分为一个个片,传输时使用全部带宽
  • 主机之间传输的数据被分为一个个分组

资源共享,按需使用

  • 存储 - 转发:分组每次移动一跳 (hop)
  • 在转发之前,节点必须收到整个分组
  • 延迟比线路交换大有排队时间
    如果到达速率 > 链路的输出速率,分组将会排队,等待传输;如果路由器缓存使用完,分组将被会抛弃。

网络核心的关键功能

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

分组交换的分组没有固定模式,即统计多路复用。

分组交换 vs 电路交换

  • 分组交换允许更多用户使用网络
    分组交换与电路交换对比
*网络强度为 1 时,网络会挂,所以分组交换时用户数不能为 10*
  • 分组交换更适合于突发式数据传输:资源共享;简单,不必建立呼叫
  • 过度使用会造成网络拥堵:分组延时和丢失;对可靠的数据传输需要协议来约束 (拥塞控制)

分组交换网络

分组的存储 - 转发一段一段从源端传到目标端,按照有无网络层的连接分成:
(1) 数据报 (datagram) 网络

  • 分组的目标地址决定下一跳
  • 在不同的阶段,路由可以改变
  • 即无连接,每一份都独立传送
    • 通信之前无需建立连接,有数据就传输
    • 每一个分组都独立路由 (路径不一样,可能会失序)
    • 路由器根据分组的目标地址进行路由
  • 类似:问路
  • eg. Internet

(2) 虚电路 (virtual circuit) 网络

  • 每个分组都带标签,虚电路标识 VC ID,标签决定下一跳
  • 在呼叫建立时决定路径,在整个呼叫中路径保持不变
  • 路由器维护每个呼叫的状态信息
  • 即建立网络层的连接,每个交换节点中有相应标识
  • eg. X.25 和 ATM

接入网和物理媒体

接入网:怎样将端系统和边缘路由端链接

  • 住宅接入网络
  • 单位接入网络:学校、公司
  • 无线接入网络

重要指标:带宽、共享/专用

住宅接入 (modem)

将上网数据调制加载在音频信号上 (能保证的带宽只有 4 kHz),在电话线上传输,在局端将其中的数据解调出来;反之亦然。

  • 调频
  • 调幅
  • 调相位
  • 综合调制

拨号调制解调器

  • 56 Kbps 的速率直接接入路由器 (通常更低)
  • 不能同时上网和打电话,且不能总是在线
  • 利用已有的线路

Digital Subscribe Line (DSL):采用现存的到交换局 DLSAM 的电话线

  • 语音、数据在专享线路的不同波段传播
  • DSL 线路上的数据波传到互联网 (> 4 kHz,上下传输带宽分布不均时称为 ADSL)
  • DSL 线路上的数据波传到电话网 (< 4 kHz)
  • 传输速率
    • < 2.5 Mbps 上行传输速率 (typically < 1 Mbps)
    • < 24 Mbps 下行传输速率 (typically < 10 Mbps)

线缆网络

  • 有线电视信号线缆双向改造
  • FDM:在不同频段传输不同信道的数据,包括数字电视和上网数据 (上下行)
  • 类似的也可以使用电网
  • HFC (Hybrid Fiber Coax):非对称,最高 30 Mbps 的下行传输速率,2 Mbps 上行传输速率
  • 线缆和光纤网络将各个家庭用户接入到 ISP 路由器
  • 个用户共享到线缆头端的接入网络 (与 DSL 不同,DSL 每个用户一个专用线路到 CO (Central Office))

住宅接入:电缆模式


接入网:家庭网络

企业接入网络 (Ethernet)

经常被弃业或大学等机构采用

  • 10 Mbps,100 Mbps,1 Gbps,10 Gbps 传输率
  • 现在端系统经常直接接到以太网络交换机上

企业接入网络

无线接入网络

各无线端系统共享无线接入网络 (端系统到无线路由器)

  • 通过基站或接入点

无线 LANs

  • 建筑物内部 (100 ft)
  • 802.11 b/g (WiFi):11,54 Mbps 传输速率

广域无线接入

  • 由电信运营商提供 (Cellular):10’s km
  • 1 到 10 Mbps
  • 3 G,4 G:LTE

物理媒体

  • Bit:在传输-接收对间传播
  • 物理链路:在每个传输-接收对间跨越的一种物理媒体
  • 导引型媒体:信号沿着固体媒介被导引,如同轴电缆、光纤、双绞线
  • 非导引型媒体:信号自由传播,如无线电

双绞线 (TP)

  • 两根绝缘铜线
  • 5 类:100 Mbps Ethernet、Gbps 以太网
  • 6 类:10 Gbps

同轴电缆

  • 两根同心的铜导线
  • 双向
  • 基带电缆
    • 电缆上一个单个信道
    • Ethernet
  • 宽带电缆
    • 电缆上有多个信道
    • HFC

光缆

  • 光脉冲,每个脉冲表示一个 bit,在玻璃纤维中传输
  • 高速:点到点的告诉传输,如 10 Gbps ~ 100 Gbps 传输速率
  • 低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
  • 安全:全反射或垂直 (射入角度为零);单模光纤或多模光纤

无线链路

  • 开放空间传输电磁波,携带要传输的数据
  • 无需物理“线缆”
  • 双向
  • 传播环境效应:反射、吸收、干扰
  • 类型
    • 地面微波:up to 45 Mbps channels
    • LAN:WiFi;11 Mbps,54 Mbps,540 Mbps 等
    • wide area:蜂窝;3 G cellular (~ few Mbps);4 G 10 Mbps;5 G 数 Gbps
    • 卫星:每个信道 Kbps 到 45 Mbps,或者多个聚集信道;270 msec 端到端延迟 (延迟大);同步静止卫星和低轨卫星

Internet 结构和 ISP

互联网络结构:网络的网络

端系统通过接入 ISPs (Internet Service Providers) 连接到互联网

  • 住宅、公司和大学的 ISPs

接入 ISPs 相应的必须是互联的,因此任何两个端系统可相互发送分组到对方。
导致“网络的网络”非常复杂,发展和演化通过经济和国家政策来驱动。

接入 ISPs 的连接方式

接入 ISPs 之间全连接:即将每两个 ISPs 直接相连,不可扩展,需要 O(n2) 连接

将每个接入 ISP 都连接到全局 ISP (全局范围内覆盖):客户 ISPs 和提供者 ISPs 有经济合约

将每个接入 ISP 都连接到全局 ISP

如果全局 ISP 事可行的业务,则一定会有不同公司竞争;通过 ISP 之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系

ISP 竞争与合作

业务细分 (全球接入和区域接入),区域网络将出现,用于将接入 ISPs 连接到全局 ISPs

局域网络

内容提供商网络 (Internet Content Provider, eg. Google, Microsoft, Akamai) 可能会构建它们自己的网络,将它们的服务、内容更加靠近端用户,向用户提供更好的服务,减少自己的运营支出

  • 在全球各地部署自己的网络 (或靠近核心 ISP),连接自己的数据中心机房 (Data Center),走自己的数据
  • 连接若干 local ISP 和各级 (包括一层) ISP,更加靠近用户
  • 少付费,且用户访问更快

内容提供商网络

在网络的最中心,有一些为数不多的充分连接大范围网络 (分布广、节点有限,但之间有多重连接)

  • “tier-1” commercial ISPs (eg. Level 3, Sprint, AT & T, NTT),国家或者国际的覆盖范围
  • content provider network (eg. Google):将数据中心接入 ISP,方便周边用户的访问;通常私有网络之间用专网绕过第一层 ISP 和区域 ISPs

互联网络结构:网络的网络

Internet 的结构:松散的层次结构

中心:第一层 ISP (如 UUNet,BBN/Genuity,Sprint,AT & T) 国家/国际覆盖,速率极高

  • 直接于其它第一层 ISP 相连
  • 与大量的第二层 ISP 和其它客户网络相连

Sprint: point-of-presence

second.png:更小些的 (通常是局域性的) ISP

  • 与一个或多个第一层 ISPs 相连,也可能于其它第二层 ISP
  • 通过合作拓展网络

第二层 ISP

第三层 ISP 与其它本地 ISP

  • 接入网 (与端系统最近)
  • 一个分组要经过许多网络

第三层 ISP

ISP 之间的连接

POP

  • 高层 ISP 面向客户网络的接入点,涉及费用结算
  • 多宿 (multi home):一个低层 ISP 接入多个高层 ISP

对等接入

  • 2 个 ISP 对等互接,不涉及费用结算

IXP

  • 多个对等 ISP 互联互通之外,通常不涉及费用结算
  • 对等接入

ICP

  • 自己部署的专用网络
  • 同时和各级 ISP 连接

分组延时、丢失和吞吐量

分组丢失和延时如何产生

在路由器缓冲区的分组队列

  • 分组到达链路的速率超过了链路输出的能力
  • 分组等待排到队头、被传输
  • 缓冲区满,无法进入路由器

分组延时和丢失

分组延时

(1) 节点处理延时

  • 检查 bit 级差错
  • 检查分组首部和决定将分组导向何处

(2) 排队延时

  • 在输出链路上等待传输的时间
  • 依赖于路由器的拥塞控制

(3) 传输延时

  • R = 链路带宽 (bps)
  • L = 分组长度 (bits)
  • 将分组发送到链路上的时间 = L / R
  • 存储转发延时

(4) 传播延时

  • d = 物理链路的长度
  • s = 在媒体上的传播速度 (~ 2 x 108 m / sec)
  • 传播延时 = d / s

R and s are very differential quantities

四种分组延时

分组延时与车队类比

分组延时与车队类比

信道容量大,可容纳的分组数量多

节点延时

排队延时

  • R = 链路带宽 (bps)

  • L = 分组长度 (bits)

  • a = 分组到达队列的平均速率

  • 流量强度 I = La / R

    • La / R ~ 0:平均排队延时很小
    • La / R -> 1:延时变得很大
    • La / R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队延时将趋向无穷大

    设计系统时流量强度不能大于1

Internet 的延时和路由

Traceroute 诊断程序:提供从源端,经过路由器,到目的的延时测量

  • For all i
    • 沿着目的的路径,像每个路由器发送 3 个探测分组
    • 路由器 i 将向发送方返回一个分组
    • 发送方队发送和回复之间间隔计时
  • ICMP 协议

分组丢失

链路的队列缓冲区容量有限
当分组到达一个满的队列时,该分组将会丢失
丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

分组丢失

吞吐量

在源端和目标端之间传输的速度 (数据量 / 单位时间)
有效的数量,要从源端确实到达目标端
源到端的吞吐量取决于路径上的最小吞吐量,即瓶颈链路的吞吐量
瓶颈链路:端到端路径上,限制端到端吞吐的链路
瞬间吞吐量:在一个时间点的速率
平均吞吐量:在一个长时间内平均值

吞吐量

吞吐量:互联网场景


协议层次和服务模型

网络是一个复杂系统

网络功能繁杂:数字信号的物理信号承载、点到点、路由、rdt、进程区分、应用等
网络有许多构成元素和设备:主机、路由器、各种媒体的链路、应用、协议、硬件、软件等
如何规划这样一个复杂系统:模块化、层次化

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

将网络复杂的功能分层功能明确的层次,每一层实现了其中一个或一组功能,功能中有其上层可以使用的功能:服务
本层协议实体相互交互执行本层的协议动作,目的是实现本层功能,通过接口为上层提供更好的服务
在实现本层协议时,直接利用下层所提供的服务
本层的服务:借助下层服务实现的本层协议实体之间交互带来的 (上层可以利用的) 新功能 + 更下层所提供的服务

服务和服务访问点

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

  • 服务用户 (service user)
  • 服务提供者 (service provider)

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

服务访问点 SAP (Services Access Point):上层使用下层提供的服务通过层间的接口 —— 提供服务的地点

  • eg. 邮箱
  • 地址 (address):下层的一个实体支撑着上层的多个实体,SAP 有标志不同上层实体的作用
  • 可以有不同的实现,队列
  • eg. 传输层的 SAP:端口 (port)
    区分数据要从哪里传到哪里,服务提供者区分不同的服务用户,层间接口

服务的类型

面向连接的服务 (Connection-oriented Service)

  • 连接 (Connection):两个通信实体为进行通信而建立的一种结合
  • 面向连接的服务通信过程:建立连接 (通信之前先“握手”,为通信分配资源,做好准备) -> 通信 -> 拆除连接
  • 例子:网络层的连接被称为虚电路
  • 适用范围:更适合传输大的数据块,不适合效地零星报文
  • 特点:保序
  • 服务类型
    • 可靠的信息流 传送页面 (可靠的获得,通过接收方的确认:先“握手”)
    • 可靠的字节流 远程登陆
    • 不可靠的连接 数字化声音

无连接的服务 (Connectionless Service)

  • 两个对等层实体在通信钱不需要建立一个连接,不预留资源,不需要通信双方都活跃 (例:寄信;通信之前不“握手”)
  • 特点:不可靠、可能重复、可能失序
  • IP分组,数据包
  • 适用范围:传送零星数据
  • 服务类型
    • 不可靠的数据报 电子方式的函件
    • 有确认的数据包 挂号信
    • 请求回答 信息查询

服务和协议

区别

  • 服务 (Service):低层实体向上层实体提供它们之间的通信能力;通过原语 (primitive) 操作;垂直
  • 协议 (protocol):对等层实体 (peer entity) 之间在相互通信的过程中;需要遵循的规则的集合;水平

联系

  • 本层协议的实现要靠下层提供的服务来实现
  • 本层实体通过协议为上层提供更高级的服务

数据单元

Data Unit

SDU:上层要求传输的数据
ICI:接口控制信息,为更加顺利地传过层间接口
IDU = SDU + ICI
PDU:最常见的数据单元;在不同层有不同的名称,如应用报文、分组、数据报、位、帧等

n-PDU的构成形式
n-header:与本层交换数据所需的一些控制信息;其中,n 为层数,第 n 层

  • 一对一:SDU + n-header
  • 一对多:SDU 的一部分 + n-header (PDU 大小有限,需要将 SDU 分为几个部分)
  • 多对一:若干 SDU + n-header

分层处理队实现复杂系统的好处

对复杂的系统
概念化:结构清晰,便于标示网络组件,以及描述其相互关系

  • 分层参考模型

结构化:模块化更易于维护和系统升级

  • 改变某一层服务的实现不影响系统中的其它层次,对其它层次而言是透明的
  • eg. 如果改变登记程序并不影响系统的其他部分

分层的问题:效率相对较低

Internet 协议栈

应用层:网络应用

  • 为人类用户或其它应用进程提供网络应用服务
  • 完成应用报文之间的交互
  • FTP, SMTP, HTTP, DNS
  • 协议数据单元:报文 (message)

传输层:主机之间的数据传输

  • 在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信
  • 完成进程到进程的区分
  • TCP, UDP
  • 协议数据单元:报文段 (segment);eg. TCP 段,UDP 数据报

网络层:为数据包从源到目的选择路由

  • 主机主机之间的通信,端到端通信,不可靠
  • 传输以分组为单位的端到端的数据
  • IP,路由协议
  • 协议数据单元:分组 (packet);如果无连接方式:数据报 (datagram)

链路层:相邻网络节点间的数据传输

  • 2 个相邻 2 点的通信,点到点通信,可靠或不可靠
  • 在相邻两点之间,传输以帧为单位的数据 (Point to Point, P2P)
  • 点对点协议 PPP,802.11 (WiFi),Ethernet
  • 协议数据单元:帧 (frame)

物理层:在线路上传送 bit

  • 把数据转换成物理信号承载在媒体上传输出去,接收方将物理信号再转换为数据信息
  • 协议数据单元:位 (bit)

链路层和物理层协议一般封装在同一张网卡中

ISO/OSI 参考模型

表示层:允许应用解释传输的数据

  • 关心数据语义方面的信息和核心内容,而不是关心具体表达、如何编码
  • 加密、压缩、机器相关的表示转换

会话层:数据交换的同步,检查点,恢复

  • 会话管理:建立会话、维持会话

Internet 协议栈中没有以上两层,但依靠应用层来实现以上两层实现的功能

封装和解封装

封装和解封装