目录
3.1 引言
城域网(Metropolitan Area Network,MAN):ISP有线电视,DSL。
3.2 以太网
MTU值计算不包含以太网头。
两种以太网标准:
Ethernet II:
DIX(DEC Inter Xerox)开发的,大多以太网数据包是该标准。
使用场景:用于较为简单网络环境,如家庭网络、小型网络。
IEEE 802.3:
IEEE在Ethernet II基础上修改为IEEE 802.3。
使用场景:用于更严格的网络环境,如企业网络、数据中心等高可靠性和灵活性场景。
早期10Mb/s以太网,即共享以太网,需检测碰撞CSMA/CD,介质是电缆。
20世纪90年代初,10Mb/s共享电缆被双绞线10BASE-T代替,共享线路被专用星型拓扑代替,即以太网交换机。
有了交换机就不需要CSMA/CD了,而是全双工工作。
链路层分为:
逻辑链路控制LLC层:
作用:错误检测和流量控制等功能。
不同链路层都通用。
介质访问控制MAC层:
作用:地址分配、帧封装和解封装。
不同链路层各自实现。
IEEE802.3以太网是异步的,帧格式如下:
前导:7字节,同步,确定一个帧到达时间。
帧开始符SFD:1字节,恢复时钟
长度/类型:
值大于1536,表示类型(即网络层协议,常见)
值不大于1500,表示长度。
Q标签帧:包含802.1p/q,属于信封帧,但信封帧不一定是Q标签帧。
FCS采用CRC算法。
最小以太网帧64B, 其中负荷最小48B。
最大以太网帧1518B, 其中负荷最大1500B=MTU。
千兆交换机可用非标准的巨型帧,高达9000B,但和传统以太网设备不兼容。
802.1Q = VLAN
vconfig命令: 添加或删除虚拟接口,设置802.1p优先级。
vconfig add eth1 2:会生成eth1.2接口。
802.1AX:以前的802.3ad 链路聚合 : 802.1AX定义LACP链路聚合控制协议,交换机,主机均可支持
多个网口绑定聚合,可提高性能和可靠性。
Linux实现:
modprobe bonding
ifconfig bond0 10.0.0.111 netmask 255.255.255.128
ifenslave bond0 eth0 wlan0
ifconfig bond0显示有MASTER标志,而eth0和wlan0有SLAVE标志,bond0默认使用第一个从设备MAC。
加载bonding驱动参数指定了聚合接口发送数据的模式(模式有:循环交付,备份,源目MAC异或选择接口,全复制,负载均衡等)。
LACP:通过LACPDU确定链路成员。
当网络设备间支持LACP协议时,Bonding驱动可以通过LACP协议进行链路聚合。
3.3 全双工 省点 自动协商 流量控制
ethtool工具可查看双工。
802.3u:自动协商,在物理层通过信号发送,不影响数据收发。
ethtool -s eth0 wol umgb
wol:局域网唤醒功能,可省电。
umgb含义:
指明 可触发唤醒的动作:物理层活动p, 单播帧u,组播帧m,广播帧b,ARP a,魔术分组帧g
Linux命令wol 00:08:74:93:c8:3c:
向MAC为00:08:74:93:c8:3c的设备发送WOL魔术包。唤醒设备。
PAUSE帧:
一种链路层流量控制,802.3x定义,以太网type=0x8808,目的MAC总是01:80:C2:00:00:01,表明发送方暂停多久再次发送。PAUSE帧是唯一一种使用MAC控制帧的帧类型,有副作用,目前使用少。
3.4 网桥和交换机
IEEE802.1d 生成树协议
Windows可以像Linux一样桥接多个网口。
Linux实现桥接方法:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl showmacs br0 查看网桥的MAC地址表,信息包括: port no MAC aging timer,该表老化时间默认5分钟
生成树协议(Spanning Tree Protocol,STP):通过禁止或阻塞一些交换机端口,创建一个无环路的网络拓扑。
STP端口状态:阻塞,侦听,学习,转发,禁用。
根端口:指向根网桥的端口。
指定端口:处于转发的端口,与根路径成本最小的端口
备用端口:不处于转发,路径成本更高。
备份端口:接管失效的指定端口。
STP被快速生成树协议RSTP代替,收敛速度更快。
BPDU= Bridge PDU,BPDU固定组播目的MAC:01:80:C2:00:00:00
STP相关命令:
brctl stp br0 on
brctl showstp br0 可查看br0桥的bridge id
如上图bridge id = 优先级.MAC=标识符
如上图bridge id格式是:优先级.MAC,bridge id是桥设备的标识符。
STP工作流程:
1. 选择根桥:根桥是网络中转点,所有数据包都通过根桥转发。交换机比较彼此bridge id,最终选择最小bridge id的交换机为根桥。
2. 计算最短路径:一旦根桥被选定,每个交换机都计算到根桥的最短路径,这通常是通过比较各个端口收到的BPDU的路径代价完成的。路径代价根据链路带宽计算的,带宽低的链路具有较高路径代价。
3. 选择设计端口(Designated Port):交换机选择连接着最短路径的端口作为设计端口,这些端口用于将数据包发送到根桥。
4. 禁用冗余路径:每个交换机中,除了根据最短路径选择的设计端口外,其他端口都会被禁用或阻塞。从而避免网络中的环路。
5. 监测拓扑变化: STP监测链路故障或拓扑结构改变。当拓扑变化时,重新计算路径。
6. 收敛: STP确保网络在收敛时间内从一个拓扑状态转换到另一个拓扑状态,以确保网络拓扑稳定可靠。
RSTP(Rapid STP):监视每个端口状态,在故障时主动发送一个拓扑变化通知。端口状态由5个减少为3个 (丢弃,学习,转发)
MSTP(Multi-STP):多生成树,为每个VLAN生成一个树。
3.5 WiFi
Infrastructure Mode:
即基础设施模式。
Infrastructure Mode中,所有无线客户端都连接到一个或多个AP上,而AP则连接到有线网络上。
BSS(基本服务集) = AP+STAs。
AP间通过有线分布式服务DS形成ESS(拓展服务集)。
Ad hoc(自组织模式)
无AP无DS,而是P2P,是mesh前身。
IBSS(Independent Basic Service Set,独立基本服务集)= Ad hoc网络 + STA。
SSID:服务集标识符
ESSID:拓展服务集标识符
WiFi共有三种802.11 帧类型:
1. 管理帧:
Beacon,Probe Request/Response,Association Request/Response,
Reassociation,Disassociation,Authentication
2. 控制帧
RTS(Request to Send)帧:
CTS(Clear to Send)帧: RTS帧的响应
Block ACK、ACK
PS-Poll:设备唤醒时,可发送PS-Poll帧以获取待接收数据
3. 数据帧
iwlist wlan0 scan:用于扫描周围WiFi。
iwconfig wlan0 rts 250:当要发送数据帧长度大于250B时,设备将使用RTS/CTS机制来发送数据。
数据帧可分片或聚合。
通过设置很高的分片阈值,从而不使用分片。
iwconfig wlan0 frag 1500:设置分片阈值。
802.11n 帧聚合: A-MSDU A-MPDU
A-MSDU A-MPDU区别如图所示:
省电模式:PSM
APSD(Automatic Power Save Delivery):旨在延长无线设备的电池寿命。
传统Wi-Fi中,设备空闲时仍需保持与AP的连接以接收任何传入数据。这种持续的连接会导致设备电池消耗较快。
APSD允许无线设备在不需要时进入低功耗模式。
APSD实现:
TIM:AP周期向STA发送Traffic Indication Map(TIM),其中包含是否有待传数据的通知。设备收到TIM后,决定是否进入低功耗模式。
Trigger帧: 当AP有数据要发送给设备时,先发送一个Trigger帧,通知设备有数据待接收。设备在收到Trigger帧后,退出低功耗模式并与AP建立连接,以接收数据。
几种WiFi MAC(媒体访问控制)协议:
PCF(点协调功能):使用少
DCF(分布式协调功能):强制实现
HCF(混合协调功能):PCF和DCF的混合形式
DCF:
采用CSMA/CA,发送数据前,检测信道是否占用,若空闲则发送,否则随机等待一段时间再尝试发送。 是Wi-Fi中最常见的访问机制,适用于大多数无线局域网环境。
PCF:
通过由AP控制发送帧的机会,允许AP一定程度上优先访问无线介质,从而提供了一定QoS。
HCF:
允许AP在需要时通过PCF来控制媒体访问,同时仍然允许STA使用DCF来进行分布式访问。
分布式帧间间隔(Distributed Inter-Frame Space,DIFS):
WiFi用于碰撞检测的时间间隔,实现CSMA/CA(冲突避免)。
NAV网络分配向量计数器:NAV用于指示设备必须等待的时间间隔,
作用:避免冲突,隐藏节点问题。
CCA:检测信道是否空闲。
NAV:指示设备在接收到帧后的等待时间间隔。
DIFS:是两个数据帧之间必须等待的时间间隔。
WiFi三种加密方式:
WEP(RC4加密算法)
WPA(TKIP协议:RC4加密算法+更长IV+MIC哈希完整性保护)
WAP2(AES加密算法+CCMP完整性保护)
1. WEP工作原理:
初始化向量(IV): 设备生成随机初始化向量(IV)。IV是一个短随机数,通常与WEP密钥一起使用。
加密过程: 发送方使用WEP密钥和IV加密传输数据。数据先被分割成固定大小数据包,然后对每个数据包应用加密算法(通常是RC4),加密数据。
解密过程: 接收方使用相同WEP密钥和IV来解密数据包。
WEP为什么不安全?
同一AP,所有STA使用相同的密钥加解密数据。
密钥短。
IV生成不是真正随机生成。
没有数据完整性保护机制。
2. WPA(Wi-Fi Protected Access)
取代WEP,提供更强大加密和认证机制。
使用TKIP(Temporal Key Integrity Protocol,临时密钥完整性协议)对数据加密。
WPA支持动态密钥更新。
WPA通过使用MIC(Message Integrity Code,消息完整性代码),进行完整性保护,防止数据被篡改。
TKIP:
从预共享密钥(PSK)中派生出一个临时密钥,来加密数据。
依然使用RC4流密码算法,但使用更长的初始化向量(IV),以及对密钥进行更多次混合和扩展。
引入MIC进行完整性保护。
定期更换密钥、动态密钥生成和密钥混合等。
3. WPA2
WPA2加密套件是AES-CCMP,这表示数据加密使用AES对称加密算法,完整性保护则使用CCMP协议。
使用4-Way Handshake协议进行密钥交换和管理
CCMP是一种数据加密和完整性保护的协议,它基于AES算法。
PSK:计算生成的密钥,用于加密数据。
AP会将PSK密钥分发给STA。
EAPOL:用于在WiFi中传输EAP消息的协议,从而进行用户认证和密钥协商。
802.1X:提供了认证框架,用于在网络接入时对用户进行身份验证和授权。
在WiFi中,802.1X通常与EAP协议结合使用,以提供认证和密钥管理功能。
802.11s:mesh
3.6 PPP协议
PPP最初设计用于替代SLIP,可封装多协议如TCP/IP、IPX等。
PPP:点对点协议,在串行链路上传输IP报文,被DSL ISP部署。
PPP协议组成:
LCP,PAP/CHAP,NCP
PPP无需处理链路共享资源竞争问题,即无需CSMA/CD等。
LCP:基于HDLC报文格式(是位级别帧,即使用位填充)
HDLC:高级链路控制,一种数据链路层协议
PPP即可是同步,也可是异步,具体取决于物理介质和传输方式。
同步链路:
基于时钟信号传输数据
使用传输介质为同轴电缆、光纤等。传输速率通常较高。
异步链路:
基于起始位和停止位的异步传输。
使用传输介质为电话线、RS-232串口等,数据传输速率通常较低。
位填充:
若帧中出现0x7E,则用两个0x7D5E替换。
若帧中出现0x7D,则接收方用0x7D5D替换。
标志:0x7E,帧开始,结束。
地址:0xFF,哪个站处理。
控制:0x03,帧序列和重传行为。
协议:
LCP (可配置BCP桥接控制协议)
PAP,CHAP
NCP
地址和控制字段在PPP是常数,可通过ACFC压缩选项来省略。
协议字段可通过PFC (协议字段压缩)选项协商,压缩为1字节。
LCP操作
标识:序列号,递增。
代码:配置请求,配置ACK,配置NACK,配置REJECT,终止ACK,回送请求,回送应答,协议REJECT,代码REJECT。
长度:小于链路MRU。
广域网数据链路层的协议HDLC,已被PPP取代,PPP可同步传输也可异步传输,而HDLC只能用在同步网上。
LCP协商哪些参数:
MRU最大接收单元:默认1500B。
认证方式: PAP还是CHAP。
协商magic:用于检测环路。如有相同则有环路。
异步控制字符映射选项:哪些控制字符需要被转义。
链路质量报告LQR:报告频率,报告内容,报告方式(PPP扩展字段或独立的LCP消息)。
PPPMux:多协议载荷的聚合帧。
以太帧中没有认证字段,使用以太网方式无法接入互联网,所以以太网和PPP结合,形成PPPoE。
多WAN链路可提高网络带宽、冗余备份,负载均衡。
常见多WAN链路聚合方式:
1. LACP(Link Aggregation Control Protocol):将多个物理连接聚合成一个逻辑连接。在交换机和路由器上使用。
2. MLPPP(Multilink Point-to-Point Protocol):聚合多个PPP物理链路。通常PPPoE上使用
3. SD-WAN:可集中管理多个WAN链路,并根据实时网络状况动态调整分流策略。
4. Policy-Based Routing:策略路由实现多WAN链路分流。
MP:多链路PPP,通过LACP协议将多个PPP链路聚合成一条链路。
典型方法:PPP分组轮流在各个成员链路上传输。
复杂方法: 带宽分配协议,带宽分配控制协议,可以基于源IP、目标IP、协议等策略路由实现流量分流和负载均衡。
压缩控制协议CCP:
PPP较慢,分为:modem硬件压缩,协议头部压缩。
MPPE:微软点对点加密。
两种PPP认证:
PAP:1. 客户端发送用户名和密码明文。2. 服务器与存储匹配,判断是否认证成功。
CHAP:1. 服务器发送随机挑战字符串。2. 客户端加密挑战字符串,发送回服务器。3. 服务器解密并比较。
EAP认证框架
网络控制协议NCP
IPv4
IPv6
头部压缩
TCP/UDP头压缩
IP头压缩
鲁棒性头部压缩ROHC:减小IP和UDP/TCP协议头大小。使用场景:VoIP,移动通信,拥塞网络。
MPPE:微软点对点加密,用来加密PPP,已有更安全的加密协议替代MPPE。
MPPC:微软点对点压缩
3.6.1 PPP协议流程
PPP分为三部分:
LCP:约定封装格式,MTU协商,认证方式、压缩算法,链路监测和维护(LCP Echo-Request)等。
认证:非强制部分(PAP或CHAP)
NCP:IP分配
LCP报文分为三类:
建立和配置链路:(Configure-Request, Configure-Ack,Configure-Nak,Configure-Reject)
终止链路:(Terminate-Request,Terminate-Ack)
管理和维护链路:(Code-Reject,Protocol-Reject,Echo-Request,Echo-Reply,Discard-Request)
LCP报文包含code字段,表明LCP报文类型。
3.7 环回
作用:检测协议栈是否正常工作。
IP4:127.0.0.1/8
IPv6:::1/128
3.8 MTU和路径MTU
以太网有效负荷最大字节为1500=MTU,IP数据报大于MTU则分片。
路径MTU: PMTU,整条网络路径最小MTU,当路径中链路故障,路由器故障,路径MTU可能改变。
PMTUD:路径MTU发现。
PMTUD实现方法:
ICMP探测:当收到报文大于MTU且IP头设置禁止分片,则发送ICMP分片必须禁止的错误消息,通知发送方报文不超过某个特定值。发送端据此逐渐降低包大小,直到找到适合PMTU。
TCP MSS选项:TCP握手时通过TCP的MSS 选项告知对端其所支持的最大TCP段大小。
3.9 隧道基础
只能高层携带低层或同等层数据:
IPv6携带IPv4
UDP携带以太网
IPv6携带以太网
IPv4携带以太网
GRE (取代IP in IP)
PPTP (微软)
L2TP (常结合IPsec)
ip命令可以配置任意合理的隧道组合。
报文源IP地址在网络中默认不会更改,但NAT,代理服务器,负载均衡器等例外。
3.9.1 GRE
GRE报文格式:
C: 是否存在校验和
K: 是否存在密钥
S: 是否存在序列号
GRE解决的问题:
跨Internet的私网互通:私网中使用的是私有地址,而在Internet传输的报文须使用公网地址。
跨Internet的异种网络互通:IP与IPX网络无法通信。
使用场景:
ISP间,企业总部和分部之间。通常没有必要IPsec加密,没有客户端服务器,类似对等。
封装格式:
以太网 IP头 GRE头 IP头 IP报文
3.9.2 PPTP
使用场景:
用户和ISP,用户与企业总部间,需要加密(MPPE)。
PPTP头部如下:
R: Recur回溯。
PPTP实现需要:pppd进程,pptpd进程。
3.9.3 L2TP
L2TP (常结合IPsec)更安全。