00 互联网
网络的功能:联通性;共享。网络(Network)由结点(Node)和连接结点的链路(Link)组成。
互联网(Internet)是指“网络的网络”(Network of networks),连接在Internet上的计算机都称为主机(Host)。
网络连接计算机,互联网连接网络。
0-1 组成部分
0-1-1 ISP
因特网服务提供者(Internet Service Provider, ISP)
0-1-2 WWW
万维网 World Wide Web
因特网的标准化工作:RFC文档,Request For Comments. 包含了关于Internet的几乎所有重要的文字资料。
0-1-3 拓扑结构
边缘部分是用户直接使用(通信和资源共享),核心部分由网络和连接它们的路由器组成。
0-2 通信方式
网络边缘端系统中运行程序的通讯。
0-2-1 C/S
0-2-2 P2P
Peer to Peer. 对等连接。e.g. 迅雷。
两主机通讯不区分服务请求方和提供方,双方都可以下载对方存储在硬盘中的共享文档。
0-3 核心部分
在核心部分起特殊作用的是路由器(Router),是实现分组交换(Packet Switching)的关键构件。
0-4 发展过程
几种不同类别的网络
- WAN | 广域网 Wide Area Network
- LAN | 局域网 Local Area Network
- MAN | 城域网 Metropolitan Area Network
- PAN | 个人区域网 Personal Area Network
0-5 网络协议
Network Protocol. 为进行网络中数据交换而建立的规则、标准或约定。
0-5-1 构成要素
- 语法 | 数据/控制信息的 结构或格式
- 语义 | 发出何种控制信息 完成何种动作/响应
- 同步 | 事件实现顺序
0-5-2 划分层次
各层次之间独立;灵活性好;结构上可分割;易于实现和维护;促进标准化工作。
① 五层
物理层;数据链路层;网络层;运输层;应用层。
② 七层
OSI七层网络协议
0-5-3 TCP/IP体系结构
TCP/IP协议簇
Everything Over IP
IP Over Everything
01 物理层
主要任务:确定与传输媒体的接口的一些特性。
- 机械特性 | 接线器的形状、尺寸、引线数目、排列等
- 电气特性 | 接口电缆各条线上出现电压的范围
- 功能特性 | 指明某条线上某一电平的电压表示意义
- 过程特性 | 指明不同功能各种可能事件出现顺序
1-1 数据通信系统
单向通信 | 只有一个方向的通信,没有反方向
双向交替通信 | 双向不能同时收发
双向同时通信 | 双向可以同时收发
1-1-1 调制
Modulation.
基带信号包含较多低频/直流部分,许多信道不能传输低频分量或直流分量。
最基本的二元调制方法
- 调幅AM | 载波的振幅
- 调频FM | 载波的频率
- 调相PM | 初始相位
1-1-2 信道
任何实际信道都不是理想的,码元传输速率越高或传输距离越远,输出端失真越严重。
① 奈氏准则
1924年。在假定的理想条件下,为了避免码间串扰,给出了码元传输速率的上限值。
② 香农公式
$$
信道的极限传输速率\quad C = W\ log_2{(1+\frac{S}{N})}\quad b/s
$$
其中W为信道的带宽(Hz);S为信道内传输信号的平均功率;N为信道内高斯噪声的功率。
只要传输速率低于信道极限传输速率,就一定可以找到某种办法来实现无差错的传输。
对于频带宽度已确定的信道,如果信噪比不能再提高,并且码元传输速率也达到了上限值,**还可以用编码的方法让每个码元携带更多比特的信息量**。e.g. 极化码
③ 传输媒介
导向传输媒体 双绞线;同轴电缆;光纤。
非导向传输媒体 无线传输使用的频段很广:1) 短波,靠电离层反射,通信质量较差;2) 微波,主要是直线传播,地面微波接力通信and卫星通信。
1-2 信道复用
复用(Multiplexing)是通信技术中的基本概念。主要技术包括频分复用,时分复用 和 统计时分复用技术。
1-2-1 频分复用
FDM, Frequency Division Multiplexing. 用户同时占用不同的带宽资源。
1-2-2 时分复用
TDM, Time Division Multiplexing. 将时间划分为一段段等长时分复用帧(TDM帧)
可能造成线路资源的浪费。源于实际使用中的突发性,分配到子信道的利用率不高。
1-2-3 统计时分复用
STDM, Statistic Time Division Multiplexing.
1-2-4 波分复用
WDM, Wavelength Division Multiplexing. 即光的频分复用。
1-2-5 码分复用
CDM, Code Division Multiplexing. 常称 CDMA, Code Division Multiple Access. 各用户使用经过挑选的不同码型,彼此不会造成干扰。
每一个比特时间划分为m个短的时间间隔,成为码片(Chip)。
1-3 同步光纤网/同步数字系列
同步光纤网 SONET(Synchronous Optical Network)各级时钟都来自一个非常精确的主时钟。
- 第一级同步传送信号 STS-1 (Synchronous Transport Signal)传输速率51.84Mb/s
- 第一级光载波 OP-1(Optical Carrier)即光信号
同步数字系列 SDH(Synchronous Digital Hierarchy)
- 第一级同步传递模块 STM-1(Synchronous Transfer Module)基本速率为155.52Mb/s
- 光子层 Photonic Layer | 处理跨越光缆的比特传送
- 段层 Section Layer | 在光缆上传送 STS-N 帧
- 线路层 Line Layer | 负责路径层的同步和复用
- 路径层 Path Layer | 处理路径端接设备 PTE 之间的业务传输
Path Terminating Element
1-4 宽带接入技术
1-4-1 xDSL技术
DSL, Digital Subscriber Line, 数字用户线。用数字技术对现有的模拟电话用户线进行改造,使其能够承载宽带业务。
xDSL把 0-4 kHz 低端频谱留于传统电话使用,原未被利用的高端频谱留给用户上网使用。
分类
- ADSL, Asymmetric DSL, 非对称数字用户线。
- HDSL, High speed DSL, 高速数字用户线
- SDSL, Single-line DSL, 单对线数字用户线
- VDSL, Very high speed DSL, 甚高速数字用户线
- DSL, ISDN用户线
- RADSL, Rate-Adaptive DSL, 速率自适应DSL,是ADSL的一个子集
ADSL
- 上下行带宽不对称
- 在用户线(铜线)两端各安装一个ADSL调制解调器
- 离散多音调(即多载波,多子信道) DMT(Discrete Multi-Tone)调制技术
DMT频谱
1-4-2 HFC
HFC, Hybrid Fiber Coax, 光纤同轴混合网。覆盖面很广的有线电视网。基于CATV,主干线路采用光纤。
- 家庭安装用户接口盒 UIB, User Interface Box 提供三种接口
- 同轴线缆 to 机顶盒(Set-Top Box) to 电视机
- 双绞线 to 电话机
- 电缆调制解调器 to 计算机
频谱
1-4-3 FTTx
FTTx, Fiber To The xxx, 光纤到x
- FTTH 光纤到户 Home,居民接入网的最后解决方案
- FTTB 到大楼,Builing,进大楼转为电信号
- FTTC 到路边,Curb,路边到用户使用星型结构
02 数据链路层
数据链路层使用的信道主要有点对点和广播两种信道。
链路(Link)是一条无源的点到点的物理线路段,中间无任何其他交换结点。
数据链路(Data Link)除物理线路外,必须有通信协议来控制这些数据的传输。实现通信协议的软硬件部署到物理链路上构成数据链路。
传输的数据单位为帧(Framing)。
要解决的三个基本问题 封装成帧,透明传输,差错控制。
简单模型
2-1 点对点信道
2-1-1 封装成帧
Framing. 在一段数据的前后分别添加首部和尾部,构成帧,确定帧的界限。
使用控制字符确定帧的界限
2-1-2 透明传输
若EOT在数据部分出现,EOT后会被视为无效内容而被丢弃。解决办法:在SOH或EOT前插入转义字符’ESC’(1B)(十六进制);若转移字符也出现在数据中,其前亦加入转义字符。
2-1-3 差错检测
误码率 BER(Bit Error Rate)与信噪比有很大的关系。
循环冗余码 CRC
Cyclic Redundancy Check. 待传数据M(k位) + n位冗余码 一起发送。
计算办法
- Step1 | M * 2^n 等价于 M后跟n个’0’
- Step2 | 事先预定除数P(n+1位),P/M得到商Q, 余数R, R必为n位
示例
M = 101 001, k = 6, 设 n = 3, P = 1101, M * 2^n = 101 001 000
检验
P/(M|FCS) 余数若为 ‘0’ 则接受,否则就丢弃
注:只能用于无差错接受,要做到可靠传输,还需加上确认和重传机制。
2-1-4 PPP协议
Point-to-Point Protocol. 1992年制定,1993,1994年修订。
组成部分
- 一个将IP数据包封装到串行链路的方法
- 链路控制协议 LCP Link Control Protocol
- 网络控制协议 NCP Network Control Protocol
2-1-4-1 帧格式
- 标志字段 F = 0x7E
- 地址字段 A = 0xFF 实际不起作用
- 控制字段 C 通常为 0x03
- 协议字段
- 0x0021 | IP数据报
- 0xC021 | PPP链路控制数据
- 0x8021 | 网络控制数据
- PPP是面向字节的,所有PPP帧的长度都是整数字节的
2-1-4-2 透明传输
字符填充
- 信息字段中的0x7E字节转变成2字节序列(0x7D | 0x5E)
- 0x7D –> (0x7D | 0x5D)
- ASCII 中控制字符(小于0x20)–> (0x7D | 原字符)
零比特填充
PPP在使用 SONET/SDH 链路时,使用同步传输。此时采用零比特填充方法来实现透明传输。
- 发送端:连续五个1,则立即填入一个0
- 接收端:发现五个1,后一个0删除
2-1-4-3 不提供序号和确认机制
PPP协议不使用序号和确认机制,原因:
- 数据链路层出错概率不大时,使用比较简单的PPP协议较为合理
- 数据链路层的可靠传输不能保证网络层的传输也可靠
- 帧检验序列FCS可保证无差错接受
2-2 广播信道
最典型的应用是在局域网中。局域网的特点包括 1) 广播功能;2) 系统扩展灵活;3) 可靠性、可用性和残存性。
媒体共享技术
- 静态划分信道
- 频分复用;时分复用;波分复用;码分复用
- 动态媒体介入控制(多点接入)
- 随机接入
- 受控接入,如多点线路探询(Polling)或轮询
2-2-1 以太网
以太网标准
- DIX Ethernet V2 | 第一个局域网产品(以太网)的规约
- IEEE 802.3
2-2-1-1 数据链路层的子层
- 逻辑链路控制, LLC 子层, Logical Link Control
- 媒体接入控制, MAC 子层, Medium Access Control
局域网对 LLC 是透明的
由于 TCP/IP 体系结构经常使用的是 DIX Ethernet V2,802委员会制定的逻辑链路控制层LLC的作用已经不大。
2-2-1-2 适配器
网络接口板 又称为 通信适配器(Adapter)或 网络接口卡(NIC, Nerwork Interface Card)或 网卡。
- 串行/并行互换
- 数据缓存
- 安装设备驱动程序
- 实现以太网协议
2-2-1-3 以太网的广播方式传送
采用的方式
原因:信道质量好,产生差错概率极小
- 采用无连接方式 | 灵活;直接发送
- 数据帧不编号;对方也不发回确认
2-2-1-4 提供的服务
- 尽最大努力交付 | 不可靠交付
- 目的站收到有差错数据帧就丢弃
- 无重传机制 重传视为新数据帧
2-2-1-5 编码方式
曼彻斯特 Manchester 编码
2-2-2 CSMA/CD协议
Carrier Sense Multiple Access with Collision Detectio, CSMA/CD
即载波侦听多路访问/冲突检测,是广播型信道中采用一种随机访问技术的竞争型访问方法。
- 多点接入 | 表示计算机以多点接入方式连接在总线上
- 载波监听 | 每个站发送前先监听是否有其他消息正在发送,如果有则暂不发送,避免碰撞
2-2-2-1 碰撞检测
计算机边发送数据边检测信道上的信号电压大小。
几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
2-2-2-2 传播时延对载波监听的影响
2-2-2-3 重要特性
- 不能进行全双工通信,只能进行半双工通信。
- 每个站发送一小段时间后存在着遭遇碰撞的可能性。
- 发送不确定性使以太网平均通信量远小于最高数据率。
2-2-3 使用广播信道的以太网
2-2-3-1 使用集线器
采用星型拓扑结构,中心使用集线器(Hub),使用同轴电缆 –> 双绞线。
e.g. 星型网 10BASE-T。
- 每个站使用两对无屏蔽双绞线,分别用于发送和接收。
- 每个站到集线器的距离不超过100m
- 10Mb/s速率无屏蔽双绞线,降低成本提高可靠性
2-2-3-2 信道利用率
争用期长度 2t 即端到端时延的两倍。检测到碰撞后不发送干扰信号。
帧长 L bit,数据发送速率 C b/s,帧发送时间 T0 = L/C s。
发送一帧占用线路的时间为 T0 + t,则极限信道利用率 Smax = T0 / (T0 + t) = 1 / (1 + a);其中 a 为时延 t 与帧发送时间 T0 之比。
2-2-4 以太网MAC层
在局域网中,硬件地址又称为物理地址 或 MAC地址。48位。
- 注册管理机构 RA 负责向厂家分配 高24位
- 厂家自行指派 低24位,称为扩展标识符
2-2-4-1 MAC帧
常用的以太网MAC帧格式为 DIX Ethernet V2 格式。
类型字段用来标识上一层使用的是什么协议,以便把该 MAC 帧数据上交给上一层的该协议。
为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8字节(前同步码 + 帧开始定界符)。
帧间最小间隔 9.6微秒,相当于96bit的发送时间。一个站在检测到总线开始空闲后,还要等待9.6微秒才能再次发送数据。
2-2-5 扩展的以太网
2-2-5-1 在物理层扩展
主机使用光纤和一对光纤调制解调器连接到集线器。
多个集线器组成更大的局域网(都在一个碰撞区中)。
2-2-5-2 在链路层扩展
使用网桥。网桥具有过滤功能,当网桥接收到一个帧时,先检查帧的目的MAC地址,确定转发接口并转发。
隔离开了碰撞区,但增加了时延。
① 透明网桥
(Transparent Bridge) 透明是指局域网中的站点不知道所发送的帧将经过哪几个网桥。
转发表建立过程:
透明网桥使用了生成树算法,避免产生转发的帧在网络中不断兜圈子。
② 多接口网桥——以太网交换机
1990年问世的交换式集线器(Switching Hub)可明显提高局域网的性能。通常称为 以太网交换机(Switch)或第二层交换机。
通常有十几个接口,实质是一个多接口网桥。每个接口都直接与交换机相连,全双工方式。
③ 虚拟局域网
VLAN 由一些局域网网段构成,与物理位置无关的逻辑组。
帧格式
插入一个四字节标识符,成为VLAN tag。
速率达到或者超过100Mb/s的以太网称为高速以太网。
2-2-6 吉比特以太网
允许在1Gb/s下全双工或半双工两种方式工作。
10吉比特网络只工作在全双工下。
03 网络层
重点关注:虚拟互联网络;IP地址与物理地址的关系;IP地址分类(子网掩码);无分类域间路由选择 CIDR;路由选择协议工作原理。
电信网设计思路 | 虚电路服务
- 面向连接
- 建立虚电路(Virtual Circuit),保证通讯双方所需的一切网络资源 | 逻辑上的连接
- 使用可靠传输的网络协议,可使所发送的分组无差错按序到达终点
因特网设计思路 | 数据报服务
- 向上提供简单灵活、无连接的、尽最大努力交付的数据报服务
- 网络在发送分组时不需要建立连接,每一分组独立发送,不编号
- 不提供服务质量的承诺
对比
虚电路服务 | 数据报服务 | |
---|---|---|
思路 | 可靠通信由网络保证 | 可靠通信由用户主机来保证 |
连接 | 有 | 无 |
终点地址 | 连接建立阶段使用 | 每个分组都有终点的完整地址 |
分组转发 | 属于同一虚电路的分组由同一路由转发 | 每个分组独立选择路由进行转发 |
结点故障 | 所有通过故障结点的虚电路都不能工作 | 故障结点可能丢失分组,部分路由可能发生变化 |
分组顺序 | 总是按照发送顺序到达终点 | 不一定按序到达 |
差错处理 流量控制 |
可由网络负责,也可由用户主机负责 | 由用户主机负责 |
3-1 网际协议IP
与 IP 协议配套使用的四个协议:地址解析协议 ARP;逆地址解析协议 RARP;网际控制报文协议 ICMP;网际组管理协议 IGMP。
网络互联中间设备
又称为中间系统、中继(Relay)系统。各层中间设备:
- 物理层 | 转发器(Repeater)
- 链路层 | 网桥 或 桥接器(Bridge)
- 网络层 | 路由器(Router)
- 网桥 and 路由器 | 桥路器(Brouter)
- 网络层以上 | 网关(Gateway)
3-1-1 IP地址
分配一个在全世界范围内唯一的32位标识符。由因特网名字与号码指派公司 ICANN(Internet Corpotation for Assigned Names and Numbers)进行分配。 2^32 = 4,294,967,296
3-1-1-1 分类地址
IP地址 ::= { <网络号>, <主机号> }
IP地址使用范围
最大网络数 | 第一个 | 最后一个 | 最大主机数 | |
---|---|---|---|---|
A | 2^7 - 2 = 126 | 1 | 126 | 2^24 - 2 = 16,777,214 |
B | 2^14 - 1 = 16,383 | 128.1 | 191.255 | 2^16 - 2 = 65534 |
C | 2^21 - 1 = 2,097,151 | 192.0.1 | 223.255.255 | 2^8 - 2 = 254 |
3-1-1-2 特点
IP 地址实际标志 一个主机(或路由器) 和 一条链路 的接口。
多归属主机(Multihomed Host)同时连接到两个网络上,同时具有两个 IP 地址,网络号 Net-ID 必须是不同的。
一个路由器至少连接到两个网络,故其至少有两个不同的 IP 地址。
用转发器/网桥(物理层/链路层)连接起来的若干局域网仍为一个网络。
3-1-1-3 IP地址与硬件地址
网络层以上使用 IP 地址,链路层及以下使用硬件地址。
路由器只根据目的站的 IP 地址的网络号进行路由选择。
具体的物理网络链路层只能看见 MAC 帧,看不见 IP 数据报。
3-1-2 ARP & RARP
不论网络层使用何种协议,在实际网络链路上传输时,最终还是必须使用硬件地址。
3-1-2-1 ARP
地址解析协议 Addresss Resolution Protocol.
每个主机设有一个 ARP 高速缓存,存放所在局域网上各主机和路由的 IP地址到硬件地址 的映射表。
ARP作用
- 减少网络通信量
- 解决同一局域网上主机或路由器 IP-物理地址映射问题
- 不在同一局域网上,ARP找到位于本局域网某路由器的硬件地址
- 自动进行 | 对用户透明
为什么不直接使用硬件地址通讯
- 异构网络中存在复杂的硬件地址,转换工作困难
- IP 地址格式相对统一,逻辑上可视为同一网络
3-1-2-2 RARP
逆地址解析协议 Reverse Address Resolution Protocol
使只知道自己硬件地址的主机能够知道其 IP 地址。这种主机往往是无盘工作站,因此 RARP 很少使用。
3-1-3 IP数据报
固定长度,20字节。
3-1-3-1 首部构成
- 版本 | 4位 | IPv4 IPv6
- 首部长度 | 4位 | 可表示最大数值是15单位
- 一单位为4字节,首部长度最大为60字节
- 区分服务 | 8位 | 只有在使用 DiffServ 时才起作用
- 总长度 | 16位 | 最大长度 2^16-1 = 65535字节
- 单位为字节
- 标识 | 16位 | 计算器
- 标志 | 3位 | MF(More Fragment) DF(Don’t Fragment)
- MF = 1 表示后面“还有分片”;MF = 0 表示最后一个分片
- DF = 0 允许分片
- 片偏移 | 13位 | 某片在原分组中的相对位置
- 一单位为8字节
- 生存时间 | 8位 | TTL Time To Live
- 数据报在网络中可通过的路由器数的最大值
- 协议 | 8位 | 指出何种协议便于 IP 层将数据部分上交给对应处理过程
- 首部检验和 | 16位 | 只检验首部,不采用CRC,只采用简单方法
- 源地址、目的地址 | 4字节 |
- 可变部分 | 1-40字节 | 支持排错、测量以及安全等措施;少被使用
3-1-3-2 转发分组
路由表若按目的主机制作将会无比庞大复杂,按网络地址制作将简化路由表。
默认路由(Default Route)
Attention !!!!!!!!!
- 数据报首部中不能指明下一跳路由器的IP地址
- 路由器接收到转发的数据报,不将下一条IP地址填入IP数据报,而是交由下层网络接口软件
- 网络接口软件使用 ARP 负责将下一跳 IP 地址转换成硬件地址;将硬件地址放在链路层的 MAC 帧的首部
3-2 划分子网和构造超网
划分子网(Subnetting)1985年,IP地址中加入了“子网号”,成为三级IP地址。
IP地址 ::= { <网络号>, <子网号>, <主机号> }
3-2-1 三级IP分组转发
- 根据目标网络号 net-id 找到连接在本单位网络上的路由器
- 路由器收到 IP 数据报后,按目的网络号 net-id 和子网号 subnet-id 找到目的子网
- 最后将 IP 数据报直接交付给目的主机
3-2-2 子网掩码
Subnet Mask.
一个 IP 数据报首部无法判断源主机或目的主机所连接网络是否进行了子网划分。使用子网掩码可以找出 IP 地址中的子网部分。
默认子网掩码
子网掩码是一个重要属性
- 相邻路由器交换路由信息时,必须把自己所在网络的子网掩码告诉对方
- 若一个路由器连接在两个子网上,就用于两个网络地址和两个子网掩码
3-2-3 转发步骤
- IP首部提取目的 IP 地址 D
- 本地网络子网掩码与 D 逐位’AND’
- 若匹配,直接交付
- 不匹配,步骤3
- 若路由表中有 D 的特定主机路由,则将分组传送给指明的下一跳路由;否则,步骤4
- 与路由表中每一行子网掩码逐位’与’,结果与目的网络地址匹配则转发;否则,步骤5
- 若路由表中有默认路由,转发给默认路由;否则,步骤6
- 报错
3-2-4 无分类编址 CIDR
CIDR Classless Inter-Domain Routing 无分类域间路由选择。
- 取消了传统 A B C 类地址 及 划分子网的概念
- 可更加有效地分配 IPv4 的地址空间
- 使用变长的网络前缀(Network-prefix)代替分类地址中的网络号和子网号
- 三级 变 两级
CIDR地址块 | e.g. 128.14.32.0/20
- 斜杠后的数字代表子网掩码的位数,则例子中主机号是 32-20 = 12位
- 起始地址 128.14.32.0
- 全0和全1的主机号地址一般不使用
3-2-5 构造超网
路由聚合 一个 CIDR 地址块可以表示很多地址。路由聚合也称为构成超网(Supernetting)。
- 前缀长度不超过23位的 CIDR 地址块都包含了多个 C 类地址
- 这些 C 类地址合起来就构成了超网
- CIDR 地址块中的地址数一定是2的整数次幂
- 网络前缀越短,包含的地址数就越多
该 ISP 共有64个 C类网络
- 若不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由表中就需要64个项目
- 采用地址聚合,只需要用路由聚合后的1个项目 206.0.64.0/18就能找到ISP
3-3 ICMP
Internet Control Message Protocol 网际控制报文协议
ICMP 报文作为 IP 层数据报的数据,加上数据的首部,组成 IP 数据报发送
3-3-1 ICMP差错报告报文
五种:终点不可达;源点抑制(Source Quench);时间超过;参数问题;改变路由(重定向)(Redirect)
不发送情况
- 对 ICMP 差错报告报文不再发送
- 对第一个分片的数据报片的所有后续数据报片都不发送
- 对具有多播地址的数据报都不发送
- 对具有特殊地址(127.0.0.0 或 0.0.0.0)不发送
3-3-2 ICMP询问报文
两种:回送请求和回答报文;时间戳请求和回答报文。
应用举例 | PING | Packet InterNet Groper
- 测试两主机之间的连通性
- 使用了 ICMP 回送请求报文 和 回送回答报文
- PING 是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP 或 UDP
3-4 路由选择协议
静态路由选择策略(非自适应,简单开销小);动态路由选择策略(自适应网络状态变化,复杂开销大)
Internet采用分层次的路由选择协议。例:单位网络布局细节和采用的路由选择协议对外不可见,但同时连到互联网上。
自治系统(Autonomous System, AS) 系统内路由器使用一种 AS 内部的路由选择协议和共同度量以确定分组在该 AS 内的路由(IGP);使用一种 AS 之间的路由选择协议用以确定分组在 AS 之间的路由(EGP)。
3-4-1 内部网关协议
Interior Gateway Protocol, IGP
即在一个 AS 内部使用的路由选择协议,目前该类协议使用广泛,如 RIP, OSPF 等
3-4-1-1 RIP
Routing Information Protocol 是一种分布式的基于距离向量的路由选择协议。每个路由器都要维护从它自己到其他每一个目的网络的距离(跳数 Hop Count)。
距离短 = 好路由;允许一条路径最多只包含15个路由器,距离最大值为16时视为不可达。
不允许两网络有多条路由,只选择一个具有最少路由器的路由,哪怕存在高速多路由线路。
三要点
- 仅和相邻路由器交换信息
- 交换信息是当前本路由器知道的全部信息(路由表)
- 按固定时间间隔交换
RIP2 协议的报文格式
- 地址簇标识符(地址类别)| 标志所用的地址协议
- 路由标记 | 自治系统的号码
特点
- 故障传递到所有路由时间开销大 | 好消息传播得快,坏消息传播得慢
- 实现简单,开销小
- 限制了网络规模,MAX = 16
- 每个路由器都交换得到完整的路由表,规模越大开销越大
3-4-1-2 OSFP
Open Shortest Path First 使用 Dijkstra 提出的最短路径算法 SPF,是分布式的链路状态协议。
洪泛法 发送与本路由器相邻的所有路由器的链路状态。只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库(Link-state Database) 由于各路由器之间频繁交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库。实际上就是全网的拓扑结构图。
OSPF区域 将一个自治系统再划分为若干个更小的范围。每一区域都有一个32位的区域标识符。
将洪泛法交换链路状态信息的范围局限于每个区域,减少了整体通信量。采用层次结构,上层主干区域(Backbone Area, 0.0.0.0)。
直接用 IP 数据报传送 长数据报不必分片。
多路径的负载平衡 若有多条代价相同的路径,可以将通信量分配给这几条路径。
分类
- 问候分组 | Hello
- 数据库描述分组 | Database Description
- 链路状态请求分组 | Link State Request
- 链路状态更新分组 | Link State Update | 洪泛法全网更新
- 链路状态确认分组 | Link State Aknowledgement
3-4-2 外部网关协议
External Gateway Protocol, EGP
若源站和目的站处在不同的 AS 中,数据报传到某 AS 的边界时,需要使用一种协议将路由选择信息传递到另一 AS 中,如 BGP-4
Border Gateway Protocol, BGP 边界网关协议只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子)而并非要寻找一条最佳路由。
BGP 发言人 使用 TCP 连接交换路由信息的两个 BGP Speaker,彼此成为对方的邻站或对等站。
协议交换路由信息的结点数量级是自治系统数的量级。支持 CIDR,BGP 刚运行时邻站交换整个 BGP 路由表,以后只更新有变化的部分。
四种报文
- 打开报文 | OPEN | 与另一发言人建立连接
- 更新报文 | UODATE | 发送某一路由的信息/需要撤销的路由
- 保活报文 | KEEPALIVE | 确认打开报文 和 周期性地证实邻站关系
- 通知报文 | NOTIFICATION | 发送检测到的差错
报文格式
3-4-3 路由器Router
具有多个输入端口和多个输出端口的专用计算机,任务是转发分组。下一跳按同样方式直到分组到达终点为止。
转发(Forwarding) 路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
路由选择(Routing) 按照分布式算法,根据从各相邻路由器得到关于网络拓扑的变化情况,动态改变所选择的路由。
输入端口 | 数据链路层剥去帧首部和尾部,将分组送到网络层的队列中排队等待处理。
输出端口 | 数据链路层处理模块加上链路层的首部和尾部,交给物理层后发送到外部线路。
交换结构
3-5 IP多播
多播使用组地址——IP 使用 D 类地址支持多播。多播只能用于目的地址,不能用于源地址。
D 类 IP 地址与以太网多播地址的映射关系
3-5-1 两种协议
3-5-1-1 IGMP
Internet Group Management Protocol 网际组管理协议。使用 IP 数据报传递其报文,但它也向 IP 提供服务。
不将 IGMP 看成单独的协议,而是整个网际协议 IP 的一个组成部分。
分为两阶段
- 第一阶段 | 某主机新加入多播组时
- 该主机向多播组的多播地址发送 IGMP 报文,声明自己要成为改组成员
- 多播路由器收到后,将组成员关系转发给因特网上的其他多播路由器
- 第二阶段 | 动态
- 多播路由器周期性探询本地局域网上的主机,确定是否继续是组成员
- 响应则认为活跃,否则通知其他多播路由器
3-5-1-2 多播路由选择协议
尚未标准化。动态变化。多播路由选择实际上是找出从源主机为根结点的多播转发树,在树上的结点不会收到重复的多播数据报。
3-5-2 转发多播数据报
3-5-2-1 洪泛和剪除
适合于较小的多播组,而所有组成员接入的局域网也是相邻接的。
一开始,路由器转发多播数据报使用洪泛方法,为避免兜圈子,采用反向路径广播(RPB, Reverse Path Broadcasting)策略。
RPB 路由器收到多播数据报,检查是否从源点经最短路径传送过来
- 若是,就向所有其他方向转发刚才收到的多播数据报
- 否则,丢弃而不转发
- 若几条路径长度相同,选最短路径中相邻路由器 IP 地址最小的
3-5-2-2 隧道技术
Tunneling
3-5-2-3 基于核心的发现技术
对于多播组的大小在较大范围内变化都适合。对每个多播组 G 指定一个核心(Core)路由器给出它的 IP 单播地址。核心路由器创建出对应于多播组 G 的转发树。
3-5-2-4 几种多播路由选择协议
- 距离向量多播路由选择协议 | DVMRP | Distance Vector Multicast Routing Protocol
- 基于核心转发树 | CBT | Core Based Tree
- 开放最短通路优先的多播扩展 | MOSPF | Multicast Extensions to OSPF
- 协议无关多播-稀疏方式 | PIM-SM | Protocol Independent Multicast-Sparse Mode
- 协议无关多播-密集方式 | PIM-DM | Protocol Independent Multicast-Dense Mode
3-6 VPN & NAT
虚拟专用网 Virtual Private Network;网络地址转换 Network Address Translation
网络地址转换 NAT
- 内部主机 X 用本地地址 IPx 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器
- NAT 路由器将 IPx 转换成全球地址 IPg,但目的地址 IPy 不变,发送到因特网
- NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址 IPy,目的地址时 IPg
- 根据 NAT 转换表,NAT 路由器将目的地址 IPg 转换为 IPx ,转发给最终的内部主机 X
04 运输层
运输层向应用层提供通信服务,通信部分最高层。提供应用进程间的逻辑通信。
运输层为应用进程之间提供端到端的逻辑通信;而网络层是为主机之间提供逻辑通信。
运输层需要有两种不同的运输协议,即面向连接的 TCP 和 无连接的 UDP。TCP 不提供广播或多播服务。
传输的数据单位为运输协议数据单元 TPDU(Transport Protocol Data Unit);TCP 传送的数据单位协议是 TCP 报文段(Segment),UDP 传送的数据单位协议是 UDP 报文 或 用户数据报。
端口 Port 在协议栈间的抽象的协议端口是软件端口,路由器或交换机上的端口是硬件端口。用16位端口号表示,只具有本地意义。
三类端口:熟知端口(0-1023);登记端口号(1024-49151,必须在 IANA 登记);客户端口号(短暂端口号)(49152-65535,留给客户进程短暂使用)
4-1 UDP
User Datagram Protocol | 用户数据报协议
只在 IP 的数据报服务上增加了很少的一点功能——端口和差错检测的功能。
- 无连接的,尽最大努力交付
- 面向报文,无拥塞控制
- 支持一对一,一对多,多对一,多对多的交互通信
- 首部开销小,只有8字节
4-1-1 面向报文
4-1-2 首部格式
8字节,4个字段,每个字段都为2字节。
检验和 临时把伪首部和 UDP 数据报连接在一起,伪首部仅仅是为了计算检验和。
4-1-3 检验和计算例子
4-2 TCP
Transmission Control Protocol | 传输控制协议
- 面向连接 | 虚连接
- 一对一 | TCP只能有两个端点(Endpoint)
- 可靠交付
- 全双工
- 面向字节流 | 可把太长的数据块划分短一些再传送
4-2-1 可靠传输
TCP 把连接作为最基本的抽象,每一条 TCP 连接有两个端点。TCP 连接的端点称为套接字(Socket)或插口。
套接字 Socket ::= ( IP地址:端口号 )
TCP连接 ::= { socket1, socket2 } = { ( IP1:port1 ), ( IP2, port2 ) }
4-2-1-1 停止等待协议
- 发送完一个分组后,暂时保留该分组的副本
- 分组 和 确认分组 都必须进行编号
- 超时计时器的重传时间比数据在分组传输的平均往返时间更长一些
优点是简单,缺点是信道利用率低
$$
信道利用率 \quad {U} = \frac{T_D}{T_D + RTT + T_A}
$$
采用流水线传输 连续发送多个分组,不必每发完一个就等待对方确认。
4-2-1-2 连续ARQ协议
利用上述的确认和重传机制,可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求 ARQ(Automatic Repeat reQuest)。重传请求是自动的,接收方不需要请求发送方重传某个出错分组。
一般采用累积确认的方式。对按序到达的最后一个分组发送确认,表示到此为止所有分组都已正确收到了。
Go-Back-N
若发送方发送了前5个分组,第三个丢失,接收方只能对前2个分组确认;发送方重发后3个分组。
4-2-1-3 具体实现
- TCP 连接的每一端都必须设有两个窗口(发送窗口 and 接收窗口);
- 用字节的序号进行控制,所有的确认都基于序号;
- TCP 两端的四个窗口经常处于动态变化中;
- TCP 连接的往返时间 RTT 不是固定不变的。
发送缓存和接收缓存
发送缓存暂时存放
- 发送应用程序传送给发送方 TCP 准备发送的数据
- TCP 已发送出但尚未收到确认的数据
接收缓存暂时存放
- 按序到达但尚未被接收应用程序读取的数据
- 不按序到达的数据
4-2-2 报文格式
- 源端口 目的端口 | 2字节 | 端口是运输层和应用层的接口
- 运输层的复用和分用功能都要通过端口才能实现
- 序号字段 | 4字节 | TCP传送的数据流中每一个字节都编上序号
- 值为报文段所发送数据的第一个字节的序号
- 确认号字段 | 4字节 | 期望收到对方下一个报文段数据的第一个字节的序号
- 数据偏移 | 4位 | 指出数据起始处距离 TCP 报文段的起始处有多远
- 保留字段 | 6位 |
- 紧急 URG | 1位 | = 1时,表明紧急指针字段有效
- 确认 ACK | 1位 | = 1时,确认号字段才有效
- 推送 PSH | 1位 | = 1时,尽快交付接收应用进程
- 复位 RST | 1位 | = 1时,表明TCP连接出现严重差错
- 同步 SYN |1位 | = 1时,表示这是一个连接请求/连接接受报文
- 终止 FIN | 1位 | = 1时,表明此报文段的发送端数据发送完毕,释放运输连接
- 窗口字段 | 2字节 | 用来让对方设置发送窗口的依据
- 检验和 | 2字节 | 首部+数据部分,加上12字节伪首部一起计算
- 紧急指针 | 16位 | 指出本报文段中紧急数据共有多少字节
- 选项字段 | 长度可变 | 最大报文段长度 MSS
其他选项
- 窗口扩大选项 | 3字节 | 把原窗口位数增大到 16+S
- 时间戳选项 | 10字节 | 时间戳值字段4字节 时间戳回送回答字段4字节
- 选择确认选项
4-2-2-1 超时重传时间
TCP 每发送一个报文段就对该报文段设置一次计时器。由于 TCP 下层是一个互联网环境,IP 数据报所选择的路由变化很大,因而运输层的往返时间的方差也很大。
加权平均往返时间 RTTs (又称 平滑的往返时间)
$$
new\ RTT_S = (1-\alpha) \times (old\ RTT_S) \ + \ \alpha \ \times \ (new RTT_i)
$$
超时重传时间 Retransmission Time-OUt, RTO
$$
RTO = RTT_S \ + \ 4 \ \times \ RTT_D
$$
$RTT_D$ 是RTT的偏差的加权平均值
$$
new \ RTT_D = (1-\beta) \ \times \ (old \ RTT_D) \ + \ \beta \ \times \ |RTT_S-new \ RTT_i|
$$
4-2-2-2 Karn算法
$$
new \ RTO = \gamma\ \times \ (old\ RTO),\quad \gamma\ Typical\ Value= 2
$$
4-2-2-3 选择确认SACK
Selective ACK 接收方收到了和前面字节流不连续的两个字节块。
若这些字节块都在接收窗口之内,接收方就先收下这些数据,但要把这些信息准确高速发送方,使其避免重复发送。
4-2-3 TCP流量控制
发送数据过快可能导致来不及接收导致数据丢失。Flow Control 就是让发送速率不要过快,也不让网络发生拥塞。
利用滑动窗口机制可以很方便在 TCP 连接上,实现流量控制。
示例
持续计数器 Persistence Timer
TCP 连接的一方收到对方的零窗口通知,就启动计时器。
4-2-4 拥塞控制
Congestion 某段时间对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能变坏。
拥塞控制
- 网络能够承受现有的负荷
- 是一个全局性的过程
- 点对点通信量的控制
难设计
- 是一个动态变化的过程
- 网络高速化发展,缓存能否跟上避免分组丢失
- 拥塞控制导致死锁
开环控制和闭环控制
- 开环 | 尽量不产生拥塞
- 设计网络时事先将有关发生拥塞的因素考虑周到
- 闭环 | 反馈环路
- 监测网络系统以便检测到拥塞在何时、何处发生
- 将拥塞信息发送到可采取行动的地方
- 调整网络系统的运行以解决出现的问题
4-2-4-1 慢开始和拥塞避免
发送发维持一个拥塞窗口 cwnd (Congestion Window)的状态变量。
窗口大小取决于网络拥塞程度,且动态变化 | 只要网络没出现拥塞,拥塞窗口就再大一些;反之,减小一些。
发送方让自己的发送窗口等于拥塞窗口,若考虑接收方的接收能力,还可小于拥塞窗口。
传输轮次 Transmission Round 开始慢算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。
一个传输轮次所经历的时间其实就是往返时间 RTT。
乘法减小 出现拥塞,满开始门限值 ssthresh 减半。
加法增大 经过一个 RTT 后(对所有报文段确认),就把 cwnd 增加一个 MSS 大小。(最大报文段大小)
4-2-4-2 快重传和快恢复
快重传要求
- 接收方每收到一个失序的报文段后就立即发出重复确认。
- 发送方一连收到三个重复确认就立即重传对方尚未收到的报文。
快恢复算法
- 发送端收到连续三个重复的确认时进行乘法减小
- 但 cwnd 不从 1 开始,从减半后数值开始
4-2-4-3 随机早期检测 RED
Random Early Detection
- 路由器的队列维护 队列长度最小门限 $TH_min$ 和 最大门限 $TH_max$
- 对每个到达的数据计算平均队列长度 $L_av$
- if ( L_av < TH_min ) 当前数据报入队
- if ( L_av > TH_max ) 丢弃
- else if ( TH_min < L_av < TH_max ) 按照某一概率 p 将新到达的数据报丢弃
4-2-5 运输连接管理
三个阶段:连接建立、数据传送和连接释放。TCP 连接的建立都是采用 客户端-服务器 方式。
4-2-5-1 连接建立 | 三次握手
- Step1 | C to S | SYN = 1,选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x
- Step2 | S to C | 若 S 同意,发回确认。SYN = 1,ACK = 1,seq = y,确认号 ack = x + 1
- Step3 | C to S | 向 S 确认,ACK = 1,ack = y + 1。C 的 TCP 通知上层应用进程,连接已建立
4-2-5-2 连接释放
- Step1 | C to S | FIN = 1,seq = u,等待 S 确认
- Step2.1 | S to C | ACK = 1,报文段自己的序号 seq = v(半关闭状态)
- Step2.2 | S to C | FIN = 1,ACK = 1,seq = w,ack = u + 1,若无需要发送的数据,应用进程通知 TCP 释放连接
- Step3 | C to S | ACK = 1,ack = w + 1,seq = u + 1
等待 2MSL 后才真正释放
- 保证 C 最后发送的 ACK 报文段能够到达 S
- 防止“已失效的连接请求报文段”,等待2MSL后,可以使本连接持续时间内产生的所有报文段在网络中消失
4-2-5-3 TCP有限状态机
05 应用层
每个应用层协议都是为了解决某一类应用问题。大多基于 C/S 架构
5-1 DNS
域名系统 Domain Name System,应用层软件直接使用 DNS 系统,计算机用户间接使用。
因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统。域名服务器程序在专设结点上运行。
5-1-1 域名结构
xxx.三级域名.二级域名.顶级域名 | 只是个逻辑概念。
顶级域名 Top Level Domain
- 国家顶级域名 nTLD
- .cn .us .uk 等
- 通用顶级域名 gTLD
- .com | 公司和企业
- .net | 网络服务机构
- .org | 非营利性组织
- .edu | 美国专用的教育机构
- .gov | 美国专用的政府部门
- .mil | 美国专用的军事部门
- .int | 国际组织
- .aero | 航空运输企业
- .biz | 公司和企业
- .cat | 加泰隆人的语言和文化团体
- .coop | 合作团体
- .info | 各种情况
- .jobs | 人力资源管理者
- .mobi | 移动产品与服务的用户和提供者
- .museum | 博物馆
- .name | 个人
- .pro | 有证书的专业人员
- .travel | 旅游业
- 基础结构域名 infrastructure domain
- 只有一个 arpa 用于反向域名解析
5-1-2 域名服务器
一个服务器所负责管辖的(或有权限的)范围叫做区(zone)。每个区设置相应的权限域名服务器以保存该区中的所有主机的域名到 IP 地址的映射。
区 与 域
四类域名服务器:根域名服务器,顶级域名服务器,权限域名服务器,本地域名服务器
5-1-2-1 根域名服务器
最高层次的域名服务器。
所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址。
因特网上共有 13 个不同 IP 地址的根域名服务器(a-m.rootservers.net)。共十三套装置非十三套机器。
5-1-2-2 顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名。
当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结构,也可能是下一步应当找的 DNS 服务器的 IP 地址)。
5-1-2-3 权限域名服务器
保存一个区中的所有主机的域名到 IP 地址的映射。
当一个权限域名服务器还不能给出最后的查询回答时,就会告知下一步应该找哪一权限域名服务器。
5-1-2-4 本地域名服务器
当一个主机发出 DNS 查询请求时,该查询请求报文发送给本地域名服务器。
每一个因特网服务提供者 ISP 或一个大学(系)都可以拥有一个本地域名服务器。
也称默认域名服务器。
5-1-3 提高域名服务器可靠性
- DNS 域名服务器都把数据复制到几个域名服务器来保存
- 主域名服务器 + 辅助域名服务器
- 主域名服务器出故障,辅助域名服务器可以保证 DNS 的查询工作不会终端
- 主 DNS 定期把数据复制到 辅助 DNS 中 | 保证一致性
5-1-4 域名解析过程
- 主机向本地域名服务器查询 一般都采用递归查询。
- 机主 –> 本地 DNS,无结果,本地 DNS 作为客户 –> 其他根域名服务器
- 本地服务器向根服务器查询 一般采用迭代查询
- 根域名服务器要么给结果;要么指明下一域名服务器
名字的高速缓存
每个域名服务器都维护一个高速缓存,存放最近用过的名字及从何处获得名字映射信息的记录。
可减轻根域名服务器的负荷。
5-2 FTP
File Transfer Protocol 文件传送协议
交换式访问,允许客户指明文件类型与格式,并允许文件具有存取权限。
适合在异构网络中传送文件。
5-2-1 特点
提供文件传送的一些基本服务,使用 TCP 可靠的运输服务。
由主进程(负责接受新的请求)和若干从属进程(负责处理单个请求)两部分组成。
5-2-2 工作步骤
- 打开熟知端口号(21),使客户进程能够连接上
- 等待客户进程发出连接请求
- 启动从属进程处理请求,处理完毕后即终止(端口号20)。运行期间可以创建一些子进程
- 回到等待状态。主进程与从属进程的处理是并发的
两个 TCP 连接
- 控制连接 | 端口号20 | 整个会话期间保持打开
- 客户传送请求通过控制连接发送给服务端的控制进程
- 数据连接 | 端口号21 | 用于传输文件,传完关闭
- 服务端控制连接收到请求后创建“数据传送进程”和“数据连接”
5-2-3 TFTP
简单文件传送协议 Trivial File Transfer Protocol
小且易于实现,使用 C/S 方式,使用 UDP 数据报,则需要有差错改正措施。
只支持文件传输而不支持交互,无庞大的命令集,无列目录功能,不能对用户进行身份鉴别。
特点
- 每次传送的数据 PDU 中有512字节数据,最后可不足512字节
- 数据 PDU 也称文件块(block),按序编号,从1开始
- 支持 ASCII 码 或 二进制传送
- 可对文件进行读和写
- 使用很简单的首部
工作步骤
发送完一个文件块后就等待确认,确认时指明所确认的块编号;
得不到确认就需要重发数据 PDU;
发送确认 PDU 的一方若在规定时间内收不到下一文件块,也需要重发确认 PDU。
- 客户进程发送一个 读/写请求 PDU 给服务器进程 | 端口号69
- 服务器进程选择一个新端口号和客户进程进程通信
- 若文件长度恰好为512字节整数倍数,传送完毕后,还必须在最后发送一个只含首部无数据的数据 PDU
- 若文件长度不是512字节整数倍数,传送最后不足512字节数据 PDU 可作为文件结束标志
5-3 TELNET
远程终端协议 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)。
网络虚拟终端 NVT 格式
5-4 WWW
World Wide Web 万维网并非某种特殊的计算机网络。
是大规模的、联机式的信息储藏所。用链接的办法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
是分布式超媒体(hypermedia),是超文本(hypertext)系统的扩充。
5-4-1 工作方式
- 浏览器就是在计算机上的万维网客户程序;万维网文档所驻留的计算机则运行服务器程序
- 客户程序主窗口上显示出的万维网文档称为页面(page)
- 使用统一资源定位符 URL(Uniform Resource Locator)来标志万维网上的各种文档,每个文档有唯一的 URL
- C/S 之间交互协议为超文本传送协议 HTTP(HyperText Transfer Protocol),基于 TCP
- 页面使用超文本标记语言 HTML(HyperText Markup Language)
- 使用搜索引擎在网上查找信息
5-4-2 URL
给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。相当于一个文件名在网络范围的扩展。
定位后,系统就可对资源进行 存取、更新、替换和查找其属性。
一般形式: <协议>://<主机>:<端口>/<路径>
- 协议 | ftp, http, https, News
- 主机 | 存放资源的主机在因特网上的域名
- 端口和路径有时可省略
5-4-3 HTTP
HTTP | http://<主机>:<端口>/<路径> | 面向事务 Transaction-oriented
端口 号通常为80,通常可省略
路径 指到因特网上的某个主页(home page)
请求一个万维网文档所需的时间
5-4-3-1 持续连接
Persistent connection 万维网服务器在发送响应后仍然在一段时间内保持连接。
- 非流水线方式 | 客户在收到前一个响应后才能发出下一个请求。
- 流水线方式 | 客户在收到 HTTP 响应报文之前就能接着发送新的请求。
5-4-3-2 代理服务器
Proxy Server 又称万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。
将最近的一些请求和响应暂存在本地磁盘中。
5-4-3-3 报文结构
两类报文:请求报文和响应报文。
HTTP请求报文的一些方法
OPTION,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT
5-4-3-4 状态码
- 1xx | 已收到正在处理
- 2xx | 请求成功
- 3xx | 重定向
- 4xx | 客户的差错
- 5xx | 服务器的差错
5-4-3-5 存放用户信息
使用 Cookie 来跟踪用户。表示在 HTTP 服务器和客户之间传递的状态信息。使用 Cookie 的网站服务器为用户产生一个唯一的识别码。
5-4-4 万维网文档
5-4-4-1 超文本标记语言
HTML 定义了许多用于排版的命令(即标签)后缀为.html或.htm
示例
5-4-4-2 动态万维网
静态文档是指文档创作完毕后存放在万维网服务器中,用户浏览过程中内容不会改变的。
动态文档是指文档内容在浏览器访问万维网服务器时才由应用程序动态创建。
5-4-4-3 通用网关接口 CGI
是一种标准,定义了动态文件如何创建。
通用:CGI 标准所定义的规则对其他任何语言都是通用的
网关:CGI 程序的作用像网关
接口:有一些已定义好的变量和调用等可供其他 CGI 程序使用
5-5 电子邮件
发送邮件的协议:SMTP
读取邮件的协议:POP3 和 IMAP
5-5-1 用户代理 UA
User Agent 就是用户与电子邮件系统的接口,是电子邮件客户端软件。
用户代理的功能:撰写、显示、处理和通信。
邮件服务器的功能:发送和接受邮件,同时向发信人报告邮件的传送情况。
电子邮件由信封(envelope)和内容(content)两部分组成。
5-5-2 传送协议 SMTP
简单邮件传送协议 Simple Mail Transfer Protocol
规定在两个相互通信的 SMTP 进程之间应如何交换信息。
规定了14条命令和21种应答信息。每条命令由4个字母组成,应答消息一般只有一行。
5-5-2-1 通信的三个阶段
连接建立 SMTP 客户和接收主机的 SMTP 服务器之间建立的。无中间的邮件服务器。
邮件传送
连接释放 邮件发送完毕后,SMTP 释放 TCP 连接。
5-5-2-2 信息格式
RFC 822 只规定了邮件内容中的首部(Header)格式,而主体(Body)部分则让用户自由撰写。
首部包括一些关键字,后面加上冒号。
重要关键字
- To: | 后面填入一个或多个收件人的电子邮件地址
- Subject: | 邮件的主题,反映了邮件的主要内容
- Cc: | 抄送,表示给某某人发送一个副本
- From: | 发信人的邮件地址
- Date: | 发信时间
- Reply-To: | 对方回信所用的地址
5-5-3 读取协议
POP3 和 IMAP
Post Office Protocol - Version 3 邮局协议 | 非常简单 功能有限的邮件读取协议
Internet Message Access Protocol 因特网消息访问协议,以前称 Interactive Mail Access Protocol(交互邮件访问协议)
IMAP特点
- 用户在自己的主机上操作 ISP 上的邮件服务器信箱,如同在本地操作一样
- IMAP 是一个联机协议
- 可以携带附件
- 缺点 | 如果用户没有将邮件复制到本机,需要经常与 IMAP 服务器建立连接
5-5-4 基于WWW的电子邮件
主机和邮件服务器之间使用 http 协议,邮件服务器之间邮件传送使用 SMTP 协议。
SMTP 缺点
- 不能传送可执行文件/二进制对象
- 限于传7位 ASCII 码
- SMTP 拒绝超过一定长度的邮件
5-5-5 MIME
Multipurpose Internet Mail Extension 多用途互联网扩展类型 | 设定某种扩展名的文件用一种应用程序来打开的方式类型。
MIME 三个部分
- 5个新邮件首部字段 | 提供有关邮件主体的信息
- MIME-Version
- Content-Description
- Content-ID
- Content-Transfer_Encoding
- Content-Type
- 定义了许多邮件内容格式 | 对多媒体电子邮件表示方法标准化
- 定义了传送编码 | 可对任何内容格式进行转换
5-6 DHCP
动态主机配置协议 Dynamic Host Configuration Protocol
为了将软件协议做成通用的、便于移植的,将协议软件参数化,不同计算机可以通过不同参数体现。
提供了即插即用联网(Plug-and-Play Networking)机制,允许计算机加入新的网络和获取 IP 地址不用手工操作。
协议配置 给软件协议参数赋值的动作。
配置项目 1) IP 地址;2) 子网掩码;3) 默认路由器的 IP 地址;4) 域名服务器的 IP 地址。
5-6-1 中继代理
Relay Agent 不是每个网络都有 DHCP 服务器,但至少有一个 DHCP 中继代理,配置了 DHCP 服务器的 IP 地址信息。
单播方式 | UDP
5-6-2 租用期
Lease Period DHCP 分配给客户的 IP 地址是临时的。租用期由 DHCP 服务器自主决定。
5-7 SNMP
简单网络管理协议 Simple Network Management Protocol | 使用 UDP 协议
网络管理 包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制。
主要构件
- 管理站(网络运行中心) | Network Operations Center | 网络管理系统的核心
- 管理程序 | 运行时成为管理进程
- 管理者 | Manager | 指机器
- 网络管理员 | Administrator | 人
被管理的对象 一个被管设备中可有多个被管对象
被管设备 有时称为网络元素或网元
构成内容 SNMP 本身 + 管理信息结构 SMI + 管理信息库 MIB
5-7-1 SNMP 本身
定义了管理站和代理之间所交换的分组格式。
所交换的分组包含各代理中的 对象(变量)名 及 其状态(值)。
SNMP 负责读取和改变这些数值。
5-7-2 SMI 管理信息结构
Structure of Management Infomation
定义了 命名对象和定义对象类型(包括范围和长度)的通用规则,以及 把对象和对象的值进行编码的规则
目的:确保网络管理数据的语法和语义无二义性。
功能
- 被管对象应该怎样命名 | 抽象语法记法1 ASN.1
- 存储被管对象的数据类型有哪些种
- 网络上传送的管理数据如何编码 | 基本编码规则 BER Basic Encoding Rule
SMI 管理对象构成一颗命名树
5-7-3 MIB 管理信息库
Management Infomation Base
在被管理的实体中创建命名对象,并规定了其类型。
5-7-4 协议数据单元和报文
两种基本的管理功能:“读”操作,get,检测;“写”操作,set,改变。
5-7-4-1 探询操作
SNMP 管理进程定时向被管理设备周期性地发送探寻信息。
好处
- 使系统相对简单
- 限制通过网络所产生的管理信息通信量
但不够灵活,且所能管理的设备不够多;系统开销大,若探询频繁而并未得到有用报告,通信线路和计算机 CPU 周期就被浪费。
5-7-4-2 陷进
SNMP 不是完全的探询协议,它允许不经过询问就能发送某些信息。这些信息称为陷阱 Trap
5-7-4-3 报文格式
5-8 应用进程跨网络通信
大多数 OS 使用系统调用(System Call)机制在应用程序和 OS 之间传递控制权。
5-8-1 API
Application Programming Interface 应用编程接口
应用进程启动系统调用时,控制权就从进程传递给系统调用接口。接口再将控制权传递给计算机 OS。
几种不同的 API
- Socket Interface | 套接字接口 | UNIX 定义的一种 API
- Windows Socket | Windows OS 提供
- TLI | Transport Layer Interface | AT&T
应用程序通过套接字接入网络
5-8-2 系统调用方式
并发方式
系统调用使用顺序
【完结】