计算机网络概述
网络边缘和核心
边缘
- 边缘节点:靠近用户侧,负责“接入”。
- 核心节点:位于网络中心,负责“高速转发”。
边缘节点数量庞大,直接面对用户
核心节点是网络的骨干层,是网络的心脏,负责处理海量数据的超高速转发和互联。
网络核心主要就是负责数据交换switch。
接入网络可以通过有线或者无限。
常见的通信模式
核心
数据怎么样通过网络传输?
电路交换
:为每个呼叫预留一条转悠线路:如电话网

这个线路是独享的,打电话不说话也是收钱的。通信的性能是有保障的。因为双方的带宽是独享的。
电话的网络都是电路交换网络。但是不适合计算机使用。通信之前需要建立通道。
那么这里的分片是怎么分的呢?
- 频分多路复用:交换节点,频分多路复用可以在一个频率上
一根电缆的可用频率范围是 0~100 MHz:
用户 A 使用 0~20 MHz,用户 B 使用 20~40 MHz,用户 C 使用 40~60 MHz
三个人的信号同时传输,但因为占用不同频率,所以不会互相干扰。
- 时分多路复用:节点之间不同时间传输不同的数据。每个时间片给不同的人用。
- 波分多路复用:光线有不同的波段,每个用户使用不同的波段。光纤就常用波分。
但是计算机之间的通信有突发性,如果使用线路交换,则浪费的时间片较多。即使这个呼叫没有数据传递,其所占用的片也不能够被别的呼叫使用。我们还需要维护每一个片之间的映射关系。当管理映射的节点被毁坏会产生巨大的损失。
分组交换
- 将要传送的数据分成一个个单位
- 将分组从一个路由器传到响领的路由器hop,一段段最终从源传到目标端
- 每段:采用链路的最大传输能力。
网络以分组为单位存储转发。为什么要存储下来再转发呢?
比如A和B要传输10个G的数据,那么这段时间所有内容都是A发给B的,那A就会直接独享整个带宽,直到数据发送完毕。因此要将每个数据分组。
为什么必须存? 因为线路是共享的。如果瞬间有100个包涌向同一个出口,出口只有1条线。如果不存,后面的包就会直接“撞车”丢失。存储,就是为了让数据包在“堵车”时能有个缓冲区排队,这样线路始终能被填满,利用率从电话网的~30%提升到了接近100%。
线路交换,每个节点要耽误一个bit的时间(收到发送这个bit),分组交换要耽误整个分组的存储时间(检查数据包,然后看目标地址才能发送)此外还要耽误一个排队的时间。发送和接受需要的耗时是相同的(发送对另一方来说是接受)。
但是好处是网络是共享的,按需使用。如果到达速率>链路的输出速率。分组将会排队,等待传输,如果路由器缓存用完了,分组将会被丢弃。
在网络交换存在突发性的情况下分组交换能支撑更多的主机。不用的时候其他人用。
网络核心关键功能主要是俩个
- 路由:决定分组采用的源到 目标的路径
- 转发:将分组从路由器的输入链路转发到输出链路
核心思想类似时分多路复用,但是分组交换划分时间片的方式是不固定。这种多路复用方式叫做统计多路复用。但是过渡使用会造成网络拥塞分组延时和丢失。
分组交换根据有没有连接分为俩种方式。数据报是有连接的,虚电路是无连接的。
数据报网络:源主机发给目标主机的分组携带了完整地址。这种方式被称为数据报。交换节点之间不需要维护主机之间通信的状态。但是由于路由表可能产生改变,因此每次数据交付的路径可能是不同的。
虚电路(virtual circuit):在交换节点之间建立一条虚拟的线路,每个分组按照虚电路号来进行存储转发。
接入网络和物理媒体
接入方式
modem:调制解调器。运营商希望接入更多的用户。要把所有的光缆铺到每个家庭门口投入十分巨大。
但是最开始每家每户都有电话线。这个电话线是4Khz的带宽,语音的带宽通常很窄。但是我们要通过光猫把电话信号调为网络信号。我们可以通过调整频率相位等方式在载波信号上面传输上网的数据。然后运营商那边就可以解调数据。带宽通常是6kbps。此外打电话的时候就不能上网了。
DSL:另外的一种方式也是使用调制解调的方式。还是用电话线。0-4khz用于语音通讯。4k以上,一部分用于上行,一部分用于下行。DSL的高频信号在铜线上衰减极快。离电信机房(或街边的光交接箱)越近,能用的频率就越高,带宽就越大;如果超过3-5公里,高频信号几乎衰减殆尽,速度就会直线下降。但是上下行带宽是不对称的,仍然采用调制和解调来进行。这样就可以电话的时候上网了这就是ADSL。
有线电视公司也有类似的方式。通过同轴电缆广播给电视数据,但是这个广播信号是单向的。有线电视信号线缆双向改造。FDM:在不同频段传输不同信道的数据,数字电视盒上网数据。(现在很多用户已经不订购有线电视了,听过光纤到户)
线缆网络:非对称。线缆和光纤网络将家庭用户接入到ISP。哥哥用户共享到线缆头端的接入网络。与DSL不同,DSL每个用户一个专用线路接到CO(central office)
我们可以通过光猫接入到各种不同的运营商。
家用路由器是将路由器跟无线AP组合在一起了,企业路由是路由,AP是AP。
| 功能 | 交换(Switch) | 路由(Router) |
|---|---|---|
| 连接对象 | 同一个网络里的设备 | 不同网络 |
| 看什么地址 | MAC地址 | IP地址 |
| 作用 | 找设备 | 找网络路径 |
| 例子 | 电脑连打印机 | 家庭网络连互联网 |
无线接入网络:可以通过wifi或者广域无线接入(4g,5g)。
物理媒体
物理链路:在每个传输-接受对,跨越一种物理媒体。
引导型媒体:信号沿着固体媒介被引导。同轴电缆,光纤,双绞线。
非导引型媒体:无线电
双绞线:俩根绝缘的铜线。5类:100MBPS ethernet gbps以太网。6类:10GBPS。
同轴电缆:俩跟同心的铜导线。
光缆:光脉冲,每个脉冲表示一个bit。点到点高速传输。100GBPS。低误码率:在俩个中继器之间可以有很长的距离,不收电磁噪声的干扰。
光纤 ≈ 电线里的铜芯
光缆 ≈ 包了绝缘层、护套、保护结构的完整电缆
多模光纤能够让不同光的传播路径同时在光线中传输的光纤。用于断句路高速数据通信。单模光纤适合长距离。光纤是非常优秀的通信介质。因为它是全反射的,不向外泄漏信号。
主流运营商的骨干链路都是采用光缆传输的。
无线电路是在开放空间的,受环境影响,干扰性强。现在除了wifi还有li-fi,3g,4g,5g。还有卫星通信(数百毫秒的延迟)。
internetr结构和ISP
端系统通过接入ISP(internet service providers)连接到互联网。
这个接入可以是在住宅,公司大学。接入ISP响应的必须是互联的。
如果我们俩俩连接所有网络那么需要进行N方个连接。这种方式是不可扩展的。将每个接入ISP连接到全局ISP。

