网络协议分析:从PPP到DNS的全面解析
网络协议分析:从PPP到DNS的全面解析
网络协议分析是理解计算机网络通信的基础,本文将从多个维度深入探讨各种网络协议的原理和应用。从PPP、ARP到移动IP,从HTTP到电子邮件系统,再到DNS,这些协议构成了现代互联网通信的核心框架。
网络协议分析概述
Internet是一个"网络之网络"(Network of Networks),其异构网络互联技术由Vinton Cerf提出,每个网络内部使用各自的通信协议,而网络间通信则统一使用TCP/IP协议族。
用IP实现异构网络互联
在实际操作层面,网络互联主要通过路由器实现。下图展示了Internet的基本构成:
TCP/IP协议族的引入简化了网络通信问题,通过分层设计使得各类应用得以构建。
网络协议的分层
网络协议的分层设计将复杂问题分解为若干局部问题。这一思想最早在ARPANET设计中提出,并在1974年由IBM通过SNA(System Network Architecture)系统化。
通用的协议分层思想
- 第N层实体在实现自身功能时,仅使用N-1层提供的服务
- N层向N+1层提供服务,包括自身功能和下层服务的总和
- 最底层只提供服务,最高层只使用服务,中间层既是用户也是服务提供者
- 仅在相邻层间有接口,下层服务细节对上层透明
TCP/IP的分层模型
TCP/IP模型建立在硬件层之上,包含4个软件层。协议分层的原则是确保第n层接收到的数据与源主机发出的数据一致。操作系统边界和协议地址边界、点到点和端到端的关系、协议依赖关系(沙漏模型)、多路复用和多路分解等概念,都是理解TCP/IP分层模型的关键。
协议分析
协议分析是通过程序分析网络数据包的协议头和尾,了解信息和数据包的产生与传输过程。协议分析器本质上是在窃听网络通信,通过数据包嗅探器(packet sniffer)或分组捕获器来实现。这些工具通常用于故障诊断、性能分析和安全分析等。
协议分析应用
- 诊断网络故障
- 测试网络(主动发送数据包或被动侦听)
- 搜集网络性能趋势数据
协议分析任务
网络协议主要涉及三个要素:语法、语义和同步。语法关注数据包格式,语义解释字段含义,同步则描述协议工作流程。
常见网络协议
PPP协议
PPP(Point-to-Point Protocol)是一种网络接口层协议,主要用于点到点通信。其应用场景包括PPPoA(PPP over ATM)和PPPoE(PPP over Ethernet)。PPP规定了帧格式、链路控制协议(LCP)和网络控制协议(NCP),并支持PAP和CHAP两种认证协议。
报文选项
PPP支持多种报文选项,包括最大接收单元(MRU)、认证协议、质量协议、幻数、协议域压缩和地址及控制域压缩等。
IPCP
IP控制协议(IPCP)用于配置IP地址等网络参数,支持Van Jacobson压缩协议。
认证协议PAP
PAP(Password Authentication Protocol)存在安全缺陷,如明文传输身份和口令信息,容易遭受窃听、重放和穷举攻击。
认证协议CHAP
CHAP(Challenge Handshake Authentication Protocol)通过挑战应答机制提高安全性。
PPPoE
PPPoE结合了以太网的高带宽特性和PPP的认证与控制功能。其协议流程包括发现阶段(获取AC的MAC地址)和会话阶段(配置链路、身份验证等)。
地址解析协议ARP
ARP(Address Resolution Protocol)用于解决IP地址到物理地址的映射问题。其工作原理是通过广播询问,单播回应的方式实现地址解析。
跨网转发时,ARP通过代理ARP机制实现无缝添加路由器,保持子网变化对主机透明。
移动IP
移动IP允许主机在变换网络后仍能以原IP地址通信。其特点包括透明性、互操作性、安全性和宏移动性。移动主机拥有家乡地址和转交地址,通过家乡代理实现数据转发。
移动IP的工作机制
移动IP的工作机制包括代理发现、移动代理通告、移动主机位置判断、注册和数据传送等环节。隧道技术(如IP-in-IP封装、最小封装和GRE)用于实现数据的跨网络传输。
移动IP的三角路由问题
为解决三角路由问题,移动主机需要向通信节点发送地址绑定信息,通信节点通过查找缓存中的地址绑定信息,直接通过隧道将数据报发送到转交地址。
隧道技术
隧道技术用于解决数据报在不能直接传输的网络中传输的问题。主要的隧道技术包括IP-in-IP封装、最小封装和通用路由封装(GRE)。
IP-in-IP封装
在IP-in-IP封装中,新IP首部的协议类型字段设置为4,源地址和目的地址分别设置为隧道的入口和出口点。
最小封装
最小封装的协议类型字段设置为55,源地址和目的地址分别设置为隧道的入口和出口点。
通用路由封装
GRE提供了递归封装的能力,并支持校验和、路由、密钥和序号等可选字段。
HTTP协议
HTTP(HyperText Transfer Protocol)是一种基于TCP的无状态协议,主要用于Web页面的传输。HTTP特点包括双向传输、协商能力、高速缓存支持和中介支持。
持久连接和长度
HTTP支持非持久连接、持久连接和流水线技术,提高了通信效率。
HTTP协商及条件请求
客户端与服务器可以通过协商确定访问是否需要认证、接受的文件类型、语言类型等。条件请求允许客户端指定响应满足的条件,如If-Modified-Since。
代理服务器和高速缓存
代理服务器可以提高通信效率,减轻服务器负担。高速缓存机制进一步优化了数据传输。
HTTP报文格式
HTTP报文包括开始行、首部行和实体主体。开始行可以是请求行或状态行,首部行包含各种控制信息,实体主体则包含数据部分。
HTTP面临的安全风险
HTTP的主要安全风险包括明文传输数据、缺乏完整性检测等。为增强安全性,可以使用HTTPS(HTTP over SSL)。
电子邮件系统
电子邮件系统由用户代理、邮件传送代理和邮箱三个主要部件组成。其基本功能包括撰写、传输、报告、显示和处理邮件。
邮箱地址及电子邮件格式
邮箱地址采用"邮箱名@邮箱所在主机的域名"的格式。电子邮件格式包括信封、首部和正文部分。MIME(Multipurpose Internet Mail Extensions)解决了附件传输问题。
简单邮件传输协议SMTP
SMTP用于发送邮件,基于TCP,使用端口号25。定义了14条命令和21种应答。
POP协议
POP(Post Office Protocol)用于接收邮件,目前广泛使用的是POP3。基于TCP,使用端口号110。POP服务器在用户身份认证后允许对邮箱的操作。
IMAP
IMAP(Internet Mail Access Protocol)提供更强大的远程邮箱管理和操作功能,基于TCP,使用端口号143。
POP VS IMAP
IMAP与POP的主要区别在于,IMAP支持联机访问模型,用户可以先查看首部,选择性收取邮件,且邮件默认保留在服务器上。
电子邮件系统面临的安全威胁
电子邮件系统面临的安全威胁包括SMTP的认证问题、数据明文传输、邮件服务器被攻击、电子邮件病毒和垃圾邮件等。
域名系统DNS
DNS(Domain Name System)为Internet上的主机提供便于记忆的名字,并解决名字到IP地址的映射问题。DNS采用树型结构,最高层为根服务器,全球共13个。
域名解析原理
域名解析采用客户端/服务器模型,解析类型包括递归解析和迭代解析。根服务器不接受递归解析请求,而是指示可能包含记录的服务器。
高速缓存
为提高效率,DNS系统引入了高速缓存机制,保存最近解析的域名和IP地址映射关系。缓存记录的保存时间由TTL值决定。
减少DNS报文长度的措施
DNS采用域名缩写和域名压缩等措施减少报文长度。DNS既可以基于TCP,也可以基于UDP,服务器使用知名端口53。
DNS面临的安全威胁
DNS面临的安全威胁包括DNS欺骗、信任服务器背叛、数据窃听及篡改、名字连锁攻击和否认域名存在等。