计算机网络与通信笔记(一)
考试重点
- 协议栈:五层协议的名称、功能、协议、分组名称、各种设备处理的协议
- 基础知识:时延的类型与计算
- 应用层:HTTP协议报文、HTTP协议非持续连接与持续连接、SMTP协议与衍生协议的功能
- 运输层:可靠数据传输(StopWait、GBN、SN、TCP)、TCP协议的拥塞控制、CRC校验
- 网络层数据层面:子网划分、CIDR、NAT、IP协议报文
- 网络层控制层面:路由转发、链路状态选择算法、距离向量选择算法
- 链路层:MAC地址、ARP协议、以太网协议、争用期、交换机
补充
- 运输层:TCP建立连接的过程、TCP的流量控制、TCP Tahoe TCP Reno
- 网络层:DHCP、ICMP、路由器的三种交换结构、LS、OSPF、DV、RIP、BGP协议
- 网关路由器
- 链路层:码分多址
一、计算机网络与因特网
1.1 什么是因特网
1.1.1 具体构成
硬件层面
主机/端系统:诸如桌面$PC$、$Linux$工作站、平板电脑等与因特网互联的设备
端系统也称主机$(host)$,因为其能运行应用程序;主机又可以分为客户$(client)$和服务器$(server)$
端系统通过通信链路和分组交换机连接到一起
通信链路:由不同类型的物理媒体组成,包括同轴电缆、铜线、光纤和无线电频谱
分组交换机:用于连接不同的通信链路传输数据,包括路由器和链路层交换机等
端系统通过因特网服务提供商$(ISP)$接入因特网
软件层面
- 协议$(protocol)$控制着因特网中信息的接受和发送,其主要协议统称为$TCP/IP$
- 协议定义了在两个或多个通信实体之间交换的报文的格式和顺序,以及报文发送和/或接收报文所采取的动作
1.2 网络边缘
1.2.1 接入网
基本概念
接入网:将端系统物理连接到其边缘路由器的网络
接入网的本质作用:通过各种方式使主机连接到路由器,以使得任意两个端系统间能够相互通信
边缘路由器:端系统连接到其他任何远程端系统的路径上的第一台路由器
接入方式
点对点方式
数据用户线$DSL$:通过本地电话公司获得互联网接入,本地电话公司即为其$ISP$
不对称数字用户线$ADSL$通过在不同的频段进行编码使得电话线能够同时承载数据信号与电话信号。
光纤到户$FTTH$:将光纤从本地中心局直接连接到房间,通过光猫(光调制解调器)转换光电信号,使用双绞线连接电脑
卫星:电脑连接卫星信号接收机,通过无线电波与卫星相连,卫星又通过无线电波与地面上另一接收机相连
以太网方式
- 有线以太网:端系统通过双绞线连到以太网,以太网连接至边缘路由器
- $WiFi$:端系统连到$WiFi$,$WiFi$连接至边缘路由器
广域无线接入方式
- 由电信运营商提供,如$3G$、$4G$、$5G$
1.2.2 物理媒体
- 导引型媒体
- 双绞铜线:由两根并行铜线组成,如传统电话线
- 同轴电缆:由两根同心铜线组成,如电缆
- 光纤:能够引导光脉冲,误码率低
- 非导引型媒体
- 无线电波:通过电磁频谱传递信号
1.3 网络核心
1.3.1 电路交换
特点(在线交互程序)
- 数据交换前需建立一条从发送端到接收端的物理通路
- 在数据交换的全部时间,用户始终占用端到端的固定传输信道,且只能为其所用
- 所有用户平分网络链路的传输容量,且传输速率恒定
- 交换双方可以实时进行数据交换,不会存在延迟
- 适合传送大量数据,传送分组时间远大于连接建立时间
复用方式
频分复用$FDM$
- 所有连接共用链路的频谱,每个连接专用一个频段,其宽度称为带宽
- 每条连接连续地得到部分带宽
时分复用$TDM$
- 时间被划分为固定期间的帧,每个帧被划分为固定数量的时隙
- 链路为每个连接在每个帧中指令一个时隙,这些时隙由每个连接单独使用
- 每条连接周期性地得到全部带宽
复用方式的对比
举例说明:
- 问:设所有链路速率皆为$1.536Mbps$,每条链路使用有$24$个时隙的$TDM$,建立端到端的电路需要$500$毫秒,则计算通过电路交换网络将一个$640000$比特长的文件从主机$A$传送到主机$B$需要多长时间
- 答:$(640kb)/(1.536Mbps/24)+0.5=10.5s$
缺点:
- 计算机之间的数据交换往往具有突发性和间歇性特征,而对电路交换而言,用户支付的费用则是按用户占用线路的时间来收费
- 只要在通话双方建立的通路中任何一点出了故障,就必须重新拨号建立新连接,这对紧急和重要通信很不利。
1.3.2 分组交换
特点
将要发送的报文分解成若干个小部分,称为分组
每个分组都通过通信链路和分组交换机传送,以等于该链路最大传输速率地速度通过通信链路
通过某链路发送一个$L$比特的分组,链路传输速率为$R\enspace bit/s$,则传输分组的时间为$L/R$秒
存储转发传输:交换机能够开始向输出链路传输该分组的第一个比特前,必须接收到整个分组
每个分组传输的链路可能不同,且存在冗余路由
在分组传输前不必预先确定分组的传输路径,而是在传输到某个分组交换机后根据转发表查找转发端口
网络核心中每个交换结点均为共享结点
适合传送突发数据
电路类型
- 数据报网络
- 虚电路网络(结合电路连接的优点)
- 虚电路需要建立连接,即建立虚电路链路
- 在建立连接时决定链路的路由,在整个连接过程中保持不变
- 在链路通过的每个节点,预留一定的资源
- 每个分组携带一个标识(虚电路号),根据该标识知道该从哪个虚电路传输数据
- 虚电路如果不再使用,需要释放相关的资源
与电路交换比较(在线交互程序)
在相同条件下,分组交换能够比电路交换支持更多的用户
设一条$1Mbps$的链路,每个用户需要$100kbps$,电路交换模式下仅支持$10$个用户;设分组交换下$1$个用户活跃的概率为$0.1$,在$35$个用户条件下,$11$个及以上用户同时活动的概率为$0.0004$,即$10$个及$10$个以内用户同时活跃的概率为$0.9996$,基本上与电路交换性能相当
当用户数较少时,分组交换能够获得比电路交换更好的性能
同一时刻仅有一个用户传输$1M$的数据,电路交换需要$10s$,分组交换需要$1s$
在数据量大时,分组交换的传输时延比电路交换大
通过由$n$条速率均为$R$的链路组成的路径,从源到目的地发送一个分组的时延为$d_{end-to-end}=N\frac{L}{R}$
缺点
- 分组在各结点存储转发时因要排队会造成一定的时延,当网络通信量过大时,这种时延可能会很大。
- 各分组必须携带一定的控制信息(说明信息),从而带来额外开销。
1.3.3 $ISP$网络模型
各种$ISP$互相连在一起
低级$ISP$可以连入高级$ISP$进行互通
同级$ISP$之间通过$IXP$和对等链路进行对等链接
1.4 分组交换网络的衡量
1.4.1 时延
节点总时延主要包括节点处理时延、排队时延、传输时延、传播时延
- 节点处理时延$(d_{proc})$
- 检查分组首部并决定该分组导向何处所需的时间
- 检查比特级别的差错所需的时间
- 排队时延$(d_{queue})$
- 在队列中,分组在链路上等待传输的时间,时延长度取决于先到达的正在排队的分组数量
- 传输时延$(d_{trans})$
- 将分组的所有比特推向输出链路所需的时间(在线交互程序)
- 等于分组的长度除以链路传输速率,即$L/R$,其中$R$的单位为$bps、kbps、Mbps$等
- 传播时延$(d_{prop})$
- 从输出链路的起点到目的地传播所需的时间,数据以链路的传播速率传播,取决于链路的物理媒体
- 等于两台路由器间的距离除以链路传播速率,即$d/s$
- 关于传输时延和传播时延(在线交互程序,在线交互程序)
总传输时延$d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}$
1.4.2 丢包
排队时延分析(在线交互程序)
设链路传输速率为$R\enspace bps$,分组大小为$L\enspace bit/pkt$,分组到达队列的平均速率$a\enspace pkt/s$
则比特到达队列的平均速率为$La\enspace bps$,流量强度为$La/R$
$La/R\sim0$:平均排队时延很小,甚至为0
$La/R < 1$:时延较小,且会随时间推延而变小
$La/R = 1$:时延不会变化,具体数值取决于当时队列长度
$La/R > 1$: 比特到达队列的平均速率远超过从队列传输出去的速率,队列将无限增加,排队时延趋于$\infty$,用户将难以接受
丢包
- 当队列已满时,分组将会被路由器丢弃,分组即会丢失
- 丢失的分组已经传输到网络核心,但是绝不会从网络发送到目的地
在$Windows$操作系统使用$tracert$命令、在$Linux$和$Mac$操作系统使用$traceroute$命令以测试端到端时延
1.4.3 吞吐量
- P2P系统
- 服务器$\Longrightarrow$路由器$\Longrightarrow$客户端
- 使用$R_s$表示服务器与路由器之间的链路速率,$R_c$表示路由器与客户端之间的链路速率
- 服务器不能以快于$R_s$的速率向链路发送比特,路由器也不能以大于$R_c$的速率发送比特
- 当$R_s>R_c$时,路由器端将会出现比特等待队列,当$R_s<R_c$时,数据将流畅地传输到客户端
- 其吞吐量被定义为$min{R_c,R_s}$
- 服务器$\Longrightarrow$路由器1$\Longrightarrow$路由器2$\Longrightarrow\cdots\Longrightarrow$路由器$N\Longrightarrow$客户端
- 吞吐量为$min{R_1,R_2,\cdots,R_N}$
- 服务器$\Longrightarrow$路由器$\Longrightarrow$客户端
- 当网络核心的链路速率远大于接入网时,吞吐量的主要限制因素便为接入网
- 瓶颈链路:在端到端路径上限制了端到端平均吞吐量的链路(在线交互程序)
1.5 协议层次及其服务模型
1.5.1 协议分层
基本概念
实体是任何可以发送和接收信息的硬件和软件进程。通常是一个特定的软件模块
不同机器上包含对应层的实体称为对等体,如客户端的运输层对应服务端的运输层
服务指为保证上层对等体之间能互相通信,下层向上层提供的功能
接口位于每对相邻层之间,定义了下层向上层提供的原语操作和服务
协议数据单元$(PDU)$是对等层次上传送数据的单位
服务数据单元$(SDU)$是层与层之间交换数据的单位
网络体系结构是层和协议的集合
协议栈指一个特定的系统所使用的一系列协议(每层一组协议)
因特网的五层结构(在线交互程序)
层次 | 功能 | 协议 | 分组名称 |
---|---|---|---|
应用层 | 直接为用户的网络应用程序提供服务 | HTTP、SMTP、FTP、DNS | 报文 |
表示层 | 在OSI模型中,统一表示数据的含义 | - | - |
会话层 | 在OSI模型中,数据交换的定界和同步 | - | - |
运输层 | 在不同主机的进程间数据传送 | TCP、UDP | 报文段 |
网络层 | 在不同主机间数据传送;选择合适的路由传输运输层分组 | 网际协议IP,路由协议 | 数据报 |
链路层 | 网络相邻结点间数据传送 | PPP、以太网 | 帧 |
物理层 | 在线路上传输比特流 | - | - |