1、 网络工程实验系列之 网络协议教学实验教程 Teaching Experimental System for Network Protocol ( TCP/IP 协议 IPv4 网络协议篇) 吉林中软吉大信息技术有限公司目 第 1 部分 录 IPv4 网络协议 实验 1 IEEE802 标准和以太网 .1 实验 2 地址解析协议( ARP) . 18 实验 3 网际协议( IP) . 36 实验 4 Internet 组控报文协议( ICMP) .66 实验 5 Internet 组管理协议( IGMP) .76 实验 6 用户数据报协议( UDP) . 87 实验 7 传输控制协议( TCP
2、) . 111 实验 8 ICP 协议的高级特性 .122 实验 9 简单网络管理协议 (SNMP) . 135 实验 10 动态主机配置协议 (DHCP) . 153 实验 11 域名服务 (DNS) . 161 实验 12 网络地址转换 (NAT) . 176 实验 13 超文本传输协议 (HTTP) . 181 实验 14 远程登录与文件传送协议 (TELNET 与 FTP).188 实验 15 电子邮件协议 (SMTP、 POP3 和 IMAP).208 实验 16 NetBIOS 应用及 SMB/CIFS 协议 .221 实验 17 路由信息协议 (RIP) . 228 实验 18
3、开放式最短路径优先协议 (OSPF) . 241 实验 19 开放式最短路径优先协议 (OSPF) . 254 实验 20 代理 . 263 实验 21 IPv4 综合实验 .269 第 2 部分 网络攻防与故障 实验 22 实验 23 实验 24 ARP 地址欺骗 .271 ICMP 重定向 .277 TCP 与 UDP 端口扫描 .284 实验 25 路由欺骗 . 288 I目 录 实验 26 冲突与网络广播风暴 . 291 实验 27 路由环与网络回路 . 293 附 录 附录 A 网络结构 . 295 附录 B Outlook Express 的使用方法 .301 附录 C Windo
4、ws 2003 下 SNMP 服务的安装 .302 附录 D 协议编辑器使用说明 . 304 附录 E 协议分析器使用说明 . 313 附录 F 工具使用说明 . 317 附录 G 常见问题 . 322 II第 1 部分 IPv4 网络协议 【实验目的】 实验 1 IEEE802 标准和以太网 1. 2. 3. 4. 5. 6. 掌握以太网的报文格式 掌握 MAC 地址的作用 掌握 MAC 广播地址的作用 掌握 LLC 帧报文格式 掌握协议编辑器和协议分析器的使用方法 掌握协议栈发送和接收以太网数据帧的过程 【学时分配】 4 学时 【实验环境】 该实验采用网络结构一 【实验原理】 一 . OS
5、I 模型和 TCP/IP 协议族 1. OSI 简介 国际标准化组织( ISO)成立于 1947 年,它是个多国团体,专门就一些国际标准达成 世界范围的一致。网络方面的 ISO 标准就是 OSI(开放系统互连)模型。它是在 20 世纪 70 年代后期问世的。 在不需要改变底层硬件或软件逻辑的情况下, OSI 模型使两个不同的系统能够较容易 地通信。 OSI 模型并不是协议,它是个灵活的、稳健的和可互操作的模型,用来设计网络 体系结构,它使得所有类型的计算机系统可以通信。 OSI 模型包括 7 个层次,每一层都定 义了通过网络传送信息的一些过程,如下图所示。掌握了 OSI 模型的基本概念后,就有
6、了 学习数据通信较牢固的基础。 1第 1 部分 图 1-1 IPv4 网络协议 OSI 模型 2. OSI 模型中的层次 (1) 物理层 物理层协调在物理媒体中传送比特流所需的各种功能。物理层涉及到接口和传输媒体 的机械的和电气的规约。它还定义了这些物理设备和接口在传输过程中所必须完成的任务。 (2) 数据链路层 数据链路层把物理层(即原始的传输设施)转换为可靠的链路。 (3) 网络层 网络层负责把数据包从源点交付到终点,这可能要跨越多个网络。数据链路层是监督 在同一个链路上的两个相邻节点之间数据包的交付,而网络层则确保每一个数据包能够从 它的源点到达终点。 如果两个节点连接到同一条链路上,那
7、么通常就不需要网络层。但是,如果两个节点 连接在不同的网络上,而这些网络是由一些连接的设备连接起来的,那么通常是需要网络 层来完成从源点到终点的交付。 (4) 传输层 传输层负责把报文进行端到端的交付。网络层虽然负责单个数据包的端到端交付,但 它并不考虑这些数据包之间的关系。传输层要确保整个报文原封不动地按序到达,负责从 源点到终点这一级的差错控制和流量控制。 (5) 会话层 会话层是网络的对话控制器。它建立并维持通信系统之间的交换,并使这些通信系统 同步。会话层完成以下任务: 对话控制:会话层允许两个节点进行对话状态控制。它允许两个进程之间的通信 按半双工或全双工的方式进行。 同步:会话层允
8、许进程将若干个同步点插入到数据流中,以完成传输的同步。 (6) 表示层 表示层负责两个系统所交换的信息的语法和语义。表示层完成以下任务: 转换:在两个系统中的进程所交换的信息的形式通常都是字符串,数字等等。这 些信息在传输之前必须变为比特流。由于不同的计算机使用不同的编码系统,所以表示层 负责在这些不同的编码方法之间提供互操作性。 加密:为了携带敏感信息,一个系统必须确保能够进行保密。加密就是发送端把 原始信息转换为另一种形式,然后再把这种形式的报文发送出去。 2实验 1 IEEE802 标准和以太网 压缩:数据压缩减少了信息中所包含的比特数。在传输多媒体信息时,数据压缩 是特别重要的。 (7
9、) 应用层 应用层使用户(不管是人还是软件)接入网络,给用户提供了接口,也提供了对多种 服务的支持。 3. TCP/IP 协议族 TCP/IP 协议族是在 OSI 模型出现之前出现的。因此 TCP/IP 协议族的层次无法准确地 和 OSI 模型对应起来。 TCP/IP 协议族由 5 层组成:物理层、数据链路层、网络层、传输层 和应用层。前四层与 OSI 的前四层相对应,提供物理标准、网络接口、网际互连、以及传 输功能。然而 OSI 的高三层在 TCP/IP 中则叫做应用层。如下图所示: 图 1-2 TCP/IP 和 OSI 模型 TCP/IP 是由一些交互的模块组成的分层次的协议,每个模块提供
10、特定的功能。 TCP/IP 协议族中的各层包含了一些相对独立的协议,可以根据系统的需要把这些协议混合和配套 使用。 在传输层中, TCP/IP 定义了 3 个协议:传输控制协议( TCP)、用户数据报协议( UDP) 和流控制协议( SCTP)。在网络层中, TCP/IP 定义的主要协议是网际协议( IP)。 二 . IEEE802 参考模型 1980 年 2 月 IEEE(电气和电子工程师协会)成立了 802 局域网标准委员会,开始了 有关局域网标准化的工作。 IEEE 802 局域网参考模型中只定义了物理层和数据链路层,在 模型中较高层次, IEEE 802 参照 OSI 模型,尽可能与其
11、相符合。 IEEE 标准模型与 OSI 模 型的比较如下图所示: 图 1-3 IEEE 标准模型与 OSI 模型比较 3第 1 部分 IPv4 网络协议 在 OSI 模型中,物理层的任务是为上一层提供一个物理连接,以透明的方式传送比特 流。而在 IEEE802 局域网参考模型中,物理层被分为上下两个子层,分别为: 下面的子层是对电缆介质的说明; 上面的子层是介质访问单元( MAU)。 电缆可以是各种介质,如双绞线,同轴电缆等。 MAU 的主要作用是信息编码、信号发 送和介质处理等。 在 OSI 模型中,数据链路层的任务是把物理层转化成可靠的链路,使物理层对上层(网 络层)看起来好像是不产生差错
12、的。而 IEEE 802 标准的数据链路层被分为两个子层: 下面的子层是媒体访问控制子层( MAC); 上面的子层是逻辑链路控制子层( LLC)。 LLC 子层的功能是实现有效的数据传输,负责数据链路层的流量控制和差错控制。 MAC 子层的功能是保证物理功能和逻辑功能的连续性,还把从 LLC 子层收到的数据组装成帧, 并把帧交给物理层进行编码。 三 . 以太网简介 IEEE 802.3所支持的局域网标准最早是由 Xerox 开发的,后来通过 Digital 公司、 Intel 公司和 Xerox 公司联合扩展为以太网标准,符合以太网标准的局域网络称为以太网。 1. 以太网的分类 数据速率为 1
13、0Mbps 的以太网称为标准以太网,数据速率为 100Mbps 的以太网称为快 速以太网,数据速率为 1000Mbps 的以太网称为千兆以太网。目前 10G 以太网的标准也已 正式制定。 2. 以太网的物理地址 以太网上的每一个主机都有自己的网络接口卡( NIC )。网络接口卡通常安装在主机 内部,并为主机提供一个 6 字节的物理地址,如: 44-45-53-54-00-00。在遵循 IEEE802 标准的以太网络中,将这个物理地址称作“ MAC 地址”。 MAC 地址是惟一的,任意两个不 同的网络接口卡都具有不同的 MAC 地址。 MAC 地址中的某些位具有特殊的意义,如下图所 示: 图 1
14、-4 以太网的物理地址 I/G 比特位表示 Individual/Group,当 I/G 位为 0 时,地址字段表示单个站地址(单 播),为 1 时表示组地址,用来进行多播。 G/L 比特位表示 Global/Local,当 G/L 位为 1 时是全球管理,保证在全球没有相同的 地址,当为 0 时是本地管理,这时用户可任意分配网络上的地址。 以太网 MAC 地址可分为三类:单播地址、广播地址和多播地址。单播地址( unicast) 是一对一的,该地址是特定主机的 MAC 地址;广播地址( broadcast):广播地址是一对 4实验 1 IEEE802 标准和以太网 全体的,该地址为全 1,指
15、明数据帧是发送给所有主机的。多播地址( multicast):多播 地址是一对多的,指明数据帧是发送给一部分主机的。 四 . 以太网访问模式 当多个节点被连接到一条链路上时,叫做多点链路或广播链路。这时就需要一个协议 来协调链路的访问,使得同一时刻只有一个节点访问链路。如果发生同一时刻多个节点使 用链路的情况,则称为链路发生了冲突。带有冲突检测的载波侦听多路访问( CSMA/CD) 是这样一种方案。发送主机在传输过程中仍继续监听信道,以检测是否存在冲突。如果发 生冲突,信道上可以检测到超过发送主机本身发送的载波信号的幅度,由此判断出冲突的 存在。一旦检测到冲突,就立即停止发送,并向总线上发一串
16、阻塞信号,用以通知总线上 其它各有关主机。这样,通道容量就不致因白白传送已受损的帧而浪费,可以提高总线的 利用率。以太网使用 CSMA/CD 作为其访问模式。 五 . 以太网的帧格式 1. 以太网的 MAC 帧格式 以太网的 MAC 帧格式有两种标准,一种是 DIX Ethernet V2 标准,另一种是 IEEE 的 802.3 标准。但两种帧格式可以在同一以太网络共存。两种帧格式都具有 7 个域:前导码、 帧首定界符、目的 MAC 地址、源 MAC 地址、协议类型或数据长度、数据、帧校验序列。如 下图所示: 前导 码 ( 7 字 节) 帧首定界符 ( 1 字节) 目的 MAC 地址 ( 6
17、 字节) 源 MAC 地址 ( 6 字节) 协议类型或 数据长度 ( 2 字节) 数据 帧校验序列 ( 4 字节) 图 1-5 以太网的 MAC 帧格式 两种格式的帧可以依据协议类型或数据长度字段的值进行区分。如果此帧是 DIX Ethernet V2 标准格式帧,则协议类型或数据长度字段的值大于 1536;如果此帧是 IEEE 802.3 标准格式的帧,则协议类型或数据长度字段的值小于 1518。对 DIX Ethernet V2 帧 来说,此字段的值代表了高层协议的类型;对 IEEE 802.3 帧来说,它的高层协议一定是 LLC,此字段的值代表了数据的长度。 在以太网的 MAC 帧格式中
18、,各个字段的含义如下: 前导码:这是以太网 MAC 帧的第一个域,包含了 7 个字节的二进制“ 1”和“ 0” 间隔的代码,即“ 10101010 10”共 56 位,提示接收方一个数据帧即将到来,同时使 接收系统建立起同步时钟。 帧首定界符:帧首定界符标记了帧的开始。它是一个字节的“ 10101011”二进制 序列,帧首定界符通知接收方后面所有的内容都是数据,以便接收方对数据帧进行定位。 目的 MAC 地址:目的 MAC 地址为 6 个字节,标记了数据帧下一个主机的物理地址。 如 果数据包的目的地址必须从一个网络穿越到另一个网络,那么目的 MAC 地址所包含的是 连接当前网络和下一个网络的路
19、由器地址。当数据包到达目标网络后,目的 MAC 地址域换 成目的主机的地址。 源 MAC 地址:源 MAC 地址也是 6 个字节。它包含了最后一个转发此帧的设备的物 51 位 7 位 1 位 7 位 0 N(S) P/F N(R) I-帧的控制字段 1 位 1 位 2 位 4 位 1 位 7 位 1 0 SS X P/F N(R) S-帧的控制字段 1 1 M M P/F M M M U-帧的控制字段 第 1 部分 IPv4 网络协议 理地址。该设备可以是发送此数据帧的主机,也可以是最近接收和转发此数据帧的路由器。 协议类型或数据长度:如果该字段的值小于 1518,它用于定义后面数据字段的长
20、度;如果字段的值大于 1536,它定义一个封装在帧中的数据包的类型。 数据:它的长度范围是从 46 到 1500 字节之间。 46 是以太网 MAC 帧所封装的高层 协议数据的最小长度。如果高层协议的数据包小于 46 字节,则填充到 46 字节。 帧校验序列:最后一个域是帧校验序列,以太网采用 32 位冗余校验( CRC)。校 验范围是除了前导码、帧首定界符和帧校验序列外的所有内容。 2. LLC 帧格式 LLC 的帧格式如下图所示: DSAP SSAP 图 1-6 控制 LLC 帧格式 LLC 数据 其中, DSAP(目的服务访问点)和 SSAP(源服务访问点)是 LLC 所使用的地址,用来
21、 标识接收和发送数据的计算机上的用户实体。 DSAP 的第一个比特是用来指明帧是为单地址 还是组地址, 0 表示单地址, 1 表示组地址。 SSAP 的第一个比特用来指明帧是命令帧还是 响应帧。 0 表示命令帧, 1 表示响应帧。 LLC 定义了三种帧:信息帧( I-帧)、监控帧( S-帧)和无编号帧( U-帧)。帧的类 型可从控制字段识别。对于信息帧和监控帧,控制字段为 2 字节长,而对于无编号帧,控 制字段为 1 字节长。 下图表示了 LLC 三类帧的控制字段的比较。 图 1-7 LLC 三类帧的控制字段 N(S):发送序号。 N(R):接收序号。 SS:监控功能位, 00 表示准备接收(
22、 RR); 10 表示未准备接收( RNR); 01 表示 拒绝( REJ)。 M :修正功能位。 X:保留,设置为 0。 P/F: Poll/final 位。命令 LLC PDU 传输 /响应 LLC PDU 传输。 6 宏 值 描述 PAYLOAD_DATA “Hello, World!“ 定义以太网负载数据 PAYLOAD_LEN sizeof(PAYLOAD_DATA) 定义以太网负载数据长度 TYPE_LENGTH 5893 定义以太网帧中的“协议类型或数据长度” 字段的值 实验 1 IEEE802 标准和以太网 3. LLC-PDU 与相邻层的 PDU 之间的关系 IEEE 802
23、 标准为 LLC 和 MAC 子层的帧格式作了详细规定。下图描述了网络层 PDU、 LLC 子层 PDU 和 MAC 子层 PDU 的关系。 图 1-8 LLC-PDU 与相邻层的 PDU 之间的关系 LLC 帧(即 LLC-PDU)与媒体无关,而 MAC(即 MAC-PDU)则与局域网的媒体访问方式 有很大关系,不同的局域网有不同的 MAC 帧格式。 4. LLC 地址与 MAC 地址 在 MAC 帧的帧首中,有目的 MAC 地址和源 MAC 地址,它们都是 6 字节长。在 LLC 帧的 帧首中,则设有 DSAP 和 SSAP,该地址是逻辑地址,表示的是数据链路层的不同访问服务 点。 LLC
24、 地址与 MAC 地址是两个不同的概念,在局域网中,一个主机上的多个服务访问点 可以利用同一条数据链路。从这一点可以看出, LLC 子层带有 OSI 网络层的某些功能。 六 . 协议栈实现代码解析 本实验将通过对 netproto_eth_student.h 和 netproto_eth_student.c 两个文件进行 编码,完成协议栈中以太网数据帧接收和发送的实现。 netproto_eth_student.h 文件中定义了以太网数据帧中“协议类型与数据长度”字 段值以及以太网数据帧的负载内容、负载长度,关键代码如下所示: #define PAYLOAD_DATA “Hello, World!“ #define PAYLOAD_LEN sizeof(PAYLOAD_DATA) #define MAX_PAYLOAD_LEN 1024 #define TYPE_LENGTH 5893 这段代码定义了 3 个宏,他们代表的含义如下表所示: 表 1-1 netproto_eth_student.h 中定义的宏 在实验的编码过程中,应该使用这些宏对相应的变量进行赋值。学生也可以根据自己 的需求修改这些宏定义的值。 netproto_eth_student.c 文件是协议栈中以太网数据帧的实现部分,其中定义了 2 个 函数。下面分别介绍这些协议栈的实现部分。 7
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。