第一章 计算机网络概述
1.2 因特网概述
1.2.1 网络、互联网和因特网
网络(Network):网络=结点(Node)+链路(Link)
- 结点可以是计算机(电脑,服务器),网络互连设备(路由器,交换机),其他具有网络功能的设备(打印机)
- 链路可以是有线或无线
互联网(Network of networks):多个网络由路由器相连,构成更大的网络
因特网(Internet):是世界上最大的互连网络,因特网常用一朵云来表示
主机(host):连接在因特网的各种通信设备
internet和Internet的区别:
- internet是一个通用名词,泛指由多个计算机网络互联而成的网络,它们之间可以使用任意的通信协议作为通信规则
- Internet是一个专用名词,特指当前全球最大、开放的由众多网络互相连接而成的计算机网络,它们之间必须采用
TCP/IP
协议作为通信规则
1.2.2 因特网发展的三个阶段
因特网服务提供者ISP(Internet Service Provider):提供给用户IP地址的角色,每个用户通过ISP提供的IP地址使用互联网,没有IP地址不可以使用互联网。
基于ISP的三个结构互联网
层级 | 名称 | 范围 | 用户 | 说明 |
---|---|---|---|---|
第一层 | 主干网(Internet backbone) | 国际性区域范围 | 第二层ISP+少部分大公司 | 拥有告诉链路+交换设备 |
第二层 | - | 区域性/国家性范围 | 第三层ISP | - |
第三层 | 本地ISP | 本地范围 | 校园网/企业网/住宅用户/无线移动用户等 | - |
- 一个ISP可以在因特网的拓扑上增添新层次,分支。如某个用户接入因特网,那么他也可以成为一个ISP,只需要购买调制解调器/路由器
- 相隔较远的两台主机间的通信经过多个ISP
1.2.3 因特网的标准化工作
1.2.4 因特网的组成
从功能上分为两个部分
- 边缘部分:由所有连接在因特网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
- 核心部分:由大量异构型网络和连接这些网络的路由器组成。这部分是为边缘部分提供连通性和数据交换服务,确保通信和资源共享功能的实现。
1.3 三种交换方式
1.3.1 电路交换
引入:
如果电话之间两两相连,那么随着电话数量增加电话之间的线也阶乘次增长,线的数量为 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2,而设计为电话交换机线的数量为 n n n,大大减少了电话之间的线的数量。
电路交换(Circuit Switching):电话交换机接通电话的方式
补充:从通信资源的分配角度来看,交换(Switching) 就是按照某种方式动态地分配传输线路地资源
- 电路交换的三个步骤:
- 建立连接:分配通信资源
- 通话:一直占用通信资源
- 释放连接:归还通信资源
1.3.2 分组交换
- 分组交换的过程(以H6——>H2发送信息为例)
- 发送:H6主机发送一段报文(把表示信息的整段数据称为报文)给H2主机;
- 分割:较长的报文被划分成更小的等长的数据段;
- 加头:在每个数据段前加上控制信息组成的首部;
这样的信息构成分组/包,其中首部也称为包头 - 暂存+转发:分组交换机收到分组,先暂存,检查首部,查表转发;
- 去头+还原:H2主机收到分组,去掉其首部,将各数据段组合还原出原始的报文
角色 | 作用 |
---|---|
发送方 | 构造分组、发送分组 |
路由器 | 暂存分组、转发分组 |
接收方 | 接受分组、还原报文 |
【说明】以上过程只写了两种情况:
① 各分组从源到目的地有不同的路由(不同的路径)
② 分组乱序:分组从源到目的地出发顺序不一定与分组到达目的地接受顺序一致,顺序不一致的情况可能会出现分组丢失/误码/重复等特殊情况
1.3.3 报文交换
- 报文交换(Message Switching):与分组交换过程差不多,但是报文的大小不受限制
1.3.4 三种交换的对比
【说明】横坐标为时间
1.4 计网的定义与分类
1.4.1 定义
- 精确定义:暂无
- 简单定义:相互连接的,自治的计算机的集合
- 互连:计算机之间通过有线/无线的方式相互连接进行数据通信
- 自治:计算机有自己的软/硬件,可以独立运行
- 集合:至少两台及两台以上的计算机
根据定义下图是否为计算机网络?
终端机的定义:终端机即计算机显示终端,是计算机系统的输入、输出设备。(from 百度)
答:符合互连和集合,但是不符合自治,上图是运行分时系统的大型机系统
- 较好定义:计算机网络主要是由一些通用的、可编程的硬件互连而成,而这些硬件并非专门来是实现某一些特定目的。这些可编程的硬件能够用来传送多种不同类型的数据,并能够支持广泛和日益增长的应用。
- 计算机网络所连接的硬件,不限于一般的计算机,包括了智能手机等智能硬件
- 计算机网络并非专门用来传送数据,而是能够支持很多种应用。
1.4.2 分类
中央处理机之间距离很近(≤1m数量级),此时称之为多处理机系统,而非计算机网络
1.5 计网的性能指标
性能指标可以从不同的方面来度量计算机网络的性能。
1.5.1 速率
- 比特(bit):数据量单位,由0/1组成
8 bit =1 Byte(B)
1 KB=K·B = 2 10 2^{10} 210 B
1 MB=K·KB = 2 10 2^{10} 210· 2 10 2^{10} 210 B= 2 20 2^{20} 220 B
1 GB=K·MB = 2 10 2^{10} 210· 2 20 2^{20} 220 B= 2 30 2^{30} 230 B
1 TB=K·GB = 2 10 2^{10} 210· 2 30 2^{30} 230 B= 2 40 2^{40} 240 B - 速率/比特率/数据率:连接在计算机网络主机上在数字信道传送比特的速率
bit/s = b/s = bps
1 kb/s = k·b/s = 1 0 3 10^{3} 103 b/s
1 Mb/s = k·kb/s = 1 0 3 10^{3} 103 · 1 0 3 10^{3} 103 b/s = 1 0 6 10^{6} 106 b/s
1 Gb/s = k·Mb/s = 1 0 3 10^{3} 103 · 1 0 6 10^{6} 106 b/s = 1 0 9 10^{9} 109 b/s
1 Tb/s = k·Gb/s = 1 0 3 10^{3} 103 · 1 0 9 10^{9} 109 b/s = 1 0 12 10^{12} 1012 b/s
注意上述 K 和 k 并不相同,K= 2 10 2^{10} 210 ,k= 1 0 3 10^{3} 103
例题1:有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据块需要多少时间?
准确计算: 100 M B 100 M b p s = M B M b p s = 2 20 ∗ 8 b 1 0 6 b p s ≈ 8.388608 s \frac{100 MB}{100 Mbps} =\frac{MB}{Mbps} =\frac{2^{20}*8 b}{10^{6} bps}≈8.388608 s 100Mbps100MB=MbpsMB=106bps220∗8b≈8.388608s
平时估算: 100 M B 100 M b p s = B b p s = 8 b b p s = 8 s \frac{100 MB}{100 Mbps} =\frac{B}{bps}=\frac{8 b}{bps}=8s 100Mbps100MB=bpsB=bps8b=8s
1.5.2 带宽
- 带宽在模拟信号系统中的意义:信号所包含不同频率成分所占据的频率范围
单位:Hz,kHz,MHz,GHz - 带宽在计算机网络中的意义:用来表示网络的通信线路所能传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”
单位:b/s,kb/s,Mb/s,Gb/s,Tb/s - 两种定义之间的联系:一条通信线路的“频率宽度”越宽,其所传输数据的“最高数据率”越高
1.5.3 吞吐量
- 吞吐量:单位时间内通过通过某个网络的数据量
受带宽/额定速率的影响
1.5.4 时延
网络时延由三个方面组成:发送时延,传播时延,处理时延
发送时延:源主机将分组输送到传输线路上的时间
计算公式: 分组长度 b 发送速率 b p s \frac{分组长度 b }{发送速率 bps} 发送速率bps分组长度b- 发送速率由三方面决定:网卡的发送速率,信道带宽,接口速率
- 发送速率由三方面决定:网卡的发送速率,信道带宽,接口速率
传播时延:将分组输送到链路上的时间
计算公式: 信道长度 m 电磁波传播速率 m / s \frac{信道长度 m}{电磁波传播速率 m/s} 电磁波传播速率m/s信道长度m- 自由空间中电磁波传播的速率: 3 ∗ 1 0 8 m / s 3*10^{8} m/s 3∗108m/s
- 铜线中电磁波传播的速率: 2.3 ∗ 1 0 8 m / s 2.3*10^{8} m/s 2.3∗108m/s
- 光纤中电磁波传播的速率: 2 ∗ 1 0 8 m / s 2*10^{8} m/s 2∗108m/s
处理时延:分组输送到路由器上暂存和转发的时间
计算公式:由于数据流量/路由器繁忙程度的动态变化,路由器软硬件的不同等因素,无法用一个公式计算出处理时延,所以此时延一般忽略不计
Q:忽略处理时延,发送时延占主导还是传播时延占主导?
A:不确定
举例子:1)若数据块长度为100MB,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延
发送时延: 100 M B 1 M b p s = 100 ∗ 2 20 ∗ 8 b 1 0 6 b p s ≈ 838.8608 s \frac{100 MB}{1 Mbps} =\frac{100*2^{20}*8 b}{10^{6}bps}≈838.8608 s 1Mbps100MB=106bps100∗220∗8b≈838.8608s
传播时延: 1000 k m 2 ∗ 1 0 8 m / s = 1000 ∗ 1 0 3 m 2 ∗ 1 0 8 m / s = 0.005 s \frac{1000 km}{2*10^{8} m/s} =\frac{1000*10^{3}m}{2*10^{8} m/s}=0.005s 2∗108m/s1000km=2∗108m/s1000∗103m=0.005s
此时发送时延占主导
2)若数据块长度为1 B,信道带宽为1Mb/s,传送距离为1000km,计算发送时延和传播时延
发送时延: 1 B 1 M b p s = 8 b 1 0 6 b p s = 8 ∗ 1 0 − 6 s \frac{1 B}{1 Mbps} =\frac{8 b}{10^{6}bps}=8*10^{-6}s 1Mbps1B=106bps8b=8∗10−6s
传播时延: 1000 k m 2 ∗ 1 0 8 m / s = 1000 ∗ 1 0 3 m 2 ∗ 1 0 8 m / s = 0.005 s \frac{1000 km}{2*10^{8} m/s} =\frac{1000*10^{3}m}{2*10^{8} m/s}=0.005s 2∗108m/s1000km=2∗108m/s1000∗103m=0.005s
此时传播时延占主导
1.5.5 时延带宽积
时延带宽积:传播时延 ✖ 带宽
链路的时延带宽积又称为以bit为单位的链路长度
- 意义:若发送端连续发送数据,则在所发送的第一个bit即将到达终点时,发送端已经发送了时延带宽积个bit
1.5.6 往返时间
往返时间(RTT Round-Trip-Time):双向交互所用的时间
Q:如图所示一个问题
1.5.7 利用率
利用率包括两方面
- 信道利用率:某信道有百分之几的时间是被利用的
- 网络利用率:全网信道利用率加权平均
公式: D 0 D_0 D0表示网络空闲时的时延, D D D表示当前的时延, U U U表示利用率
D = D 0 1 − U D=\frac{D_0}{1-U} D=1−UD0- 当 U U U到达0.5,时延成倍增加;
- 当 U U U超过0.5,时延急剧增加;
- 当 U U U接近1,时延趋于无穷大;
若 U U U超过0.5,准备扩容,增大线路带宽; 若 U U U太低,会导致通信资源浪费,动态调整输入网络中的通信量。
1.5.8 丢包率
- 丢包率:在一定时间范围内,传输过程中 丢失分组数量 总分组数量 \frac{丢失分组数量 }{总分组数量} 总分组数量丢失分组数量
丢包率可以分为到接口丢包率,结点丢包率,链路丢包率,路劲丢包率,网络丢包率等 - 丢包率主要有两种情况
- 误码:分组在传输过程中出现误码后被结点丢弃
- 网络拥塞:分组到达一台队列已满的分组交换机时被丢弃
- 无拥塞时,路径丢包率为0
- 轻度拥塞时,路径丢包率为1%~4%
- 重度拥塞时,路径丢包率为5%~15%
- 误码:分组在传输过程中出现误码后被结点丢弃
1.6 计网体系结构
1.6.1 常见的计网体系结构
OSI
体系结构:是专家研究和提出的,但由于1)缺乏实际经验 2)复杂,效率低 3)周期长 4)层次划分的不合理等问题,实际应用中不使用该体系结构TCP/IP
体系结构:Inter公司结合实际经验给出的应用广泛的结构- 原理体系结构:是结合
OSI
体系结构和TCP/IP
体系结构的优点,给出的适用于教学的结构
- TCP/IP体系结构说明:
- 若用户主机接入因特网,必须要使用
TCP/IP
协议,而用户主机的操作系统通常都带有符合TCP/IP
体系结构的标准TCP/IP
协议族;路由器也需要带有TCP/IP
协议族,但没有运输层和网际层; - 在每一层中有各自的协议/内容
- 网络接口层:没有规定接口内容,可以是WIFI,以太网等
- 网际层:
IP
协议 - 运输层:
TCP
和UDP
协议 - 应用层:
HTTP
,SMTP
,DNS
,RTP
等
- IP协议和TCP+UDP协议的说明
IP
协议的作用:
IP over everything:向下将不同的网络接口互连
Everything over IP:向上向TCP
和UDP
协议提供网络互连服务TCP
和UDP
协议的作用:
向下:在享受IP
服务提供的网络互连服务的同时
向上:向应用层协议提供可靠的(TCP
)或不可靠的(UDP
)传输服务
- 若用户主机接入因特网,必须要使用
1.6.2 计网体系结构分层的必要性
分层的方法可以将复杂的问题拆成一个一个简单的问题,分而治之
物理层解决的问题:使用何种信号来传输比特的问题
- 用什么样的传输介质?(严格来说这个问题不属于物理层)
- 用什么样的网络接口?
- 用什么样的信号表示比特0和1?
数据链路层解决的问题:分组在一个网络/一条链路上传输的问题
- 如何标识主机?
问题描述:主机编址问题,主机的MAC地址 - 如何从信号所表示的一连串比特流中区分出地址和数据?
问题描述:B将信号发送出去,ACDE主机收到信号根据信号的地址与自身地址相对比来决定是否接收该信号,而在这个过程中怎么样识别地址 - 如何协调各主机争用总线的问题?
问题描述:B将信号发送给D,同时D将信号发送给B,出现的信号碰撞问题
- 如何标识主机?
网络层解决的问题:分组在多个网络/路由上传输的问题
- 如何标识网络中的主机?
问题描述:网络与主机共同编址的问题,IP地址,IP地址分为两个分前三段是网络地址,最后一段是主机地址 - 路由器如何选择分组+转发分组?
问题描述:由1.3中分组交换可以得知,分组可以经过不同的路径到达目的地,这就涉及到了分组怎么经过路由器,以及路由器如何将分组发送出去
- 如何标识网络中的主机?
传输层解决的问题:进程之间在网络上通信的问题
- 如何解决进程之间基于网络的通信问题?
问题描述:若服务器将信号发送给QQ进程,那么怎么确保不发送给浏览器进程呢 - 如何处理误码/丢包的情况?
- 如何解决进程之间基于网络的通信问题?
应用层解决的问题:应用进程交互来实现特定网络应用的问题