计算机网络课程设计-帧封装
计算机网络课程设计之协议编程
�
CRC校验 帧封装的最后一步就是对数据进行校 验,并将校验结果记入帧校验字段.
实验二 解析IP数据包 解析IP数据包
实验目的
设计一个解析IP数据包的程序,并根据这个 程序,说明IP数据包的结构及IP协议的相关 问题,从而对IP层的工作原理有更好的理解 和认识.
实验要求
本实验的目标是捕获网络中的IP数据包, 解析数据包的内容,见个结果显示在标准输出 上,并同时写入日志文件. 程序的具体要求如下: 以命令行形式运行:ipparse logfile,其中 ipparse是程序名,而logfile则代表记录结果 的日志文件.
实验分析
填充帧头部字段 要完成一次帧封装的过程,首先要完成 的就是帧头部的装入ห้องสมุดไป่ตู้这一过程只要将签到 吗,定界符,目的地址,源地址,长度字段 的相应数值按顺序写入就可以了.其中,长 度字段的值即为要发送的数据的实际长度.
填充数据字段 在填充数据字段的过程中要注意的主 要问题是数据字段的长度.802.3标准中 规定了帧数据字段的最小长度为46B,最 大长度为1500B.如果数据不足46B,则 需要通过填充0来补足;若数据长度超过 1500B,则的大奖超过部分封装入下一个 帧进行发送.
在标准输出,和日志文件中写入捕获的IP包 的版本,头长度,服务类型,数据包总长度 ,数据包标识,分段标志,分段偏移值,生 存时间,上层协议类型,头校验和,源IP地 址和目的IP地址等内容. 当程序接收到键盘输入Ctrl+C时退出.
实验设计分析
为了获取网络中的IP数据包,必须对网卡进 行编程,我们使用套接字进行编程. 使用套接字 接收数据包 定义IP头部的数据结构 IP包的解析
实验三 发送TCP数据包 发送TCP数据包
计算机网络-帧封装C
/*将fileinput文件中的数据封装成帧,封装好的帧写入到文件中.如果数据长度小于46字节,则补全到46字节,如果数据长度大于1500,则封装成多个帧*/ #include <stdio.h>#include <stdlib.h>#define MAXSIZE 1500/*帧封装函数,完成把给定的文件封装成帧的功能*/int zhenfengzhuang(char *fileinput){int i,lastDataPacket,pyl; //记录最后一个帧,记录偏移量FILE *fileIn,*fileOut;long startjyw,endjwy; //开始检验位置,结束检验位置short dataNum; //记录校验字节个数if((fileIn = fopen(fileinput,"r+")) == NULL){printf("%s","打开文件失败");return 1;}if((fileOut = fopen("E:\\out.txt","w+")) == NULL){printf("%s","写入文件失败");return 1;}printf("\n封装后的文件保存地址:E:\\out.txt");/**先把fpIn指针退回到文件结尾处。
再得到文件位置指针当前位置相对于文件首的偏移字节数,即可得到内容的长度*/ fseek(fileIn,0,SEEK_END);pyl = ftell(fileIn);//计算整1500数据包个数int dataPacketNum = pyl/1500;//把文件指针重新回到文件开头。
rewind(fileIn);/*for循环处理大于1500B的情况,当大于1500时自动转换到下一个数据帧中*/for(int j = 0;j <= dataPacketNum; j++){char data[MAXSIZE]; //数据临时存储数组//写入帧前导码,十六进制0xaaprintf("\n帧的前导码:");for(i = 0;i < 7; i++){fputc(0xaa,fileOut);printf("%X ",0xaa);//写入帧定界符fputc(0xab,fileOut);printf("%X ",0xab);unsigned char mudiMac[6] = {0x4a,0x7b,0x3c,0x5d,0xe6,0x8f};//模拟目的MAC 地址unsigned char yuanMac[6] = {0x34,0xe6,0xf7,0xb4,0xa6,0x52};//模拟源MAC地址//记录开始进行校验的位置,因为校验是从前导码以后开始的startjyw = ftell(fileOut);printf("\n帧的目的MAC地址:");for(i = 0; i < 6; i++){fputc(mudiMac[i],fileOut);//写入目的MACprintf("%X ",mudiMac[i]);}printf("\n帧的源MAC地址:");for(i = 0; i < 6; i++){fputc(yuanMac[i],fileOut); //写入源MACprintf("%X ",yuanMac[i]);//不是最后一个数据,则前面的数据都应该是1500,所以按最大数据数算if(j != dataPacketNum){//添加长度字段fputc(char(1500/256),fileOut);fputc(char(1500%256),fileOut);fread(data,sizeof(char),1500,fileIn);fwrite(data,sizeof(char),1500,fileOut);//记录开插入校验码的位置endjwy = ftell(fileOut);fputc(0x00,fileOut); //添加辅助检验字段dataNum = short(ftell(fileOut)) - (short)startjyw; //计算检验的字段长度}else{//得到最后一个数据块的位置lastDataPacket = ftell(fileIn);//剩下有多少字节int hasLongs = pyl - dataPacketNum * 1500;//还有多少不够46Bint surplusLongs = 46 - hasLongs;//记录长度字段fputc(char(hasLongs/256),fileOut);fputc(char(hasLongs%256),fileOut);//先读取剩余的所有数据fread(data,sizeof(char),pyl - lastDataPacket,fileIn);//如果不足,则填充if(surplusLongs > 0){for(i = 0;i < surplusLongs; i++){//把不够的部分模拟补上data[hasLongs++] = 0x00;}fwrite(data,sizeof(char),46,fileOut); //写入数据endjwy = ftell(fileOut); //记录开插入校验码的位置//添加辅助检验字段fputc(0x00,fileOut);dataNum = short(ftell(fileOut)) - (short)startjyw; //计算检验的字段长度}else{//多于或者等于46B,则正常读取fwrite(data,sizeof(char),pyl - lastDataPacket,fileOut);//记录开插入校验码的位置endjwy = ftell(fileOut);fputc(0x00,fileOut);dataNum = short(ftell(fileOut)) - (short)startjyw;}}fseek(fileOut,(short)startjyw,SEEK_SET); //将读指针指向开始校验的位置unsigned char crc = 0;int statusNum = dataNum;while(statusNum--){char temp;//读1B的数据temp = fgetc(fileOut);//模拟数据除的二进制除法过程for(unsigned char i = (unsigned char)0x80; i > 0;i >>= 1){if(crc & 0x80){ //当前余数最高位为1,需要进行除法运算。
以太网帧的封装实验
计算机科学与技术学院计算机网络实验实验报告实验项目以太网帧的封装实验实验日期2016/4/15一实验目的1.1观察以太网帧的封装格式。
1.2对比单播以太网帧和广播以太网帧的目标MAC地址。
二实验原理2.1以太网帧的格式(Ethernet V2)2.2以太网中目标MAC地址的三种类型单播地址:拥有单播地址的数据帧发送给唯一一个站点,该站点的MAC地址与帧中的目标MAC地址相同。
拥有单播地址的数据帧称为单播帧。
多播地址:拥有多播地址的帧将发送给网络中由组播地址指定的组站点。
拥有多播地址的数据帧称为多播帧。
广播地址:拥有广播地址的帧将发送给网络中所有的站点。
拥有广播地址的数据帧称为广播帧。
三实验要求3.1拓扑图3.2IP地址配置3.3对比单播以太网帧和广播以太网帧的目标MAC地址四实验步骤、结果(程序+注释+截图)及分析4.1观察单播以太网帧的封装4.1.1步骤一:准备工作打开软件,添加设备进行连接,按照实验要求配置PC的IP地址。
若此时交换机端口指示灯呈橙色,则单击主窗口右下角Realtime(实时)Simulation(模拟)模式切换按钮数次,直至交换机指示灯呈绿色。
此步骤可加速完成交换机的初始化。
4.1.2步骤二:捕获数据包进入Simulation(模拟)模式。
设置Event List Filters(事件列表过滤器)只显示ICMP事件。
单击Add Simple PDU(添加简单PDU)按钮,在拓扑图中添加PC0向PC2发送的数据包。
单击Auto Capture/Play(自动捕获/执行)按钮,捕获数据包。
当PC2发送的响应包返回PC0后通信结束,再次单击Auto Capture/Play按钮,停止数据包的捕获。
4.1.3步骤3:观察以太网帧的封装格式选择事件列表中的第二个数据包(即PC0到Switch0的数据包),单击其右端Info项中的色块。
注意弹出窗口顶端的窗口顶端的窗口信息—PDU Information at Device:Switch0,即当前查看的是交换机Switch0上的PDU信息。
ETHERNET的帧封装课程设计
ETHERNET的帧封装课程设计一、课程目标知识目标:1. 理解ETHERNET帧封装的基本概念和原理;2. 掌握ETHERNET帧的结构,包括前导码、目的地址、源地址、类型/长度、数据和循环冗余校验(CRC);3. 了解不同类型以太网帧的封装过程及其差异。
技能目标:1. 能够独立完成ETHERNET帧的构建和解析;2. 学会使用相应工具或软件对ETHERNET帧进行抓包和分析;3. 培养学生对网络通信过程中帧封装的实际应用能力。
情感态度价值观目标:1. 培养学生对计算机网络知识的好奇心和探索精神;2. 增强学生合作学习、讨论交流的能力,提高团队意识;3. 通过学习计算机网络知识,让学生认识到科技发展对社会进步的重要性。
课程性质:本课程为计算机网络技术基础课程,以理论教学和实践操作相结合的方式进行。
学生特点:学生已具备一定的计算机网络基础知识,对ETHERNET有一定了解,但对帧封装的具体过程尚不熟悉。
教学要求:结合学生特点和课程性质,以实际操作为主,理论讲解为辅,注重培养学生的实践能力和团队协作能力。
通过本课程的学习,使学生能够掌握ETHERNET帧封装的相关知识,为后续计算机网络课程打下坚实基础。
二、教学内容1. 引言:回顾计算机网络基础知识,引导学生认识ETHERNET帧封装的重要性。
- 网络体系结构概述- 以太网发展简史- 帧封装的作用与意义2. ETHERNET帧结构解析:- 帧结构组成:前导码、目的地址、源地址、类型/长度、数据、CRC- 各字段作用及取值范围- 不同类型以太网帧结构对比3. 帧封装过程:- 数据链路层与物理层关系- 帧封装流程及关键技术- 帧封装错误处理机制4. 实践操作:- 使用Wireshark等抓包工具抓取和分析ETHERNET帧- 搭建实验环境,模拟帧封装过程- 分析实验结果,总结帧封装规律5. 教学案例分析:- 分析实际网络环境中的帧封装案例- 探讨案例中存在的问题及解决方案教学内容安排与进度:1. 引言与ETHERNET帧结构解析(1课时)2. 帧封装过程与实践操作(2课时)3. 教学案例分析(1课时)本教学内容以课本相应章节为基础,注重理论与实践相结合,旨在帮助学生系统地掌握ETHERNET帧封装的相关知识。
计算机网络帧的封装实验报告
一、实验目的1.了解协议分析器安装;2.了解协议分析器使用方法和基本特点;3.分析以太网层的数据帧格式(包括源地址、目的地址和上层协议)。
二、实验前的准备1.了解协议分析器的功能和工作原理;2.了解Ethereal分析器的使用方法;3.阅读实验的相关阅读文献。
三、实验内容1.Ethereal协议分析器并安装。
记录安装过程。
安装wireshark截图如下:2.分析以太网层的数据帧格式(包括源地址、目的地址和上层协议),下图是打开的已经捕获的文件界面,选中第4个组,再选中Ethernet 层即以太网层。
观察帧信息。
以太网层的数据帧格式:前导码:由7字节的前同步码和1字节的帧起始定界符构成起始定界符:这个字段用1字节(10101011)作为帧开始的信号,表示一帧的开始。
最后两位是11,表示下面的字段是目的地址。
目的地址(DA):共48位,表示帧准备发往目的站的地址,共6个字节,可以是单址(代表单个站)、多址(代表一组站)或全地址(代表局域网上的所有站)。
当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播”(Multicast)。
目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播”(Broadcast),通常以DA的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播。
源地址(SA):共48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址。
类型:该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。
例如:0X0800代表为IP,0X0806代表为ARP。
数据:数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。
数据字段的默认最大长度为1500字节。
帧检验序列(FCS):FCS是32位冗余检验码(CRC),检验除前导、SFD和FCS以外的内容。
计算机网络课程设计报告 帧封装
课程设计报告课程名称:计算机网络课程设计设计题目:帧封装姓名:专业:计算机科学与技术班级:计算机13-3班学号:计算机科学与技术学院2016年1 月1 日设计项目:帧封装一、选题背景以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。
在TCP/IP世界中,以太网IP数据报文的封装在RFC894中定义。
以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。
通过查看包含在帧中的目标地址,确定是否进行接收或放弃。
如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。
以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。
在以太网中,所有的节点共享传输介质。
如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。
帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
二.设计思路数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。
帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。
接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。
“帧”数据大致由两部分组成:帧头和帧数据。
帧头包括接收方主机物理地址的定位以及其它网络信息。
帧封装
目录一.设计目的和意义 (1)二.设计内容和要求 (1)三.课程设计的相关知识 (1)3.1 802.3标准的帧结构 (1)3.2 CRC的基本实现 (2)四.设计实现 (2)4.1设计思路 (2)4.2程序流程图 (4)4.3运行结果截图 (6)五.设计中遇到的问题及解决办法 (8)六.总结与体会 (9)七.参考资料 (9)附录源代码 (10)一.设计目的和意义帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet 帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
二.设计内容和要求编写程序,根据给出的原始数据,组装一个IEEE802.3格式的帧(题目默认的输入文件为二进制原始数据(文件名为input1和input2))。
1)要求程序为命令行程序。
比如,可执行文件名为framer.exe,则命令行形式如下:framer inputfile outputfile其中,inputfile为原始数据文件,outputfile为输出结果。
使用操作系统、语言、编程环境不限,但在报告中必须注明。
2)输出:对应input1和input2的结果分别为output1和output2。
三.课程设计的相关知识帧:来源于串行线路上的通信。
其中,发送者在发送数据的前后各添加特殊的字符,使它们成为一个帧。
Ethernet从某种程度上可以被看作是机器之间的数据链路层连接。
按802.3标准的帧结构如下表所示(802.3标准的Ethernet帧结构由7部分组成)3.1 802.3标准的帧结构充至46B。
填充字符是任意的,不计入长度字段值中。
在校验字段中,使用的是CRC校验。
校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。
计算机网络课设__封装Ethernet帧
成绩评定表课程设计任务书摘要本设计题目是封装Ethernet帧,要实现的功能是通过封装Ethernet 帧,了解Ethernet帧中各个字段的含义与用途。
首先介绍本题目的相关知识,有帧的结构及和CRC冗余校验算法。
其次是程序设计分析,主要包括填充帧头部字段、填充数据字段和CRC 校验,并根据算法给出了程序流程图。
最后,是程序运行结果及实现代码,运行结果符合设计要求。
本程序主要关键词有:帧,CRC冗余校验,封装,填充等。
目录1.课程设计目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 2.课程设计要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3.相关知识. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 4.课程设计分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 5.相关扩展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 6.程序代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 7.运行结果与分析. . . . . . . . . . . . . . . . . . . . . . . . . . . .16 8.参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171课程设计目的帧是在数据链路层中进行数据传输的基本单位。
帧封装
目录摘要 (2)关键字 (3)一、课程设计目的与意义 (4)二、课程设计要求 (4)三、帧结构分析 (4)3.1、比特型算法 (5)3.2、字节型算法 (5)四、帧封装的过程 (6)帧封装大致分为下面几个步骤 (6)4.1填充帧头部字段 (6)4.2、填充数据字段 (8)4.3、CRC校验 (9)五、帧封装流程图及代码 (11)六、运行结果及分析 (15)七、课程设计心得与体会 (17)参考文献 (18)帧封装摘要以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。
在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义。
以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。
通过查看包含在帧中的目标地址,确定是否进行接收或放弃。
如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。
以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。
在以太网中,所有的节点共享传输介质。
如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。
帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
关键字:以太网Ethernet帧CSMA/CD一、课程设计目的与意义帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
计算机网络实验1实验一: 以太网的封装实验
大学实验报告2019年4月8日课程名称:计算机网络实验名称:实验一: 以太网的封装实验班级及学号:姓名:同组人:签名:指导教师:指导教师评定:一、实验目的:1.观察以太网帧的封装格式。
2.对比单播以太网和广播以太网帧的目标MAC地址二、实验任务:1.任务一:观察单播以太网帧的封装;2.任务二:观察广播以太网帧的封装;3.实验完成,写出实验报告三、实验步骤:1. 任务一:(1)准备工作:打开对应练习文件“2-2以太网帧的封装实验.pka”。
(2)获取数据包:进入Simulation模式;再单击Add Simple PDU按钮,添加PC0向PC2发送数据包;最后单击Auto Capture/Play以获取数据包。
(3)观察以太网的封装格式:选择事件列表中PC0到Switch0的数据包,右击Info项中的色块,选择Inbound PDU Details选项卡,观察PREAMVBLE、DEST MAC和SRC MAC的取值并记入下来。
(4)观察交换机是否会修改以太网帧各字段取值:选择事件列表中Switch0到PC2的数据包,右击Info项中的色块,同步骤(3),观察哪些字段发生了变化。
2. 任务二:(1)捕获数据包:单击Delete,删除任务一的场景;单击Add ComplexPDU,单击PC0,弹出的对话框的参数设置如下图,再单击Auto Capture/Play,捕获数据包,最后观察节点的接收情况。
(2)观察该该广播包的以太网封装:选择事件列表中PC0到Switch0的数据包,右击Info项中的色块,观察其Ethernet的封装。
3. 实验截图效果:任务一最初拓扑图实验中拓补图任务二四、实验小结:本次实验为首次使用”Cisco Packet Tracer Student”这个软件,对一些新的界面各个功能的操作还非常陌生。
不过,幸运的是本次实验难度不是很大,所以顺利地完成了本次实验内容。
在以后的学习里,我会花上更多课下时间提前好好熟悉实验环境,熟悉实验内容,为正式做实验提供基础。
封装Ethernet帧课程设计CSDN
封装Ethernet帧课程设计CSDN一、课程目标知识目标:1. 学生理解以太网帧的结构和封装过程,掌握相关概念,如MAC地址、帧类型、校验等。
2. 学生能够描述不同类型的以太网帧,并了解其在计算机网络中的应用和作用。
3. 学生掌握以太网帧的传输过程,了解数据在局域网中的传输机制。
技能目标:1. 学生能够利用相关工具或软件手动封装以太网帧,实践帧的构造和解析过程。
2. 学生通过实际操作,学会使用网络抓包工具分析以太网帧,培养实际网络问题排查能力。
情感态度价值观目标:1. 学生培养对计算机网络知识的好奇心和探究精神,提高对网络技术学习的兴趣。
2. 学生通过学习,认识到网络技术在现代社会中的重要性,增强信息安全意识。
3. 学生在学习过程中,培养团队合作精神,提高沟通与协作能力。
课程性质分析:本课程为计算机网络基础知识课程,旨在帮助学生建立扎实的网络基础,为后续学习更高级的网络知识奠定基础。
学生特点分析:本课程针对的对象为高中信息技术课程的学生,他们对计算机和网络有一定的了解,但可能对具体的技术细节掌握不足。
教学要求:1. 理论与实践相结合,注重培养学生的实际操作能力。
2. 采用案例教学,使学生能够更好地理解以太网帧在实际应用中的作用。
3. 鼓励学生提问和分享,激发学生的学习兴趣和思考。
二、教学内容1. 以太网帧基本概念:介绍以太网帧的定义、结构和组成,包括MAC地址、帧类型、帧校验序列等。
- 教材章节:第二章第二节“以太网帧结构”2. 以太网帧类型:讲解不同类型的以太网帧,如IPv4帧、ARP帧、VLAN帧等。
- 教材章节:第二章第三节“以太网帧类型”3. 封装与解封过程:阐述以太网帧的封装过程,包括帧头、帧尾的添加,以及数据封装;解封过程则相反。
- 教材章节:第二章第四节“以太网帧的封装与解封”4. 数据传输机制:介绍以太网帧在局域网中的传输过程,如CSMA/CD协议、全双工和半双工模式等。
- 教材章节:第三章第一节“局域网技术基础”5. 实践操作:利用网络抓包工具(如Wireshark)进行以太网帧的抓取、分析和封装实践。
帧封装-计算机网络课程设计
课程设计说明书课程设计课题:封装Ethernet帧学院名称:信息工程学院1.设计目的通过这次课程设计提高学生的动手设计能力并让同学对帧有一个更深入的了解。
帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
2.设计任务内容编写程序,根据给出的原始数据,组装一个IEEE802.3格式的帧(题目默认的输入文件为二进制原始数据(文件名为1.txt)。
1)填充帧头部字段2) 填充数据字段3)计算CRC校验码并填充4)用其他算法实现CRC校验的相关扩展3.设计工具运行环境:Java语言Eclipse平台4.设计任务说明以及部分代码在这次课程设计中我的任务是实现CRC8、16、32、64共四种校验算法的实现。
经过查阅相关书籍和网上资料,代码见附录5.CRC运行结果如下图所示6.总结与体会这次计算机网络课程设计我负责的是CRC算法校验实现。
我们用的是Java语言,而我学的是网络安全方向没有学习Java语言,做课程设计的时候还是比较吃力的。
所以我查阅了一些相关资料和上网的资料,问了我们组长许飞很多问题。
在我们组长许飞的大力帮助之下终于实现了CRC算法校验的实现。
完成过程中出了很多错误也走了一些弯路,但是耐住性子我们组还是成功的把这个课程设计完成了。
这次课程设计对我们来说是一个很好的锻炼,无论是耐心还是学习方法,动手能力都有得到了很大的提高。
希望大三的我继续努力坚持下去,利用剩下的大学时间更多的完善自己,提高自己。
计算机网络课程设计报告--帧封装
计算机网络课程设计报告帧封装一、问题描述题目是帧封装,帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
将打einput文件中的数据封装成帧,封装好的帧写入到文件中。
如果数据长度小于46字节,则补全到46字节,如果数据长度大于1500,则封装成多个帧。
二、设计原理802.3标准帧结构以太网Ethernet帧格式:a.前序字段前序字段由7个字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步。
2.帧起始定界符字段它可以被看作前序字段的延续。
实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。
该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。
b.帧起始定界符字段它可以被看作前序字段的延续。
实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。
该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。
C.目的地址字段目的地址字段确定帧的接收者。
6个字节的源地址和目的地址字段是局域网中的所有工作站必须使用同样的地址结构。
目前,几乎所有的802.3网络使用6字节寻址.d.源地址字段源地址字段标识发送帧的工作站。
和目前地址字段类似,源地址字段的长度六个字节。
当使用六个字节的源地址字段时,前三个字节表示由IEEE分配给厂商的地址,将烧录在每一块网络接口卡的ROM中。
而制造商通常为其每一网络接口卡分配后节。
e.长度字段用于IEEE802.3的两字节长度字段定义了数据字段包含的字节数。
计算机网络课程设计--帧封装
计算机网络课程设计报告题目:帧封装一、问题描述(把你所选的题目及要求说一下)帧封装,通过输入目的地址、源地址和数据,根据数据链路层的基本原理,构造一个具体的IEEE802.3格式的帧。
软件环境:MicrosoftVisua1C++6.0二、概要设计(抽象数据类型定义)帧的组成比较简单,由6个字段组成。
如图所示前导码(8)目的地址(6)~源地址(6)长度(2)数据(46~1500)校验和(4)(1)前导符:由7字节的前同步码和1字节的帧起始定界符构成。
前同步码:这个字段有7个字节(56位)交替出现的1和0,它的作用就是提醒接收系统有帧的到来,以及使到来的帧与计时器进行同步。
前同步码其实是在物理层添加上去的,并不是(正式的)帧的一部分。
前同步码的目标允许物理层在接收到实际的帧起始符之前检测载波,并且与接收到的帧时序达到稳定同步。
帧起始定界符:这个字段用1字节(10101011)作为帧开始的信号,表示一帧的开始。
最后两位是11,表示下面的字段是目的地址。
(2)目的地址(DA)48位,表示帧准备发往目的站的地址,共6个字节,可以是单址(代表单个站)、多址(代表一组站)或全地址(代表局域网上的所有站)。
(3)源地址(SA)48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址。
(4)长度,表示帧的数据部分长度占两个字节。
(5)数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。
数据字段的默认最大长度为1500字节。
(6)帧检验序列(FCS)是32位冗余检验码(CRC),检验除前导、SFD和FCS以外的内容。
当发送站发出帧时,一边发送,一边逐位进行CRC检验。
最后形成一个32位CRC检验和填在帧尾FCS位置中一起在媒体上传输。
接收接收后,从DA开始同样边接收边逐位进行CRC检验。
最后接收站形成的检验和若与帧的检验和相同,则表示媒体上传输帧未被破坏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计】题目帧封装学院计算机科学与技术学院专业软件工程专业班级?软件0902班姓名指导教师[2012年6月20日'课程设计任务书学生姓名:专业班级:软件0902班指导教师:工作单位:计算机学院题目一: 帧封装初始条件:(1)学习相关知识"(2)C/C++/VC/VB/JAVA语言(3)PC机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)编写程序,根据给出的原始数据,组装一个格式的帧(题目默认的输入文件为二进制原始数据(文件名为input1和input2))。
1)要求程序为命令行程序。
比如,可执行文件名为,则命令行形式如下:framer inputfile outputfile其中,inputfile为原始数据文件,outputfile为输出结果。
使用操作系统、语言、编程环境不限,但在报告中必须注明。
-2)输出:对应input1和input2的结果分别为output1和output2。
时间安排:第一、二天:查阅资料,学习算法第三、四天:编程调试第五天:书写报告指导教师签名:年月日。
系主任(或责任教师)签名:年月日目录1.引言 (4)2.以太网帧格式的发展 (4)3.帧结构 (5)4.错检测 (6):5.实现步骤 (7)前导符 (7)目的地址及源地址 (7)长度及数据字段 (8)帧检验序列 (8)6.源代码 (10)7.运行结果示例 (17)8.心得体会 (18)~9.参考文献 (19)帧封装1.引言以太网这个术语通常是指由DEC、Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。
在TCP/IP世界中,以太网IP数据报文的封装在RFC 894中定义。
以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。
通过查看包含在帧中的目标地址,确定是否进行接收或放弃。
如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。
以太网采用CSMA/CD(Carrier Sense Multiple Access/Collision Detection)媒体访问机制,任何工作站都可以在任何时间访问网络。
在以太网中,所有的节点共享传输介质。
如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。
<帧是在数据链路层数据进行传输与交换的基本单位。
构造帧对于理解网络协议的概念、协议执行过程以及网络问题处理的一般方法具有重要的意义。
本次课程设计的目的是应用数据链路层与介质访问控制层的知识,根据数据链路层的基本原理,通过构造一个具体的Ethernet帧,从而深入理解网络协议的基本概念与网络问题处理的一般方法。
2.以太网帧格式的发展1980,DEC、Intel、Xerox制订了Ethernet I的标准;1982,DEC、Intel、Xerox又制订了Ehternet II的标准;1982,IEEE开始研究Ethernet的国际标准;1983,迫不及待的Novell基于IEEE的的原始版开发了专用的Ethernet帧格式;1985,IEEE推出IEEE 规范,后来为解决EthernetII与帧格式的兼容问题,推出折衷的Ethernet SNAP格式。
3.帧结构~数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。
帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。
接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。
“帧”数据大致由两部分组成:帧头和帧数据。
帧头包括接收方主机物理地址的定位以及其它网络信息。
帧数据区含有一个数据体。
为确保计算机能够解释数据帧中的数据,这两台计算机使用一种公用的通讯协议。
互联网使用的通讯协议简称IP,即互联网协议。
IP数据体由两部分组成:数据体头部和数据体的数据区。
数据体头部包括IP源地址和IP 目标地址,以及其它信息。
数据体的数据区包括用户数据协议(UDP),传输控制协议(TCP),还有数据包的其他信息。
这些数据包都含有附加的进程信息以及实际数据。
866246 – 15004图帧结构常用的以太网MAC帧格式用两种标准,一种是DIX Ethernet V2标准(即以太网V2标准),另一种是IEEE的标准。
这里只介绍符合标准的帧,其格式如图所示。
`它的组成比较简单,由6个字段组成。
接下来对这6个部分详细介绍一下。
(1)前导符:由7字节的前同步码和1字节的帧起始定界符构成。
前同步码:这个字段有7个字节(56位)交替出现的1和0,它的作用就是提醒接收系统有帧的到来,以及使到来的帧与计时器进行同步。
前同步码其实是在物理层添加上去的,并不是(正式的)帧的一部分。
前同步码的目标是允许物理层在接收到实际的帧起始符之前检测载波,并且与接收到的帧时序达到稳定同步。
帧起始定界符:这个字段用1字节()作为帧开始的信号,表示一帧的开始。
最后两位是11,表示下面的字段是目的地址。
(2)目的地址(DA) 48位,表示帧准备发往目的站的地址,共6个字节,可以是单址(代表单个站)、多址(代表一组站)或全地址(代表局域网上的所有站)。
当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播”(Multicast)。
目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播”(Broadcast),通常以DA的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播。
(3)源地址(SA)48位,表明该帧的数据是哪个网卡发的,即发送端的网卡地址。
(4)该字段是“长度/类型”。
当这个字段的值大于0X0600时(相当于十进制的1536),就表示“类型”。
这样的帧和以太网V2 MAC帧完全一样。
只有当这个字段的值小于0X0600时才表示“长度”,即MAC帧的数据部分长度。
!(5)数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。
数据字段的默认最大长度为1500字节。
(6)帧检验序列(FCS)是32位冗余检验码(CRC),检验除前导、SFD和FCS以外的内容。
当发送站发出帧时,一边发送,一边逐位进行CRC检验。
最后形成一个32位CRC 检验和填在帧尾FCS位置中一起在媒体上传输。
接收站接收后,从DA开始同样边接收边逐位进行CRC检验。
最后接收站形成的检验和若与帧的检验和相同,则表示媒体上传输帧未被破坏。
反之,接收站认为帧被破坏,则会通过一定的机制要求发送站重发该帧。
4.错检测在校验字段中,使用的是CRC校验。
校验的范围包括目的地址字段、源地址字段、长度字段、LLC数据字段。
循环冗余编码(CRC)是一种重要的线性分组码、编码和解码方法,具有简单、检错和纠错能力强等特点,在通信领域广泛地用于实现差错控制。
CRC校验码的检错能力很强,不仅能检查出离散错误,还能检查出突发错误。
利用CRC进行检错的过程可简单描述如下:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息的后边,构成一个新的二进制码序列(共k+r位),然后发送出去。
在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。
这个规则在差错控制理论中称为“生成多项式”。
循环冗余校验码的特点:(1)CRC校验码可检测出所有单个错误。
?(2)CRC校验码可检测出所有奇数位错误。
(3)CRC校验码可检测出所有双位的错误。
(4)CRC校验码可检测出所有小于、等于校验位长度的突发错误。
(5)CRC校验码可以的概率检测出长度为(K+1)位的突发错误。
5.实现步骤6.1前导符前导符包括7字节的前发送码和1字节的帧起始定界符。
由于这些都是固定写法,因此添加起来非常简单。
对应方法如下。
public static boolean appendPrefix() {接下来十行是源文件中的10个字节,为了避免输出过于冗余,所以只输出前10个字节,可以看到,每个字节均对应正确的字符,比如“1000011”表示字符“C”。
最后四行是4个字节的FCS。
以上输出中,有些字节不足8位,是因为均忽略了前导0。
6.—7.心得体会帧是数据链路层最重要的概念。
数据链路层属于计算机网络的低层。
我们知道,两个主机之间的数据传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间(主机和路由器或两个路由器之间)传送数据是直接传送的(点对点)。
这时就需要专门的链路层的协议。
在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上“透明”地传送帧(frame)中的数据。
每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。
典型的帧长是几百字节到一千多字节。
在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。
这样,数据链路层收到一个帧后,就可从中提取出数据部分,上交给网络层。
控制信息还使接收端能够检测到所收到的帧中有无差错。
如发现有差错,数据链路层就简单地丢弃这个出现差错的帧,以免继续传送下去白白浪费网络资源。
在此次的课程设计中,刚开始两天我先是收集资料,查阅了很多帧的封装的知识,对帧及其封装的方法有了一定程度的了解和掌握。
从最开始对帧的一个模糊的印象到对帧的结构的完全掌握,有了很大的收获,并且使帧的封装得以实现。
同时,在近一周的课程设计中,我的动手能力得到了很大的提高,而且将这学期所学的网络的知识和以前所学的编程的知识充分的联系起来,对这门课的认识又提高了一层。
除此之外,在做课程设计的时候也遇到了很多的问题,最后在同学的帮助下正确的解决了。
从最开始的遇到问题到最后的正确解决问题,我懂得了正确出来问题的方法,也知道了自己的不足之处。
此次的课程设计也是一个认识自我的好机会。
8.参考文献[1] 谢希仁. 计算机网络. 第5版. 北京. 电子工业出版社. 唐朔飞. 计算机组成原理. 第2版. 北京. 高等教育出版社. (美)特南鲍姆,(美)韦瑟罗尔著. 严伟,潘爱民译. 计算机网络. 第5版. 北京. 清华大学出版社. (美)埃克尔著. 陈昊鹏译. Java编程思想. 第4版. 北京. 机械工业出版社.、本科生课程设计成绩评定表班级:软件工程0902班姓名:学号:及格(60-69分)、60分以下为不及格指导教师签名:201 年月日。