第一章.网络基础
1.1 网络类型分类
网络按照二层链路类型分为以下四种:
多点接入网络(MA):
1,广播型多点接入(BMA):如以太网,支持广播,设备通过MAC地址通信,适合局域网。
2,非广播型多点接入(NBMA):如帧中继,不支持广播,需手动配置邻居,常用于广域网。
点到多点网络(P2MP):由其他网络类型手动配置,需指定邻居。
点到点网络(P2P):仅两台设备,通过串行接口(serial)连接,使用串行线,常用于广域网。
1.传输标准:
E1:2.048Mbps(欧洲标准)。
T1:1.544Mbps(北美标准)。
1.2 数据链路层协议
以太网协议
·定义:传输以太网帧的局域网协议。
·特点:
支持广播,多设备通过MAC地址区分。
使用频分技术,传输速率高(10Mbps到100Gbps)。
帧结构:
以太网Ⅱ帧:类型字段标识上层协议(如IP)。
802.3帧:含LLC子层,提供分片和帧类型号。
HDLC协议
定义:高级数据链路控制协议,私有协议,不同厂商不兼容。
特点:
支持透明传输,帧格式统一,效率高。
无验证机制,安全性较低。
应用:常用于点到点广域网连接。
PPP协议
定义:点到点协议,公有协议,所有厂商兼容。
特点:
支持同步/异步线路。
支持验证(PAP/CHAP)和错误检测。
支持IP地址协商(如IPCP)。
无重传机制,网络开销小。
组成:
LCP(链路控制协议):协商链路参数(如MTU)。
NCP(网络控制协议):协商网络层参数(如IP地址)。
工作过程:
1.LCP建立:协商链路参数。
2.认证(可选):
PAP:两次握手,密码明文,安全性低。
CHAP:三次握手,加密传输,安全性高。
3.NCP协商:分配IP地址等。
·应用:用于拨号连接(如PPP E)或点到点广域网。
·PPP的CHAP使用挑战-响应机制(MD5加密),比PAP更安全。
·HDLC和PPP均使用FCS(帧校验序列)检测错误。
第二章 TCP协议
2.1 TCP协议概述
TCP(传输控制协议)是一种可靠的传输层协议,特点如下:
·面向连接:传输前需建立逻辑连接。
·可靠传输:通过确认、重传、流控等机制确保数据不丢失。
·点到点:每条连接只有两个端点。
·全双工:支持双向同时通信。
·面向字节流:以字节为单位传输数据。
TCP适合需要高可靠性的场景(如HTTP、FTP)。
对比UDP:无连接、不可靠、开销小,适合实时应用(如DNS、视频流)。
2.2 TCP报文结构
TCP报文头部包含以下关键字段:
字段 长度 描述
源端口号 16位 发送方端口号
目标端口号 16位 接收方端口号
序列号 32位 报文段的字节序号
确认号 32位 期望收到的下一个字节序号
首部长度 4位 TCP头部长度(单位:4字节,最大60字节)
控制位 6位 URG/ACK/PSH/RST/SYN/FIN标志
窗口大小 16位 接收方的可用缓冲区大小
校验和 16位 验证数据完整性
紧急指针 16位 紧急数据的位置
选项 可变 可选字段(如MSS、时间戳)
控制位作用:
URG:紧急数据优先。
ACK:确认号有效。
PSH:尽快推送数据到应用层。
RST:重置连接(异常终止)。
SYN:发起连接。
FIN:释放连接。
·四元组:源IP、源端口、目标IP、目标端口,唯一标识一条TCP连接。
2.3 TCP可靠传输机制
连接确认
·通过ACK报文(ACK=1)确认数据接收,确认号指明期望的下一字节。
重传机制
·超时重传:
RTT:发送到收到确认的往返时间。
RT :超时重传时间,动态调整,略大于RTT。
网络拥塞时,RT 加倍以缓解压力。
·快速重传:
接收方连续发送3个冗余ACK,发送方立即重传丢失数据。
流控机制
·滑动窗口:接收方通过窗口字段(rwnd)通知发送方可发送数据量。
·零窗口:缓冲区满时,窗口设为0,暂停发送。
·坚持定时器:定期探测窗口更新,避免死锁。
·实际发送窗口 = min(cwnd, rwnd),其中cwnd为拥塞窗口。
·零窗口可能导致死锁,TCP通过坚持定时器解决。
2.4 TCP拥塞控制
·拥塞判断:
数据包超时。
收到3个冗余ACK。
·拥塞窗口(cwnd):动态调整发送速率,实际发送窗口 = min(cwnd, rwnd)。
拥塞控制阶段
1.慢启动:
初始cwnd = 1 MSS(最大分段大小)。
每收到一个ACK,cwnd翻倍(指数增长)。
达到慢启动门限(ssthresh)后进入拥塞避免。
2.拥塞避免:
cwnd每RTT加1 MSS(线性增长)。
3.快速恢复:
收到3个冗余ACK后,cwnd减半,继续发送数据。
·ssthresh控制慢启动到拥塞避免的切换。
·常见算法(如Ren )优化拥塞控制,HCIA常考Ren 。
2.5 TCP连接管理
三次握手(建立连接)
1.客户端发送SYN=1(序列号=x)。
2.服务器回复SYN=1, ACK=1(序列号=y,确认号=x+1)。
3.客户端发送ACK=1(确认号=y+1)。
·目的:确认双方收发能力,初始化随机序列号(ISN)防止旧连接干扰。
四次挥手(释放连接)
1.主动方发送FIN=1(序列号=x)。
2.被动方回复ACK=1(确认号=x+1)。
3.被动方发送FIN=1(序列号=y)。
4.主动方回复ACK=1(确认号=y+1)。
·MSL(最长报文段寿命):默认2分钟,TIME_WAIT状态持续2MSL。
· FIN报文消耗一个序列号,确保可靠性。