导图社区 《计算机网络(第7版)》-导图
计算机网络教材:《计算机网络(第7版)》之网络层知识总结,包括网络层提供的两种服务、网际协议IP、划分子网和构造超网等等。
编辑于2022-08-10 11:41:34 上海计算机网络
概述
三网融合
21世纪特征:数字化、网络化、信息化
电信网络
有线电视网络
计算机网络
计算机网络的定义: 计算机网络主要是由一些通用的、可编程的硬件互连而成的, 而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号) 这些可编程硬件能够用来传送多种不同类型的数据, 并能支持广泛的和日益增长的应用
连通性
资源共享
互联网
互连网与互联网
互连网:多个网络通过路由器连接而成的更大的网络 互联网:Internet(专用名词),是对目前使用的网络的泛指
互联网基础结构发展的三个阶段
从单个APRANET向互连网
建成三级结构的互联网
主干网
地区网
校园网/企业网
多层次ISP结构的互联网
ISP:互联网服务提供商
Internet Service Provider
ISP分层
主干ISP
地区ISP
本地ISP
互联网标准化工作
互联网草案
建议标准
开始成为RFC文档
Request For Comments
互联网标准
互联网组成
边缘部分
端系统/主机,进行信息处理 用户直接使用
客户-服务器方式(C/S)
客户Client:服务请求方,主动发起通信 服务器Server:服务提供方,被动通信 此处都是指应用进程
对等连接方式(P2P)
不区分服务的请求方与提供方 同一台主机可以同时担任请求方和提供方 (其实本质还是C/S)
端系统之间的通信方式
核心部分
进行信息交换,为边缘部分提供连通性和交换服务 由大量网络和连接这些网络的路由器组成
电路交换
端到端,独占专用物理通路: 建立连接->通信->释放连接 面向连接
报文交换
基于存储转发原理,面向报文
分组交换
基于存储转发原理,转发的是分组(报文的一部分) 对于具有突发性的网络通信,效率高 不需要预先建立连接,带宽无法保证
路由器
路由器router 工作在网络层 实现分组交换,负责转发分组
高效
动态分配传输宽带 逐段占用通信链路
灵活
为每个分组独立选择最合适的转发路由
迅速
以分组为传送单位,时延比报文交换低 不需要预先建立连接
可靠
保证可靠性的网络协议 分布式多路由的分组交换网,网路生存性好
数据传送的三种交换方式
交换:按照某种方式动态地分配传输线路的资源
计算机网络类别
作用范围
广域网WAN
城域网MAN
Metropolitan Area Network
局域网LAN
个人局域网PAN
使用者
公用网
专用网
接入网AN
Access Network
用来把用户接入互联网的网络
从某个用户端系统 到互联网中的第一个路由器(边缘路由器)之间的网络
性能指标
速率/数据率
bit/s
带宽
描述信道传输数据的能力
bit/s
吞吐量
单位时间内通过某个网络的实际数据量(bit/s)
时延
发送时延
提供网络带宽可减少发送时延
传播时延
电磁波在光纤中的传播速率约为2*10e5 km/s
处理时延
排队时延
时延带宽积
往返时间RTT
有效数据率
利用率
信道或网络的利用率过高会产生非常大的时延
信道利用率
网络利用率
D0:表示网络空闲时的时延 D:表示网络当前的时延 U:利用率
非性能特征
费用
质量
标准化
可靠性
可扩展性和可升级性
易于维护和管理
体系结构
计算机网络各层及其协议的集合
协议与划分层次
实体
表示任何可发送或接收信息的硬件或软件进程
协议与服务
协议:水平的
为进行网络中的数据交换而建立的规则 是控制两个对等实体进行通信的规则的集合
服务:垂直的
本层向上一层提供的服务 本层使用下一层所提供的服务
协议三要素
语法
数据与控制信息的结构或格式
语义
需要发出何种控制信号、完成何种动作以及做出何种响应
同步
事件实现顺序的详细说明
分层模块化
优点很多,缺点是可能因功能重叠带来额外开销
各层之间相互独立
灵活性好
结构上可分割开
易于实现和维护
能促进标准化工作
1.差错控制 2.流量控制 3.分段和重装 4.复用和分用 5.连接建立和释放 ...
具有五层协议的体系结构
应用层
运输层
网络层
IP的复用和分用
数据链路层
物理层
TCP/IP体系结构:网络接口层
协议数据单元PDU
物理层:比特流
数据链路层:帧
frame
网络层:分组/IP数据报
教材中将分组与数据报混用
datagram
运输层TCP:报文段
segment
应用层:报文
message
物理层
物理层基本概念
串行传输比特流 主要任务:确定与传输媒体的接口的一些特性 为数据链路层屏蔽传输媒体和通信手段的差异
机械特性
电气特性
功能特性
过程特性
数据通信基础知识
数据通信系统模型
源系统
源点/信源
发送器
调制器(编码)
传输系统
目的系统
接收器
解调器(解码)
终点/信宿
信号
模拟信号/连续信号
数字信号/离散信号
信道相关概念
信道
发送信道
接收信道
信息交互方式
单向通信
双向交替信道
双向同时通信
调制基带信号
基带信号
基本频带信号BASEBAND 来自信源的信号 往往包含有较多的低频/直流成分,在许多信道上无法传输
基带调制
仅对基带信号的波形进行变换(编码)
不归零制
归零制
曼彻斯特编码
差分曼彻斯特
自带时钟
带通调制
使用载波(carrier)进行调制 提高基带信号频率范围并转换为模拟信号
调幅(AM)
载波的振幅随基带数字信号而变化
调频(FM)
载波的频率随基带数字信号而变化
调相(PM)
载波的初始相位随基带数字信号而变化
振幅相位混合调制
正交振幅调制QAM
极限容量
信道能够通过的频率范围
码间串扰
高频分量在传输时受到衰减, 波形的前沿/后沿变平缓,波形信号失去了码元间的清晰界限
奈氏准则
在任何信道中,码元传输的速率是有上限的,传输速率超过此上限, 就会出现严重的码间串扰问题,使接收端对码元的判决成为不可能 (因为间隔越短,越难区分界限)
信噪比
信号的平均功率/噪声的平均功率 信号强,噪声弱时噪声对波形的影响就小
香农公式
信道的带宽或信道中的信噪比越大, 信息的极限传输速率就越高 当信噪比无法提高时,还可以通过编码使码元携带更多信息
C:信道的极限信息传输速率 W:信道的带宽Hz
传输媒体
物理通路
导引型传输媒体
电磁波被导引沿着固体媒体(铜线或光纤)传播
双绞线/双纽线
通过互相绞合的方式来抵御一部分外界电磁波干扰
屏蔽双绞线(STP)
无屏蔽双绞线(UTP)
同轴电缆
具有较好的抗干扰性
光缆(光纤通信)
光的频率高,有丰富的频率和波长资源可利用 所以光纤(光导纤维)的带宽大
剖面示意图
通过全反射传播
多模光纤同步传输
光脉冲在多模光纤中传输会逐渐展宽 所以多模光纤只适合近距离传输
单模光纤
光纤的直径只有一个光的波长 一直向前传播,不会产生反射
优点
通信容量大
传输损耗小
抗雷电和电磁干扰性能好
无串音干扰,保密性好
体积小,重量轻
非导引型传输媒体
即无线传播,在自由空间中的电磁波传输
无线
可使用的频段广
短波通信
靠电离层反射
无线电微波通信
主要是直线传播
地面微波接力通信
优:频率高,频段宽,信道容量大,受干扰小 缺:相邻站必须直视,易受恶劣天气候响,保密性差
卫星通信
传播时延大
红外
大气激光
可用于近距离笔记本电脑传输数据
信道复用技术
发送端复用器+接收端分用器
频分复用FDM
相同时间不同频带宽度
时分复用TDM/同步时分复用
时分复用帧TDM帧
不同时间相同频带宽度 每段时间固定分割给相同的几个用户
统计时分复用STDM/异步时分复用
前提是各用户都是间歇地工作
由集中器统一先缓存后分配
波分复用WDM(光的频分复用)
密集波分复用DWDM
码分复用CDM/码分多址CDMA
抗干扰强,扩频通信的一种
码片(chip)
每个bit时间划分为m个短间隔 每个短间隔成为码片
码片序列
(由0/1组成) 不同发送站之间的码片序列相互正交(规格化内积为零) 惯例会将0写作-1
要发送1时,发送码片序列
要发送0时,发送码片序列反码
规格化内积
接收端
用该发送站的码片序列与接收到的总序列进行规格化内积 (非该发送站发送的信号不会产生干扰)
内积为0
不是该站发送的
内积为-1
该站发送了比特0
内积为1
该站发送了比特1
数字传输系统
传输标准的变化
脉码调制PCM体制
速率标准不统一
不是同步传输
同步光纤网SONET和同步数字系列SDH
宽带接入技术
ADSL技术
非对称数字用户线:上下行带宽不对称 用数字技术对现有的模拟电话用户线进行改造 将原来未被利用的高端频谱用于上网
光纤同轴混合网HFC
在有线电视网的基础上开发
FTTx技术
Fiber To The X 光纤入户:只有光纤进入家门后才将光信号转换为电信号
无源光网络PON
维护成本低
数据链路层
负责将网络层交下来的IP数据报组装成帧 在两个相邻节点间的链路上“透明”地传输帧
使用点对点信道的数据链路层
使用一对一的点对点通信方式
基本概念
链路
从一个结点到相邻结点的一段物理线路
中间没有任何其他的交换结点
数据链路
链路+实现通信协议的软硬件(协议)
帧
数据链路层的协议数据单元(PDU)
基本问题
封装成帧
为一段数据分别添加首部和尾部
帧定界符
也可为鉴别传输错误提供帮助 当数据由可打印的ASCII码组成时, 可以用不可打印的控制字符做帧定界符
SOH
Start Of Header
EOT
End Of Transmission
最大传输单元MTU
帧的数据部分的上限(不包括帧首/帧尾)
透明传输
键盘上输入的所有字符都可以无障碍在数据链路层上传输
字节填充法
因为控制字符可能与帧定界符重复,从而造成传输错误。 所以用字节填充法解决这一问题
在控制字符前加ESC进行转义
ESC:1B/00011011 接收端接收到ESC时进行删除,对于每连续两个ESC只删除第一个
差错检测
CRC能提供的仅是无差错接受 不保证接收到的帧没有发生传输差错,所以不是可靠传输 可靠传输=差错检测+确认重传机制
比特差错
比特在传输过程中产生差错,发生变化
误码率BER
Bit Error Rate 一段时间内,传输错误的比特占所传输比特总数的比率 与信噪比有关
循环冗余检验CRC
Cyclic Redundancy Check 是一种连同冗余信息一起发送的检验方法 理论上可检测以下错误
发送端:在待发送的数据帧M后添加冗余码再发送
冗余码的计算
约定参数
每组数据比特数k
冗余码位数n
生成多项式表示除数P
eg:P(X)=X^3+X^2+1,表示P=1101 长度为n+1位
计算步骤
1.在k位的M后添加n个零
2.对新数据除以P(模2运算)得除数R
模2的运算: 加法不进位;减法变加法
3.R即为冗余码,又称FCS
帧检验序列 (Frame Check Sequence)
接收端:对收到的数据帧除以同样的除数P(模2运算)
余数R=0:接受
余数R!=0:丢弃
传输差错(CRC无法检测)
帧丢失
帧重复
帧失序
点对点协议PPP
PPP协议特点
用户计算机和ISP进行通信时所使用的数据链路层协议
满足的需求
只支持全双工链路
首要需求:简单
封装成帧
规定帧定界符
透明性
多种网络协议
在同一条物理链路上同时支持多种网络层协议
多种类型链路
能够在多种类型的链路上运行
串行的/并行的 同步的/异步的 低俗的/高速的...
差错检测
检测连接状态
定时检测连接是否正常
设置MTU
一般为1500B
促进各种实现之间的互操作性
网络层地址协商
数据压缩协商
协议的组成
一个将IP数据报封装到串行链路的方法
链路控制协议LCP
Link Control Protocal 用来建立、配置和测试数据链路连接
网络控制协议NCP
Network Control Protocal
PPP协议帧格式
格式及字段含义
PPP是面向字节的 所有PPP帧的长度都是整数字节
标志字段F=0x7E:帧定界符
地址字段A只置为0xFF:表示所有站点都应该接受该帧
控制字段C通常为03:表示一个无编号帧
协议字段2字节
说明信息字段的类型
0x0021:IP数据报
0xC021:LCP数据
0x8021:NCP(网络层控制)数据
FCS用于差错检测的冗余码
字节填充(异步传输)
异步传输:逐个字符的传送
转义字符:0x7D
0x7E->(0x7D,0x5E)
0x7D->(0x7D,0x5D)
其他控制字符 ->(0x7D,原字符右数第六位上取反)
数值小于0x20
零比特填充(同步传输)
同步传输:一连串的比特连续传送
在连续的5个1后插入一个0
保证信息字段不会出现连续的6个1和帧定界符冲突
接收端同理删去多余的0
实现透明传输
PPP协议工作状态
链路建立流程
建立物理连接
LCP配置链路参数
NCP网络层配置,分配临时IP
释放顺序与建立顺序相反
LCP响应类型
配置选项包括:最大帧长、鉴别协议、PPP首部压缩等
配置确认帧
配置否认帧
都理解但不接受
配置拒绝帧
存在部分未识别/不理解
使用广播信道的数据链路层
使用一对多的广播通信方式
局域网的数据链路层
局域网介绍
优点
具有广播功能
硬件广播
便于系统扩展、演变;设备位置灵活
按网络拓扑进行分类
星形网
集线器
环形网
总线网
共享信道技术
静态划分信道
各种复用技术
代价较高,不适合局域网使用
动态媒体接入控制/多点接入
随机接入
受控接入
如令牌环局域网、轮询等
以太网的两个标准
以太网是一种基带总线局域网
DIX Ethernet V2
严格的以太网
IEEE 802.3
与以太网V2区别不大,也可称为以太网
数据链路层的两个子层
LLC逻辑链路控制(不讨论)
Logical Link Control
MAC媒体接入控制
Medium Access Control
适配器/网卡NIC
Network Interface Card 适配器上装有处理器和存储器 可以存储计算机的硬件地址 (IP地址存在计算机的存储器中)
功能
进行数据串行传输和并行传输的转换
缓存数据
实现以太网协议
CSMA/CD协议
载波监听多点接入/碰撞检测 只支持双向交替通信 以太网:无连接工作方式+曼彻斯特编码信号
三个要点
多点接入
总线型网络
载波监听
借用载波名词,与载波没什么关系
每个站不停的检测信道
碰撞检测
发生碰撞时,总线上的信号电压变化幅度会增大
边发送边监听以检测是否发生碰撞
冲突的解决
发送的不确定性
发送数据后的一段时间内都无法确定是否发送成功
争用期/碰撞窗口
争用期内未发生碰撞,才说明发送成功 争用期一般规定为2τ
重传机制:截断二进制指数退避
r倍的争用期
重传次数达16次,丢弃该帧并向上报告
最短帧长64字节
不够也要填充到64字节(在数据部分填充) 数字来源:协议规定具体争用期51.2μs,对于10Mbit/s以太网,该时间可发送512bit即64字节
强化碰撞
发现碰撞时停止发送数据+立刻发送32/48bit的人为干扰信号
帧间最小间隔:96比特时间
使得刚收到数据帧的站来得及清理接收缓存 1比特时间=1μs
步骤
准备发送
检测信道:96比特时间内保持空闲
边发送边监听
成功发送
发送失败:执行退避算法
集线器的使用
hub 星形拓扑的以太网 热插拔,即插即用
在逻辑上仍是总线结构,使用CSMA/CD协议
用两对双绞线与一台计算机的适配器连接
发送接收各用一对
工作在物理层,仅转发比特
自适应串音回波抵消
以太网的信道利用率
单程端到端时延τ/帧的发送时间T0 比值越小,信道利用率越高; 因为这样说明一发生碰撞就可以检测出来,因此浪费资源少 (时间都花在发送上)
理想情况下的极限信道利用率 表示不发生碰撞,即除了发送时延和传播时延 没有其他浪费的情况发生
MAC层
MAC层的硬件地址
固化在适配器的ROM中
6字节
前三个字节中的23位:组织唯一标识符OUI
公司标识符 (一个公司也可能购买多个)
第一字节最低位I/G位
0:单个站地址
1:组地址,用来进行多播
第一字节最低第二位G/L位(不理会)
0:全球管理
1:本地管理
后三个字节:扩展标识符
Extended identifier
MAC帧分类
适配器自动过滤
单播帧
广播帧:地址全为1
多播帧
混杂方式
promiscuous mode 一种适配器工作方式,接收以太网上传输的所有帧
嗅探器
sniffer
MAC帧格式
此处指以太网V2标准的MAC帧格式,该格式也是最常使用的 MAC帧中没有指明帧长: 因为使用曼彻斯特编码,自带时钟,所以接收方可以自动确定帧尾
7字节前同步码+1字节帧定界符,可以不算在MAC帧的格式字段中
目的地址/源地址各6字节
类型字段2字节:标志上层协议
0x0800:IP
0x8137:IPX
数据字段:46字节~1500字节
46=以太网最小字段64-首部14-FCS4 1500是MTU
帧检验序列FCS(使用CRC检验)
IEEE 802.3与以太网V2标准的区别
第三个字段,区别不大且无实际应用
IEEE 802.3的第三个字段为“长度/类型”,大于0x0600时表示类型
0x0600=1536,由于采用曼彻斯特编码。该字段没什么意义
“长度/类型”字段小于0x0600时数据字段必须装入LLC帧
扩展的以太网
物理层扩展
采用集线器构成碰撞域
仍是总线结构
要求使用的以太网技术必须相同
数据链路层扩展
网桥(已淘汰)
bridge
转发过滤MAC帧
以太网交换机
switch
特点
多接口网桥
全双工方式
并行
即插即用
直通(cut-through)
某些交换机的交换方式 不缓存数据帧直接转发,交换时延小 但因为不检查帧是否有效,有可能转发无效帧
自学习交换表功能
项目设有有效时间,过期会删除
生成树协议STP
找最小生成树
总线以太网->星形以太网
早期技术条件限制只能采用总线结构 后因大规模集成电路/专用芯片发展,交换机价格便宜且可靠 所以转变为星形以太网结构,CSMA/CD也不再使用
虚拟局域网(VLAN)
Virtual LAN 逻辑上的局域网 安全性/载荷/广播
IEEE 802.3ac 以太网帧格式扩展:VLAN标记tag
高速以太网
100BASE-T 以太网
吉比特以太网
半双工方式使用CSMA/CD协议
载波延伸
增大最短帧长到512字节
分组突发
第一个短帧用载波延伸,随后的短帧保留帧间最小间隔 然后一个个发送(不必填充)直到1500+字节为止
全双工方式不使用CSMA/CD及上述两方式
10吉比特以太网和更快以太网
只有全双工方式
使用以太网进行宽带接入
以太网用户认证:PPPoE
网络层
网络层提供的两种服务
面向连接的可靠交付
无连接、尽最大努力交付的数据报服务
网络层不提供服务质量的承诺 可以使网络造价大大降低,运行方式灵活/能够适应多种应用
网际协议IP
Internet Protocal IP协议使得互连的异构网络对上层而言是统一的网络 此处讲的是IPv4 IP over everythIng, everything over IP
虚拟互连网络
逻辑上的互连网络 因为各物理网络存在异构性,不能当作完全相同的网络 所以相连后只是逻辑上变成了一个统一的网络 即互联网可以由多种异构网络互连而成
中间设备
中继(relay)系统
物理层:转发器/集线器
数据链路层:网桥/桥接器/交换机
仅扩大原网络
网络层:路由器
将不同网络互连
网络层以上:网关(gateway)
分组的发送
同一物理网络:直接交付到目的主机
虚拟互连网络:查转发表、间接交付给路由器
分类的IP地址
IP地址:32位标识符 在整个互联网范围内是唯一的 标志着一台主机(或路由器)和一条链路的接口 所以多归属主机在不同网络中都有对应的ip
编址方法演变
分等级地址结构 1.机构只需要分配网络号,省事 2.路由器只需要根据网络号转发,减少转发表存储空间
分类的IP地址
两级地址
划分子网
三级地址
构造超网
两级地址
IP地址及其表示方法
两级的IP地址
网络号(net-id)
在整个互联网范围内唯一 一个网络是指具有相同网络号net-id的主机的集合
主机号(host-id)
在网络号指明的网络中唯一
ABC类地址都是单播地址,在网络号字段开头有固定的类别位 D类地址用于多播 E类地址保留今后使用
点分十进制法
dotted decimal notation
常用的三种类别的IP地址
保留地址
127.0.0.1
环回地址(loopback)
主机号全0
本网络
主机号全1
广播地址
网络中不能分配给主机的IP地址
ABC类地址指派范围
IP地址与硬件地址
由于异构网络使用不同的硬件地址 因而需要进一层抽象的IP地址进行统一管理 便于异构网络之间的相互通信,将复杂问题简单化
IP地址是网络层和以上各层使用的地址,是一种逻辑地址
由软件实现
物理地址是数据链路层和物理层使用的地址
由硬件实现 与IP地址相同,多归属主机的每个接口都有各自的硬件地址
要点强调
路由器在路由选择时是根据目的主机IP地址的网络号进行转发
IP层抽象的互联网对上屏蔽了下层复杂的细节
路由器在转发时会重新对IP分组封帧,加上新的MAC帧首部/尾部(硬件地址)
地址解析协议ARP
Address Resolution Protocal 负责完成同一个局域网中IP地址到MAC地址的映射 逆映射曾经由RARP实现,该功能现已归在DHCP协议中
ARP高速缓存(ARP cache)
存放从IP地址到MAC地址的映射表 设置生存时间,到期删除
缓存中没有时,在局域网广播ARP请求分组寻找对应IP
同时携带自己的IP地址与MAC地址,以便对方写入 减少通信量 ps:路由器不转发ARP请求
目的主机发回ARP响应分组
映射关系写入
IP数据报的格式
此处指IPv4 IPv4使用变长首部
变长首部
由首部长度字段可知 IP数据报首部一定为4的整数倍,且范围为20-60字节
前一部分固定20字节
版本 4位
IP协议的版本
首部长度 4位
单位:4字节
不够4的倍数时需要进行填充
区分服务 8位
Differentiated Services
一般不使用
总长度 16位
指首部+数据部分的总长,最大值2^16-1=65535
单位:字节
标识 16位
来自相同数据报的报片有相同的标识
标志 3位
目前只有两位有意义
最低位MF
More Fragment
1:后面还有分片
0:这是最后一个分片
中间位DF
Don't Fragment
1:不能分片
0:允许分片
片偏移 13位
单位:8字节
除最后一个数据报片外,每个分片的长度一定是8字节的整数倍
IP分片
当IP长度超过数据链路层的MTU之后就需要进行分片操作 将原IP分组分成多个IP分组 (由于不同的链路有不同的MTU,IP协议规定所有主机/路由器 都必须接受长度不超过576字节的数据报)
生存时间 8位
Time To Live 跳数限制,每被路由器转发一次都减1 减少后得零时就丢弃
协议 8位
指明携带的数据使用何种协议
首部校验和 16位
只校验首部,不校验数据部分,可以减少计算的工作量
反码算术运算
0+0=0 0+1=1 1+1=0,产生进位1加到下一列 最高位产生的进位加在除最高位的结果上得最终结果
发送方
检验和字段置0
把首部划分为16位(4个16进制数)一组
反码求和、加上最高位进位
结果取反
写入检验和字段
接收方
重复上述计算过程,包括检验和字段
取反
为0,保留
非0,丢弃
源地址
目的地址
32位
后一部分可选字段可变长
支持排错、测量以及安全等措施
1~40字节,但必须全0填充至4字节的整数倍
数据
IP层转发分组的流程
从数据报中提出目的主机的IP->目的网络地址
是否处于同一网络
是:直接交付
否:查找路由表
(目的网络地址,下一跳地址)
特定主机路由
对应目的网络的路由
默认路由
目标网络:0.0.0.0 (子网掩码:0.0.0.0)
报告转发分组出错
划分子网和构造超网
划分子网
增加了灵活性,却减少了能够分配给主机得IP地址数量
从两级IP地址到三级IP地址
分类的IP地址空间利用率低
网络数量过多会使得路由表变得太大
两级IP地址不够灵活,单位不能随时随地设立新网络
划分子网思路
对内划分若干子网,对外表现为同一网络
方法:从主机号借用若干位作子网号(subnet-id)
网络号
子网号
主机号
子网掩码
subnet mask
直接与IP地址相与即可得网络号
默认子网掩码
使用子网时分组的转发
路由表格式
(目的网络地址,子网掩码,下一跳地址)
步骤与上述相同,除了查找网络号时增加匹配子网掩码
无分类编址CIDR(构造超网)
无分类域间路由选择 基于划分子网,区别 1.在于多了一种记法“斜线记法” 2.引入路由聚合的概念,减少路由表中的项目数 3.消除分类IP/划分子网的概念,使得IP地址的分配更加灵活
网络号:网络前缀(prefix)
又变回两级地址
斜线记法:128.14.35.7/20
CIDR地址块
路由聚合/构成超网
route aggregation 是划分子网的逆过程
兼容子网掩码
最长前缀匹配/最佳匹配
用二叉线索查找路由表 (类似哈夫曼树)
网际控制报文协议ICMP
Internet Control Message Protocal 报告差错情况和提供有关异常情况的报告 装在IP数据报的数据部分中
ICMP报文种类
ICMP差错报告报文
数据为出错的IP数据报的首部 和 数据字段的前8个字节 (为了获得该数据报的相关信息和运输层端口号)
分类
3-终点不可达
11-时间超时
12-参数问题
5-改变路由(Redirect)
不发送ICMP差错报文的情况
ICMP差错报文
第一个分片数据的后续报片
具有多播地址的数据报
具有特殊地址(如环回地址)的数据报
ICMP询问报文
回送请求和回答
用于测试主机是否可达及了解其状态
时间戳请求和回答
请求某个站回答当前的日期时间
用于进行时钟同步和测量时间
ICMP应用举例
Ping
Packet InterNet Groper 分组网间探测
测试两个主机之间的连通性
使用ICMP回送请求与回答报文
应用层直接使用,不通过TCP/UDP
Tracert
路由跟踪
数据报中为无法交付的UDP数据报
TTL递增探测
涉及超时及终点不可达差错报文
互联网的路由选择协议
基本概念
理想的路由算法
正确且完整
计算简单
具有自适应性/稳健性
动态路由选择
适用于大网络 (简单的小网络可以采用静态路由选择)
稳定性/收敛
公平
相对最佳
分层次的路由选择协议
自治系统AS
autonomous system 在单一技术管理下的一组路由器 在自治系统内部使用相同的路由选择协议和度量
内部网关协议
Interior Gateway Protocal 自治系统内
外部网关协议
External Gateway Protocal 自治系统间
内部网关协议
域内路由选择
RIP协议
Routing Information Protocal 路由信息协议:分布式的基于距离向量的路由选择协议 简单、适用于小型互联网; 好消息传得快,坏消息传得慢 收敛快,故障更新过程长 分布式:由交换信息体现
特点
度量:距离向量/跳数
1.到直连网络距离为1 2.到非直连网络:所经过的路由器总数加1 最多包含15个,16定义为不可达
三要点
和谁交换信息? 交换什么信息? 什么时候交换?
仅和相邻路由器交换信息
交换的是本路由器的全部路由表
按固定时间间隔交换路由信息
距离向量算法
基础:Bellman-Ford算法 每个路由器都只知道相邻路由器的状态,而不知道全网拓扑
RIP路由表
收到相邻路由器发送来的RIP报文
修改下一跳地址为该相邻路由器,距离字段+1
对修改后的每个项目
原路由表中没有目的网络
直接添加
原路由表中有目的网络
若下一跳为该相邻路由器:直接覆盖
若下一跳不为该相邻路由器:选最短的
可能会导致网络出故障时不能及时发现
3min未收到消息:记为不可达
报文格式
RIP协议使用运输层的UDP,520端口进行传送 最多包含25个路由,最大程度20*25+4=504字节
地址族标识符:IP地址-2
标记路由:自治系统的号码
OSPF协议
Open Shortest Path First 开放最短路径优先:使用分布式的链路状态协议 更新收敛过程比RIP更快
特点
度量:链路状态
结点&结点的链接状态
三要点
向本自治系统中所有路由器发送消息
发送的是与本路由器相邻的所有路由器的链路状态
链路状态指:路由器与哪些路由器相邻
只有当链路状态发生变化时才利用洪泛法发送
其他
可以给每条路由指派不同代价
负载平衡:将通信量分给多条代价相同的路径
具有鉴别功能,支持VLSM/CIDR
链路状态带有32位序号,序号越大越新
可靠的洪泛法:收到后要发送确认
指定的路由器DR:所有路由器将链路状态发给DR,DR再将链路状态发出去
可以大大减少链路中的广播量
最短路径算法(链路状态)
Dijkstra算法 每个路由器都知道全网的拓扑结构 链路状态数据库(link-state database)全网同步: 类似由邻接表求得最短路径
分层次划分区域(area)
将一个大的自治系统划分为若干小区域 每个区域最好不超过200个路由器 减少交换路由信息时网络上的通信量
32位区域标识符
主干区域(backbone area)
主干路由器
自治系统边界路由器
和其他自治系统通信
其他区域
区域边界路由器
和主干区域通信
报文格式
OSPF直接使用IP数据报传送,协议字段89
分组类型
问候分组
Hello
相邻路由器之间,每隔10s交换,确认可达
数据库描述分组
Database Description
向邻站给出自己的链路状态数据库中的项目摘要
链路状态请求分组
Link State Request
请求对方发送
链路状态更新分组
Link State Update
利用洪泛法对全网更新链路状态
链路状态确认分组
Link State Acknowledgment
对链路更新分组的确认
外部网关协议
域间路由选择
外部网关协议的必要性
选择最好的路径而不是最佳的路径
互联网规模巨大,RIP/OSPF无法支持
RIP本身自身局限不再赘述 OSPF在网络规模巨大时,主干网计算最短路径花费时间过长 且有的使用RIP,有的使用OSPF无法统一
自治系统之间有特定的路由选择策略
出于政治、安全、经济方面考虑
边界网关协议BGP
BGP发言人
BGP speaker
通过TCP连接与其他BGP发言人交换路由信息
路径向量路由选择协议
path vector
若本身在路径向量中则不接受该路径向量
结点的数量级是自治系统数的量级
支持CIDR
BGP报文
BGP报文通用首部
分类
打开报文
OPEN
与相邻BGP发言人建立关系,初始化通信
更新报文
UPDATE
核心 | 一次可以撤销多条 或 新增一条路由
以免一次性新增太多无法处理
保活报文
KEEPALIVE
周期性证实邻站连通性
通知报文
NOTIFICATION
发送检测到的差错
路由器的构成
路由器的结构
具有多个输入端口和多个输出端口的专用计算机 任务是转发分组,工作在网络层 注意区分路由选择和转发
路由选择部分(控制部分)
路由选择处理机
负责构造路由表
分组转发部分
交换结构
影子副本
在每个输入端口中复制一份转发表 分散交换功能
一组输入端口
端口即指硬件接口
一组输出端口
队列溢出导致分组丢失
交换结构
根据转发表对分组进行处理,“在路由器中的网络” 路由器的关键部件
存储器统一处理
共用总线传输
纵横交换结构
IPv6
128位地址 协议数据单元:分组
IPv6格式
主要变化
更大的地址空间32->128
扩展的地址层次结构
灵活的首部格式:扩展首部
改进的选项
支持资源预分配
支持实时视像等要求保证一定的带宽和时延的应用
首部8字节对齐
固定的基本首部(base header)
固定首部:40字节 8字节对齐 扩展首部不属于首部
将原首部中的功能进行了删减
或者挪到扩展首部中 使IP协议更简单/易于实现/成本低/不易出错
版本 4位
IPv6:6
通信量类 8位
相当于IPv4中的区分服务
区分分组的类别/优先级
流标号 20位
用于实时音视频数据传送的资源预分配
属于同一个流的数据报有相同的流标号
有效载荷长度 16位
与IPv4不同,此处不带计算固定首部 最大值:65535字节
单位:字节
下一个首部 8位
无扩展首部时为上层协议
有扩展首部时为第一个扩展首部的类型
跳数限制 8位
相当于IPv4中的TTL字段
源地址
目的地址
各128位
有效载荷(payload)
扩展首部
除逐跳选项扩展首部外,路由器不处理扩展首部 可大大提高效率 扩展首部的第一个字段都是8位:下一个首部
逐跳选项
路由选择
分片
鉴别
封装安全有效载荷
目的站选项
数据部分
IPv6地址
类型
单播(unicast)
多播(multicast)
广播的功能被涵盖在多播中
任播(anycast)
目的站是一组计算机,交付时通常选最近的
冒号十六进制记法
四个16进制数一组
冒号隔开
前导零压缩法
压缩前导零
零压缩
1.压缩连续的零 2.用双冒号表示 3.只能使用一次
点分十进制后缀
用在IPv4向IPv6的转换阶段
全球单播地址
从IPv4向IPv6过渡
双协议栈(dual stack)
装有双协议栈的主机/路由器通过DNS返回的地址类型选择协议栈 因为要转换协议,可能会导致首部字段信息丢失
隧道技术(tunneling)
把IPv6的数据报当作数据封装在IPv4中
ICMPv6
面向报文,利用报文来报告差错,获取信息,探测邻站或管理多播通信
ARP和IGMP都被合并到ICMPv6中
IP多播
基本概念
一对多通信,由路由器复制分组,大大节约网络资源
主机只需要发送一个分组; 路由器复制分组; 局域网支持硬件多播
局域网上的硬件多播
虚拟专用网VPN和网络地址转换NAT
虚拟专用网VPN
Virtual Private Network
地址
本地地址
路由器不转发目的地址是本地地址的分组
全球地址
实现
隧道技术
利用公网进行通信,需要对分组加密
远程接入VPN
remote access VPN(流动的) 拨号接入互联网,由VPN软件建立VPN隧道
网络地址转换NAT
Network Address Translation 处于安全性和保护内部结构考虑
NAT路由器:至少有一个有效的公网IP
实现
NAT:网络地址转换
一对一,一个内部地址对应一个外部地址
NAPT:网络地址与端口号转换
利用运输层端口号,多对一
运输层
运输层协议概述
进程之间的通信
运输层提供应用进程之间(端到端)的逻辑通信
(网络层提供主机之间的逻辑通信) 运输层是面向通信部分的最高层,用户功能中的最底层 它向高层用户屏蔽了下层网络核心的区别 (网络拓扑、路由选择协议的差别)
复用和分用
复用(multiplexing)
不同的应用进程使用同一个运输层协议传输数据
分用(demultiplexing)
同一个运输层协议将数据正确交付到不同的目的应用进程
负责差错检测(包括数据部分)
运输层的两个主要协议
无连接的UDP协议
UDP用户数据报
不可靠信道
在媒体传输/视频传输时很有效
面向连接的TCP协议
TCP报文段(segment)
全双工可靠信道
不提供广播/多播
对于可靠性要求较高的应用采用TCP 比如文件传输类和需要精确通信的TELNET等
运输层的端口
协议端口号(protocol port number) 这种端口是软件端口(地址),而非硬件端口(接口) 因为进程号是动态的,所以需要统一的运输层 对应用的标识方法 (端口号 != 进程号,一般是一对一)
端口号范围
16位端口号
0-65535
端口号分类
熟知端口号/系统端口号
Well Known Ports 指派给TCP/IP最重要的一些应用程序
0-1023
登记端口号
Registered Ports 指派给没有熟知端口号的应用程序 (需要在IANA登记,以防重复)
1024-49151
服务器端使用
短暂端口号
Ephemeral Ports 留给客户进程暂时使用 (随机分配)
49152-65535
客户端使用
用户数据报协议UDP
UDP概述
无连接
减少开销和发送数据前建立连接的时间
尽最大努力交付
面向报文
对上层报文不拆分/不合并
一次交付一个完整的报文
可能降低IP层的效率
IP分片增加了出错概率
无拥塞控制
可能会引起网络产生严重的拥塞问题
适合多媒体通信
支持一对一/一对多/多对一/多对多通信
首部开销小,只有8字节
UDP格式
长度:最小值8(仅首部)
校验和:校验整个UDP报文(包括伪首部),采用反码算术运算
检错能力不强,但是简单,速度快
12字节伪首部:仅用在计算校验和时加上
不向下发送也不向上提交
可靠传输的工作原理
停止等待协议
发送完分组后等待收到确认再继续发送
无差错情况
出现差错
超时重传
接收端直接丢弃
发送端负责重传
1.需要暂存已发送的分组 2.对分组/确认分组编号,以标识出错的分组 3.超时计时器至少略长于RTT
超时计时器
确认丢失和确认迟到
可靠传输协议:自动重传请求ARQ
接收端不理会重传的分组,但需要再次发送确认
发送端收下重复确认后丢弃
信道利用率
浪费太多时间等待,信道利用率低
U是信道利用率 TD是分组发送时延 TA是确认的发送时延 一旦发生差错,利用率将更低
连续ARQ协议
通信线路质量不好时,会带来负面影响 (SACK选项可以完善回退N的问题)
滑动窗口
发送方维护发送窗口
累计确认
对按序到达的最后一个分组进行确认
发送方回退N
缺点是中间分组出错将会连累之后按序的分组
传输控制协议TCP
TCP概述
特点
面向连接
使用前建立连接
使用后释放连接
虚连接
点对点(端到端)
提供可靠交付服务
无差错/不丢失/不重复/按序到达
全双工通信
面向字节流(stream)
发送缓存
传送时再按划分
接收缓存
连接
端点:嵌套字(socket)
(IP地址:端口号)
每条TCP连接被两个嵌套字唯一确定
TCP报文段首部格式
四字节填充
源端口
目的端口
各2字节,实现分用/复用
序号:4字节
循环利用
按字节编号,序号填写报文段数据中第一个字节的序号
确认号:4字节
确认号N表明到N-1为止的字节都正确收到了
期望收到的下一个报文段的第一个字节的序号
数据偏移:4位
单位/4字节
即首部的长度:最大60字节
保留:6位
置0
紧急URG
紧急数据插入队头优先传送
和紧急指针字段配合使用
确认ACK
连接建立后所有传送的报文段ACK都为1
推送PSH
立刻发送,接收端收到后立刻向上交付
很少使用
复位RST
重建连接
同步SYN
连接请求报文段,建立连接时使用
终止FIN
用来释放连接
控制位
窗口:2字节
指明允许对方发送的数据量
己方的接收窗口大小
单位:字节
校验和:2字节
加上伪首部
协议字段:6
紧急指针:2字节
指出紧急数据末尾在报文段中的位置
对方接收窗口为零仍可发送
固定20字节
选项:可变长至40字节
最大报文段长度MSS
Maximum Segment Size
指数据字段的最大长度
最好不要大到让IP分片
最大1460字节
在IP和TCP首部都是基础的20字节时达到
窗口扩大选项:3字节
移位值S:1字节
增大到2^(16+S)-1
时间戳选项:10字节
1.用于计算RTT(时间戳差) 2.防止高速网络下序号绕回(不同的时间戳标识)
时间戳值字段 4字节
时间戳回送回答字段 4字节
选择确认选项(SACK)
优化累计确认机制
填充字段:4字节对齐
TCP可靠传输的实现
滑动窗口(以字节为单位)
sliding window
发送窗口
发送窗口中的都可以发送
已发送未确认的都要暂存
不建议向后收缩发送窗口前沿
被移出发送窗口的数据可能已经发出去了 从而带来一些潜在的问题
发送缓存内
包括发送窗口和尚未进入发送窗口、等待发送的数据
接收窗口
存放未按序到达的数据
接收缓存内
包括接收窗口和已经按序到达但是还没被应用读取的数据
超时重传时间的选择
自适应算法 RTO为两个参数的线性组合 这两个参数各自有更新策略
超时重传时间:
Retransmission Time-Out RTO略大于RTT,略大的值由历史记录偏差决定 使得网络中突发的问题不会对整个传输造成太大影响
加权平均往返时间:
α一般取0.125 新旧RTT各占一定影响
RTT样本:报文段发送时间 - 收到该报文确认时间
RTT偏差的加权平均值:
β一般取0.25 新旧偏差各占一定影响 (偏差很大,所以需要一定的平滑)
典型策略:报文段每重传一次,RTO扩大一倍
修正的KARN算法
选择确认SACK
Selective ACK
建立连接时协商:允许SACK
指明边界首尾:共需要8字节(序号32位)
扩展选项最多指明4段
5段就会超过TCP首部最大值
TCP流量控制
flow control 端到端的控制 让发送方的发送速率不要太快,以免接收方来不及接收
利用滑动窗口实现流量控制
对方接收窗口制约己方发送窗口
持续计数器
persistence timer
对方接收窗口位0时,定时发送零窗口探测报文
仅携带1字节数据 TCP规定:接收窗口为零也需要接收 1.零窗口探测报文 2.确认报文段 3.携带紧急数据的报文段
传输效率
TCP发送报文段时机
缓存中数据到达MSS
PUSH操作
发送方计时器到期
Nagle算法
第一个数据字节马上发,其他缓存,收到确认后再组装之后的发送 继续缓存等待确认到了再发送....
糊涂窗口综合征
silly window syndrome
接收窗口过小,让接收方等待一段时间等窗口大了再发
TCP拥塞控制
congestion control 网络全局控制
原理
拥塞:供不应求;拥塞后不处理就会越来越严重
拥塞控制就是防止过多的数据注入到网络中
方法
开环控制
提前考虑,运行时不再干预
闭环控制
基于反馈环路,自我调节
拥塞指标: 平均队列长度、超时重传分组数、平均分组时延
检测网络拥塞的时间地点
传送拥塞信息到相关地方
比如产生分组的源站
调整网络的运行,解决问题
拥塞控制方法(闭环控制)
基于窗口的拥塞控制 原理: 只要没有产生拥塞,拥塞窗口就可以继续增大 一旦产生拥塞,就要减小拥塞窗口
相关概念
拥塞窗口 cwnd
Congestion Window
传输轮次:发送+收到对应确认
transmission round
慢开始门限 ssthresh
如果原来有ssthresh,则调整为原cwnd一半
拥塞的判断
重传定时器超时:慢开始
拥塞了
收到三个相同的ACK:快重传
可能是个别分组的丢失,而不是网络拥塞导致的
加法增大,乘法减小(AIMD)
加法增大:拥塞控制 乘法减小:快恢复中的门限值减半
算法介绍
慢开始(slow start)
初始化拥塞窗口大小:1 SMSS
SMSS:发送方最大报文段
Sender Maximum Segment Size
新RFC 5681标准
每收到一个新确认,cwnd=min(N,SMSS)
是一个以2的指数增加的过程
N为该确认对应报文段 数据部分字节数
拥塞控制(congestion avoidance)
为了降低网络出现拥塞的概率
加法增大:每经过一个RTT时间增大1个MSS
从指数增大变为线性增大
快重传(fast retransmit)
前提:接收方是立即发送确认,不会稍待确认/SACK 收到3个(与之前)相同的ACK,立即重传
立即重传报文段
快恢复(fast recovery)
ssthresh=cwnd/2
cwnd=ssthresh
执行拥塞避免
流程图
发送窗口的上限=Min(rwnd,cwnd)
主动队列管理AQM
网络层
相关概念
尾部丢弃策略
全局同步
由于尾部丢弃,主机同时进入慢开始
方法
随机早期检测RED
不理想
平均队列长度<队列长度最小门限,正常排队
介于中间:按一定概率丢弃
概率很难确定
平均队列长度>最大门限:直接丢弃
TCP运输连接管理
连接建立
三报文握手 由客户机主动发起
数据传送
连接释放
四报文握手 双方都可释放
服务器端:保活计时器,超时会自动断连
MSL:最长报文段寿命
TCP有限状态机
应用层
规定应用进程在通信时所遵守的协议
域名系统 DNS
域名系统概述
域名系统
Domain Name System
便于把机器名字转换为IP地址
层次结构命名树
分布式域名系统DNS
互联网的域名结构
顶级域名TLD
Top Level Domain
国家顶级域名
通用顶级域名
域名服务器
运行域名服务器程序,完成IP和名字之间的解析 域中可能包含多个区
根域名服务器
最高层次的域名服务器 本地域名服务器无法解析时首先求助域名服务器 就近解析
13套装置
顶级域名服务器
权限域名服务器
用来保存该区中所有主机的域名到IP地址的映射
管辖范围:区(zone)
本地域名服务器(默认域名服务器)
cache
域名的解析过程
主机也需要维护域名的高速缓存
递归查询
迭代查询
文件传输协议 FTP
File Transfer Protocol 非加密传输
FTP概述
FTP基本工作原理
主进程处理新请求
从属进程负责处理售后
21端口控制连接/20端口数据连接
简单文件传输协议 TFTP
Trivial File Transfer Protocol 使用UDP
使用UDP
不支持交互
远程终端协议 TELNET
明文
传送击键,传回输出
万维网 WWW
万维网概述
World Wide Web
分布式超媒体系统/由各种链接联系而成
统一资源定位符 URL
Uniform ResoUrce Locator 标志资源
<协议>://<主机>:<端口>/<路径>
80通常可省略
超文本传输协议 HTTP
HyperText Transfer Protocol
HTTP/1.1 持续连接
报文结构
请求报文
响应报文
状态码
2xx 成功
3xx 重定向
4xx 客户差错
5xx 服务器差错
Cookie 存在服务器上
超文本标记语言HTML
HyperText Markup Language
万维网的文档
静态文档
动态文档
浏览器组成
控制程序
HTML解释程序
万维网的信息检索系统
全文检索搜索引擎
分类目录搜索引擎
垂直搜索引擎
博客和微博
社交网站
电子邮件
电子邮件概述
用户代理UA:电子邮件客户端软件
简单邮件传送协议 SMTP(发邮件)
连接建立
邮件传送
连接释放
电子邮件的信息格式
地址格式
Cc:抄送,不必回复
邮件读取协议 POP3 和 IMAP
用户从邮件服务器读邮件
IMAP:联机协议 直接操纵邮件服务器
基于万维网的电子邮件
发送和收件都使用HTTP协议
通用互联网邮件扩充 MIME
动态主机配置协议 DHCP
配置项目
IP地址
子网掩码
默认路由器IP地址
域名服务器IP地址
DHCP中继代理
分担DHCP服务器的负载
租用期