1.计算机网络与因特网

参考《计算机网络自顶向下方法》

1.1基础概念

介绍网络的基本构成与一些专业术语

1.1.1-网络构成

因特网是一个世界范围的计算机网络。我们将接入因特网的设备称为主机(host)或者端系统(end system),因为他们处于网络边缘。

每个主机通过通信链路(communication link)分组交换机(packet switch)连接在一起。

通信链路由各种物理媒体组成,同轴电缆、铜线、光纤、无线电频谱。当主机发送数据时,会将数据拆成段并为每段加工一些信息成为信息包,我们称为分组(packet),到达目的主机再重组。

分组交换机从通信链路接收分组,从另一条链路发送分组。比较著名的交换机类型是路由器(router)链路层交换机(link-layer switch),链路交换机通常用于接入,路由器通常在网络核心。一个分组将经历一系列网络路径到达目的主机。

主机通过因特网服务提供商(Internet Service Provider,ISP)接入因特网,因为主机之间需要互联,所以ISP之间也会通过国家、国际的ISP连接。

主机、交换机等其他网络设备都要遵循一系列协议,用来控制接收和发送,如TCP/IP。协议的标准由许多组织规定,如因特网标准由IETE研发,IEEE 802制定了无线wifi的标准。

1.1.2-服务

主机上的软件如何与目标主机的软件通信呢?每个主机都提供了一套因特网API,使用这些API写的软件就可以与其他主机上的软件进行通信。

1.1.3-协议

使用人类之间交流来理解计算机协议,比如小明想小红现在几点了,首先她们都要有时间的概念,其次她们能听懂各自说的话,才能够正常交流。

网络协议定义了多个通信实体之间的交换的报文(数据块)格式和次序,以及发送/接收或其他事件采取的动作

1.2-网络边缘

边缘指的就是与互联网相连的计算机,他们处于因特网的边缘,所以被称为端系统。端系统=主机

主机里有各种应用程序,主机再细分为客户(client)服务器(server),服务器相当于性能强大的机器。

1.2.1-接入网

主要指边缘路由器(edge router),主机网络路径上的第一台路由器

家庭接入

1.DSL

住宅可以从提供本地电话接入的电话公司获取数字用户线(Digital Subscriber Line)因特网接入,家庭DSL调制解调器得到数字数据并转化为高频音,中心局的DSLAM接收模拟信号后转化为数字数据。

当上行和下行速率不一样时叫非对称DSL

DSL

2.电缆

从提供有线电视的公司可以获得电缆因特网接入(cabl internet access),通过光缆连接电缆头端到光纤节点,再使用同轴电缆连接到家家户户,也被称为混合光纤同轴(Hybrid Fiber Coax,HFC)。

类似于DSL modem,电缆也需要电缆调制解调器(cable modem),而电缆调制解调器终端系统(Cable Modem Termination System,CMTS)则和DSLAM的功能类似。Modem将HFC划分了上行和下行信道,下行的传输速率被通常比上行高很多。

3.FTTH

光纤到户(Fiber To The Home)又分为主动光纤网络(Active Optical Network)和被动光纤网络(Passive Optical Network)。

PON结构如下,ONT(Optical Nerwork Terminator)连接到分配器,OLT(Optical Line Terminator)可以在光信号和电信号之间转换。

FTTH有着速率高的优点(当然更贵)。

在无法提供DSL、线缆、FTTH的地方,使用卫星链路与因特网相连。

企业接入:以太网、WIFI

实际上越来越多的家庭和校园都使用了局域网技术

广域无线接入:3G、LTF

1.2.2-物理媒体

1.双绞铜线

由两根隔离的铜线组成,每根大约1mm粗,以规则的螺旋形式排列,可以减少电气干扰,通常使用许多双绞线捆扎成一根电缆,覆上保护层,就是一条通信链路。而无屏蔽双绞线(Unshielded Twisted Pair)则用在建筑物内。传输速率在10Mbps与10Gbps之间

2.同轴电缆

使用两个铜导体组成同心的电缆,通常用于电视系统,速率通常在几十Mbps

3.光纤

光纤有着细而柔软的,能够引起光脉冲的身体,每个脉冲代表1bit,速率可以高达100Gbps。信号不易被干扰、衰弱,窃听难。

4.陆地无线电信道

包含电磁频谱的信号,信号能穿墙、距离远,但很依赖环境

5.卫星无线电信道

通信中常使用同步卫星和近地卫星

1.3-网络核心

1.3.1-分组交换

从源主机发送一个文件(报文message)时,需要将它划分成小的数据块,称为分组(packet)。该文件(报文)在传输过程中,分组(数据包)需要经过通信链路和分组交换机(packet switch)

  1. 存储-转发传输

指交换机必须接收完整个分组才能向下一条链路传输。

计算发送数据时端到端的延迟(只考虑传输延迟)

假设源与目标之间有着$N$条链路(N-1交换机),分组长度$L$(bit),链路速率$R$(bps),需要传输$P$个分组。

分析:

当时间处于$N(L/R)$时,第一个包到达,$N(L/R)+(L/R)$时,第二个包到达,以此类推,当处于$N(L/R)+(P-1)(L/R)$时,全部到达,所以有公式
$$
d_{end-end}=N*(L/R)+(P-1)(L/R)
$$

  1. 排队延迟与丢包

