实验7 Linux下以太帧的捕获与分析
实验七、Linux下以太帧的捕获与分析
实验目的及要求:掌握网络监听的实现技术,使得能够实时捕获所在以太网内正在传输的数据帧,并分析帧的结构。学会在Linux下
编写网络程序的基本方法;
实验步骤: 1. 阅读本实验后附录的背景材料,熟悉以太网数据帧的格式,以及获取以太帧的编程原理。了解Linux环境下编程的基本
方法:
2. 参考本报告中提供的部分实现代码改编为一程序以获取以太
帧,并对获得的以太帧加以分析;
实验内容:(1)写出程序的源代码如下,并对主要语句作注释:
(2)运行、测试该程序,记录测试结果,分析遇到的问题与解决的办法。
编程背景材料:
一、Linux下C语言编程环境介绍
1、使用gedit编辑器输入程序代码
Step1:单击“主菜单”(桌面左下方的图标)—>“附件”->“文本编辑器”,进入gedit编辑界面,输入程序。
Step2:保存文件的方法与Windows中类似,注意保存位置,建议将保存位置设为:/home,文件名为:file.c。
2、使用gcc编译器
在桌面上单击右键,选择“新建终端”,弹出一对话框,在命令提示符#后依次输入:
cd /home //进入程序所在目录
ls //显示该目录下的文件及文件夹(应能见file.c)
gcc –g –o file file.c (例如gcc –g –o example example.c) //编译程序
./file (例如./example) //执行程序
二、监听的实施
以太网上进行数据传输时,在同一网段上所接的所有网卡事实上都可以收到在共享的物理介质上传输的所有数据。但在系统正常工作时,某个主机的网络接口只响应两种数据帧:一是帧的目标MAC地址与本主机网卡地址相符;二是帧的目标地址是广播地址,除此之外的数据帧都将被丢弃不作处理。要监听流经网卡的不属于自己主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。
三、以太网数据帧、IP数据报、TCP首部格式
1、以太帧数据帧格式如下图所示:
帧头载荷帧尾
目的地址和源地址都是6字节的MAC地址(网卡地址),帧类型是帧中载荷的协议类型代码,其帧类型标识主要有:
0x0800: IP(网际协议);
0x0806: ARP(地址解析协议);
0x8035: RARP(反向地址解析协议);
IP、ARP或RARP协议数据单元的报头则位于帧载荷数据中。由于以太网最小帧长为64字节,最大帧长为1518字节,而帧头加幀尾共18字节,故帧中数据为46~1500字节。
2、IP数据报格式及首部中的各字段
3、T C P首部的数据格式
四、Linux编程要点
1、设置套接口以捕获链路帧。在Linux下编写网络监听程序,比较简单的方法是在超级用户模式下,利用类型为SOCK_PACKET的套接口(用socket函数创建)来捕获链路帧。程序中需引用如下头文件:#include
#include
#include
#include
#include
#include
#include
#include
socket函数的语法是:int socket(int domain, int type, int protocol); 其中domain参数表示所使用的协
议族,type参数表示套接口的类型,protocol参数表示所使用的协议族中某个特定的协议。如果函数调用成功,套接口的描述符(非负整数)就作为函数的返回值,若为-1,就表明有错误发生。
Linux C扩展了套接口函数,增加了SOCK_PACKET类型,使之可以用于监听链路层的数据帧,进而得以分析各层的协议数据单元。使用socket函数捕获链路层数据帧时,domain参数应指定为AF_INET 协议族,表示采用internet协议族;type参数指定为SOCK_PACKET,表示获取链路层数据,不作处理;protocol参数采用htons(0x0003),表示使用的特定协议是截取所有类型的数据帧。此处需用htons函数,用于短整数的字节顺序转换。监听捕获时,socket函数调用形式为:
int fd; //fd是套接口的描述符
fd = socket(AF_INET, SOCK_PACKET, htons(0x0003));
要使建立的套接口能够真正监听到同一网段其他站点的数据,还必须使用ioctl函数设置网卡工作于“混杂”模式,相应的Linux C程序段如下:
char *dev = “eth0”; //(char *)dev标识设备名,eth0表示系统中的第一块以太网卡
struct ifreq ifr;
strcpy(ifr.ifr_name, dev); //“eth0”写入ifr结构的一个字段中
i = ioctl (fd, SIOCGIFFLAGS, &ifr); // SIOCGIFFLAGS(0x8913)表示要求取出接口标志位
if (i<0)
{
close(fd);
perror(“can’t get flags \n”);
exit(0);
}
ifr.ifr_flags |= IFF_PROMISC; //在标志位中加入“混杂”方式
i = ioctl(fd, SIOCSIFFLAGS, &ifr); // SIOCSIFFLAGS(0x8914)表示要求保存接口标志位
if (i<0)
{
perror(“can’t set promiscuous \n”);
exit(0);
}
2、从套接口读取链路帧。套接口建立以后,就可以从中循环读取链路层以太帧。因此建立以太帧的缓冲区,并把帧头结构的指针指向这一缓冲区的首地址:
char ep[ETH_FRAME_LEN]; //以太帧缓冲区
struct ethhdr *eh;
int fl;
eh = (struct ethhdr *)ep; //eh指向帧头
fl = read(fd, (etherpacket *)ep, sizeof(ep)); //fl为返回的实际捕获的以太帧的帧长
这里幀头结构类型ethhdr在/usr/include/linux/if_ether.h中定义:
struct ethhdr
{
unsigned char h_dest[ETH_ALEN]; //目标MAC地址
unsigned char h_source[ETH_ALEN]; //源MAC地址
unsigned short h_proto; //帧中数据协议类型代码}
基于上述定义,一旦以太帧缓冲区ep中读入帧的各字节,随即可以通过eh->h_dest、eh->h_source、
eh->h_proto获取幀头信息。
//display destination MAC Adress
printf("dest MAC: ");
for(i=0; i<5; i++)
printf("%02x-", eh->h_dest[i]);
printf("%02x\n ", eh->h_dest[5]);
//display source MAC Adress
printf("src MAC: ");
for(i=0; i<5; i++)
printf("%02x-", eh->h_source[i]);
printf("%02x\n ", eh->h_source[5]);
//display protocol: 0x0800 IP, 0x0806 ARP, 0x8035 RARP
printf("protocol: 0x%04x", ntohs(eh->h_proto));
3、若捕获的以太帧中h_proto的取值为0x0800,将类型为iphdr的结构指针指向帧头后面负载数据的起始位置,则IP信包基本报头的数据结构将一览无余。以下程序段表明这一定位过程:if(ntohs(eh->h_proto)==0x0800) //0x0800 : IP Packet
{
struct iphdr *ip;
ip = (struct iphdr ) ((unsigned long)ep + ETH_HLEN);//ETH_HLEN为帧头长(14)
printf("src ip:%s\n", inet_ntoa(ip->saddr));
printf("dest ip:%s\n", inet_ntoa(ip->daddr)); //取出源和目标IP地址}
4、若IP报头的协议域取值为6,那么紧跟在IP报头之后的就是TCP报头。IP报头的长度可以通过ihl域取得。这样,假如接收缓冲区ep存放监听得到的以太帧,iph是指向其中IP基本报头结构的指针,而tcph是指向TCP报头结构的指针,那么,定位TCP报头的结构信息就尽在*tcph中。
if(ip->protocol==6)
{
struct tcphdr* tcph;
tcph =(struct tcphdr*)(ip+ip->ihl*4);
printf("src port:%d\n", ntohs(tcph->source));
printf("dest port:%d\n", ntohs(tcph->dest));
}
计算机网络课程设计-模拟以太网帧封装
计算机网络期中考试试题 —模拟虚拟机中局域网的传输过程,完成简单图形界面。 学生:韩成周 学号: 2014117138 完成时间:2016年12月
目录 1.设计任务和要求 ......................................... 1.1 课程设计任务 ...................................... 1.2课程设计要求 ...................................... 2.设计原理 ............................................... 2.1 802.3标准帧结构................................... 2.2CRC的基本实现..................................... 3.设计思路 ............................................... 4.程序源码 ............................................... 5.运行结果 ............................................... 1.设计任务和要求 1.1课程设计任务 虚拟局域网(VLAN),是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段从而实现虚拟工作组的新兴技术,在功能和操作上和传统的LAN 基本相同。虚拟局域网技术是目前网络界最热门的技术之一,也是交换网络中最重要的技术之一,它的出现是和局域网的交换技术的发展分不开的。而我们的任务就是模拟虚拟局域网中帧的传输过程。 1.2设计要求 1.初始化交换机的转发表; 2.模拟虚拟局域网同一个局域网或者不同局域网之间帧的传输过程 2.设计原理 2.1 802.3标准帧结构 虚拟局域网帧格式:
以太网帧的封装实验
实训报告以太网帧的封装实验 1.实训目的 1)观察以太网帧的封装格式 2)对比单播以太网帧和广播以太网帧的目标MAC地址 2.实训拓扑图 以太网帧实验拓扑 PC IP地址子网掩码 PC0 PC1 PC2 PC3 3.主要操作步骤及实训结果记录 (1)任务一:观察单播以太网帧的封装 步骤1:准备工作 打开对应文件,完成初始化,删除练习文件中预设场景 步骤2:捕获数据包 进入Simulation模式。添加数据包,单击auto capture/play捕获数据包,再次单击停止捕获 步骤3:观察以太网帧的封装格式 步骤4:观察该广播包的以太网封装
DEST MAC: MAC: 步骤4:观察交换机是否会修改以太网帧各字段取值 DEST MAC:MAC:
(2)任务二:观察广播以太网帧的封装 步骤1:捕获数据包 Pc0数据帧被交换机转发给pc1、pc2、pc3(所有节点),pc1、pc2、pc3(所有节点)接收该广播帧。 步骤2:观察该广播包的以太网封装 DEST MAC:字段的取值: MAC字段取值的含义:广播地址。
4.实训结果分析及心得体会 (1)任务一中,观察到以太网帧封装格式中前导字段的取值是什么阐述其在数据帧传输过程中的作用。 答:任务一中,前导码字段取值为···1010;以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,以太网帧中的前导码有何作用前导码是为了隔离每个以太网帧的,也是定位符。因为以太网是变长的,所以每个帧之间需要前导来区分。 (2)任务一中,Switch0转发数据帧时是否修改其源MAC地址和目标MAC地址 答:switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改。 (3)交换机接收数据帧后,依据什么判断该数据帧是单播还是广播或依据什么判断向哪个目标节点转发 答:交换机工作在数据链路层,依据数据帧中的目标MAC地址的取值判断数据帧是单播还是广播,依据目标MAC地址判断向哪个目标节点转发。
以太网帧格式
以太网帧格式 百科名片 现在的以太网帧格式 以太网帧格式,即在以太网帧头、帧尾中用于实现以太网功能的域。目录
编辑本段 编辑本段历史分类 1.Ethernet V1 这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准. 2.Ethernet V2(ARPA) 由DEC,Intel和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取
代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。 以太网帧格式 3.RAW 802.3 这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2 LLC(Logical Link Control)头,这使得Novell的RAW 802.3格式跟正式的IEEE 802.3标准互不兼容. 4.802.3/802.2 LLC 这是IEEE 正式的802.3标准,它由Ethernet V2发展而来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2 LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段. 5.802.3/802.2 SNAP 这是IEEE为保证在802.2 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2 SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2 SANP中的实现. 802.3以太网帧格式备注: 前导码(7字节)、帧起始定界符(1字节)、目的MAC地址(6字节)、源MAC地址(6字节)、类型/长度(2字节)、数据(46~1500字节)、帧校验序列(4字节)[MAC地址可以用2-6字节来表示,原则上是这样,实际都是6字节] 图2 IEEE802.3以太帧头
IEEE802标准和以太网 实验报告
实验报告 实验中心(室):计算机工程实验教学中心实验分室:计算机网络基础 实验课程:计算机网络与互联网实验项目名称:IEEE802标准和以太网专业:计算机科学与技术(网络工程)年级:2014级 姓名:刘成学号:20140657031105 日期:2016年11月3日 一.实验目的 1. 掌握以太网的报文格式 2. 掌握MAC 地址的作用 3. 掌握MAC 广播地址的作用 4. 掌握LLC 帧报文格式 5. 掌握协议编辑器和协议分析器的使用方法 6. 掌握协议栈发送和接收以太网数据帧的过程 二.实验环境 三.实验内容 练习 1 领略真实的MAC 帧 各主机打开工具区的“拓扑验证工具”,选择相应的网络结构,配置网卡后,进行拓扑验证,如果通过拓扑验证,关闭工具继续进行实验,如果没有通过,请检查网络连接。本练习将主机 A 和 B 作为一组,主机 C 和 D 作为一组,主机 E 和 F 作为一组。现仅以主机A、B 所在组为例,其它组的操作参考主机A、B 所在组的操作。 1. 主机B 启动协议分析器,新建捕获窗口进行数据捕获并设置过滤条件(提取ICMP 协议)。 2. 主机A ping 主机B,察看主机B 协议分析器捕获的数据包,分析MAC 帧格式。 3. 将主机B 的过滤器恢复为默认状态。练习 2 理解MAC 地址的作用 本练习将主机 A 和 B 作为一组,主机 C 和 D 作为一组,主机 E 和 F 作为一组。现仅以主机A、B 为例,其它组的操作参考主机A、B 的操作。 1. 主机B 启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC 地址为主机A 的MAC 地址)。 2.主机A ping 主机B。 3.主机B 停止捕获数据,在捕获的数据中查找主机A 所发送的ICMP 数据帧,并分析该帧内容 练习 3 编辑并发送MAC 广播帧 本练习将主机A、B、C、D、E、F 作为一组进行实验。1. 主机 E 启动协议编辑器。2. 主机 E 编辑一个MAC 帧:目的MAC 地址:FFFFFF-FFFFFF 源MAC 地址:主机 E 的MAC 地址协议类型或数据长度:大于0x0600 数据字段:编辑长度在46—1500 字节之间的数据 3. 主机A、B、C、D、F 启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC 地址为主机 E 的MAC 地址)。4. 主机E 发送已编辑好的数据帧。5. 主机A、B、C、D、F 停止捕获数据,察看捕获到的数据中是否含有主机E 所发送的数据帧。●结合练习三的实验结果,简述FFFFFF-FFFFFF 作为目的MAC 地址的作用。 四.实验结果及分析(还需回答思考问题) 本机IP :169.254.112.31 本机MAC :7427EA-F01A1B 目标IP:169.254.62.201 目标MAC:7427EA-F0FA9D 练习1.2结果截图
以太网帧格式 EthernetⅡ和ETHERNET 802.3 IEEE802.2.SAP和SNAP的区别
EthernetⅡ/ETHERNET 802.3 IEEE802.2.SAP/SNAP的区别 1.Ethernet V1:这是最原始的一种格式,是由Xerox PARC提出的3Mbps CSMA/CD 以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成Ethernet V1标准; 2.Ethernet V2(ARPA): 这是最常见的一种以太网帧格式,也是今天以太网的事实标准,由DEC,Intel 和Xerox在1982年公布其标准,主要更改了Ethernet V1的电气特性和物理接口,在帧格式上并无变化;Ethernet V2出现后迅速取代Ethernet V1成为以太网事实标准;Ethernet V2帧头结构为6bytes的源地址+6bytes的目标地址 +2Bytes的协议类型字段+数据。 常见协议类型如下: 0800 IP 0806 ARP 8137 Novell IPX 809b Apple Talk 如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了,而是下面讲到的三种802.3帧类型之一;Ethernet可以支持TCP/IP,Novell IPX/SPX,Apple Talk Phase I等协议;RFC 894定义了IP报文在Ethernet V2上的封装格式; Ethernet_II中所包含的字段:
在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。 ——PR:同步位,用于收发双方的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不一样,所以100M网卡可以兼容10M网卡),是56位的二进制数101010101010..... ——SD: 分隔位,表示下面跟着的是真正的数据,而不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11而不是10. ——DA:目的地址,以太网的地址为48位(6个字节)二进制地址,表明该帧传输给哪个网卡.如果为FFFFFFFFFFFF,则是广播地址,广播地址的数据可以被任何网 卡接收到. ——SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址, 同样是6个字节. ----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP 包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。) ----DATA:数据段,该段数据不能超过1500字节。因为以太网规定整个传输包的最大长度不能超过1514字节。(14字节为DA,SA,TYPE) ----PAD:填充位。由于以太网帧传输的数据包最小不能小于60字节, 除去(DA,SA,TYPE 14字节),还必须传输46字节的数据,当数据段的数据不足46字节时,后面补000000.....(当然也可以补其它值) ----FCS:32位数据校验位.为32位的CRC校验,该校验由网卡自动计算,自动生成,自动校验,自动在数据段后面填入.对于数据的校验算法,我们无需了解. ----事实上,PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.
计算机网络与通讯实验报告记录
计算机网络与通讯实验报告记录
————————————————————————————————作者:————————————————————————————————日期:
实验名称:RJ-45接口与网卡设置 一.题目 二.实验设备仪器(软件环境) ⒈RJ-45压线钳 ⒉双绞线剥线器 ⒊ RJ-45接头 ⒋双绞线 ⒌网线测试仪 ⒍网卡 三.试验目的 1.掌握使用双绞线作为传输介质的网络连接方法,学会制作RJ45接头。 2.学会测线器的使用方法。 3.学会网卡的安装与设置。 四.试验内容及步骤 1.网线制作 (1)按以下步骤制作网线(直通线): ●抽出一小段线,然后先把外皮剥除一段; ●将双绞线反向缠绕开; ●根据标准排线(注意这里非常重要); ●铰齐线头(注意线头长度); ●插入插头; ●用打线钳夹紧; ●用同样方法制作另一端。 (2)网线的检查、测试 可以使用网线测试仪或万用表测试网线连接逻辑是否正确。网线制作好后,将其两端分别插入网卡和交换机的插口内,开机后对应的指示灯应闪亮。 2.网卡的安装与设置 (1)安装网卡驱动程序 一.将网卡插入计算机主板的插槽内,启动计算机; 二.单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【添加硬件】 图标; 三.弹出【添加硬件向导】,在设备列表中选择所用的网卡设备,插入带有网卡驱动程序的 光盘(或磁盘),按向导提示逐步安装驱动程序; 四.若安装成功,向导会给出正确的提示。
(2)网络协议的添加(此步可略) 一般情况下,安装好网卡的驱动程序以后,最基本的TCP/IP网络协议会自动被添加到系统中。但在某些特殊情况下,需要我们手动添加/删除网络协议: ●单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【网 络连接】图标; ●打开【网络连接】窗口,选中【本地连接】图标,点击右键,在弹出菜单中选 【属性】; ●进入【属性】对话框,选【常规】项,单击【安装】按钮; ●弹出【选择网络组件类型】对话框,在【单击要安装的网络组件类型】列表中 选【协议】,单击【安装】; ●弹出【选择网络协议】对话框,在【网络协议】列表中选择所要的协议,单击 【确定】按钮。 (3)网卡的设置 网卡安装成功后,必须对其进行配置,配置前,必须到网络中心申请到合法的IP地址,并得到网络中心提供的域名及其IP地址、网关的IP地址。 (1)打开【网络连接】中“本地连接”的【属性】窗口; (2)选中【Internet协议(TCP/IP)】,单击【属性】按钮; (3)打开【Internet协议(TCP/IP)属性】窗口,分别设置“IP地址”、“子网掩码”、“默认 网关”、“DNS服务器”等项。 3.网络连通的测试 常用ping命令来测试网络连接,格式: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数含义 -t 校验与指定计算机的连接,直到用户中断。 -a 将地址解析为计算机名。 -n count 发送由count指定数量的ECHO 报文,默认值为 4。 -l length 发送包含由length 指定数据长度的ECHO报文。 默认值为64字节,最大值为8192 字节。 -f 在包中发送“不分段”标志,该包将不被路由上的 网关分段。 -I ttl 将“生存时间”字段设置为ttl指定的数值。 -v tos 将“服务类型”字段设置为tos指定的数值。 -r count 在“记录路由”字段中记录发出报文和返回报文的 路由。指定的Count值最小可以是1,最大可以是 9 。 -s count 指定由count指定的转发次数的时间邮票。 -j computer-list 经过由computer-list指定的计算机列表的路由报 文。中间网关可能分隔连续的计算机(松散的源路 由)。允许的最大IP地址数目是9。 -k computer-list 经过由computer-list指定的计算机列表的路由报
实验二使用Wireshark分析以太网帧与ARP协议
实验二使用Wireshark分析以太网帧与ARP协议 一、实验目的 分析以太网帧,MAC地址和ARP协议 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为windows;使用Wireshark、IE等软件。 三、实验步骤: IP地址用于标识因特网上每台主机,而端口号则用于区别在同一台主机上运行的不同网络应用程序。在链路层,有介质访问控制(Media Access Control,MAC)地址。在局域网中,每个网络设备必须有唯一的MAC地址。设备监听共享通信介质以获取目标MAC地址与自己相匹配的分组。 Wireshark 能把MAC地址的组织标识转化为代表生产商的字符串,例如,00:06:5b:e3:4d:1a也能以Dell:e3:4d:1a显示,因为组织唯一标识符00:06:5b属于Dell。地址ff:ff:ff:ff:ff:ff是一个特殊的MAC地址,意味着数据应该广播到局域网的所有设备。 在因特网上,IP地址用于主机间通信,无论它们是否属于同一局域网。同一局域网间主机间数据传输前,发送方首先要把目的IP地址转换成对应的MAC 地址。这通过地址解析协议ARP实现。每台主机以ARP高速缓存形式维护一张已知IP分组就放在链路层帧的数据部分,而帧的目的地址将被设置为ARP高速缓存中找到的MAC地址。如果没有发现IP地址的转换项,那么本机将广播一个报文,要求具有此IP地址的主机用它的MAC地址作出响应。具有该IP地址的主机直接应答请求方,并且把新的映射项填入ARP高速缓存。 发送分组到本地网外的主机,需要跨越一组独立的本地网,这些本地网通过称为网关或路由器的中间机器连接。网关有多个网络接口卡,用它们同时连接多个本地网。最初的发送者或源主机直接通过本地网发送数据到本地网关,网关转发数据报到其它网关,直到最后到达目的主机所在的本地网的网关。 1、俘获和分析以太网帧 (1)选择工具->Internet 选项->删除文件
以太网帧格式
以太网帧格式详解: Etherne II 报头8 目标地址6 源地址6 以太类型2 有效负载46-1500 帧检验序列4 报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。 目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。 源地址:6个字节。指出发送节点的单点广播地址。 以太网类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。 有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。 帧检验序列:4个字节。验证比特完整性。 IEEE 802.3 根据IEEE802.2 和802.3标准创建的,由一个IEEE802.3报头和报尾以及一个802.2LLC报头组成。 报头7 起始限定符1 目标地址6(2)源地址6(2)长度2 DSAP1 SSAP1 控件2 有效负载3 帧检验序列4 -----------802.3报头--------------§- --802.2报头----§ §-802.3报尾-§
IEEE802.3报头和报尾 报头:7个字节,同步接收站。位序列10101010 起始限定符:1个字节,帧开始位置的位序列10101011。 报头+起始限定符=Ethernet II的报头 目标地址:同Ethernet II。也可以为2个字节,很少用。 源地址:同Ethernet II。也可以为2个字节,很少用。 长度:2个字节。 帧检验序列:4个字节。 IEEE802.2 LLC报头 DSAP:1个字节,指出帧的目标节点的上层协议。Destination Service Access Point SSAP:1个字节,指出帧的源节点的上层协议。Source Service Access Point DSAP和SSAP相当于IEEE802.3帧格式的协议标识符。为IP定义的DSAP和SSAP 字段值是0x06。但一般使用SNAP报头。 控件:1-2个字节。取决于封装的是LLC数据报(Type1 LLC)还是LLC通话的一部分(Type2 LLC)。 Type1 LLC:1个字节的控件字段,是一种无连接,不可靠的LLC数据报。无编号信息,UI帧,0x03。 Type2 LLC:2个字节的控件字段,是一种面向连接,可靠的LLC对话。 对IP和ARP,从不使用可靠的LLC服务。所以,都只用Type1 LLC,控件字段设为0x03。 区分两种帧 根据源地址段后的前两个字节的类型不同。 如果值大于1500(0x05DC),说明是以太网类型字段,EthernetII帧格式。值小于等于1500,说明是长度字段,IEEE802.3帧格式。因为类型字段值最小的是0x0600。而长度最大为1500。 IEEE802.3 SNAP 虽然为IP定义的SAP是0x06,但业内并不使用该值。RFC1042规定在IEEE802.3, 802.4, 802.5网络上发送的IP数据报和ARP帧必须使用SNAP(Sub Network Access Prototol)封装格式。 报头7 起始限定符1 目标地址6 源地址6 长度2 DSAP1 SSAP1 控件1 组织代码3 以太类型2 IP数据报帧检验序列 ----IEEE802.3报头-----------§IEEE8023 LLC报头---§--SNAP报头----§ §802.3报尾§ 0x0A 0x0A 0x03 0x00-00-00 0x08-00 (38-1492字节) Ethernet地址 为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC 地址。 IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。
实验3分析mac帧格式
实验3 分析MAC帧格式 实验目的 1.了解MAC帧首部的格式; 2.理解MAC帧固定部分的各字段含义; 3.根据MAC帧的内容确定是单播,广播。 实验设备 Winpcap、Wireshark等软件工具 相关背景 1.据包捕获的原理:为了进行数据包,网卡必须被设置为混杂模式。在现实的网络环境中,存在着许多共享式的以太网络。这些以太网是通过Hub 连接起来的总线网络。在这种拓扑结构的网络中,任何两台计算机进行通信的时候,它们之间交换的报文全部会通过Hub进行转发,而Hub以广播的方式进行转发,网络中所有的计算机都会收到这个报文,不过只有目的机器会进行后续处理,而其它机器简单的将报文丢弃。目的机器是指自身MAC 地址与消息中指定的目的MAC 地址相匹配的计算机。网络监听的主要原理就是利用这些原本要被丢弃的报文,对它们进行全面的分析,这样就可以得到整个网络中信息的现状。 2.Tcpdump的简单介绍:Tcpdump是Unix平台下的捕获数据包的一个架构。Tcpdump最初有美国加利福尼亚大学的伯克利分校洛仑兹实验室的Van Jcaobson、Craig Leres和 Steve McCanne共同开发完成,它可以收集网上的IP数据包文,并用来分析网络可能存在的问题。现在,Tcpdump已被移植到几乎所有的UNIX系统上,如:HP-UX、SCO UNIX、SGI Irix、SunOS、Mach、Linux 和FreeBSD等等。更为重要的是Tcpdump是一个公开源代码和输出文件格式的软件,我们可以在Tcpdunp的基础上进行改进,加入辅助分析的功能,增强其网络分析能力。(详细信息可以参看相关的资料)。 3.Winpcap的简单介绍:WinPcap是由意大利Fulvio Risso和Loris Degioanni等人提出并实现的应用于Win32 平台的数据包捕获与分析的一种软件包,包括内核级的数据包监听设备驱动程序、低级动态链接库和高级系统无关库,其基本结构如图3-1所示:
以太网帧的封装与成帧设计
******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2015年秋季学期 计算机通信课程设计 题目:以太网帧的封装与成帧设计 专业班级: 姓名: 学号: 指导教师:王慧琴 成绩:
摘要 从二十世纪八十年代开始,以太网就成为最普遍采用的网络技术,它统治着世界各地的局域网和企业骨干网,并且正在向局域网发起攻击。随着万兆以太网标准的提出,以太网为征服广域网、存储和宽带领域中的新领地做好了准备。以太网帧的封装和成帧是以太网快速迅猛发展的基础。本课题根据帧的具体结构,将帧结构中目的地址源地址等与数据一起进行封装并解析,构造一个具体的Ethernet帧,通过实现帧的封装和成帧,来了解网络通信协议的基本工作原理,掌握基本思路和方法。 关键词:以太网帧;封装;成帧;库函数
目录 前言 (1) 一、基本原理 (2) 1、以太网的工作原理 (2) 2、以太网帧格式的发展 (3) 3、 IEEE802.3帧结构 (4) 4、错检测 (5) 二、需求分析 (7) 三、系统设计与分析 (8) 1、系统分析 (8) 2、系统设计 (11) 以太网帧的封装 (12) 以太网帧的解析 (13) 四、系统结果 (15) 五、心得体会 (16) 六、参考文献 (17) 七、附录 (18)
前言 以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD 的媒体接入方法。在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义。 1976年,梅特卡夫和他的助手David Boggs发表了一篇名为《以太网:局域计算机网络的分布式包交换技术》的文章。1977年底,梅特卡夫和他的合作者获得了“具有冲突检测的多点数据通信系统”的专利。多点传输系统被称为CSMA/CD(带冲突检测的载波侦听多路访问),从此标志以太网的诞生。
各种不同以太网帧格式
各种不同以太网帧格式 利用抓包软件的来抓包的人,可能经常会被一些不同的Frame Header搞糊涂,为何用的Frame的Header是这样的,而另外的又不一样。这是因为在Ethernet中存在几种不同的帧格式,下面我就简单介绍一下几种不同的帧格式及他们的差异。 一、Ethernet帧格式的发展 1980 DEC,Intel,Xerox制订了Ethernet I的标准; 1982 DEC,Intel,Xerox又制订了Ehternet II的标准; 1982 IEEE开始研究Ethernet的国际标准802.3; 1983迫不及待的Novell基于IEEE的802.3的原始版开发了专用的Ethernet帧格式; 1985 IEEE推出IEEE 802.3规范; 后来为解决EthernetII与802.3帧格式的兼容问题推出折衷的Ethernet SNAP 格式。 (其中早期的Ethernet I已经完全被其他帧格式取代了所以现在Ethernet只能见到后面几种Ethernet的帧格式现在大部分的网络设备都支持这几种Ethernet 的帧格式如:cisco的路由器在设定Ethernet接口时可以指定不同的以太网的帧格式:arpa,sap,snap,novell-ether) 二、各种不同的帧格式 下面介绍一下各个帧格式 Ethernet II 是DIX以太网联盟推出的,它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于表示装在这个Frame、里面数据的类型),以上为Frame Header,接下来是46--1500 字节的数据,和4字节的帧校验) Novell Ethernet 它的帧头与Ethernet有所不同其中EthernetII帧头中的类型域变成了长度域,后面接着的两个字节为0xFFFF用于标示这个帧是Novell Ether类型的Frame,由于前面的0xFFFF站掉了两个字节所以数据域缩小为44-1498个字节,帧校验不变。
以太网交换配置实验报告
以太网交配置实验报告 郴州师范学校王资生 2012-11-14 任务要求: 1、掌握以太网交换原理; 2、掌握Vlan配置方法; 3、掌握三层交换原理; 4、掌握链路聚合的配置方法 实验一用trunck口实现Vlan跨交换机扩展要求:PC0、PC2属于vlan10,PC1、PC3属于vlan20,在SW0上进行正确的配置,要求实现PC0和PC1之间不能通信,PC2和PC3之间不能通信,PC0和PC2之间可以通信,PC1和PC3之间可以通信。 IP设置: 实验步骤: 一、建立好数据连接。如上图 二、设置好各IP,具体如下: PC0:192.168.1.1 255.255.255.0 PC1:192.168.1.2 255.255.255.0 PC3:192.168.1.3 255.255.255.0 PC4:192.168.1.4 255.255.255.0 三、配置交换s1
代码如下: 1、在交换机上创建两个vlan,分别是Vlan 10 和Vlan 20 Switch>en Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 2、指定两个端口fa0/1 和fa0/2 Switch(config)#interface fa0/1 Switch(config-if)#switch mode access Switch(config-if)#switch access vlan 10 Switch(config-if)#interface fa0/2 Switch(config-if)#switch mode access Switch(config-if)#switch access vlan 20 3、设置交换机S1与S2连接端口类型,端口fa0/3允许fa0/1和fa0/2通过Switch(config-if)#switch moder trunk Switch(config-if)#switch trunk all Switch(config-if)#switch trunk allowed vlan 10,20 5、查看配置情况,是否成功。 Switch#show run Building configuration... Current configuration : 1133 bytes ! version 12.1 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Switch ! ! spanning-tree mode pvst ! interface FastEthernet0/1 switchport access vlan 10 switchport mode access ! interface FastEthernet0/2 switchport access vlan 20 switchport mode access
以太网帧格式分析
的IP,而MAC地址是伪造的,则当A接收到伪造的ARP应答后,就会更新本地的ARP缓存,这样在A 看来B的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通B!这就是一个简单的ARP欺骗。 【实验体会】 这次实验最大的感触是体会到了网络通信过程的趣味性。在做ping同学IP的实验时,我发现抓到的包之间有紧密的联系,相互的应答过程很像实际生活中人们之间的对话。尤其是ARP帧,为了获得对方的MAC地址,乐此不疲地在网络中广播“谁有IP为XXX的主机?”,如果运气好,会收到网桥中某个路由器发来的回复“我知道,XXX的MAC地址是YYY!”。另外,通过ping同学主机的实验,以及对实验过程中问题的分析,使我对之前模糊不清的一些概念有了全面的认识,如交换机、路由器的区别与功能,局域网各层次的传输顺序与规则等。还有一点就是,Wireshark不是万能的,也会有错误、不全面的地方,这时更考验我们的理论分析与实践论证能力。 成绩优良中及格不及格 教师签名:日期: 【实验作业】 1 观察并分析通常的以太网帧 1.1 以太网帧格式 目前主要有两种格式的以太网帧:Ethernet II(DIX 2.0)和IEEE 802.3。我们接触过的IP、ARP、EAP和QICQ协议使用Ethernet II帧结构,而STP协议则使用IEEE 802.3帧结构。 Ethernet II是由Xerox与DEC、Intel(DIX)在1982年制定的以太网标准帧格式,后来被定义在RFC894中。IEEE 802.3是IEEE 802委员会在1985年公布的以太网标准封装结构(可以看出二者时间 相差不多,竞争激烈),RFC1042规定了该标准(但终究二者都写进了IAB管理的RFC文档中)。 下图分别给出了Ethernet II和IEEE 802.3的帧格式: ⑴前导码(Preamble):由0、1间隔代码组成,用来通知目标站作好接收准备。以太网帧则使用8个字节的0、1间隔代码作为起始符。IEEE 802.3帧的前导码占用前7个字节,第8个字节是两个连续的代码1,名称为帧首定界符(SOF),表示一帧实际开始。 ⑵目标地址和源地址(Destination Address & Source Address):表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。
计算机网络实验报告(以太网帧格式分析)
计算机网络实验报告 学院计算机与通信工程学院专业网络工程班级1401班 学号20姓名实验时间:2016.5.13 一、实验名称: FTP协议分析实验 二、实验目的: 分析FTP 报文格式和FTP 协议的工作过程,同时学习 Serv-U FTP Server服务软件的基本配置和FTP 客户端命令的使用。 三、实验环境: 实验室局域网中任意两台主机PC1,PC2。 四、实验步骤及结果: 步骤1:查看实验室PC1和PC2的IP地址,并记录,假设PC1的IP 地址为10.64.44.34,PC2的IP地址为10.64.44.35。 步骤2:在PC1上安装Serv-U FTP Server,启动后出现图1-20所示界面。 点击新建域,打开添加新建域向导,完成如下操作。 添加域名:https://www.360docs.net/doc/e415597259.html,;设置域端口号:21(默认);添加域IP地址:10.28.23.141;设置密码加密模式:无加密,完成后界面如图1-21所示。 完成上述操作后,还需要创建用于实验的用户帐号。点击图1.20中
浮动窗口中的“是”按钮,打开添加新建用户向导:添加用户名:test1;添加密码:123;设置用户根目录(登陆文件夹);设置是否将用户锁定于根目录:是(默认);访问权限:只读访问,完成后界面如图1-22所示。 新建的用户只有文件读取和目录列表权限,为完成实验内容,还需要为新建的用户设置目录访问权限,方法为点击导航——〉目录——〉目录访问界面,然后点击添加按钮, 按照图1-23所示进行配置。 步骤3:在PC1 和PC2 上运行Wireshark,开始捕获报文。 步骤4:在PC2 命令行窗口中登录FTP 服务器,根据步骤2中的配置信息输入用户名和口令,参考命令如下: C:\ >ftp ftp> open To 10.28.23.141 //登录ftp 服务器 Connected to 10.28.23.141 220 Serv-U FTP Server v6.2 for WinSock ready... User(none): test1 //输入用户名 331 User name okay, need password. Password:123 //输入用户密码 230 User logged in, proceed. //通过认证,登录成功
宽带通信网综合实验报告.doc
《宽带通信网综合实验报告》 组员:XX 组员:XX 学院:通信工程学院
FTTx实验 【实验步骤和结果】 1、根据图13所示,搭建系统,其中三台ONU接计算机终端,还有一台ONU 接IPTV机顶盒。用ping命令检查接入系统是否可以连通?如果不能连通,请分析原因。如果可以连通,使用tracert命令检查路由,并给出HTTx的路由信息。 图1(ping) 图2(tracert) 2、用ipconfig检查接入终端的IP地址和网关,记录下来,并与LAN接入的地 址相比较,它们有什么不同?原因是什么? 经比较发现,两个地址的网段不同。
图3为ipconfig命令 图4为LAN接入地址 3、用telnet远程登录R4101路由器,记录有关光接口的配置信息。 ESR实验 【实验步骤和结果】 1、搭建系统,将三台S2016交换机组成一个ESR环,确定主节点为S2016(1),从节点 为S2016(2)和S2016(3)。 S2016(1)系统地址S2016(2)系统地址S2016(3)系统地址 192.168.6.249 192.168.6.250 192.168.6.251
(1)先配置主交换机: (2)进入ESR配置模式,并将该交换机配置成主站: (3)置ESR环所用接口和VLAN,并使能该ESR: (4)配置从交换机: 先对S2016(2)进行配置:
步骤同上,对S2016(3)进行相同配置。 (5)使用ping 192.168.6.254命令查看网络,网络连通成功。 3、人为切断ESR环路,由于前面对主、从交换机的成功配置,使得ESR域的master node 控制其第二接口的阻塞实现了保护倒换功能。系统正常运行。 S2016(1) S2016(2) S2016(3) 端口连接和用途端口用途端口用途 16 连接S2016(1) 15 连接S2016(1) 15 与S2016(2)连接, 用作组建ESR环 15 连接S2016(3) 16 连接S2016(2) 16 与S2016(3)连接, 用作组建ESR环
实验一 以太网数据帧的构成
【实验一以太网数据帧的构成】 【实验目的】 1、掌握以太网帧的构成,了解各个字段的含义; 2、能够识别不同的MAC地址并理解MAC地址的作用; 3、掌握网络协议分析器的基本使用方法; 4、掌握协议仿真编辑器的基本使用方法; 【实验学时】 4学时; 【实验类型】 验证型; 【实验内容】 1、学习协议仿真编辑器的五个组成部分及其功能; 2、学习网络协议分析器的各组成部分及其功能; 3、学会使用协议仿真编辑器编辑以太网帧,包括单帧和多帧; 4、学会分析以太网帧的MAC首部; 5、理解MAC地址的作用; 6、理解MAC首部中的LLC-PDU长度/类型字段的功能; 7、学会观察并分析地址本中的MAC地址; 8、了解LLC-PDU的内容; 【实验原理】 局域网(LAN)是在一个小的范围内,将分散的独立计算机系统互联起来,实现资源的共享和数据通信。局域网的技术要素包括了体系结构和标准、传输媒体、拓扑结构、数据编码、媒体访问控制和逻辑链路控制等,其中主要的技术是传输媒体、拓扑结构和媒体访问控制方法。局域网的主要的特点是:地理分布范围小、数据传输速率高、误码率低和协议简单等。 1、三个主要技术 ⑴传输媒体:双绞线、同轴电缆、光缆、无线。 ⑵拓扑结构:总线型拓扑、星型拓扑和环型拓扑。 ⑶媒体访问控制方法:载波监听多路访问/冲突检测(CSMA/CD)技术。 2、IEEE 802标准的局域网参考模型 IEEE 802参考模型包括了OSI/RM最低两层(物理层和数据链路层)的功能。OSI/RM的数据链路层功能,在局域网参考模型中被分成媒体访问控制MAC(Medium Access Control)和逻辑链路控制LLC(Logical Link Control)两个子层。由于局域网采用的媒体有多种,对应的媒体访问控制方法也有多种,为了使数据帧的传送独立于所采用的物理媒体和媒体访问控制方法,IEEE 802 标准特意把LLC 独立出来形成单独子层,使LLC子层与媒体无关,仅让MAC子层依赖于物理媒体和媒
实验一 以太网链路层帧格式分析
实验一以太网链路层帧格式分析 实验目的 1、分析Ethernet V2 标准规定的MAC 层帧结构,了解IEEE802.3 标准规定的MAC 层帧结构和TCP/IP 的主要协议和协议的层次结构; 2、掌握网络协议分析软件的基本使用方法; 3、掌握网络协议编辑软件的基本使用方法。 实验学时 3学时 实验类型 验证型 实验内容 1、学习网络协议编辑软件的各组成部分及其功能; 2、学习网络协议分析软件的各组成部分及其功能; 3、学会使用网络协议编辑软件编辑以太网数据包; 4、理解MAC地址的作用; 5、理解MAC首部中的LLC—PDU 长度/类型字段的功能; 6、学会观察并分析地址本中的MAC地址。 实验流程
实验环境 局域网环境,1台PC机。 实验原理 详见《计算机网络》教材(P79和P92)或相关书籍,然后进行说明阐述 实验步骤 步骤1:运行ipconfig命令 1、在Windows的命令提示符界面中输入命令:ipconfig /all,会显示本机的网络信息: 2、观察运行结果,获得本机的以太网地址。
步骤2:编辑LLC信息帧并发送 1、在主机A,打开协议编辑软件,在工具栏选择“添加”,会弹出“协议模版”的对话框,如图所示,在“选择生成的网络包”下拉列表中选择“LLC协议模版”,建立一个LLC帧; 添加一个数据包 2、在“协议模版”对话框中点击“确定”按钮后,会出现新建立的数据帧,此时在协议编辑软件的各部分会显示出该帧的信息。如图所示:
新建的LLC帧 数据包列表区中显示:新帧的序号(为0)、概要信息; 协议树中显示以太网MAC层协议; 数据包编辑区中显示新帧各字段的默认值; 十六进制显示区中显示新帧对应的十六进制信息。 3、编辑LLC帧 在数据包编辑区中编辑该帧;具体步骤为: 编辑LLC帧 填写“目的物理地址”字段; 方法一:手工填写。 方法二:选择”地址本”中主机B的IP地址,确定后即可填入主机B的MAC地址;