竞争:如果全局的ISP是可行的业务,那么会有利可图,因此一定会有竞争者。
合作:通过ISP之间的合作可以完成业务的扩展,肯定会有互联,对等互联的结算关系。

此外每个区域还有小ISP,然后通过大ISP接入全球范围内的通信。一些内容提供商,不满足于ISP的资费,可能部署专网,把不同的数据中心连接在一起。ISP提供商出于成本,无法提供非常高质量的网络。对于谷歌这种公司,就有这样的需求,需要减少线路的跳数。

在网络的最新一些为数不多的充分连接的大范围网络

| 层级 | 核心特点 | 主要客户 | 知名实例 |
|---|---|---|---|
| Tier 1 (一级) | 互联网的骨架。拥有全球性骨干网络,通过不付费的对等互联与同级网络交换流量,理论上能抵达互联网上任意一个IP地址。 | 主要为下级ISP提供网络连接,不直接面向普通消费者。 | AT&T, Verizon, NTT, Lumen, GTT, Tata Communications 等。 |
| Tier 2 (二级) | 区域性网络。通常覆盖一个国家或地区。需要通过向 Tier 1 ISP 购买IP转接服务来访问全球互联网。 | 终端用户、企业、以及更小型的Tier 3 ISP。 | Cogent, Qwest, Savvis 等(有时也会与部分Tier 1网络对等)。 |
| Tier 3 (三级) | 本地接入网络。规模最小,通常只为特定城市或社区的最终用户提供“最后一公里”的互联网接入服务。 | 家庭、小型企业等个人和商业用户。 | 通常为本地运营商,数量众多。 |
POP:高层ISP面向客户的网络接入点,设计费用结算。一个低层ISP接入多个高层ISP。
对等接入:2个ISP对等连接,不涉及费用结算
IXP:多个对等ISP互联互通之处,不涉及费用结算。
ICP:自己部署专用网络,同时和各级ISP连接。
分组延迟丢失和吞吐量
分组延迟
分组需要等待排到队头才能被传输。这会产生延迟。除此之外还有传播延迟。
太长的分组队列是没意义的。比如几个T的队列,等待消息发送出去之后,如果需要过几个小时,用户可能就不在了。
- 节点处理延时:检查分组首部,决定将分组导向何处。
- 排队延时:再输出链路上等待传播的时间。依赖于路由器的拥塞程度。
- 传输延迟:R=链路带宽bps。L=分组长度(bits)。将分组发送到链路上的时间=L/R。
- 传播延迟:物理链路的长度。在媒体上的传播速度约等于2x10^8m/s
总延迟等于上面四者相加。每一跳都要耽误以上四点延迟。
信道容量就是在信道中传播的信号总量。
a=分组到达队列的平均速率
流量强度La/R.当流量强度大于1.比特到达队列速率超过该队列的输出速率,平均排队延迟趋向于无穷大。
ICMP(Internet Control Message Protocol,互联网控制报文协议)不负责传输也有数据。当路由器或主机发现网络通讯有问题时,可以通过ICMP告诉对方发送了什么。ICMP不是TCP、UDP。没有端口号,最常见的ping命令用的就是icmp协议。
吞吐量:在源端盒目标端之间的速率。数据量/时间单位。吞吐量存在木桶效应。
协议层次和服务模型
网络是一个非常复杂的大型系统。我们可以通过分层的方式解决这个问题。每一层向上提供服务。
本层协议是为了更好的向上层提供服务。在实现本层协议的时候,直接使用了下层协议提供的功能。
服务service:底层实体向上层实体提供它们之间的通信能力。
- 服务用户(service user)
- 服务提供者(service provider)
- 原语(primitive):上层使用下层服务的形式,高层使用底层提供的服务,以及底层向高层提供服务都是通过服务访问原语来进行交互的。
- 服务访问点(SAP service access point)上层使用下层提供的服务通过层间的接口-地点。套接字就是SAP, 上层可能有多个进行socket的应用程序,需要区分数据包分发给哪个应用程序。
面向连接的服务:俩个通信实体为通信而建立的一种结合。面向链接的通信过程:建立链接,通信,拆除连接。适合对于大数据块传输。
无连接服务:俩个对等实体在通信前不需要建立一个连接,公布预留资源;不需要通信双方都是活跃的。特点是不可卡片、可能重复、可能失序。

