第一章 计算机网络概述
1.1 什么是Internet
从具体构成角度:
因特网是一个世界范围的计算机网络,即它是互联了遍及全世界的数以亿计的计算设备的网络。
-
节点
- 主机及其上运行的应用程序
- 主机 = 端系统(end system):PC、服务器、手机等接入互联网的各式设备。端系统通过通信链路和分组交换机连接起来。
- 运行的网络应用程序
- 路由器、交换机等网络交换设备
- 主机及其上运行的应用程序
-
边:通信链路
- 接入网链路:主机连接到互联网的链路
- 主干链路:路由器间的链路
- 通信链路:
- 光纤、同轴电缆、无线电、卫星等
- 传输速率:带宽(bps)
- 分组交换设备:转发分组(packets)
- 路由器和交换机
-
协议:通信协议
协议控制发送、接收消息。
协议定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输或接收或其他事件方面所采取的动作。
- 如TCP、IP、HTTP、FTP等协议
从服务角度:
为应用程序提供服务的基础设施。
- 使用通信设施进行通信的分布式应用
- web、email、分布式游戏、电子商务、社交网络等
- 通信基础设施为apps提供编程接口(通信服务)
- 将发送和接收数据的apps与互联网连接起来
- 为app应用提供服务选择
- 无连接不可靠服务
- 面向连接的可靠服务
ISP: internet sercice provider ISP 因特网服务提供商,端系统通过ISP接入因特网。
1.2 网络结构
- 网络边缘:
- 主机
- 应用程序(客户端和服务器)
- 网络核心:
- 互联的路由器
- 网络的网络
- 接入网、物理媒体:
- 有线或无线通信链路
网络边缘:
-
端系统(主机):
- 运行应用程序
- Web、email
- 在“网络的边缘”
-
客户、服务器模式
- 客户端向服务器请求、接收服务
- 如web浏览器/服务器、email客户端/服务器
-
网络边缘:采用网络设施的面向连接服务:
- 目标:端系统之间传输数据
- 握手:在数据传输之前做好准备
- 两通信主机之间为连接建立状态
- TCP-传输控制协议
- 可靠的、按序传输数据
- 序列号确认
- 超时重传
- 流量控制:
- 发送方不会淹没接收方
- 拥塞控制:
- 当网络拥塞时,发送方降低发送速率。
- 可靠的、按序传输数据
-
网络边缘:采用基础设施的无连接服务
- 目标:端系统之间传输数据
- UDP:用户数据报协议
- 无连接
- 不可靠数据传输
- 无流量控制
- 无拥塞控制
实际应用:
- TCP:
- HTTP(web)
- FTP(文件传输)
- 远程登录
- email系统
- UDP:
- 流媒体
- 远程会议
- 网络电话
接入网:
将端系统连接到边缘路由器的物理链路。
常见接入技术:
- 利用电话线的拨号调制解调器(dial-up modem)技术
- 利用电话线的数字用户线DSL(digital subscriber line)技术
- 电缆和HFC(Hybrid Fiber Coax)混合光纤同轴技术
- 光纤到户(FTTH, fiber to the home)
- 以太网(Ethernet)
- WIFI
- 移动网络(4G、5G)
物理媒介:
- 导引型媒体(guided media):电波随着固体媒体前行,如光缆、双绞铜线和同轴电缆。
- 非导引型媒体(unguided media):电波在空气或外层空间中传播:例如在无线局域网或数字卫星频道里。
网络核心
-
网络核心:路由器的网状网络
-
基本问题:数据怎样通过网络进行传输?
-
电路交换:网络必须在发送发和接受方之间的交换机需要为该连接维护为连接状态。该连接用电话的术语被称为一条电路。
- 独享资源,一旦建立就能够保持性能。如果没有数据发送,该资源就会被浪费。
- 电路交换的复用技术:指的是如何复用链路服务于多个连接,构建电路的技术。主要有:
- 频分复用(Frequency-Division Multiplexing, FDM)
- 时分复用(Time-Division Multiplexing, TDM)
注意:电路交换不适合计算机之间的通信。
缺点:
- 连接建立时间长
- 计算机之间通信有突发性,用线路交换浪费片较多
-
分组交换:将要传输的数据分成一个个单位:分组。在源和目的之间,每个分组通过通信链路和分组交换机
(packet switch)。交换器有两类:路由器和**链路层交换机。**每段:采用链路的最大传输能力(带宽)。资源共享,按需使用:
-
存储-转发:分组每次移动一跳(hop)
- 在转发前,节点必须收到整个分组
- 延迟要比线路交换大(牺牲时间换取资源共享)
- 排队时间
-
排队延迟和丢失
如果数据到达速率 > 链路的输出速率:
- 排队延时:在输出缓存等待的时延;除此之外,还有之前提到的存储转发时延。
- 分组丢失(丢包):到达的分组可能发现缓存已经被其他等待的分组完全充满了,这种情况下就会出现丢包。
-
分组丢失和延时
- 分组到达链路的速率超过链路输出的能力会造成延时
- 分组等待排队,等待传输,当可写缓冲区存满时,新来分组将会被抛弃。
- 延时类型:
- 节点处理延时
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 传输、延时:
- R=链路带宽(bps)
- L=分组长度(bits)
- 将分组发送到链路上的时间 L/R
- 存储转发延时
- 传播延时:
- d=物理链路长度
- s=在媒体上传播速度
- 传播延时=d/s
- 节点处理延时
- 分组丢失:
- 链路的队列缓冲区容量有限
- 当分组到达一个满的队列时,该分组将会丢失
网络核心的关键功能:
- 路由:决定分组采用的源到目标的路径(路由选择算法)
- 转发:将分组从路由器的输入链路转移到输出链路。
分组交换 VS 电路交换:
- 同样的网络资源,分组交换允许更多用户使用网络。
- 分组交换适用于突发式数据传输
- 资源共享
- 简单,不必建立呼叫
- 分组交换过度使用会造成网络拥塞:分组延时和丢失
- 对可靠的数据传输需要协议来进行约束:拥塞控制协议
分组交换网络:存储-转发
- 分组交换:分组的存储转发一段一段从源端传到目标端,按照有无网络层连接,分成:
- 数据报网络:
- 分组的目标地址决定下一跳
- 在不同的阶段,路由可以改变
- 虚电路网络:通过信令
- 每个分组都带标签(虚电路标识VCID),标签决定下一跳
- 在呼叫建立时决定路径,在整个呼叫中路径保持不变
- 路由器维持每个呼叫的状态信息
- 数据报网络:
- 数据报工作原理:
- 在通信之前,无需建立起一个连接,有数据就传输
- 每一个分组都独立路由
- 路由器根据分组的目标地址进行路由选择
-
吞吐量
在源端和目标端之间传输的速率(数据量、单位时间)
- 瞬间吞吐量:在一个时间点的速率。
- 平均吞吐量:在一个时间段内的平均值。
网络模型
- 五层模型:
- 应用层:网络应用,提供网络应用服务。常见协议:HTTP(web),SMTP(电子邮件),FTP(两个端系统间的文件传输),域名系统(DNS)。
- 传输层:主机之间数据传输。协议:TCP/UDP。
- 网络层:为数据报从源到目的端选择路由。协议:IP协议,路由选择协议。
- 链路层:相邻网络节点间的数据传输。
- 物理层:物理层负责将帧中的一个一个比特从一个结点移动到下一个结点。
- 七层模型:应用层、表示层、会话层、传输层、网络层、链路层、物理层。
- 表示层:解释交换数据含义、压缩数据、数据加密、数据描述。
- 会话层:提供了数据交换定界和同步功能,检查点的建立和恢复方法。
各层之间通过封装与解封装连接。
1.3 网络攻击
- 病毒(virus):是一种需要某种形式的用户交互来感染用户设备的恶意软件。
- 蠕虫(worm):是一种无需任何明显用户交互就能进入设备的恶意软件。
- 拒绝服务攻击(Denial-of-Service (Dos) attack):攻击使得网络不能被合法用户所使用。分为:弱点攻击、带宽洪泛、连接洪泛。
- 分布式DoS(Distributed Dos, DDoS):攻击者控制多个源并让每个源向目标猛烈发送流量。