TCP/IP协议及其应用
第1章 TCP/IP协议基础 学 习 要 点 网络通信协议 管理TCP/IP的组织机构 RFC OSI参考模型 TCP/IP协议簇 协议分析 Wireshark
1.1 网络通信协议与TCP/IP(P1)
1.1.1 网络通信协议(P1) 网络协议是网络中通信双方共同遵守的规则和约定,对信息传输的速率、代码结构、传输控制、差错控制等作出规定。 协议由以下3部分组成: 语义(Semantics):规定双方完成通信需要的控制信息及应执行的动作。 语法(Syntax):规定通信双方交换的数据或控制信息的格式和结构。 时序(Timing):规定通信双方彼此的应答关系,包括速度的匹配和顺序。
1.1.2 TCP/IP协议(P2) TCP/IP协议是目前最完整的、被全世界普遍接受的通信协议标准,解决了异形机的互连及异构网的互连问题。 TCP/IP协议以套件的形式推出,称为TCP/IP协议簇,包含一组相互配合的协议,TCP和IP只是其中最重要的两个协议。 TCP/IP协议只是习惯叫法,更专业的叫法是Internet协议,是当前Internet事实上的国际标准。
1.1.3 管理TCP/IP的组织机构(P2) Internet不为任何国家和政府所拥有, Internet的管理和标准化由相关的非盈利组织机构承担。 相关的组织机构有: ISOC(Internet Society),Internet协会是所有各种Internet委员会和任务组的上级机构。 IAB(Internet Architecture Board),Internet体系结构委员会,是ISOC的技术顾问。 IETF(Internet Engineering Task Force),Internet工程任务组,负责制定草案、测试、提出建议以及维护Internet标准。 IESG(Internet Engineering Steering Group),Internet工程指导小组,是IETF的上层机构。
管理TCP/IP的组织机构 IRTF( Internet Research Task Force), Internet研究任务组。 IRSG( Internet Research Steering Group), Internet研究指导小组,IRTF受IRSG的管理。 IANA( Internet Assigned Numbers Authority), Internet数字分配机构,负责分配和维护Internet技术标准中的唯一编码和数值系统。 ICANN( Internet Corporation for Assigned Names and Numbers),Internet名称与数字地址分配机构,具体行使IANA的职能,负责DNS域名管理和IP地址分配。ICANN把IP地址分配给全球5大地区的Internet注册机构(RIR),北美地区的ARIN,欧洲地区的RIPE,拉丁美洲地区的LACNIC,非洲地区的AFriNIC,亚太地区的APNIC。
TCP/IP 管理层次体系(P3)
1.1.4 RFC(P3) RFC( Request For Comment),请求注释,是有关Internet的一系列注解和文件。RFC文档的发布开始于1969年,绝大部分Internet标准的制定都是以RFC的形式开始,经过大量的论证和修改而完成。 RFC206“The Internet Standard Process----Revision 3”给出Internet标准的建立过程。 由IETF和IESG共同制定的Internet协议簇的规范文档就是作为RFC进行发布的,许多TCP/IP协议都得到了RFC的充分论证和文档支持。 RFC包含了关于Internet几乎所有的重要文字资料,这些RFC文档资料公开在Internet上提供下载。 http://www.ietf.org/rfc/ RFC由IETF具体创建和维护。
RFC 1.Internet 标准规范 (P4) 符合Internet标准过程的规范归结为TS和AS两类:TS( Technical Specification,技术规范)是关于协议约定和格式的描述,AS( Applicability Statement,实用性陈述)是协议使用的环境和方法。 AS为每个TS指定下列5个需求等级: 必需的(Required),必须在所有使用TCP/IP协议簇的系统中使用。 推荐的(Recommended),不是必需的,但是根据经验和技术要求推荐使用。 可选的(Elective),不推荐,在系统中的实现可选。 限制使用的(Limited Use) 不推荐的(Not Recommended)
RFC 2.Internet 标准处理过程 (P4) 一个规范文档要进入Internet标准之前,首先要作为一个草案提交,接受非正式的评论。如果超过6个月,你的草案还没有被IESG推荐发布,则被从草案目录中移除。 如果被推荐发布成为RFC文档,可从草案转为正式RFC。
Internet 标准处理过程 1.标准轨迹 试图成为Internet标准的规范必须经过一系列的成熟等级,也就是Internet标准轨迹。由3个成熟等级构成: 提案标准(Proposed Standard):此规范已经通过了深入的审查过程,受到足够多的组织的关注,并被认为是有价值的。 草案标准(Draft Standard):此规范已经被很好的理解,并被认为是稳定的,可以被用作开发。 因特网标准(Internet Standard):经过有效的实现和成功的运行,并达到了很高的技术成熟度,IESG分配给1个STD号码,RFC文档成为正式的官方标准协议。
Internet 标准处理过程 2.非标准轨迹 未进入标准轨迹的规范有以下3个成熟等级: 实验性的(Experimental):作为Internet社区的一般信息发布,是研究和开发工作的记录,属于正在试验的情况。 信息性的(Informational):作为Internet社区的一般信息发布,但是并不表示得到社区的推荐和认可。 历史性的(Historic):已经被更新的规范取代,或已经过时了。
OSI是由ISO制定的国际标准,后来改称为OSI/RM。 1.2 OSI参考模型(P5) OSI是由ISO制定的国际标准,后来改称为OSI/RM。
1.2.1 OSI参考模型的层次结构(P5)
ISO/OSI具有以下主要特点(P6) 它定义的是一种抽象结构,并未明确如何实现其中每一层的功能。 每一层所完成的功能都是独立的,与其他层完成的功能无关。 每一层的功能自成体系,使开放互联成为可能。 低层为高层服务,高层可以忽略低层的分层细节,便于网络开发和设计。 相邻的两层之间提供有接口,便于两层之间的通信。 它仅仅是一种参考,实际的网络体系并未将其每一层的功能实现,而是省略某些层。
1.2.2 OSI参考模型的通信机制(P6) OSI参考模型采用逐层传递、对等通信的机制。通信过程必须经过一个发送方自上而下及接收方自下而上的数据传输过程。对等层之间实现逻辑上的通信。 源主机向目标主机发送数据时,数据自上而下必须逐层封装(数据打包),每层对于从上层传下来的数据,要附加首部(包头)和尾部(包尾)。 目标主机接收数据时,自下而上必须对原来封装的数据逐层解封(解包),每层对于从下层传上来的数据要去除原来附加的包头包尾。 真正的通信动作只发生在同一台计算机内彼此相邻的两层之间,以及两机之间的物理层。
OSI参考模型的通信机制(P6)
1.2.3 协议数据单元(PDU)(P7) 物理层称为位流或比特流 00110000110101011011000111 链路层称为帧(Frame) 网络层中称为分组或包(Packet) 传输层中称为段(Segment)、数据段或报文段 应用层中称为报文或消息(Message)
1.2.4 OSI各层功能和对应的网络管理工作 物理层 在实际物理线路上传输通信数据bit。 网络电缆、双绞线、光纤。 网络布线设计、线路测试及排故。 链路层 在主机之间传输数据帧(Frame)。 网卡、集线器、两层交换机。 两层交换机使用,数据帧分析。 网络层 在网络节点之间传输数据包(Packet)。 三层交换机、路由器。TCP/IP中的IP。 三层交换机、路由器配置,数据包分析。 传输层 提供网络节点之间的可靠数据传输。 TCP/IP中的TCP。 TCP和UDP协议配置,端口映射,代理服务器配置。 会话层 负责网络应用进程之间的协商和连接。 如NETBIOS协议。 表示层 负责数据格式的转换。 打印、显示、文件格式转换。 应用层 面向用户提供最终用户界面。 电子邮件、WWW等。 电子邮件系统、Web网站管理。
1.3 TCP/IP协议簇(P9)
1.3.1 TCP/IP与OSI的层次对应关系(P9) 应用层 表示层 会话层 SMTP FTP HTTP Telnet SNMP DNS 传输层 TCP UDP SCTP 网络层 ICMP IP IGMP ARP RARP 链路层 底层网络定义的协议(以太网、令牌环、PPP等) 网络接口层 物理层 OSI模型 TCP/IP协议族 TCP/IP结构
1.3.2 TCP/IP各层(P9) 1.网络接口层,对应OSI的物理层和数据链路层,TCP/IP 没有定义。 2.网络层, TCP/IP的IP层,负责IP数据包的传输、路由选择、流量控制、拥塞控制。IP协议是网络层的核心协议,也是TCP/IP协议簇的核心协议。包括ARP、RARP、ICMP、IGMP。 3.传输层,为两台主机之间提供端到端的通信,包含传输控制协议TCP和用户数据报协议UDP。TCP提供可靠的面向连接的传输,UDP提供简单高效的无连接传输。 4.应用层,对应OSI的会话层、表示层、应用层,常用的协议有FTP、SMTP、HTTP。
TCP/IP层次结构(P10)
1.3.3 TCP/IP封装与分用(P10) 与OSI参考模型的逐层传递、对等通信机制一样,TCP/IP网络节点之间的通信也要经过层层转换。 目标主机接收入站数据后,逐层解封(拆除封装信息),又称分用,交付给上一层。 源主机的数据链路层把数据包封装成帧后发送到物理层,在传输介质上以bit流的形式发出,到达目的主机后经过对帧首和帧尾的识别,区分出每一帧。
TCP/IP封装与分用 TCP/IP封装过程(P11) 发送方(源主机)应用程序的数据被送入协议栈,逐层通过,最后在以太网的物理层成为一串bit流通过传输介质传递(网络电缆)。 每一层从上层收到数据都要附加首部,在以太网还要附加尾部,对数据进行封装。被封装的数据又称为有效载荷(Payload)。 TCP层在生成段首部时加入端口号,标识不同的应用程序。 IP层在生成包首部时加入协议号,区分上层协议。 以太层在生成帧首部时加入类型号,区分上层协议。
TCP/IP封装与分用 TCP/IP封装过程(P11)
TCP/IP分用过程(P12) 接收方(目的主机)收到以太网数据帧,数据从协议栈由底层向顶层逐层上传,每上传一层都要去掉首部,以太网的帧还要去掉尾部。 每层协议都要检查首部中的协议标识,以确定接收数据的上层协议。如以太帧中的TYPE字段,用于区分IP层用的协议;IP包中的Protocol字段,用于区分TCP层用的协议。 目的主机的解封是源主机封装的逆过程。
TCP/IP分用过程(P12)
1.3.4 TCP/IP协议重要概念(P12) 1. 面向连接的协议与无连接的协议 TCP是面向连接协议,IP和UDP是无连接协议。 2. 可靠的协议与不可靠的协议 TCP是可靠协议,UDP是不可靠协议。 3. 字节流协议与数据报协议 TCP是字节流协议,UDP是数据报协议。 4. IP地址 5. TCP/IP协议号、端口号及插座 TCP协议号6,UDP协议号17 将1个IP地址与1个端口号结合就是1个套接字(Socket),也称插座。
所谓TCP/IP的应用程序要用的3种地址(P13) 端口地址:出现在传输层,位于TCP或UDP首部中,用于识别特定的应用程序或进程。 IP地址:出现在网络层,位于IP首部中,用来识别网络和主机。 物理地址:出现在数据链路层,位于帧首部中,用来识别网络接口。
分层分析和排查网络故障(P13) 1. 分层排查方式的选择 从低层开始排查,适于新组建的网络。 从高层开始排查,适于运行成熟的网络。 直接从应用层着手,可以按照以下步骤来排查。 (1)检查Web浏览器是否正确配置,用浏览器去访问另一个Web网站。 (2)如果浏览器没问题,可测试Web服务器是否正常运行。 (3)如果Web服务器没有问题,再测试网络的连通性。 直接从位于中间的网络层开始排查,具体步骤如下。 (1)检查网络层,测试网络的连通性和路由配置等。 (2)如果网络层测试有问题,则检测网络的低层(物理层和链路层),测试网络的连通性和交换机的配置等。 (3)如果网络层的测试正常,则检测网络的高层(应用层和传输层),测试应用程序和网络传输故障。 (4)排查其他信息,如网络中的流量占用、传输的数据包等。
分层分析和排查网络故障 2. 分层排查方法(P14) 对于物理层,采用专用的线缆测试仪 对于数据链路层,可简单用arp命令检查MAC地址与IP地址之间的映射问题。 对于网络层,可用route命令测试路由路径。也可用ping命令测试连通性。 协议分析器具有很强的检测和排查能力,能够分析数据链路层、网络层的数据通信。 对于应用层,可用应用程序自身测试。
分层分析和排查网络故障 分层排查方法(P14)
分层分析和排查网络故障 3. 分层排查实例(P14) 分层排查实例 (1)ping远程计算机(目标)。 (2)ping同一子网(网段)的网关(例中为路由器1)来确认主机A是否能够连接到本地网关(路由器)。 (3)ping环回地址127.0.0.1。 从ping环回地址127.0.0.1开始逐步进行 ,只要成功地ping到远程主机,可以判断网络问题一般发生在更高的网络层次。
1.4 协议分析(P15) 协议分析(Protocol Analysis)又称网络分析(Network Analysis ),是接入网络通信系统捕获网络中传输的数据,收集网络统计信息,将数据包解码为可读数据的过程。 本质上,协议分析器是窃听网络通信的工具。 协议分析器能够揭示许多有潜在价值的信息,甚至破坏信息。
1.4.1 协议分析概述(P15) 协议分析实际上是一种包嗅探技术,可以查询网络中的每个数据包,能够确定某一应用程序或IP地址产生的流量,便于监测网络数据传输,从而排除网络故障。
1. 协议分析原理(P15) 以太网中同一个网段的所有网络接口都可以访问传输介质上传输的所有数据。每个以太网接口都有一个唯一的硬件地址(MAC地址)。 通常,一个以太网接口只能响应两种数据帧:与自己硬件地址相匹配的数据帧和发向所有节点的广播数据帧。 以太网络数据的收发由网卡完成,网卡有以下4种接收模式: 广播:能够接收发送给自己的数据帧和网络中的广播帧。 多播:只能够接收多播数据帧。 直接:只能够接收发送给自己的数据帧。 混杂(Promiscuous Mode):能够接收一切到达它的数据帧,而不管该数据是否是传给它的。
2. 协议分析应用场合(P16) 协议分析工具能够检查经过网卡的所有数据包,并进行解码和分析。主要应用场合如下: 诊断网络通信故障。在网络上配置分析工具并捕获存在问题的通信序列,通过读取和分析所传输的数据包,识别出通信过程存在的缺陷和错误。 测试网络。通过侦听网络中的数据包来对网络进行测试。 评估网络性能和分析流量趋势。 用于教学和实验。验证TCP/IP网络中各类数据包的结构。
1.4.2 协议分析工具的部署(P16) 协议分析工具只能检查实际流经监测计算机的网卡上的数据包。 在传统的使用集线器连接的网络中,可以直接获取网络中的所有数据包。 但在交换式网络中,只有广播数据包能够发送到每个计算机的网卡,通常不能直接看到网络中其它计算机的非广播数据包。需要使用支持端口镜像配置的交换机。 也可以采用串接网络分路器或集线器。实际应用中根据不同的网络环境和监测要求来选择部署。
传统共享式网络(P16) 使用集线器(HUB)作为网络中心点的交换设备的网络可将协议分析器安装在局域网中任意1台计算机上,可以获得整个网络上所有通信数据。
具备镜像功能的交换式网络(P16) 使用交换机的交换式网络将整个网络分成隔成很多小网络,可以在交换机上配置好端口镜像,将协议分析工具安装在连接镜像端口的主机上,可以捕获整个网络中所有的通信数据。
不具备镜像功能的交换式网络(P17) 普通交换机不具备镜像功能,可在交换机与路由之间串接一个分路器或集线器,可以捕获整个网络中所有的通信数据。
部署代理服务器的网络(P17) 对于通过代理服务器共享上网的情况,直接将包嗅探工具安装在代理服务器上即可,可以同时对代理服务器的内部网卡和外部网卡进行数据捕获。
监测某个特定网段(P17) 对于规模较大的网络,并不需要监测整个网络,只需要对某些可能出现异常的部位进行监测,可将网络分路器串接在要监测的网段,可实现特定网段的数据采集。