约 3280 个字 18 张图片 预计阅读时间 16 分钟
Chap 1 | Introduction
章节启示录
本章节是计算机网络的第一章。
1.网络基本介绍¶
1.1 初识网络¶
网络的基本功能:信息传递
- 服务用什么区分?
功能、延迟、带宽、丢失率
端节点数目、服务接口
可靠性、实时/非实时等外特性
1.2 网络实例¶
- 网络分类(按地域规模)
个域网PAN(Personal Area Network):能在便携式消费电器与通信设备之间进行短距离通信的网络。
局域网LAN(Local Area Network):局部地区形成的区域网络,如企业网络。
城域网MAN(Metropolitan Area Network):范围覆盖一个城市的网络。
广域网WAN(Wide Area Network):覆盖很大地理区域,乃至覆盖地区和国家。
网络的网络:Internet 与 internet
- 网络边缘
- 端系统:位于互联网边缘与互联网相连的计算机和其他设备
- 端系统由各类主机(host)构成:桌面计算机、移动计算机、服务器、其他智能终端设备
- 网络核心
- 由互联端系统的分组交换设备和通信链路构成的网状网络,目标是将海量的端系统互联起来
- 分组交换:路由器、链路层交换机
- 主机将数据分成分组,发送到网络
- 网络将数据分组从一个路由器转发到下一个路由器,通过从源到目标的路径上的链路,逐跳传输抵达目的地
- 通信链路:光纤、铜缆、无线电、激光链路
- 分组交换:路由器、链路层交换机
- 网络核心的两大功能:
- 路由:全局操作:确定数据分组从源到目标所使用的路径。需要路由协议和路由算法,产生路由表。
- 转发:本地操作:路由器或交换机将接收到的数据分组转发出去(即移动到该设备的某个输出接口)
确定转发出去的接口/链路:根据从“入接口”收到分组头中的目的地址,查找本地路由表,确定“出接口”
- 由互联端系统的分组交换设备和通信链路构成的网状网络,目标是将海量的端系统互联起来
路由器转发模型¶
-
电路交换(circuit switching):有保障,灵活性不强,资源利用率低
- 电路交换通常采用面向连接方式,先呼叫建立连接,实现端到端的资源预留
- 预留的资源包括:链路带宽资源、交换机的交换能力
- 电路交换连接建立后,物理通路被通信双方独占,资源专用,即使空闲也不与其他连接共享
- 由于建立连接并预留资源,因此传输性能好;但如果传输中发生设备故障,则传输被中断
-
报文交换
- 存储&转发:路由器需要接收到完整的整个数据报文后,才能开始向下一跳发送
- 存储转发带来报文的传输延迟:将L位数据报文,以R bps的速率,发送到链路中: 需要L/R秒
-
分组交换(packet switching):时延小,灵活性高
- 将大报文拆分成多个小分组
- 通信双方以分组为单位、使用存储-转发机制,实现数据交互的通信方式
- 以分组作为数据传输单元
- 每个分组的首部都含有地址(目的地址和源地址)等控制信息
- 每个分组在互联网中独立地选择传输路径
- 支持灵活的统计多路复用
资源利用率很高,在每一跳决定下一跳去哪里,每一个包都是独立的,路径由自己决定(每次都选尽可能快的),但会导致一个问题,包之间到达的顺序可能与发送端不同,接收端需要做额外的处理。
1.3 协议与分层结构¶
协议设计目的¶
要考虑的要素:可靠性、资源分配、拥塞问题、自适应性、安全问题
-
网络协议
- 为进行网络中的数据交换而建立的规则、标准或约定,即网络协(network protocol)
- 通信双方需要共同遵守,互相理解
-
三要素
- 语法:规定传输数据的格式(如何讲)
- 语义:规定所要完成的功能(讲什么)
- 时序:规定各种操作的顺序(双方讲话的顺序)
协议分层结构¶
- 层次栈 (a stack of layers)
为降低网络设计的复杂性,网络使用层次结构的协议栈,每一层都使用其下一层所提供的服务,并为上层提供自己的服务。 - 对等实体 (peers)
不同机器上构成相应层次的实体成为对等实体 - 接口 (interface) 在每一对相邻层次之间的是接口;接口定义了下层向上层提供哪些服务原语。
-
网络体系结构 (network architecture) 层和协议的集合为网络体系结构,一个特定的系统所使用的一组协议,即每层的协议,称为协议栈。
-
发送端:层层封装;接收端:层层解封装
不同层对应协议数据单元(PDU Protocol Data Unit)
服务原语¶
- 面向连接:按照电话系统模型建立的(一个常见的例子)
面向连接的服务每个“请求”或“响应”后,都在对方产生一个“指示”或“确认”动作。- 六个核心服务原语
- 六个核心服务原语
- 无连接:按照邮政系统模型建立的(一个常见的例子)
邮件携带了完整的目标地址,传输过程不需要应答。
服务与协议的关系¶
协议是“水平”的,服务是“垂直”的
实体使用协议来实现其定义的服务
上层实体通过接口使用下层实体的服务
思考题
- A protocol is an agreement between the __ on how communication is to proceed.
A. network layers on the same machine
B. network nodes
C. adjacent entities
D. peers on different nodes
选D,因为协议是水平的
1.4 参考模型¶
OSI参考模型¶
OSI 7层模型
- 物理层(Physical Layer):定义如何在信道上传输0、1:Bits on the wire
- 数据链路层(Data Link Layer):实现相邻(Neighboring)网络实体间的数据传输。成帧(Framing):从物理层的比特流中提取出完整的帧。
- 物理地址(MAC address):48位,理论上唯一网络标识,烧录在网卡,不便更改。
- 流量控制,避免“淹没”(overwhelming):当快速的发送端遇上慢速的接收端,接收端缓存溢出。
- 共享信道上的访问控制(MAC):同一个信道,同时传输信号。例如:同一间教室内,多人同时发言,需要纪律来控制
- 网络层(Network Layer):将数据包跨越网络从源设备发送到目的设备(host to host)。
- 路由(Routing):在网络中选取从源端到目的端转发路径,常常会根据网络可达性动态选取最佳路径,也可以使用静态路由。
- 服务质量(QoS)控制:处理网络拥塞、负载均衡、准入控制、保障延迟。
思考题
为何在唯一的MAC地址之外,还需要唯一的IP地址?
MAC是为了标识设备(网卡),只考虑了唯一性,IP地址考虑的是全球范围内的寻址。路由器不可能存下所有MAC的地址,而且网卡时常会存在交易,不可能每次交易都更新路由器。简单来说,MAC地址更像是身份证,而不是一个用于寻址的地址。 - 传输层(Transport Layer):将数据从源端口发送到目的端口(进程到进程)
- 网络层的控制主要面向运营商,传输层为终端用户提供端到端的数据传输控制
- 可靠传输:可靠的端到端数据传输,适合于对通信质量有要求的应用场景,如文件传输等。
- 不可靠传输:更快捷、更轻量的端到端数据传输,适合于对通信质量要求不高,对通信响应速度要求高的应用场景,如语音对话、视频会议等。
- 会话层(Session Layer)
- 表示层(Presentation Layer)
- 应用层(Application Layer)
TCP/IP参考模型¶
先有TCP/IP协议栈,然后有TCP/IP参考模型。参考模型只是用来描述协议栈的。
TCP/IP参考模型:ARPANET所采用
以其中最主要的两个协议TCP/IP命名,Vint Cerf和Bob Kahn于1974年提出。
- 链路层(Link Layer)
描述了为满足无连接的互联网络层需求,链路必须具备的功能。 - 互联网层(Internet Layer)
允许主机将数据包注入网络,让这些数据包独立的传输至目的地,并定义了数据包格式和协议(IPv4协议和IPv6协议) - 传输层(Transport Layer)
允许源主机与目标主机上的对等实体,进行端到端的数据传输:TCP,UDP - 应用层(Application Layer)
传输层之上的所有高层协议:DNS、HTTP、FTP、SMTP...
摒弃电话系统中“笨终端&聪明网络”的设计思路。
端对端原则:采用聪明终端&简单网络,由端系统负责丢失恢复等,简单的网络大大提升了可扩展性。实现了建立在简单的、不可靠部件上的可靠系统。
OSI模型TCCP/IP模型对比¶
-
基本设计思想:通用性与实用性
- OSI:先有模型后设计协议,不局限于特定协议,明确了服务、协议、接口等概念,更具通用性。
- TCP/IP模型:仅仅是对已有协议的描述。
-
无连接与面向连接
- OSI模型网络层能够支持无连接和面向连接通信
- TCP/IP模型的网络层仅支持无连接通信(IP)
1.5 计算机网络度量单位¶
- 比特率(bit rate):主机在数字信道上传送数据的速率,也称数据率。
比特率的单位是b/s(比特每秒),也可以写为bps,(bit per second),或 kbit/s、Mbit/s、 Gbit/s等 - 带宽
网络中某通道传送数据的能力,即单位时间内网络中的某信道所能通过的“最高数据率”。
单位是 bit/s,即 “比特每秒” -
包转发率(PPS)
全称是Packet Per Second(包/秒),表示交换机或路由器等网络设备以包为单位的转发速率
线速转发(一种状态):交换机端口在满负载的情况下,对帧进行转发时能够达到该端口线路的最高速度思考题
- 在交换机上:大包和小包,哪个更容易实现线速?
小包容易实现,因为单位是包/秒。 - 但为什么实际中存在很多大包呢?
小包的劣势:包越小,Header占比越高,有效信息占比低。
- 时延(Delay)
时延 (delay 或 latency) 是指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需的时间,也称为延迟 - 传输时延(transmission delay):数据从结点进入到传输媒体所需要的时间,传输时延又称为发送时延
- 传播时延(propagation delay):电磁波在信道中需要传播一定距离而花费的时间
- 处理时延(processing delay):主机或路由器在收到分组时,为处理分组(例如分析首部、提取数据、差错检验或查找路由)所花费的时间
- 排队时延(queueing delay):分组在路由器输入输出队列中排队等待处理所经历的时延
- 在交换机上:大包和小包,哪个更容易实现线速?
-
往返时延RTT(Round-Trip Time)
从发送方发送数据开始,到发送方收到来自接收方的确认,经历的总时间
可用于判断网络的通断性、测试网络时延、计算数据包丢失率等 -
时延带宽积
时延带宽积 = 传播时延 × 带宽,即按比特计数的链路长度
若发送端连续发送数据,则在发送的第一个bit即将达到终点时,发送端就已经发送了时延带宽积个bit ,而这些bit都在链路上向前移动
-
吞吐量 (throughput)
单位时间内通过某个网络(或信道、接口)的数据量,单位是 b/s - 有效吞吐量(goodput)
单位时间内,目的地正确接收到的有用信息的数目(以 bit 为单位) - 利用率
信道利用率指出某信道有百分之几的时间是被利用的
网络利用率则是全网络的信道利用率的加权平均值 - 丢包率
所丢失数据包的数量占所发送数据包的比率 - 时延抖动
变化的时延称为抖动(Jitter),类似于方差,衡量稳定性 - 延迟丢包
在多媒体应用中,由于数据包延迟到达,在接收端需要丢弃失去使用价值的包
1.6 网络安全与威胁¶
- 恶意软件:
- 病毒
- 蠕虫
- 拒绝服务攻击
- 僵尸网络
- 数据包嗅探
- IP欺骗