因为需要存储,所以分组交换机有个输出缓存(buffer),用来决定该分组该发往哪条链路。当分组交换机正在发送其他分组时,后面来的分组就必须等待,等待的这个时间就叫排队延迟(queue delay)

这个延迟的特点就是随机性变化,主要取决于网络的拥塞程度。此外,因为缓存是有限的,还会出现丢包(packet lost)

  1. 转发表和路由选择协议

分组头部包含了目的地的IP,而每台路由器有一个转发表(forwarding table),可以将IP映射成输出链路,通常都会选择最近的路径进行传输

1.3.2-电路交换

类似于通话,电路交换会先建立一条连接,在连接时预留了恒定的传输速率,所以发送方可以以恒定额速率向接收方传送数据。

为了扩大一条链路的用户,电路交换使用了频分复用FDM和时分复用TDM(原理我已经在其他笔记写明)

1.3.3-两者对比

对于它们两个的区别可以通过一个例子说明

假设有多个用户共享一条1Mbps链路,每个用户要么以100kbps的恒定速率产生数据,要么不产生数据,假如只用10%的用户活跃。

  • 采用电路交换,则该链路仅支持10(1Mbps/1kbps)个并发(同时工作)的用户
  • 使用分组交换,活跃率0.1,假如有35个用户,有11个以上的并发用户概率是0.0004(使用了二项式与中心极限定理),当有10个并发用户时,与电路交换基本一样。当超过10个时,输出队列变长,即使支持多个用户,性能不变(但概率是极小的),这种情况和电路的性能一样。

但是如果用户低于10个,假定某一个用户(其他人休息)产生了1000个1000bit的分组,在使用电路交换时,依旧使用100kbps的速率(其他频段、时隙空闲着),需要10s;而使用分组交换,则可以使用这条链路的最大速率即1Mbps,只需要1s。

总的来说分组的优势是效率,电路的优势是稳定

1.4-分组

了解分组的时延、丢包、和吞吐量

1.4.1-时延

也就是数据从源出发,到达目的地的时间。时延又分为结点处理时延(nodal processing delay)、排队时延(queuing delay)、传输时延(transmission delay)、传播延迟(propagation delay)

  • 处理时延:路由检查分组和决定发送目标
  • 排队时延:指在流量大时分组在路由停留的时间
  • 传输时延:指源将分组送到链路上的时间
  • 传播时延:指在链路上传播的时间(与距离和光速有关)

总时延:
$$
d_{nodal}=d_{proc}+d_{queue}+d_{trans}+d_{prop}
$$

1.4.2-排队时延和丢包

值得研究的是排队时延,它与主要与流量的速率、链路的传输速率有关。

假设$a$表示分组到达速率(pkt/s),$R$是传输速率,每个分组有$L$ bit。

则有$La/R$代表路由的流量强度

  • >1代表到达速率大于传输速率,此时排队时延将接近无穷大,因为发送慢

丢包

当排队的队伍满了(缓存满了),后面到达的分组就没有位置排队,造成分组丢失

1.4.3-端到端的时延

假设端与端之间存在了n-1的路由器(n条链路),这里不考虑排队,太复杂
$$
d_{end-end}=N(d_{proc}+d_{trans}+d_{prop})
$$
Traceroute工具

可以对输入的地址发送多个分组,然后报告三次往返时间(*代表丢包)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# manu @ MY in ~ [15:00:52] C:2
$ traceroute yangchaohe.com
traceroute to yangchaohe.com (185.199.109.153), 30 hops max, 60 byte packets
1 TianYi.Home (192.168.1.1) 1.918 ms 2.114 ms 2.373 ms
2 100.64.0.1 (100.64.0.1) 25.693 ms 25.683 ms 26.056 ms
3 61.159.144.33 (61.159.144.33) 6.670 ms 6.654 ms 6.619 ms
4 61.159.144.65 (61.159.144.65) 14.496 ms 15.063 ms 15.043 ms
5 202.97.69.93 (202.97.69.93) 35.400 ms 35.331 ms 35.339 ms
6 202.97.94.138 (202.97.94.138) 32.900 ms 36.775 ms 36.533 ms
7 202.97.12.37 (202.97.12.37) 47.054 ms * 202.97.12.45 (202.97.12.45) 36.031 ms
8 xe-0-0-6.r27.tokyjp05.jp.bb.gin.ntt.net (129.250.66.9) 151.965 ms 151.439 ms 150.848 ms
9 ae-2.r31.tokyjp05.jp.bb.gin.ntt.net (129.250.2.155) 157.396 ms ae-1.r30.tokyjp05.jp.bb.gin.ntt.net (129.250.2.157) 151.674 ms *
10 ae-3.r01.tokyjp08.jp.bb.gin.ntt.net (129.250.6.133) 152.397 ms 152.126 ms 152.090 ms
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *

除了指令还有网站可以测试http://www.traceroute.org

1.4.4-吞吐量

就是网速,有平均吞吐量和瞬时吞吐量

下面是书上深入介绍吞吐量的例子

因为$R_{s}$与$R_{c}$的速率不一样,所以吞吐量=$min{R_{c},R_{s}}$,因为因特网的带宽很大,通常只考虑接入速率

1.5-区分各层数据单位

摘自百度百科:协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。 协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。
说白了,pdu就是某协议发送数据的基本单位,各协议有各自的格式。实际使用中其实很多人其实不太分这么细,统一称作数据包。

作者

manu

发布于

2020-05-06

更新于

2023-01-06

许可协议


:D 一言句子获取中...