Computer Network Notes 1:the basic
课程来源
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) 数据报 (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 之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系
业务细分 (全球接入和区域接入),区域网络将出现,用于将接入 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 和其它客户网络相连
second.png:更小些的 (通常是局域性的) ISP
- 与一个或多个第一层 ISPs 相连,也可能于其它第二层 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) 之间在相互通信的过程中;需要遵循的规则的集合;水平
联系
- 本层协议的实现要靠下层提供的服务来实现
- 本层实体通过协议为上层提供更高级的服务
数据单元
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 协议栈中没有以上两层,但依靠应用层来实现以上两层实现的功能
封装和解封装