协议:网络、应用层、安全,开源笔记
协议
协议主要分为网络协议、应用层协议、安全协议,开源协议等几大类。以下为高频考点:
网络层协议: IP,iCMP,ARP
TCP/IP协议族:考试重点包括TCP三次握手、四次挥手机制,IP地址分类及子网划分。例如TCP的可靠性实现原理(确认应答、超时重传等)。
iCMP:iCMP(Internet Control Message Protocol)是 TCP/IP 协议族的核心协议之一,主要用于在 IP 网络中传递控制消息和错误报告。它是 IP 协议的辅助协议,通常由网络设备(如路由器)或主机生成,用于检测网络连通性、诊断错误或提供状态信息。
主要功能
错误报告:当数据包无法到达目标时(如目标不可达、超时),iCMP 会向源主机发送错误消息。
网络诊断:通过工具如 ping(使用 iCMP Echo Request/Reply)和 traceroute 检测网络连通性和路径。
流量控制:当网络拥塞时,路由器可能发送 iCMP 源抑制消息(已较少使用)。
常见消息类型
Echo Request/Reply(类型 8/0):用于 ping 测试。
Destination Unreachable(类型 3):目标不可达时触发。
Time Exceeded(类型 11):TTL 超时或重组分片超时。
ARP 协议:ARP(Address Resolution Protocol)用于将 IP 地址解析为对应的 MAC 地址,是局域网通信的基础协议。它通过广播请求和单播响应实现地址映射。
工作流程
ARP 请求:主机 A 广播一个 ARP 请求包,包含目标 IP 地址。
ARP 响应:拥有该 IP 的主机 B 回复其 MAC 地址。
缓存更新:主机 A 将 IP-MAC 映射存入 ARP 缓存表,有效期通常为几分钟。
常见场景
本地通信:同一子网内设备通过 ARP 获取 MAC 地址。
代理 ARP:路由器代为响应其他子网的 ARP 请求(需配置)。
ARP 报文格式
硬件类型:如以太网(值为 1)。
协议类型:IPv4(0x0800)。
操作码:1(请求)或 2(响应)。
网络接口层:MAC,以太网,PPP
MAC 协议
MAC(Media Access Control)协议是数据链路层的子层,负责控制设备在共享介质上的数据帧传输。MAC地址是设备的唯一硬件标识,用于局域网内的通信。
常见的MAC协议包括CSMA/CD(用于以太网)和CSMA/CA(用于无线网络)。CSMA/CD通过检测冲突并重发数据来管理多设备访问,而CSMA/CA通过避免冲突机制来优化无线环境下的传输。
以太网协议
以太网(Ethernet)是一种广泛使用的局域网技术,基于IEEE 802.3标准。它使用MAC地址进行设备寻址,并支持多种速率(如10Mbps、100Mbps、1Gbps等)。
以太网帧结构包括目标MAC地址、源MAC地址、类型/长度字段、数据载荷和帧校验序列(FCS)。现代以太网通常采用全双工模式,避免了传统半双工模式下的冲突问题。
PPP 协议
PPP(Point-to-Point Protocol)是一种数据链路层协议,用于直接连接两个节点的通信,常见于拨号上网和广域网连接。PPP支持身份验证(如PAP和CHAP)、多协议封装(如IP、IPX)和链路控制。
PPP帧结构包括标志位、地址字段、控制字段、协议类型、数据部分和帧校验序列。PPP协议通过LCP(链路控制协议)和NCP(网络控制协议)管理链路的建立、维护和终止。
传输层协议:TCP,UDP
TCP协议
特点
- 可靠传输:通过确认机制、重传机制和序列号保证数据按序到达。
- 面向连接:通信前需三次握手建立连接,结束后四次挥手释放连接。
- 流量控制:通过滑动窗口机制动态调整发送速率,避免接收方缓冲区溢出。
- 拥塞控制:采用慢启动、拥塞避免等算法防止网络过载。
应用场景
- 要求数据完整性的场景,如网页浏览(HTTP)、文件传输(FTP)、电子邮件(SMTP)。
头部格式
| 源端口(16) | 目的端口(16) |
| 序列号(32) |
| 确认号(32) |
| 数据偏移(4) | 保留(6) | 控制位(6) | 窗口大小(16) |
| 校验和(16) | 紧急指针(16) |
| 选项(可变) | 填充(可变) |
UDP协议
特点
- 无连接:无需建立连接,直接发送数据包。
- 不可靠传输:不保证数据到达顺序或是否丢失,无确认和重传机制。
- 高效低延迟:头部开销小(仅8字节),适合实时性要求高的场景。
应用场景
- 实时通信如视频会议(RTP)、语音通话(VoIP)、在线游戏。
- 广播或多播应用(DNS查询、DHCP)。
头部格式
| 源端口(16) | 目的端口(16) |
| 长度(16) | 校验和(16) |
对比
| 特性 | TCP | UDP |
|---|---|---|
| 可靠性 | 高 | 低 |
| 连接方式 | 面向连接 | 无连接 |
| 传输效率 | 较低(头部大、机制复杂) | 较高(头部小、无控制) |
| 数据顺序 | 保证 | 不保证 |
| 适用场景 | 文件传输、网页 | 实时媒体、广播 |
选择建议
- 需要可靠性和数据完整性时选择TCP。
- 追求低延迟和实时性时选择UDP。
安全协议
SSL/TLS:加密套件组成(如RSA+ AES+ SHA)、握手阶段(ClientHello-ServerHello密钥交换)。
IPSec:工作模式(传输模式与隧道模式)、AH与ESP协议的区别。
SSH:基于非对称加密的认证过程,与Telnet明文传输的对比。
应用层协议:HTTP,DNS,SMTP
HTTP/HTTPS:HTTP无状态特性、请求方法(GET/POST区别)、状态码(如404、503)。HTTPS通过SSL/TLS加密的握手过程是常考点。
DNS:域名解析过程(递归查询与迭代查询)、记录类型(A、MX、CNAME等)。
FTP:主动模式(PORT)与被动模式(PASV)的区别,控制通道与数据通道分离。
SMTP/POP3/IMAP:邮件发送(SMTP)与接收(POP3/IMAP)的流程,IMAP的服务器同步特性。
S/MIME 协议概述
S/MIME(Secure/Multipurpose Internet Mail Extensions)是一种用于加密和数字签名电子邮件的协议,基于公钥基础设施(PKI)和X.509证书标准。它扩展了MIME协议,通过加密和签名确保邮件的机密性、完整性和身份验证。
核心功能
加密:使用接收方的公钥加密邮件内容,确保只有持有对应私钥的接收方能解密。
数字签名:发送方用私钥对邮件签名,接收方通过公钥验证签名,确认邮件来源和未被篡改。
技术实现
- 加密算法:支持AES、3DES等对称加密算法,以及RSA、ECC等非对称加密算法。
- 证书格式:依赖X.509数字证书,通常由受信任的证书颁发机构(CA)签发。
- MIME扩展:在邮件头中添加
Content-Type: application/pkcs7-mime等字段标识加密或签名状态。
部署步骤
获取证书:从CA申请个人或组织证书,或使用自签名证书(限于测试环境)。
配置客户端:在邮件客户端(如Outlook、Thunderbird)中导入证书并启用S/MIME功能。
发送加密邮件:需预先获取接收方的公钥证书,否则仅能发送签名邮件。
兼容性与限制
- 支持主流邮件客户端(Microsoft Outlook、Apple Mail等),但需双方均配置S/MIME。
- 移动端支持有限,部分客户端需额外插件。
- 证书管理复杂,需定期更新以避免过期。
应用场景
- 企业安全通信:保护敏感业务邮件。
- 法律与医疗行业:满足合规性要求(如HIPAA、GDPR)。
- 个人隐私保护:防止邮件内容被窃取或篡改。
替代方案对比
- PGP/GPG:功能类似,但采用分散式信任模型(Web of Trust),适合技术用户。
- TLS传输加密:仅加密传输过程,不保护邮件存储时的安全。
通过S/MIME,用户可在现有邮件系统中实现端到端的安全通信,但需注意证书管理和兼容性问题。
DHCP:IP地址租约过程(Discover-Offer-Request-Acknowledge)。
其他重要协议
SNMP:管理信息库(MIB)结构,GET/SET/TRAP操作。
RIP/OSPF:距离向量与链路状态路由协议对比,OSPF的Area划分。
ARP/RARP:地址解析协议的工作原理,ARP欺骗的防范。
TCP协议的核心机制与交互流程
三次握手建立连接
客户端发送SYN=1、seq=x的报文;服务端回复SYN=1、ACK=1、seq=y、ack=x+1;客户端发送ACK=1、seq=x+1、ack=y+1。确保双向通信通道可靠建立。
数据传输与确认
采用滑动窗口机制控制流量,通过ACK确认号实现可靠传输。若丢包则触发超时重传或快速重传(收到3个重复ACK)。
四次挥手释放连接
主动方发送FIN=1、seq=u;被动方回复ACK=1、ack=u+1;被动方发送FIN=1、seq=v;主动方回复ACK=1、ack=v+1。存在TIME_WAIT状态防止报文混淆。
HTTP协议的核心机制与交互流程
无状态请求-响应模型
客户端发送请求(方法+URL+头部+实体);服务端返回状态码(如200)、响应头及资源。默认端口80,明文传输。
持久连接与管道化
HTTP/1.1默认启用Keep-Alive,复用TCP连接。管道化支持连续发送多个请求而不需等待响应,但可能引发队头阻塞。
HTTPS安全扩展
通过TLS/SSL加密,流程包括:客户端发送支持的加密套件;服务端返回证书和公钥;协商对称密钥(如RSA或ECDHE)。
DNS协议的核心机制与交互流程
分层查询与递归/迭代解析
客户端向本地DNS发起递归查询;若缓存未命中,本地DNS迭代查询根域名服务器→顶级域(如.com)→权威DNS,最终返回IP。
资源记录类型
A记录(IPv4)、AAAA记录(IPv6)、MX记录(邮件交换)、CNAME(别名)。响应报文包含Answer、Authority、Additional字段。
UDP承载与重试机制
默认使用UDP端口53,报文超过512字节或失败时切换TCP。TTL控制缓存时效,防止过时记录。
IP协议的核心机制与交互流程
分组转发与路由选择
根据目的IP查询路由表,匹配最长前缀。每跳递减TTL,为0时丢弃并发送ICMP超时报文。
分片与重组
MTU不匹配时,分片标志位(MF/DF)和偏移量指导分片。接收方根据ID、偏移量和MF位重组数据报。
ICMP辅助机制
传递差错和控制信息,如目的不可达(类型3)、回声请求/应答(ping,类型8/0)。
BGP协议的核心机制与交互流程
路径向量算法
通过UPDATE消息通告路由(NLRI属性),包含AS_PATH、NEXT_HOP等。选择策略基于最短AS路径、LOCAL_PREF等。
邻居建立与维护
TCP端口179建立会话,通过OPEN消息协商参数。KEEPALIVE保活,NOTIFICATION报告错误。
路由聚合与策略控制
使用AGGREGATOR属性合并路由,通过COMMUNITY标签实现策略(如禁止某AS转发)。
OSPF协议的核心机制与交互流程
链路状态数据库同步
路由器泛洪LSA(链路状态通告),类型1(路由器LSA)描述直连链路。所有节点维护相同LSDB,通过SPF算法计算最短路径树。
区域分层设计
骨干区域(Area 0)连接非骨干区域,ABR(区域边界路由器)汇总路由。减少LSA泛洪范围,提高扩展性。
DR/BDR选举
多路访问网络中,选举指定路由器(DR)和备份DR,负责LSA分发。优先级和Router ID决定选举结果。
每个协议的设计均针对特定场景优化,如TCP强调可靠性,HTTP关注资源交互,DNS解决命名问题,IP实现网络层寻址,BGP/OSPF分别处理域间/域内路由。
开源协议是用于规范软件或其他作品如何被使用、修改和分发的法律文本。以下是常见开源协议及其特点:
MIT 协议
- 权限宽松:允许任何人在保留原协议和版权声明的前提下自由使用、修改、分发软件,包括闭源商业用途。
- 责任限制:软件作者不承担任何责任。
- 适用场景:适用于希望最大限度开放使用的项目,如 jQuery、React。
Apache 2.0 协议
- 专利授权:明确授予用户专利使用权,避免专利诉讼风险。
- 修改要求:修改后的文件需标注变更内容,衍生作品可选用不同协议。
- 适用场景:适合涉及专利技术的项目,如 Android、Kafka。
GPL(GNU通用公共许可证)
- 强传染性:任何衍生作品(如修改或链接GPL代码)必须同样以GPL开源。
- 版本区别:GPLv2 要求衍生作品整体开源;GPLv3 进一步限制专利和硬件使用限制。
- 适用场景:强调开源生态共享,如 Linux 内核、Git。
LGPL(GNU较宽松公共许可证)
- 弱传染性:允许动态链接LGPL库的闭源软件存在,但直接修改库代码仍需开源。
- 适用场景:适合库文件开发,如 GLib、FFmpeg。
BSD 协议
- 无义务开源:允许闭源使用,需保留版权声明和免责条款。
- 变种差异:BSD 2-Clause 更宽松;BSD 3-Clause 禁止用作者名推广衍生作品。
- 适用场景:追求自由度的项目,如 FreeBSD、Nginx。
AGPL(Affero GPL)
- 网络服务条款:即使通过网络提供服务(如SaaS),也必须公开修改后的源代码。
- 适用场景:云服务类项目,如 MongoDB(曾使用)。
更多推荐


所有评论(0)