1. 因特网
即世界范围的计算机网络
构成与名词解释
主机/端系统 | 几十亿台连接因特网的设备 | |
---|---|---|
通信链路(links) | 包括fiber, copper(铜线), |
radio, satellite等,其传播速度即为带宽(bandwidth),单位为bit/s或bps | |
| 分组(packet) | 端系统间发送数据,发送端把数据分段加上首部字节,由此形成的信息包为packet | |
| 路由器(routers) | 在不同端系统之间转发分组(forward packets) | |
| 因特网服务提供商(ISP) | 自身即为多台分组交换机和多段通信链路组成的网络,ISP端系统提供不同类型的网络接入 | |
| 协议(protocol) | 定义了两个或多个通信实体之间交换报文(message)的格式和顺序,以及报文传输和其他事件所采取的动作
- 协议的作用:定义格式,定义顺序,定义行为
| |
2. 网络结构
2.1 网络边缘
network edge
构成 | 端系统和应用程序 |
---|---|
模式 | CS, P2P |
2.2 接入网
将端系统物理连接到其edge router的网络
形式 | 描述 |
---|---|
**Dial-up |
Modem
拨号调制解调器** | 使用电话线,Modem把数字数据转换为高频音,通过电话线给中心局;模拟信号再通过Modem转回数字数据,问题在于不能”always
on”,通话时就无法上网
信号转换: digital <-> analogue signal
速度: 最高56Kbps
线路: dedicated(家庭直接由电话线连接CO) |
| Digital Subscriber Line
数字用户线 | 原理同上,但对不同信号(高速下行/中速上行/双向通话)使用不同频率编码,在接入时使用分配器过滤不同频率的信号,实现always on
信号转换: digital <-> analogue signal
速度: 上行: 1Mbps
下行: 8Mbps
线路: dedicated |
| cable
电缆接入 | 一种住宅接入(residental access)方式,使用有线电视线缆,系统中:
光缆连接电缆头端->地区枢纽->同轴电缆连接到各家,因此称为混合光纤同轴系统(hybrid
fiber coax, HFC),是不对等网络(asymmetric)
信号转换: digital <-> analogue signal
速度: 上行: 2Mbps 下行: 30Mbps
线路: shared(无论光缆和电缆) |
| 光纤到户 | 使用光纤连接中心局和家庭,速度快,同时可携带电话,电视信号,分为主/被动两类
- 典型的PON👇
信号转换: light <-> electrical
速度: 有KMbps的潜力
线路: shared |
| ethernet 以太网 | 通常在企业,大学中使用,端系统用双绞铜线连接以太网交换机,再连接更大的因特网
速度: 10Mbps,100Mbps,1Gbps,10Gbps… |
| wireless access
无线接入 | 无线用户从/到一个access point发送/接收packet,接入点即基站,其与企业网相连,再与更大因特网连接
|
2.3 物理媒介
常用概念
bit | 在传送者/接收者间传播 |
---|---|
bit rate | 比特速率,每秒传输的bit数,单位bps |
physical link | 连接传送者/接收者 |
guided media | 在固体媒介中传播(铜缆,光纤) |
unguided media | 自由传播(广播) |
常见媒介
Coaxial cable 同轴电缆 | - 同心铜导体 - 常用于有线电视电缆接入 |
---|---|
Optical fiber 光纤 | - 可引导光脉冲,一个脉冲为1bit - 支持比特速率极高,不受电磁干扰,100Km的衰减也很小 |
radio 广播 | 常见类型 - terrestrial |
microwave 地表微波<br />- LAN (wifi)<br />- wide-area (cellular)<br />- satelite<br /> |
| twisted pair 双绞线 |
- 普遍使用于局域网
- 绞合减少了临近双绞线的电器干扰
- 现代双绞线可达到10Gbps的速率和100m长,是高速LAN的主要解决
|
2.4 网络核心⭐
构成 | 大量连接的路由器 |
---|---|
数据传播方式 | - 分组交换 - 电路交换 |
参考链接:
Difference between Circuit Switching and Packet Switching |
电路交换 | 网络在host间创建专用的端到端连接(e2e),路径中的routers都为连接维持状态,连接期间也预留了恒定的传输速率(带宽,bandwidth),如传统电话网络
特点总结:
- 建立并维持实际连接
- 连接专用(dedicated)
- 预留固定带宽
- 速率恒定
| | | —- | —- |电路交换中的复用(multiplexing)
链路中对于不同连接建立不同线路的方式为以下两种multiplexing
| 频分复用
(Frequency-Division
Multiplexing, FDM) | 时分复用
(Time-Division Division
Multiplexing, TDM) |
| —- | —- |
| 链路为不同连接分配特定频段,该频段的宽度即为带宽 | 时间划分为固定间隔的帧,帧又分为固定数量的时隙(slot),不同时隙对应不同连接专用 |
| |
右图每一帧左旋90度,即为左图,本质TDM也是使用了1/4的带宽 |
| ❓例题: 传输一个64000bits的文件,假设使用24slots的TDM电路交换,(带宽)比特速率1.536Mbps,且需500ms创建端到端电路,则发送文件的时间为?
解: 1.536Mbps/24 = 64Kbps (不理解就看FDM与TDM图,实际等效)
64000bits/64Kbps = 10s
10 + 0.5 =
10.5 s | |
|
分组交换 | 每个端对端数据流被分为组(packet),不同用户的组共享网络资源,每个组可占有全部带宽;总资源需求可以超过可用量,但在分组队列中会发生阻塞,分组每次只能移动一跳(hop)
特点总结:
- 不同端连接的分组共享链路
- 分组可占有最大带宽
| | | —- | —- |分组交换中的复用(multiplexing)
统计复用也为”异步时分复用,STDM”,对比TDM,它能够动态的分配时隙,效率更高(根据需求共享带宽)
- 存储转发传输(store-and-forward transmission)
交换机(包括router和switch)在开始向链路传输分组的第一个bit前,必须接收整个的分组(缓存)
如图链路,源发送一个大小L的packet,链路传输速率Rbps,则传输到目的地的时延为多少? 解:由于S&F机制,开始源需要L/R才能将packet完整传输到router,此时router才能开始forward此packet,又需要L/R才能完整到达目的地,共需2L/R的时间 结论:对于N条速率R的链路组成的路径(N-1个router),源发送一个packet抵达目的地的e2e时延为: |
---|
- 排队时延(queuing delay)和分组丢失(packet loss)
packet需要传输到某个链路时发现其正传输其他packet,此时就需要进入交换机的输出缓存(output buffer)中等待,因此产生了排队时延,但buffer有限,当到达的packet发现buffer已经被填满,此时packet被丢弃,发生丢包(packet loss)
如图,35个用户共享链路进行分组交换,带宽1Mbps,每个用户活跃时只能使用100kbps带宽,且活跃时间占其传输时间的1/10,求分组交换,电路交换下最多用户数? - 电路交换: 最多支持1Mbps/100kbps=10个用户 - 分组交换: |
---|
- 转发表和路由选择
路由器有无数链路可走,为了选择正确的forward方向,源主机向目标发送packet时,在其首部包含了目的地的IP地址,当到达某个router时,router检查packet的目的地址中的一部分,然后向相邻router转发packet;在每个router中有一个转发表,可以将目的IP或其中一部分映射为应该转发的输出链路(见Ch4 网络层)
2.5 网络的网络
为了解决ISP自身互联的问题,如今的网络结构是networks of network:
在给定区域,有一个较大的ISP(第一层ISP),为小规模ISP或区域ISP提供网络接入,下级ISP类似;当两个ISP对等(peer)时,互相之间不结算(收费);且任何非第一层ISP都可以多宿 - 多宿(multi-home): 选择多个ISP连接 - IXP:Internet Exchange Point: 第三方创建的多个对等ISP的汇合点 |
|
---|---|
关于内容提供商网络:以Google为例
3. 分组交换深入
3.1 时延(Delay)
时延分为多种类型
处理 | pkt从到达节点到进入输出队列的间隔,包括检查packet首部决定去向,检查bit级别错误 |
---|---|
排队 | 当link在传输别的packet,则当前packet等待 |
传输(transmission) | 即L/R,将完整packet传输(推出)的时间 |
传播(propagation) | 受限于Link的物理媒介传播速度,d为router间距,s为物理速率,则时延为d/s 区别传输&传播时延 - 传输时延:router推出完整packet的时间,与距离无关 - 传播时延:packet在link上传输的时间,与距离有关 |
e2e时延
之前都在讨论节点间的时延,但两台设备传输数据时的真正时延为e2e时延
假设两台端系统间的Link要通过N-1台router,即N次转发,且无阻塞(无排队时延),设每台router和源host的传输速率都为R,则e2e时延为(对比S&F下的e2e时延):
3.2 丢包(Loss)
由排队时延(queuing delay)和分组丢失(packet loss)知道丢包发生在排队时延过长的时候,这取决于”流量到达队列的速率,link传输速率,流量本身性质(周期性或突发)”,规定:
- a表示packet到达队列的平均速率(pkt/s)
- La就是就是link每秒要承受的比特数
- La/R可以描述link的流量压力,称为流量强度(traffic intensity)
小结:
运算 | 解释 | 常用单位 |
---|---|---|
a | packet达到队列的平均速率 | pkt/s |
R | link的推出bit的速率 | bps |
L | 视所有packet大小都是L比特 | b |
La | 每秒到达Link的比特数 | bps |
La/R | 流量强度,link的压力 |
3.3 吞吐量(Throughout)
吞吐量用于描述传输速率,有两种情况的定义:
- 瞬时(instaneous):主机A到B在瞬间传输的bps
- 平均:比如下载Fbits的文件用去Ts,则平均吞吐量为F/Tbps
- 瓶颈链路(bottleneck link)
- Rs<Rc时,packet以Rs速度被推入router,只能以最快Rs转发给目的地,不可能达到Rc,但此时可以顺畅转发
- Rs>Rc时,packet以Rs速度推入router,最快也无法突破Rc这个限制,且会发生阻塞,堆积在router的packet会增长到被丢弃,上述即为bottleneck link,其吞吐量为:min{Rc, Rs}
通常核心网link的传输速率R都非常快,但根据瓶颈链路可知,吞吐量被接入网的传输速率Rc所限制
上述场景不代表网络核心不会限制吞吐量,👇下图描述了下载场景,此时吞吐量为min{Rc,Rs,R/N},即便R本身很大,当用户数目变多后R/N太小,此时网络核心也会成为限制吞吐量的因素
4. 协议层次及其服务模型
网络以分层方式组织协议和实现协议的软硬件,即协议层次
- 层间关系
某层向其上一层提供服务,即服务模型(service model);
而每层通过在该层中执行动作和直接使用下层的服务来提供服务;
- 协议层的实现
一个协议层可用软/硬/结合实现:
- 如HTTP这类应用层协议总在端系统中软件实现;运输层类似;
- 物理层与链路层中协议通常在网卡中实现;
- 网络层作为软硬件混合体通常结合实现;
第n层协议分布在网络的不同组件中,其不同部分通常在网络组件各部分中
4.1 协议栈
所有各层协议合称协议栈,因特网协议栈有5层,ISO/OSI模型有7层
- PDU(Protocol Data Unit):协议数据单元,是指对等层次之间传递的数据单位
|
因
特
网
协
议
栈 | 应用层 | 支持网络程序,是网络程序及其应用层协议存留处
- PDU: message
- FTP, SMTP, HTTP
|
| | :—-: | :—-: | —- | —- | | | 运输层 | 在程序端点间传输应用层message
- PDU: segment
- TCP, UDP
| | | | 网络层 | 将称为数据报(datagram)的网络层分组从一台主机移动到另一台
- PDU: datagram
- IP
| | | | 链路层 | 在相邻网络节点间转递数据,其上的分组为帧(frame)
- PDU: frame
- Ethernet, 802.111, PPP
| | | | 物理层 | 负责将frame中的bit运输到相邻网络元素
- PDU: bits
| | | I
S
O | 表示层 | 使通信的app可解释交换数据的含义 | | | | 会话层 | 提供数据交换和定界与同步功能,包括建立check point和恢复 | |
4.2 封装
- 封装(Encapsulation)
源主机app发出一个message,其被传输给运输层,运输层在message首部加入附加信息Ht(通常这个Ht会被接收端的运输层使用),称运输层封装了应用层message,以下每层类似,每层封装后的报文结果称为每层协议栈的PDU.
封装即是指下层对上层数据的处理
每一层,一个packet通常由两部分:首部字段+有效载荷字段(payload field),后者通常来自上一层的packet
- 拆封
如图,源主机首先传输数据给switch,后者只实现了两层:先通过physical接收bits,再通过link接受为完整的frame,再由link重设首部,确定下一个相邻的网络元素;下一个router中发生了类似的过程,因此进出router的packet,其hl,hn肯定不同
MindMap
SCU林峰老师(my计网老师)制作