分层实现结构清晰,便于标示网络组件,以及描述其相互关系。但是封层导致低效。但是一般认为好处要比坏处多。
- 应用层:为人类用户或者其他应用进程提供网络应用程序,http,SMTP,HTTP,DNS
- 传输层:主机之间的数据传输,在网络层提供的端到端通信基础上,细分为进程到进程,将不可靠的通信变成可靠的通信。TCP,UDP。进程到进程的传输。
- 网络层:为数据包从源到目的选择路由。主机主机之间的通信。端到端通信,不可靠。IP,路由协议。传输单位是分组。
- 链路层:相邻网络节点之间低数据传输。2个相领节点通信,PPP协议。区分帧开头和结束,传输以帧为单位的数据。
- 物理层:在线路上传送BIT。把数据变成物理信号,接收端还原为数据。
希昂对于OSI模型,少了表示层,会话层。TCP中让应用程序自己进行这来个操作。

每次交换设备都要进行一次解封装和再封装。
各层的协议数据单元是不同的。
- 应用层:报文(message)
- 传输层:报文段(segment):TCP段,UDP数据包
- 网络层:分组packet(如果无连接方式:数据报 datagram)
- 数据链路层:帧(freame)
- 物理层:位(bit)
历史
1960年计算机网络 使用线路交换。线路建立时间过长。独享方式占用通信资源,不适合突发性很强的计算机之间的通信。
1961-1972年:早期分组交换。最早时候每个节点都是交换节点,数据源,目标节点。
1972年-1980年专用网络和互联。
ISO标准被提出,但是效率非常低。
cerf and kahn 互联网原则:定义了今天的internet体系结构。
- 极简,自治
- 尽力而为(best effort)服务模型
- 无状态路由器
- 分布控制
- 1983年TCP/IP部署,标记日。NCP划分成俩个层次TCP/IP,从而出现UDP。
- 1982:smtp e-mail协议定义
- 1983年:DNS定义,完成域名到IP转换。
- 1985年FTP协议定义
- 1988年TCP拥塞控制
1985年:ISO、OSI提出,,时机不对且过于繁琐。
互联网的特性就是赢者通吃。
1990年-2000年商业化 web,新的应用。2001网络泡沫,使得一些好公司沉淀下来。谷歌、微软、苹果、思科。
2205年-现在
50亿主机:包括手机平板宽带接入设备快速部署。电子商务,网络社交。