导图社区 计算机网络
计算机网络、E向CA提供“身份证明”、CA创建绑定E及其公钥的证书(certificate)、证书包含由CA签名的E的公钥 – CA声明:“这是E的公钥”
编辑于2022-11-10 19:52:07计算机网络
第九章 网络安全协议与技术
9.1 安全电子邮件
电子邮件安全威胁
垃圾邮件
诈骗邮件
邮件炸弹
通过电子邮件/附件传播网络蠕虫/病毒
电子邮件欺骗、钓鱼式攻击
电子邮件安全需求
机密性
完整性
身份认证
抗抵赖
安全电子邮件基本原理
Alice期望向Bob发送机密邮件m
Alice期望提供发送者认证与报文完整性
Alice对报文进行数字签名
发送报文(明文)和数字签名
Alice期望提供保密、发送者认证与报文完整性
安全电子邮件标准
PEM(Privacy Enhanced Mail)标准
PEM的运行依赖PKI(公钥基础设施),如CA
提供4种安全服务
邮件加密
报文完整性
发送方认证
防发送方否认
PGP(Pretty Good Privacy)标准
特点
可在各种平台(Windows、UNIX等)免费运行
可用于普通文件加密及军事目的
所用算法被证实为非常安全
公钥加密算法:RSA、DSS或Diffie-Hellman
对称加密算法:CAST、3DES或IDEA
散列算法:MD5或SHA-1
对邮件内容进行数字签名,保证信件内容不被篡改
使用公钥和对称加密保证邮件内容机密且不可否认
公钥的权威性由收发双方或所信任的第三方签名认证
事先不需要任何保密信道来传递对称的会话密钥
功能框架
Alice期望PGP提供保密、发送者认证与报文完整性
报文格式
PGP秘钥
安装PGP时,软件为用户生成一个公开密钥对
公钥放置用户网站或某公钥服务器上
私钥则使用用户口令进行保护
PGP公钥认证机制与传统CA差异较大
PGP公钥可以通过可信的Web认证
用户可以自己认证任何其信任的“公钥/用户名”对
用户还可以为其他公钥认证提供“担保”
防止篡改公钥的方法(Alice)
直接从Bob手中得到其公钥
通过电话认证密钥
从双方信任的David那里获得Bob的公钥
通过CA
S/MIME(Secure/Multipurpose Internet Mail Extensions)标准
提供数据保密、完整性和认证等安全服务
不仅限于邮件使用,可用于任何支持MIME数据的传输机制,如HTTP
增加了新的MIME数据类型
应用 /pkcs7-MIME
复合/已签名
应用 /pkcs7-签名
只保护邮件的邮件主体,对头部信息则不进行加密
认证机制依赖于层次结构的CA
证书格式采用X.509规范
9.2 安全套接字SSL
Web安全威胁
攻击与破坏事件层出不穷,需要安全Web服务
Web安全威胁的分类
主动攻击:篡改C/S之间信息或篡改Web站点信息(难防易检)
被动攻击:监听数据流获取信息或进行信息量分析(难检易防)
机密性
完整性
拒绝服务
身份认证
Web服务器的安全威胁
Web浏览器的安全威胁
通信信道的安全威胁
监听程序会威胁通信信道中所传输信息的机密性
伪造、篡改、重放会威胁所传输信息的完整性
缺乏身份认证使得冒充他人身份进行中间人攻击
缺乏数字签名机制使得通信双方能相互攻击
拒绝服务攻击使得通信信道不能保证可用性
基于应用层实现Web安全
基于传输层实现Web安全SSL (Secure Sockets Layer)
概述
是广泛部署的安全协议
可用于所有基于TCP的网络应用
几乎所有浏览器和Web服务器都支持
https
每年通过SSL交易额达数十亿美元
实现:Netscape
变体:TLS
能力
机密性(confidentiality)
完整性(integrity)
认证(authentication)
目标
Web电子商务交易
加密(尤其信用卡号)
Web服务器认证
可选的客户认证
方便与新商户的商务活动
SSL与TCP/IP
SSL为网络应用提供应用编程接口 (API)
C语言和Java语言的 SSL库/类可用
可以像PGP那样实现某些安全功能
需要发送字节流以及交互数据
需要一组密钥用于整个连接
需要证书交换作为协议的一部分:握手阶段
简化的SSL
一个简单的安全信道
握手(handshake)
密钥派生(key derivation)
数据传输(data transfer)
连接关闭(connection closure)
简化的SSL:一个简单的握手过程
简化的SSL:秘钥派生
不同加密操作使用不同密钥会更加安全
4个密钥
Kc = 用于加密客户向服务器发送数据的密钥
Mc = 用于客户向服务器发送数据的MAC密钥
Ks = 用于加密服务器向客户发送数据的密钥
Ms = 用于服务器向客户发送数据的MAC密钥
通过密钥派生函数(KDF)实现密钥派生
简化的SSL:数据记录
问题
MAC放在哪
如何对发送的所有字节进行完整性校验
方案:将字节流分割为一系列记录
每个记录携带一个MAC
接收方可以对每个记录进行完整性检验
简化的SSL : 序列号
问题:攻击者可以捕获和重放记录或者重新排序记录
在MAC中增加序列号
问题:攻击者可以重放所有记录
使用一次性随机数(nonce)
简化的SSL:控制信息
问题: 截断攻击
攻击者伪造TCP连接的断连段,恶意断开连接
一方或双方认为对方已没有数据发送
解决方案: 记录类型, 利用一个类型的记录专门用于断连
type 0用于数据记录;type 1用于断连
简化的SSL : 总结
完整SSL
SSL协议栈
介于HTTP与TCP之间的一个可选层
SSL不是一个单独的协议,而是两层协议
SSL密码组 (cipher suite)
密码组
公开密钥算法(public-key algorithm)
对称加密算法(symmetric encryption algorithm)
MAC算法
SSL支持多个密码组
协商(negotiation): 客户与服务器商定密码组
常见的SSL密码
对称
DES –分组密码
3DES –分组密码
RC2 – Rivest Cipher 2分组密码
RC4 – Rivest Cipher 4流密码
公开非对称
RSA
SSL更改密码规格协议 (Change Cipher Spec Protocol)
更新当前连接的密钥组
位于SSL记录协议之上
ContentType=20
协议只包含一条消息(一个值为1的字节).
SSL警告协议 (Alert Protocol)
Alert消息
位于SSL记录协议之上
ContentType=21
协议包含两个字节:警告级别和警告代码
SSL握手协议 (Handshake Protocol)
概述
协商结果是SSL记录协议的基础
ContentType=22
SSL v3.0的握手过程用到三个协议
握手协议
更改密码规格协议
警告协议
目的
服务器认证/鉴别
协商: 商定加密算法
建立密钥
客户认证/鉴别(可选)
SSL握手过程
1. 客户发送其支持的算法列表,以及客户一次随机数(nonce)
2. 服务器从算法列表中选择算法,并发回给客户:选择 + 证书 + 服务器一次随机数
3. 客户验证证书,提取服务器公钥,生成预主密钥(pre_master_secret),并利用服务器的公钥加密预主密钥,发送给服务器
4. 客户与服务器基于预主密钥和一次随机数分别独立计算加密密钥和MAC密钥
5. 客户发送一个针对所有握手消息的MAC
6. 服务器发送一个针对所有握手消息的MAC
SSL握手消息及参数
SSL握手协议工作过程
SSL记录协议 (Record Protocol)
概述
描述SSL信息交换过程中的记录格式
所有数据(含SSL握手信息)都被封装在记录中
一个记录由两部分组成:记录头和数据
SSL记录协议的操作步骤
将数据分段成可操作的数据块
对分块数据进行数据压缩
计算MAC值
对压缩数据及MAC值加密
加入SSL记录头
在TCP中传输
SSL记录格式
实际的SSL连接
秘钥派生
客户一次数、服务器一次数和预主密钥输入伪随机数发生器
主密钥和新一次随机数输入另一个随机数发生器: “密钥块(key block)”
密钥块“切片”
基于网络层实现Web安全9.3 IP安全IPSec
IPSec提供端到端(主机到主机)的安全机制
各种应用程序均可利用IPSec提供的安全机制
9.3 IP安全IPSec
虚拟专用网(VPN)
专用网(Private Networks)
动机:安全
成本高
虚拟专用网 (Virtual Private Networks)
动机:安全+成本
虚拟
通过隧道技术、加密技术、密钥管理、认证和访问控制等,实现与专用网类似的安全性能
典型应用
VPN功能
数据机密性保护
数据完整性认证
数据源身份认证
防重放攻击
访问控制
VPN关键技术
隧道技术
构建VPN的核心技术
隧道:通过Internet提供安全的点到点的数据传输安全通道
VPN隧道利用隧道协议对通过隧道传输的数据进行封装
使数据安全穿越公共网络(通常是Internet)
通过加密和认证以确保安全
数据包进入隧道时,由VPN封装成IP数据报
通过隧道在Internet上安全传输
离开隧道后,进行解封装,数据便不再被保护
隧道协议
隧道协议内包括以下三种协议
乘客协议(Passenger Protocol)
封装协议(Encapsulating Protocol)
承载协议(Carrier Protocol)
常见VPN隧道协议
第二层隧道:PPTP、L2TP
第三层隧道:IPSec
典型VPN实现技术
IPSec:最安全、适用面最广
SSL:具有高层安全协议的优势
L2TP:最好的实现远程接入VPN的技术
典型VPN技术结合:IPSec与SSL、IPSec与L2TP
数据加密
身份认证
密钥管理
访问控制
网络管理
IPsec
IPsec体系结构
IPsec服务
机密性(confidentiality)
数据完整性(data integrity)
源认证/鉴别(origin authentication)
重放攻击预防(replay attack prevention)
提供不同服务模型的两个协议
认证头AH (Authentication Header)
在IP数据报文头中的协议号为51
提供源认证/鉴别和数据完整性检验,但不提供机密性
封装安全协议ESP (Encapsulation Security Protocol)
在IP数据报文头中的协议号为50
提供源认证/鉴别、数据完整性检验以及机密性
比AH应用更广泛
IPsec传输模式
IPsec数据报的发送与接收均由端系统完成
主机是IPsec感知的(IPsec-ware)
模式与协议的组合
传输模式AH
传输模式ESP
隧道模式AH
隧道模式ESP
IPsec的隧道(tunneling)模式
边缘路由器是IPsec感知的(IPsec-ware)
安全关联SA (security association)
发送数据前,从发送实体到接收实体之间需要建立安全关联SA
发送实体与接收实体均需维护SA的状态信息
主要参数
安全参数索引(SPI):32位SA唯一标识(ID)
加密密钥、认证密钥
密码算法标识
序列号(32位)
抗重放攻击
抗重播窗口
接收方使用滑动窗口检测恶意主机重放数据报
生存周期
规定SA的有效使用周期
运行模式:传输模式或隧道模式
IPSec隧道源、目的地址
SA实例
安全关联数据库(SAD) (security association database)
IPsec端点将SA状态保存在SAD
安全策略数据库(SPD) (Security Policy Database)
安全策略(SP)
安全策略组成了SPD,每个记录就是一条SP
提取关键信息填充到一个称为“选择符”的结构
利用选择符去搜索SPD,检索匹配的SP
安全处理需要的参数存储在SP指向的SA结构
SA的建立和密钥管理
两种方式
手工
所有的信息需要手工配置
SA永远存在
适用于结构简单的网络
自动
SA可以通过协商方式产生
SA过期以后重新协商,提高了安全性
适用于较复杂拓扑和较高安全性的网络
Internet密钥交换(IKE)
IKE协议可自动管理SA的建立、协商、修改和删除,是IPSec唯一的密钥管理协议
IKE
ISAKMP(Internet Security Association and Key Management Protocol)的通用框架
OAKLEY的密钥交换模式
SKEME的共享和密钥更新技术
IKE和IPSec:IKE为IPSec提供服务
密钥交换与管理
身份认证:通信对等体的认证
IPSec SA的协商与管理
认证方式:PSK与PKI
预共享密钥 (PSK):基于共享的秘密密钥
运行IKE认证彼此,并建立IPsec SAs (每个方向一个)
包括加密秘钥和认证密钥
公钥基础设施PKI:基于公开/私有密钥对以及证书
运行IKE认证彼此,并建立IPsec SAs (每个方向一个)
类似于SSL的握手过程
IKE的阶段
阶段1:建立双向IKE SA(也称为ISAKMP安全关联)
阶段2:基于ISAKMP协议,进行IPsec SA的安全协商
总结
IKE用于交换算法、秘密密钥、SPI
采用AH协议或者ESP协议 (或者两者)
AH提供完整性、源认证服务
ESP提供完整性、源认证以及机密性服务
IPsec对等端可以是
两个端系统
两个路由器/防火墙
一个路由器/防火墙与一个端系统
IPSec数据报
传输模式AH
隧道模式AH
传输模式ESP
隧道模式ESP
IPsec的传输模式
IPsec的隧道模式
数据报处理过程
R1: 将原IP数据报转换为IPsec数据报
检索SPD,确定处理策略
检索SAD,确定SA
在原IP数据报(包括原IP首部域)后面附加“ESP尾部”
利用SA定义的算法与密钥,加密上述结果
在加密结果前面附加“ESP头”,创建“enchilada”
针对整个enchilada,利用SA定义的算法与密钥,创建报文认证码MAC
在enchilada后面附加MAC,构成载荷(新IP数据报载荷)
构造全新的IP头,包含所有经典的IPv4首部字段
将新IP头附加在载荷的前面
R2: 解封IPsec数据报
从原始IP数据报中提取选择符,并搜索SPD,确定处理策略
判断是否为IPsec数据报
从头部提取,并检索SAD
若找不到SA,则触发IKE或丢弃包
若找到,则根据SA解封数据报,得到原始IP数据报
enchilada内部结构
ESP尾部:填充以便应用分组密码
ESP首部
SPI:接收实体基于此知道该做什么
序列号:抵抗重放攻击
对于新SA,发送方初始化序列号为0
每次通过SA发送数据报
发送方增加序列号计数器(加1)
将计数器值置于序列号字段
目的
预防嗅探与回放分组攻击
接收重复的、已认证的IP分组,会破坏正常服务
方法
接收方检验分组重复
无需记录所有已接收分组;而是利用一个窗口
ESP的MAC认证字段,基于共享的秘密密钥
9.4 无线局域网安全
有线等效保密WEP(Wired Equivalent Privacy):
设计目标
对称密钥加密
机密性
主机认证
数据完整性
自同步: 每个分组单独加密
给定加密分组和密钥,便可以解密;即便前序分组丢失,也可以继续成功解密分组(与CBC不同)
高效
可由硬件或软件完成
流密码与分组独立性
初始密钥+针对每个分组的新IV(初始向量),产生针对每个分组的密钥流
WEP加密
发送端针对数据(data)计算完整性校验值ICV(Integrity Check Value)
4字节的散列值/CRC,用于数据完整性校验
每端有104位的共享密钥
发送端生成24位初始向量(IV),附加到密钥上:得到128位密钥
发送端还要附加keyID (8位字段)
将128位密钥输入到伪随机数发生器,产生密钥流
利用RC4算法对帧中“数据+ICV”进行加密:
将密钥流与“数据+ICV”逐个字节异或(XOR)
将IV和keyID附加到加密数据,构成载荷
将载荷插入到802.11帧中
WEP解密
接收端提取IV
将IV和共享密钥输入伪随机数发生器,得到密钥流
将密钥流与加密部分逐个字节异或(XOR),解密得到数据与ICV
利用ICV校验数据完整性
利用一次性随机数进行端点认证
WEP身份认证
并非所有AP都进行认证,即便使用了WEP
AP会在信标帧(beacon frame)中指示是否需要认证
认证需要在关联前进行
802.11WEP安全性
漏洞
每帧一个24位的IV→IV最终会被重用
IV以明文传输→重用IV容易被监测
改进:IEEE 802.11i
多种(更强的)可选的加密方法
提供密钥分发
利用独立于AP的认证服务器
802.11i 服务
认证
访问控制
数据与完整性加密
802.11i运行阶段
EAP:扩展认证协议
客户(移动端)与认证服务器间的端-端协议
运行在两段独立的“链路”上
移动端到AP
AP到认证服务器
9.5 防火墙
作用
预防拒绝服务攻击(DoS)
预防非法修改/内部数据访问
只允许对内部网络的授权访问
防火墙类型
无状态分组过滤器(stateless packet filters)
笨拙:不加以区分放行满足条件的所有分组
内部网络通过路由器防火墙(router firewall)与Internet连接
路由器逐个分组过滤,决策是否转发/丢弃分组
源IP地址、目的IP地址
TCP/UDP源、目的端口号
ICMP报文类型
TCP SYN和ACK标志位
实例
访问控制列表ACL (Access Control Lists)
有状态分组过滤器(stateful packet filters)
跟踪每个TCP连接
跟踪连接建立(SYN)、拆除(FIN):
根据状态确定是否放行进入或外出的分组
超时的非活动连接
不再允许分组通过
扩展ACL
应用网关(application gateways)
基于应用数据以及IP/TCP/UDP 头部字段过滤分组
实例:允许特定用户telnet外部网络
要求所有Telnet用户通过网关Telnet外部网络
对于授权的用户,网关代理用户与目的主机建立Telnet连接,并且在两个连接之间进行数据中继
路由器阻止所有不是由网关发起的Telnet连接
防火墙、应用网关局限
IP欺骗(spoofing)
如果多个应用需要特殊处理,则每个应用需要一个应用网关
客户软件必须知道如何连接网关
过滤器经常对UDP流量使用“全部通过”或者“全部不通过”策略
折衷(tradeoff)
很多安全防护级别很高的网站仍然遭受攻击
第八章 网络安全基本原理
8.1 网络安全基础
网络安全现状
总体平稳,形势严峻
基础网络仍存在较多漏洞风险
云服务日益成为网络攻击重点目标
域名系统面临严峻的拒绝服务攻击
针对重要网站的域名解析篡改攻击频发
网络攻击威胁逐渐向工业互联网渗透
分布式反射型攻击逐渐成为拒绝服务攻击的重要形式.
涉及重要行业和政府部门的高危漏洞事件增多
基础应用或通用软硬件漏洞风险凸显
漏洞风险向传统领域、智能终端领域泛化演进
网站数据和个人信息泄露仍呈高发态势
移动应用程序成为数据泄露的心主体
移动恶意程序逐渐从主流应用商店向小型网站蔓延
具有短信拦截功能的移动恶意程序大爆发
针对金融、电信行业的网页仿冒事件大幅增加
钓鱼站点逐渐向云平台迁移
针对政府部门和重要行业单位网站的网络攻击频度、烈度和复杂度加剧
网络安全基本概念
网络安全概念
网络安全基本属性
机密性(confidentiality)
身份认证(authentication)
信息完整性(message integrity)
可访问与可用性(access and availability)
网络安全基本特征
相对性
时效性
相关性
不确定性
复杂性
重要性
网络安全研究领域
入侵者如何攻击计算机网络
如何防护网络对抗攻击
如何设计网络体系结构免疫(immune)攻击
网络安全拟人模型
8.2 网络安全威胁
映射(Mapping)
发起攻击前: “探路”(case the joint) – 找出网络上在运行什么服务
利用ping命令确定网络上主机的地址
端口扫描(Port-scanning): 依次尝试与每个端口建立TCP连接
记录到达的网络流量
分析、识别出可疑活动( IP地址和端口被依次扫描)
分组嗅探(sniffing)
广播介质(共享式以太网,无线网络)
混杂(promiscuous)模式网络接口可以接收/记录所有经过的分组/帧
可以读到所有未加密数据
组织中的所有主机都运行软件,周期性监测网络接口是否工作在混杂模式
每段广播介质连接一台主机
IP欺骗(Spoofing)
直接由应用生成“原始”IP分组,可以设置分组的源IP地址字段为任意值
接收方无法判断源地址是否被欺骗
入口过滤(ingress filtering)
路由器不转发源IP地址不属于所连接网络无效的IP分组
拒绝服务DOS(Denial of service)
向接收方恶意泛洪(flood)分组,淹没(swamp)接收方
分布式拒绝服务攻击 (DDOS): 多个源主机协同淹没接收方
在到达主机前过滤掉泛洪分组
追溯(traceback)攻击源
SYN cookie
8.3 密码学基础
密码学(cryptography)术语
基础
明文plaintext
密文ciphertext
加密算法encryption algorithm
解密算法decryption
对称秘钥加密
公开秘钥加密
破解加密方法
唯密文攻击(cipher-text only attack)
暴力尝试
统计分析
已知明文攻击(known plaintext attack)
单码替代密码
选择明文攻击(chosen plaintext attack)
传统加密方法
替代密码(substitution cipher)
凯撒密码(Casesar cipher)
单码(字母)替代密码(monoalphabetic cipher)
加密秘钥: 26个字母集合向26个字母集合的映射
多码(字母)替代加密(polyalphabetic encryption)
采用两个凯撒密码的多码替代加密
换位密码(transpositions)
置换法(permutation method)
列置换加密
列置换加密的密钥包括列数和输出顺序
可以用一个单词来表示
单词长度表示列数,单词中的字母顺序表示输出顺序
现代加密技术
对称秘钥加密
流密码(stream ciphers)
利用密钥K产生一个密钥流:z=z0z1z2…
然后使用如下规则对明文串x=x0x1x2…加密: y=y0y1y2…=Ez0(x0)Ez1(x1)Ez2(x2)…
解密时,使用相同的密钥流与密文做运算(XOR)
分组密码/块密码(block ciphers)
将明文序列划分成长为m的明文组
各明文组在长为i的密钥组的控制下变换成长度为n的密文组
通常取n=m
n>m 扩展分组密码
n<m 压缩分组密码
典型分组密码结构:Feistel分组密码结构
破坏对密码系统进行各种统计分析攻击的两个基本操作
扩散
混淆
加密
解密
安全性因素
分组长度
子密钥的大小
循环次数
子密钥产生算法
轮函数
数据加密标准DES
概述
DES是16轮的Feistel结构密码
DES是一个包含16个阶段的“替代--置换”的分组加密算法
DES的分组长度是64位
DES使用56位的密钥
DES的每一轮使用48位的子密钥
算法结构
初始置换IP(Initial Permutation)
把输入的64位数据的排列顺序打乱,每位数据按照下面规则重新组合
逆初始置换(Inverse Initial Permutation)
初始置换和对应的逆初始置换操作并不会增强DES算法的安全性
主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中
一轮DES加密过程
f函数结构
f函数基本操作
扩展变换 E-盒
S-盒替代
P-盒置换
每轮子秘钥生成
DES安全性
56位密钥可能太小
迭代次数可能太少
S盒中可能有不安全因素
DES的一些关键部分不应当保密
DES存在弱密钥和半弱密钥
针对DES的攻击方法
差分分析方法(Difference Analysis Method)
线性分析方法(Linear Analysis Method)
旁路攻击法(Side-Channel Attack)
DES改进
密码分组链接(CBC-cipher block chaining)
加密算法的输入是当前明文分组和前一次密文分组的异或
重复的明文分组不会在密文中暴露出重复关系
多重DES增长秘钥
3DES使用3个密钥,执行3次DES算法
高级加密标准AES Rijndael加密算法
不属于Feistel结构
加密、解密相似但不完全对称
支持128/192/256数据块大小
支持128/192/256密钥长度
有较好的数学理论作为基础
结构简单、速度快
算法特点
分组长度和密钥长度均可变
循环次数允许在一定范围内根据安全要求进行修正
汇聚了安全、效率、易用、灵活等优点
抗线性攻击和抗差分攻击的能力大大增强
如果1秒暴力破解DES,则需要149万亿年破解AES
非对称密钥加密/公钥加密
公开密钥加密
发送方与接收方无需共享秘密密钥
公开密钥(公钥)完全公开
私有密钥(私钥)只有接收方知道
需求
RSA加密算法
前提条件:模运算
RSA预备知识
报文/信息(message): 仅仅是一个比特模式(bit pattern)
每个比特模式可以表示为一个唯一的整数
加密一个报文就等价于加密一个数
公钥/私钥生成
加密/解密
举例
RSA理论依据
RSA重要性质
RSA安全性保证
RSA应用
传输对称加密秘钥
8.4 身份认证
目标: Bob希望Alice“证明”她的身份
协议ap1.0: Alice声明“I am Alice”
协议ap2.0: Alice在IP分组中声明“I am Alice”,IP分组包含Alice的源IP地址
分组欺骗
协议ap3.0: Alice声明“I am Alice”的同时,发送她的秘密口令进行“证明”
分组嗅探提取口令
协议ap3.1: Alice声明“I am Alice”的同时,发送她的加密的秘密口令进行“证明”
回放攻击
避免回放攻击
一次性随机数(nonce): 一个生命期内只用一次的数R
ap4.0: 为了证明是“真实的”Alice,Bob向Alice发送一个随机数R,Alice必须返回R,并利用共享密钥进行加密
需要共享秘钥
ap5.0: 利用一次性随机数以及公钥加密技术
中间人攻击
Bob与Alice可以收到彼此发送的所有信息
Trudy也收到了所有信息
8.5 消息完整性与数字签名
报文完整性/报文消息认证(或报文鉴别)
目标
证明报文确实来自声称的发送方
验证报文在传输过程中没有被篡改
预防报文的时间、顺序被篡改
预防报文持有期被修改
预防抵赖
发送方否认
接收方否认
密码散列函数(Cryptographic Hash Function):H(m)
需求
散列算法公开
H(m)能够快速计算
对任意长度报文进行多对一映射,均产生定长输出
对于任意报文无法预知其散列值
不同报文不能产生相同的散列值
单向性:无法根据散列值倒推出报文
抗弱碰撞性(Weak Collision Resistence-WCR)
抗强碰撞性(Strong Collision Resistence-SC)
Internet校验和具备某些散列性质
多对一映射
16bit固定长度的散列值
但容易找到具有相同散列值的报文
散列函数算法
MD5
通过4个步骤,对任意长度的报文输入,计算输出128位的散列值
不是足够安全
SHA-1(Secure Hash Algorithm)
散列值为160位
速度慢于MD5,安全性优于MD5
报文摘要(Message digests)
报文热证(Message Authentication Code)
简单方案:报文+报文摘要→扩展报文(m, H(m))
报文认证码MAC(Message Authentication Code)
数字签名(Digital signatures)
报文完整性问题
否认:发送方不承认自己发送过某一报文
伪造:接收方自己伪造一份报文,并声称来自发送方
冒充:某个用户冒充另一个用户接收或发送报文
篡改:接收方对收到的信息进行篡改
数字签名
数字签名技术是实现安全电子交易的核心技术之一
可验证性(verifiable)
不可伪造性(unforgeable)
不可抵赖性(non-repudiation)
简单数字签名
签名报文摘要
8.6 秘钥分发与公钥证书
密钥分发中心(KDC)
解决问题:两个实体在网上如何建立共享秘密密钥
可信任的密钥分发中心(Key Distribution Center-KDC)作为实体间的中介
认证中心CA
解决问题:中间人攻击、公钥的真实性问题
可信任的认证中心(Certification Authority-CA)
实现特定实体E与其公钥的绑定
每个E(如人、路由器等)在CA上注册其公钥
E向CA提供“身份证明”
CA创建绑定E及其公钥的证书(certificate)
证书包含由CA签名的E的公钥 – CA声明:“这是E的公钥”
Alice公钥获取
首先或取Bob的公钥证书(从Bob或者其他地方)
应用CA的公钥,解密证书中签名的公钥,获得Bob公钥
公钥证书内容
序列号(唯一发行号)
证书持有者信息,包括算法和密钥值
第七章 无线网络
7.1 无线局域网WLAN
有固定基础设施的WLAN.
IEEE 802.11
概述
802.11为无线以太网标准
使用星型拓扑,中心称作接入点AP
MAC层使用CSMA/CA协议
使用该协议的局域网也称WIFI
BSS与ESS
基本服务集BSS
包括一个基站和若干移动站
BSS内的所有站可直接通信
与外部BSS站通信需要通过本BSS基站
基站即接入点AP
不超过32字节的服务集标识符SSID
分配信道
扩展服务集ESS
通过主干分配系统DS连接的多个BSS
门户
建立关联
被动扫描
移动站等待接收接入站周期性发出的信标帧
信标帧中包含有若干系统参数(SSID 、速率等)
主动扫描
移动站主动发出探测请求帧
等待从 AP 发回的探测响应帧
无固定基础设施的WLAN
移动自组网络
无AP
由一些处于平等状态的移动站之间相互通信组成的临时网络
服务范围受限,一般不与其他网络连接
7.2 802.11的物理层
802.11物理层实现
直接序列扩频 DSSS
正交频分复用 OFDM
跳频扩频 FHSS (已很少用)
红外线 IR (已很少用)
常用无线局域网标准
802.11ac
5GHz
3.5Gbps
802.11ax WIFI6
6GHz
9.6Gbps
7.3 802.11的MAC层协议-CSMA/CA
CSMA/CA
不能直接搬用 CSMA/CD 协议
在发送数据时实时监测信道实现碰撞检测的成本高
即使实现碰撞检测并在信道空闲时发送数据时接收端仍可能碰撞
CSMA的改进
CSMA增加碰撞避免功能
增加使用停止等待协议
WLAN的特殊问题
隐蔽站问题
暴露站问题
协议原理
帧间隔IFS
SIFS短帧间隔
DIFS分布协调功能帧间间隔
协议原理
欲发送数据的站先检测信道
通过收到的相对信号强度是否超过一定的门限数值可判定是否有其他的移动站在信道上发送数据
当源站发送它的第一个 MAC 帧时,若检测到信道空闲,则在等待一段时间 DIFS 后就可发送
考虑高优先级的帧发送
若无则
源站发送数据帧
目的站若正确收到此帧,则经过时间间隔 SIFS 后,向源站发送确认帧ACK
源站在规定时间内没有收到确认帧 ACK,需重传此帧,知道收到ACK或放弃发送
虚拟载波监听
源站将要占用信道的时间通知给其他站,让其他站在这一段时间内停止发送数据
减少碰撞几率
其他站并没有实质上监听信道
网络分配向量NAV
当一个站检测到正在信道中传送的 MAC 帧首部的“持续时间”字段时,就调整自己的网络分配向量NAV
NAV 指出了必须经过多少时间才能完成数据帧的这次传输,才能使信道转入到空闲状态
争用窗口
二进制指数退避算法
第 i 次退避就在 2^{2 + i}个时隙中随机地选择一个,即:第 i次退避是在时隙 {0, 1, …, 2^{2 + i}} 中随机地选择一个
第 1 次退避是在 8 个时隙(而不是 2 个)中随机选择一个
第 2 次退避是在 16 个时隙(而不是 4 个)中随机选择一个
当时隙编号达到 255 时(这对应于第 6 次退避)就不再增加了
这里决定退避时间的变量i 称为退避变量
退避计时器
信道空闲
信道忙
不使用退避算法的情况
检测到信道是空闲
数据帧是要发送的第一个数据帧
信道预约
协议三种情况
使用RTS帧和CTS帧
只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧(显然,当数据帧本身就很短时,再使用RTS帧和CTS帧只能增加开销)
不使用RTS帧和CTS帧
CSMA算法归纳
(1) 若站点最初有数据要发送(而不是发送不成功再进行重传),且检测到信道空闲,在等待时间 DIFS 后,就发送整个数据帧。
(2) 否则,站点执行 CSMA/CA 协议的退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空闲,退避计时器就进行倒计时。
(3) 当退避计时器时间减少到零时(这时信道只可能是空闲的),站点就发送整个的帧并等待确认。
(4) 发送站若收到确认,就知道已发送的帧被目的站正确收到了。这时如果要发送第二帧,就要从上面的步骤 (2) 开始,执行 CSMA/CA 协议的退避算法,随机选定一段退避时间。若源站在规定时间内没有收到确认帧 ACK(由重传计时器控制这段时间),就必须重传此帧(再次使用 CSMA/CA 协议争用接入信道),直到收到确认为止,或者经过若干次的重传失败后放弃发送。
7.4 802.11的MAC帧
控制帧
RTS
CTS和ACK
数据帧
构成
MAC首部
四个地址字段
帧主体
帧校验序列FCS
管理帧
第六章 应用层
DNS域名解析
域名系统概述
用户间接使用
DNS是分布式的
由域名服务器专门提供DNS服务
互联网的域名结构
特点
域名采用层次树状结构命名
域名唯一
域名的结构由标号序列组成,各标号之间用点隔开
域名是逻辑概念
域名是方便人们记忆的字符串
域名空间
域名服务器
区
一个服务器所负责管辖的(或有权限的)范围
每一个区设置相应的权限域名服务器
DNS 服务器的管辖范围以区为单位
树状结构的DNS域名服务器
四种类型
根域名服务器
最顶级
所有的根域名服务器都知道所有的顶级域名服务器的域名和 IP 地址
本地域名服务器无法解析时首先求助根域名服务器
有13个域名服务器
根域名服务器把下一步应当找的顶级域名服务器的 IP 地址告诉本地域名服务器
顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名
权限域名服务器
负责一个区的域名服务器
本地域名服务器
主机首先访问的域名服务器
一般由用户手动设置IP地址
域名服务器可靠性
复制
缓存
域名解析过程
递归查询
迭代查询(本地域名服务器常用)
FTP文件传输协议
概述
使用广泛
交互式
屏蔽底层细节
基本原理
网络环境下复制文件的复杂性
计算机存储数据的格式不同
文件的目录结构和文件命名的规定不同
对于相同的文件存取功能,操作系统使用的命令不同
访问控制方法不同
FTP特点
使用 TCP 提供可靠服务
主要功能是减少或消除在不同操作系统下处理文件的不兼容性
FTP采用客户服务器方式
一个 FTP 服务器进程可同时为多个客户进程提供服务
进程组成
主进程负责接受新的请求
若干个从属进程负责处理单个请求
主进程工作步骤
打开熟知端口21
等待客户请求
创建从属进程处理用户请求
处理完成退出,主进程继续等待
两个连接
控制连接 21
接收控制请求
保持打开状态
数据连接 20
传输数据
简单文件传输协议TFTP
使用客户服务器方式
使用 UDP 数据报,自己实现可靠性
只支持文件传输而不支持交互
Email电子邮件
电子邮件概述
组成构件
用户代理UA
邮件服务器
发送和接收邮件、报告邮件传送的情况
客户-服务器方式工作,发送读取协议不同
电子邮件地址
收件人邮箱名@邮箱所在主机的域名
简单邮件传送协议 SMTP
概述
规定的是在两个相互通信的 SMTP 进程之间应如何交换信息
使用客户服务器方式
通信三阶段
连接建立
邮件传送
连接释放
电子邮件的信息格式
信封
内容
首部
To: 收件人的电子邮件地址
Subject: 邮件的主题
Cc: 发送副本
From Date:发信人地址、发信日期
Reply-To:对方回信地址
主体
邮件读取协议 POP3 和 IMAP
POP3
简单、功能有限
使用客户服务器方式
用户 PC 机中须运行 POP 客户程序,对应的邮件服务器运行 POP 服务器程序
IMAP4
用户远程操作邮件服务器中的邮箱
当用户打开邮件时,邮件才会传到用户计算机
允许只读取邮件的一部分
用户需要经常与 IMAP 服务器建立连接
基于万维网的电子邮件
用户发送邮件到服务器使用HTTP协议
两个邮件服务器之间的传送使用 SMTP
邮件从服务器到用户使用HTTP协议
使用浏览器即可方便收发
通用互联网邮件扩充 MIME
SMTP缺点
不能传送可执行文件或其他的二进制对象
限于传送 7 位的 ASCII 码
服务器会拒绝超过一定长度的邮件
MIME概述
SMTP基础上增加了邮件主体的结构
定义了传送非 ASCII 码的编码规则
内容传送编码
内容类型
WWW万维网
概述
概述
是大规模的、联机式的信息储藏所
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点
提供分布式服务
媒体与超文本
万维网是分布式超媒体 (hypermedia) 系统,是超文本 (hypertext) 系统的扩充
一个超文本由多个信息源链接成
超媒体与超文本的区别是文档内容不同
工作方式
以客户服务器方式工作
浏览器为客户端
万维网需解决的问题
唯一命名标记文档
超链接实现协议
网页内容显示
如何方便查找信息
URL
一般形式
http、www可省略
HTTP默认端口80,HTTPS默认443
HTTP
工作过程
特点
HTTP是面向事务的客户服务器协议
HTTP 1.0 协议是无状态的 (stateless)
HTTP 协议本身是无连接的
持续连接
HTTP/1.1 协议使用持续连接 (persistent connection)
流水线方式
非流水线方式
代理服务器
代表浏览器发出 HTTP 请求
把最近的一些请求和响应暂存在本地磁盘中
减少互联网访问时延
HTTP报文结构
请求报文
方法
响应报文
状态码
1xx:通知信息
2xx:成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误
在服务器上存储用户信息
cookie
万维网的文档
HTML
标签
GCI通用网关接口
一种标准
定义动态文档应如何创建
输入数据应如何提供给应用程序
输出结果应如何使用
GCI脚本
解释执行
活动万维网文档
所有的工作都转移给浏览器端
每当浏览器请求一个活动文档时,服务器就返回一段程序副本在浏览器端运行
活动文档程序可与用户直接交互,并可连续地改变屏幕的显示
不需要服务器的连续更新传送,对网络带宽的要求不高
信息检索系统
搜索引擎
全文检索
百度
分类目录搜索
搜狐
网易
新浪
DHCP动态主机配置协议
配置项
IP地址
子网掩码
默认网关
DNS服务器
工作原理
需要 IP 地址的主机在启动时向 DHCP 服务器广播发送发现报文
DHCP 服务器回答广播报文
租用期
第一章 概述
1.1 计算机网络概述
三网融合
网络基本特点
联通Connectivity
共享Sharing
发展阶段
ARPANET
三级结构互联网
多层次ISP结构
1.2 互联网组成及分组交换
网络组成
边缘部分
端系统
C/S通信方式
P2P通信方式
核心部分
路由器(核心)
分组交换
存储转发
数据交换方式
电路交换 Circuit Switching
面向连接
传输效率低
不适合计算机突发性通信
分组交换 Packet Switching
分组单位
存储转发
优缺点
优势
高效,链路逐段占用,动态分配
缺点
存储转发带来排队处理时延
分组首部产生额外开销
报文交换 Message Switching
存储转发
报文较大时延较长
对比
1.3 性能指标
速率
数据传送速率,也称数据率、比特率
单位bit/s、Mbit/s等
带宽
信号的频带宽度 Hz
单位时间内某信道所能通过的最高数据率 bit/s
吞吐量
单位时间内通过某接口/信道的数据量
受带宽等影响
时延 delay
发送/传输时延
传播时延
处理时延
排队时延
时延带宽积
往返时间RTT
利用率
信道利用率
网络利用率
信道利用率并非越高越好
抖动与丢包
其他非性能指标
概念区分
传播速率在宽带和窄带线路上都一样,为电磁波速度
宽带仅仅提高数据发送速率
通信线路通常都是串行传输数据
1.4 体系结构
产生背景
网络的复杂性和异质性
通信介质
不同种类设备
不同OS
不同的软硬件接口、协议
合理组织复杂网络系统需求
结构清晰
简化设计与实现
便于更新维护
较强的独立性和适应性
分层体系结构
网络分层
任意系统都按照分层结构组织,并具有相同层次
每层使用下层提供的服务,并向上层提供服务
实际物理通信在底层完成
通信在对等层间进行
间接的
逻辑的
虚拟的
消息传送过程
相关概念
协议数据单元PDU
封装
网络协议
体系结构标准
国际标准OSI七层模型
TCP/IP四层模型
协议与服务
水平/垂直
向上提公共服务,使用下层服务
1.5 学习心得
时延带宽积
信道利用率
分层结构
第二章 物理层
2.1 基本内容与概念
作用
解决01比特表示问题
屏蔽不同传输媒体和通信手段的差异
不是指具体的传输媒体
特性
机械特性
电气特性
功能特性
过程特性
数据通信系统模型
源系统(发送方)
传输系统
目的系统(接收方)
常用术语
数据
信号
模拟信号 analogous signal
数字信号
码元
信道概念
信道
单向通信/单工通信
双向交替通信/半双工通信
双向同时通信/全双工通信
2.2 数据通信基础
基带信号
信号调制 Modulation
基带调制(编码)
不归零制
归零制
曼彻斯特编码
自同步
信号频率高
差分曼彻斯特
自同步
信号频率高
带通调制
调幅AM
调频FM
调相PM
数字信道极限传输速率
香农定律
奈氏准则
2.3 物理层下的传输谋体
传输媒体(介质、媒介)
发送器和接收器之间的物理通路
不属于物理层
传输媒体分类
引导型
双绞线
屏蔽双绞线STP
无屏蔽双绞线UTP
五类线 CAT5
同轴电缆
光缆
多模光纤
单模光纤
优势
通信容量大
损耗小,中继距离长
抗雷电、电磁干扰强
保密性好,无串音干扰
体积小,重量轻
非引导型
短波通信
微波通信
地面微波接力通信
卫星通信
2.4 信道复用技术
频分复用FDM
带宽分为多份,一个用户固定占有一个频带
所有用户在相同时间占用不同带宽资源
时分复用TDM
将时间划分为一段段等长的时分复用帧
每一个时分复用的用户在每一个 TDM 帧中占用固定序号的时隙
每个用户所占时隙周期性出现
所有用户是在不同的时间占用同样的频带宽度
可能造成线路资源浪费
统计时分复用STDM
按需动态分配时隙
提高线路利用率
波分复用WDM
码分复用CDMA
优势
各用户使用经过特殊挑选的不同码型,彼此不会造成干扰.
抗干扰能力强
其频谱类似于白噪声,不易被敌人发现
实现原理
码片序列
每一个比特时间划分为m个短的间隔称为码片
每个站被指派一个唯一的m bit 码片序列
扩频
码片互不相同且正交
实用的系统中使用伪随机码序列
2.5 学习心得
第三章 数据链路层
3.1 数据链路层概述
信道类型
点对点信道: 一对一
广播信道:一对多
数据链路
链路 link (物理链路)
数据链路 (逻辑链路)
帧-数据链路传输的数据单位
3.2 三个基本问题
封装成帧
封装成帧
帧定界
通过帧首部和尾部
使用控制字符
帧开始符SOH
帧结束符EOT
透明传输
问题
解决方法
字节填充
发送端在SOH或EOT前插入一个转义字符ESC
接收端删除转义字符
连续两个ESC表示一个转义字符内容
差错控制
传输差错
循环冗余校验码CRC
计算
被除数后面添0
除法过程中加减使用"异或"运算,不进位借位
最后余数作为FCS
校验
余数为0则接受
余数不为0有差错,丢弃
不能确定是哪些比特出了错
除数位数足够多,检测不到错误的概率就很小
帧检验序列FCS
数据后面添加的冗余码即为FCS
冗余码不一定是CRC
3.3 点对点PPP协议
PPP特点
PPP应满足的需求
简单
封装成帧
透明传输
多种网络协议
多种类型链路
差错检测
检测连接状态
最大传送单元MTU默认值
网络层地址协商
数据压缩协商
PPP不需要的功能
纠错
流量控制
序号
多点线路
半双工或单工链路
PPP协议帧格式
首部和尾部分别为 4 个字段和 2 个字段
标志字段 F = 0x7E
地址字段 A 只置为 0xFF
控制字段 C 通常置为 0x03
PPP 面向字节,所有的 PPP 帧的长度都是整数字节
PPP协议组成
一个将 IP 数据报封装到串行链路的方法
链路控制协议 LCP Link Control Protocol
网络控制协议 NCP Network Control Protocol
PPP透明传输
同步传输链路
异步传输链路
PPP可靠传输:不使用序号和确认
PPP协议的工作状态
3.4 局域网的数据链路层
局域网
特点
网络为一个单位所拥有
地理范围和站点数目均有限
优点
具有广播功能
便于扩展与升级
提高系统可靠性、可用性和残存性
局域网拓扑结构
星形
总线型
环形
媒体共享技术
静态划分信道
频分复用
时分复用
波分复用
码分复用
动态媒体接入控制(多点接入)
随机接入
受控接入
以太网两个标准
DIX Ethernet V2
IEEE 802.3
数据链路层的两个子层
逻辑链路控制子层LLC Logical Link Control
与传输媒体无关
局域网协议对LLC透明
一般不考虑LLC子层
媒体接入控制子层 MAC Medium Access Control
适配器
功能
进行串行/并行转换
对数据进行缓存
在计算机的操作系统安装设备驱动程序
实现以太网协议
3.5 CSMA/CD协议
协议内容
载波监听
多点接入
碰撞/冲突检测
CSMA/CD不能完全解决碰撞问题
碰撞处理
总结
先听再发
边发边听
碰撞停止
随机延发
CSMA/CD特性
用于半双工通信的以太网
每个站在发送数据之后的一小段时间内存在碰撞的可能性
发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率
两个量化参数
争用期
最短有效帧长
问题解析
每一站在发送数据之前已经监听到信道为“空闲”,为什么还会出现碰撞?
某站点最多经过多长时间能够检测到冲突(碰撞)?
为什么争用期是2t而不是t ?
碰撞后如何避让?
检测到碰撞后停止发送
退避一段时间后重新发送
截断二进制指数类型退避算法
3.6 使用集线器的星型拓扑
星型拓扑结构
星形以太网 10BASE-T
特点
使用无屏蔽双绞线
采用星形拓扑
需要两对双绞线分别用于收发
使用 RJ-45 插头
使用集线器可靠性较高
通信距离短(100m)
优点
成本低
可靠性高
集线器Hub
位于星型拓扑中心
工作在物理层
使用电子器件来模拟实际电缆线工作
使用hub后在逻辑上仍是一个总线网
采用了专门的芯片进行自适应串音回波抵消,减少了近端串音
以太网的信道利用率
信道占用情况
成功发送帧需要时间T0
成功发送一帧占用信道时间是 T0 + t(等待最后一个bit到达)
要提高以太网的信道利用率,就必须减小 t与 T0 之比
定义参数α
α趋于0:发生碰撞时立即检测到,信道利用率高
α越大:争用期所占的比例增大,信道利用率下降
α应尽可能的小
数据率一定时限制网线长度
以太网的帧长不能太短使T0减小
信道利用率最大值Smax
3.7 以太网的MAC层
MAC地址/硬件/物理地址
长度
6Byte 48bit
2Byte 16bit
构成
组织唯一标识符 前3字节
扩展唯一标识符 后3字节
特殊地址
单站地址
组地址
广播地址
管理
全球管理
本地管理
适配器检查MAC地址
可接收单播、广播、多播
MAC匹配则接收,不匹配丢弃
MAC帧格式
构成
8Byte 前同步码与帧定界开始符
6Byte 目的MAC
6Byte 源MAC
2Byte 类型
46-1500Byte 数据
4Byte FCS
无效的MAC帧
数据字段的长度与长度字段的值不一致
帧的长度不是整数个字节
用收到的帧检验序列 FCS 查出有差错
数据字段的长度不在 46 ~ 1500 字节之间
有效的 MAC 帧长度为 64 ~ 1518 字节之间
帧最小间隔
最小间隔为 9.6 μs,相当于 96 bit 的发送时间
一个站在检测到总线开始空闲后,还要等待9.6μs 才能再次发送数据
使接收站缓存得到清理,接收下一帧
3.8 以太网扩展
物理层扩展
集线器Hub
广播信道
CSMA/CD协议
数据链路层扩展
交换机Switch
多端口
全双工 无需CSMA/CD
并行工作
存储转发
专用交换芯片
无差错检测
交换表自学习
交换表中没有目的地址,则广播
交换表中没有源地址,则登记
交换表中有目的地址,则转发
生成树协议STP
广播域与碰撞域
交换机每个端口一个碰撞域
交换机一个广播域
3.9 虚拟局域网VLAN
特点
是由一些局域网网段构成的与物理位置无关的逻辑组
每一个 VLAN 的帧都有一个明确的标识符
是局域网给用户提供的一种服务,而不是一种新型局域网
方便将有关设备和资源重新组合
限制了广播风暴
802.1Q帧格式
3.10 学习心得
MAC地址
CSMA/CD协议
第四章 网络层
4.1 网络层提供的两种服务
虚电路
让网络负责可靠交付
面向连接
适合电信通话网络
数据报
端系统负责可靠交付
简单灵活、无连接、尽最大努力交付
网络造价降低,运行灵活
4.2 网络层概述
基本概念
又称为IP层或者网际层
作用:为分组转发选择合适路由
网络互连主要靠路由器来完成
直接交付与间接交付
网际协议IP及配套协议
IP协议
TCP/IP协议族的核心协议
为上层提供无状态、无连接、不可靠的服务
ARP协议 Address Resolution Protocol
ICMP网际控制报文协议 Internet Control Message Protocol
询问报文
回送请求与回答
时间戳
差错报文
源点抑制
目的不可达
超时
参数问题
改变路由
IGMP网际组管理协议 Internet Group Management Protocol
中间设备
物理层
数据链路层
网络层
网络层以上
虚拟互联网
逻辑的
4.3 分类的IP地址
IPv4
构成
网络号
主机号
分类的IP地址
本地地址
A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
B:172.16.0.0~172.31.255.255即172.16.0.0/12
C:192.168.0.0~192.168.255.255 即192.168.0.0/16
回环地址
特点
分等级
IP 地址管理机构在分配 IP 地址时只分配网络号,便于管理
路由器仅根据目的主机所连接的网络号来转发分组,减小路由表
是标志一个主机(或路由器)和一条链路的接口
主机连接到连个网络需要2个相应IP地址
一个路由器至少连接两个网络
用转发器或网桥连接起来的若干个局域网仍为一个网络
具有网络号的网络都平等
4.4 分组转发流程
路由表
内容
目的网络地址
下一条地址
查找
通过目的地址查找下一条路由
多次间接交付后一定能找到目的主机所在网络的路由器
到达最后一个路由器时向目的主机进行直接交付
特定主机路由
默认路由
分组转发算法流程
4.5 IP数据报格式
首部
固定首部
版本 4bit
首部长度 4bit
区分服务 8bit
总长度 16bit
标识 16bit
标志 3bit
最低位MF
中间 DF
片偏移 13bit
生存时间TTL 8bit
协议 8bit
TCP
UDP
ICMP
IGMP
OSPF
EGP
IGP
首部校验和 16bit
源地址 32bit
目的地址 32bit
可变首部
可变可选字段
填充
数据
分片
4.6 IP地址与MAC地址
比较
4.7 划分子网
两级IP地址缺陷
地址空间的利用率有时很低
每一个物理网络分配一个网络号会使路由表变得太大使网络性能变坏
两级的 IP 地址不够灵活
划分子网
基本思路
划分子网属于内部事情,对外仍表现为没有划分子网的网络
从主机号借用若干个位作为子网号
其他网络发送的数据仍然根据 IP 数据报的目的网络号找到本单位网络的路由器,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网
子网掩码
32位掩码
默认子网掩码
子网掩码可以找出 IP 地址中的子网
使用子网情况下的分组转发
4.8 无分类编制CIDR
特点
优势
高效
两级编址 斜线记法
CIDR地址块
网络前缀都相同的连续的 IP 地址组成
全 0 和全 1 的主机号地址一般不使用
路由聚合(构成超网)
最长相同前缀
减少路由表项目
最长匹配前缀
4.9 网际控制报文ICMP
作用
更有效地转发 IP 数据报
提高交付成功的机会
报告差错情况和提供有关异常情况的报告
报文类型
差错报文
重点不可达
超时
参数问题
改变路由
询问报文
回送请求和回答
时间戳请求和回答
不发送ICMP报文的情况
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文
对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文
对具有多播地址的数据报都不发送 ICMP 差错报告报文
对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文
ICMP应用
PING测试连通性
tracert追踪路由
4.10 路由选择协议RIP
理想的路由算法
算法必须是正确的和完整的
算法在计算上应简单
算法应能适应通信量和网络拓扑的变化,要有自适应性
算法应具有稳定性
算法应是公平的
算法应是最佳的
链路度量(代价)
链路长度
数据率
链路容量
是否要保密
传播时延
结点的缓存被占用的程度
链路差错率等
最佳路由
不存在一种绝对的最佳路由算法
所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择
实际的路由选择算法应尽可能接近理想算法
路由选择是个非常复杂的问题
是网络中的所有结点共同协调工作的结果
路由选择的环境往往是不断变化的,不可预知
分层次的路由选择协议
互联网的规模非常大
许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议
自治系统AS Autonomous System
路由选择协议分类
内部网关协议 IGP (Interior Gateway Protocol)
在一个自治系统内部使用的路由选择协议
使用得最多,如 RIP 和OSPF 协议
外部网关协议 EGP (External Gateway Protocol)
两个自治系统之间传递路由选择信息
内部网关协议:RIP协议
特点
分布式、基于距离向量的路由选择协议
要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录
使用运输层的用户数据报 UDP进行传送(使用 UDP 的端口 520)
优点
实现简单,开销较小
缺点
限制了网络规模
是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器(坏消息传播慢)
路由器之间交换的是完整路由表,开销随网络规模增大而增大
距离定义
从一路由器到直接连接的网络的距离定义为 1
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1
RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”
RIP 允许一条路径最多只能包含 15 个路由器
“距离”的最大值为16 时即相当于不可达
RIP 选择一个具有最少路由器的路由,即使存在一条高速(低时延)但路由器较多的路由
协议实现要点
仅和相邻路由器交换信息
交换的信息是当前本路由器所知道的全部信息,即自己的路由表
目的网络
距离
下一条
按固定的时间间隔交换路由信息
路由表建立
路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)
以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息
经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
RIP 协议的收敛(convergence)过程较快
距离向量算
4.11 IPv6协议
主要特点
长度为128位 16字节
IP协议基本不变
具有灵活的扩展首部
地址记法
冒号16进制,2字节一组
冒号十六进制 +点分十进制
零压缩
地址分类
数据报结构
首部结构
扩展首部
IPv4到IPv6过渡
双协议栈
路由器同时运行IPv4和IPv6两种协议
容易造成某些字段丢失
隧道技术
将IPv6数据包作为数据封装在IPv4数据包中进行传输
4.12 IP多播
IP多播概念
目的:更好第支持一对多通信
在互联网上进行多播就叫做 IP 多播
互联网范围的多播要靠路由器来实现
能够运行多播协议的路由器称为多播路由器
多播IP地址
IP 多播所传送的分组需要使用多播 IP 地址
在多播数据报的目的地址写入的是多播组的标识符
多播组的标识符就是 IP 地址中的 D 类地址
每一个 D 类地址标志一个多播组
多播地址只能用于目的地址,不能用于源地址
IGMP因特网组管理协议
特点
IGMP 使用 IP 数据报传递其报文
IGMP 并非在互联网范围内对所有多播组成员进行管理的协议
IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上
IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组
IGMP工作的两个阶段
加入多播组
发送声明
关系转发
探询组成员变化情况
周期性探寻
活跃组
多播路由选择
泛洪与剪除
隧道技术
基于核心的发现技术
4.13 VPN与NAT
VPN
专用网
原因
IP 地址紧缺
互联网并不很安全
仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址
本地地址
专用地址
虚拟专用网VPN
利用公用的互联网作为本机构各专用网之间的通信载体
用于机构内部的通信
实现技术
隧道技术
NAT
NAT路由器
转换过程
NAPT
第五章 运输层
5.1 运输层概述
位置
网络层与应用层之间
面向通信的最高层
用户功能的最底层
作用
端(进程)到端(进程)的逻辑通信
复用与分用
屏蔽底层细节
套接字与端口号
端口
特点
长度16位 0-65535
只具有本地意义
分类
服务器端
熟知端口
最常用服务,是固定的
0-1023
登记端口
需登记使用
1024-49151
客户端
短暂端口号
套接字SOCKET
两种协议
5.3 传输控制协议TCP
5.2 用户数据报协议UDP
5.2 用户数据报协议UDP
概述
协议传送单元:UPD报文/用户数据报
在IP基础上增加了小部分功能
复用与分用
差错检测
特点
不可靠交付,适合实时性要求高的场合
无连接
无拥塞控制,发送不减速
面向报文
应用层的报文UDP加首部后就向下交付给IP层,既不合并也不拆分
接收方对IP层交上的数据报去除首部后直接交付应用层
程序应选择合适大小的报文
支持一对一、一对多、多对对
首部开销小,只有8字节
UDP首部
首部
伪首部
2 源端口
2 目的端口
2 长度
2 校验和
数据
5.3 传输控制协议TCP
协议传送单元:TCP报文段
面向连接
每一条 TCP 连接有两个端点
TCP 连接的端点为套接字(socket)
TCP 连接是一条虚连接
支持一对一通信
可靠传输
全双工通信
面向字节流
流
不保证发送方与接收方数据块有相同大小
具有流量控制和拥塞控制
5.4 TCP报文格式
源端口和目的端口
序号字段
确认号
数据偏移(首部长度)
保留字段
紧急 URG
确认 ACK
推送 PSH
复位 RST
同步 SYN
终止 FIN
窗口字段
检验和
紧急指针
选项字段
MSS
填充字段
5.5 TCP运输链路管理
数据传输阶段
连接建立
连接方式
C/S
考虑问题
每一方能够确知对方的存在
允许双方协商一些参数
能够对运输实体资源进行分配
数据传输
连接释放
连接建立:三次握手
连接释放:四次握手
A 必须等待 2MSL 的时间
保证 A 发送的最后一个 ACK 报文段能够到达 B
再经过时间 2MSL可以使本连接持续的时间内所产生的所有报文段都从网络中消失
5.6 可靠传输
停止等待协议
理想的传输条件
传输信道不产生差错
不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据
停止等待协议
特点
每发送完一个分组就停止发送,等待对方的确认
收到确认后再发送下一个分组
情景
无差错
出差错
解决:超时重传
确认丢失
确认迟到
注意
发送完一个分组后暂时保留副本以备重发
分组和确认分组都必须进行编号
超时计时器的重传时间比RTT更长一点
自动重传请求ARQ
信道利用率
流水线传输
连续ARQ协议
滑动窗口协议
发送窗口
累积确认
接收方不必对每个分组逐个确认
对按序到达的最后一个分组发送确认
容易实现,即使确认丢失也不必重传
不能反映已经正确收到的所有分组的信息
回退N帧
可靠通信具体实现
以字节为单位的滑动窗口
滑动窗口
根据接收方给出窗口值构造发送窗口
发送窗口表示在没有收到 确认的情况下,可以连续把窗口内的数据都发送出去
发送窗口里面的序号表示允许发送的序号
发送/接收缓存
发送方的应用进程把字节流写入 TCP 的发送缓存
接收方的应用进程从 TCP 的接收缓存中读取字节流
确认时机
合适时间
捎带确认(少)
不应过分推迟确认
注意
发送、接收窗口并不总是一样大(时间滞后)
TCP 标准没有规定对不按序到达的数据应如何处理
TCP 要求接收方必须有累积确认功能,减少传输开销
超时重传时间选择
加权平均往返时间
超时重传时间RTO
选择确认SACK
建立连接时允许SACK
“确认号字段”的用法不变,增加SACK 选项报告收到的不连续的字节块边界
最多只能指明 4 个字节块的边界信息
5.7 流量控制
滑动窗口实现流量控制
流量控制举例
死锁问题
问题产生
B向A发送0窗口报文段
B缓存有剩余空间后又发送了非0窗口报文
非零窗口报文丢失
A一直等待B发送非0窗口报文
B一直等待A发送数据
解决:设置持续计时器
接收到0窗口通知就启动持续计时器
时间到期发送零窗口探测报文
对方确认时会给出现在的窗口值
TCP的传输效率
TCP报文段的发送时机
缓存中存放的数据达到 MSS 字节发送
由应用程序指明要求发送
设置计时器,期限到发送
发送方糊涂窗口综合症
接收方糊涂窗口综合症
5.8 拥塞控制
拥塞控制一般原理
拥塞
影响因素多
拥塞控制
是一个全局性的过程
是一个动态的问题
拥塞控制基本原理
开环控制
闭环控制
监测网络系统以便检测到拥塞在何时、何处发生
将拥塞发生的信息传送到可采取行动的地方
调整网络系统的运行以解决出现的问题
网络拥塞指标
由于缺少缓存空间而被丢弃的分组的百分数
平均队列长度
超时重传的分组数
平均分组时延
TCP拥塞控制方法
发送方维持拥塞窗口CWND
大小取决于网络的拥塞程度,动态变化
发送端利用拥塞窗口调整发送的数据量
发送窗口大小不仅取决于接收方公告的接收窗口,还取决于网络的拥塞状况
拥塞窗口控制原则
网络没有出现拥塞,拥塞窗口就可以增大一些以便把更多的分组发送出去,提高网络利用率
只要网络出现拥塞或有可能出现拥塞,就必须把拥塞窗口减小以减少注入到网络中的分组数,缓解网络拥塞
拥塞判断
重传定时器超时
收到三个相同(重复)的 ACK
TCP拥塞控制算法
慢开始 (slow-start)
作用:确定网络的负载能力
思路:由小到大逐渐增大拥塞窗口数值,指数增长
初始拥塞窗口cwnd设置
慢开始门限ssthresh(状态变量)
cwnd < ssthresh,使用慢开始算法
cwnd > ssthresh,停止使用慢开始算法而改用拥塞避免算法
cwnd = ssthresh,既可使用慢开始算法,也可使用拥塞避免算法
控制方法
每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个 SMSS 的数值
每经过一个传输轮次拥塞窗口加倍
拥塞避免 (congestion avoidance)
思路:使cwnd缓慢增大,线性增长
重传定时器超时
ssthresh = max(cwnd/2,2)
cwnd = 1
执行慢开始算法
快重传 (fast retransmit)
连收到三个重复确认立即重传
快恢复 (fast recovery)
连收到三个重复确认执行快恢复
慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2
新拥塞窗口 cwnd = 慢开始门限 ssthresh
开始执行拥塞避免算法,使拥塞窗口缓慢地线性增大
主动队列管理AQM