当前位置:文档之家› 网络数据帧的解析,封装和发送文档

网络数据帧的解析,封装和发送文档

网络数据帧的解析,封装和发送文档
网络数据帧的解析,封装和发送文档

帧的解析、封装与模拟发送

说明文档

姓名:李健

学号:2120100330

专业:计算机软件与理论

班级:2010级1班

1

一、背景知识

1.1 帧结构

帧是网络通信的基本传输单元,熟悉帧结构对于理解网络协议的概念、协议执行过程以及网络层次结构具有重要的意义。本次作业的目的是应用数据链路层与介质访问控制子层的知识,根据数据链路层的基本原理,通过封装和解析Ethernet 帧,了解Ethernet 帧结构中各个字段的含义,从而深入理解Internet 协议族中的最底层协议——数据链路层协议。

网络节点间发送数据都要将它放在帧的有效部分,分为一个或多个帧进行传送。节点之间可靠的帧传输不仅是通信的保障,而且还可以实现网络控制等各种功能。

1980年,Xerox、DEC与Intel等三家公司合作,第一次公布了Ethernet 的物理层、数据链路层规范;1981年Ethernet V2.0规范公布;IEEE 802.3 标准是在Ethernet V2.0规范的基础上制定的,IEEE 802.3针对整个CSMA/CD网络,它的制定推动了Ethernet技术的发展和广泛应用。Ethernet V2.0规范和IEEE802.3标准中的Ethernet帧结构有一些差别,这里我们按Ethernet V2.0的帧结构进行讨论。图 1给出了Ethernet帧结构图。

前导码帧前定界符目的地址源地址长度字段LLC数据帧校验字段FCS

(7B)(1B)(2/6B)(2/6B)(2B)(46~1500B)(4B)

图 1.1 IEEE802.3标准Ethernet帧结构

如图1.1所示,802.3标准中Ethernet帧结构由以下几个部分组成:(1)前导码和帧前定界符

前导码由56位(7Byte)的10101010…1010比特序列组成,帧前定界符由一个8位的字节组成,其比特序列位10101011。前导码用于使接收端同步,不计入帧头长度。帧前定界符也不计入帧头长度。

(2)目的地址和源地址

目的地址与源地址均分别表示帧的接收结点与发送结点的硬件地址。硬件地址一般称作MAC 地址或物理地址。在Ethernet 帧中,目的地址和源地址字段长度可以是2B 或6B。早期的Ethernet 曾经使用过2B 长度的地址,但是目前所

有的Ethernet 都使用6B (即48 位)长度的地址。为了方便起见,通常使用16 进制数书写(例如,00-13-d3-a2-42-a8)。为了保证MAC 地址的唯一性,世界上由一个专门的组织负责为网卡的生产厂家分配MAC 地址。

Ethernet 帧的目的地址可以分为以下3种。

● 单播地址(unicast address):目的地址的第一位为0表示单播地址。目的地址是单播地址,则表示该帧只被与目的地址相同的结点所接收。

● 多播地址(multicast address):目的地址的第一位为1表示多播地址。目的地址是多播地址,则表示该帧被一组结点所接接收。

● 广播地址(broadcast address):目的地址为全1则表示广播地址。目的地址是广播地址,则表示该帧被所有结点接收。 (3) 数据长度字段

802.3标准中的帧用2B 定义LLC 数据字段包含的字节数。描述了LLC 数据的实际长度。 (4) 数据字段

IEEE802.3 协议规定LLC 数据的长度在46B 与1500B 之间。如果数据的长度少于46B ,需要加填充字节,补充到46B 。填充字段是任意的,不计入长度字段值中。帧头部分长度为18B ,包括6B 的目的地址字段、6B 的源地址字段、2B 的长度字段、4B 的帧校验和字段,而前导码与帧前界定符不计入帧头长度中,那么,Ethernet 帧的最小长度为64B ,最大长度为1518B 。设置最小帧长度的一个目的是使每个接收结点能够有足够的时间检测到冲突。 (5) 帧校验字段

帧校验字段FCS 采用32位CRC 校验。校验的范围包括目的地址字段、源地址字段、长度字段、LLC 数据字段。在接收端进行校验,如果发现错误,帧将被丢弃。在本次作业中,为了简便起见,采用8位的CRC 校验。8位CRC 校验的生成多项式为:

1)(128+++=x x x x G

1.2 CRC 校验

通常的CRC 校验(循环冗余校验)都是32位的。在发送数据之前对需要校验的数据运行CRC 算法,得到一个32比特的CRC 校验值存放在帧尾部。接受方收到帧后也对同样的数据进行CRC 校验,如果所得到的结果和该帧携带的校验和相同则说明该帧是正确的,否则说明该帧为错误的,要丢弃该帧。

图1.2 :CRC-8的基本实现

CRC 校验的实现方法有很多,图1.2就是一个用来计算CRC ‐8(x 8 + x 2 + x 1 +1)的硬件电路实现方法,它由8个移位寄存器和3个加法器(异或单元)组成。计算过程如下:

1) 编码或解码前将所有寄存器清零;

2) 输入位作为最右边异或操作的输入之一,8个寄存器上的移位操作同时进行,均为左移一位;

3) 每次移位时,寄存器R7的输出作为所有3个异或操作的输入之一,寄存器R0的输出作为中间异或操作的输入之一,寄存器R1的输出作为最左边异或操作的输入之一;

4) 各个异或操作的结果作为它左边那个寄存器的输入位;

5) 重复步骤2到步骤6,每输入一位就做一次移位操作,直到输入了所有要计算的数据为止。这时,这个寄存器组中的数据就是CRC-8的结果。

二、开发环境

平台:Windows 编程环境:VC 6.0 语言:C++

三、程序说明

3.1 运行方式

xor

R2 R5 R3 R1 R0

R7 R6 R4 xor xor 输入

1.开始->运行->键入cmd->进入DOS界面;

2.改变当前目录到可执行程序所在文件夹;

3.用户输入命令,功能包括解析帧和封装并模拟发送帧

(1)帧解析命令格式

[可执行文件名] -u [数据帧文件名]

其中-u表示解析【不允许自行定义,只能用-u表示解析】

数据帧文件名可以自行定义;

(2)帧封装命令格式

[可执行文件名] -e [数据帧文件名]

其中-e表示封装【不允许自行定义,只能用-e表示解析】

数据帧文件名可以自行定义;

在谈冲数据帧时,源MAC地址统一设为00-16-76-B4-E4-77,目的MAC地址统一设为FF-FF-FF-FF-FF-FF-FF.

在进行帧的封装的时候需要注意,如果封装的数据帧的数据字段长度小于46B,要进行填充处理,将多个‘l'填入,使其长度等于46B;如果封装的数据帧的长度大于1500B,要对数据字段以1500B为单位进行分割,从而封装成多个数据帧,下面是这两种情况运行的部分截图。

(3)数据帧的模拟发送

因为为模拟发送,所以总线状态和冲突状态可以用随机数来代替(0代表总线空闲和不发生冲突,1代表总线忙和发生冲突)。在计算后退延迟时间时,程序采用截至二进制指数后退算法,该算法可以表示为t=2k*R*a(k=min(n,10),n为该帧以被发送的次数,a取值为0.005,R为在0~2k-1之间的随机数)。

3.2 程序流程图

输入不正确

-u -e Y Y

<46B >1500B =46B

循环

N+1次 Y

输入

安全检测 -u 还是-e 对数据帧进

行解析

计算校验位CRC

比较并且显示结果

数据长度 填充字符 封装数

据长度

计算CRC 并封装

计算倍数n ,如果n 不是整数,n=n+1

封装数据帧 发送帧

结束 寻找帧 寻找帧 建文件 封装源地址

和目的地址

封装

数据帧

封装数据帧

计算CRC 并封装 计算CRC 并封装

结束

3.3 代码中核心算法的设计

3.3.1 帧的封装

在封装过程中需要注意的是如果所封装的数据长度小于46B的时候,需要填充字符,使其整体长度等于46B,但是需要注意的是当对其进行校验和显示的时候并不需要填充的字符串,此时需要将其剔除。

if (data_length<46)

{

向其填充46-data_length个字符;

}

package(start,data_length,data,fp);封装

其中start为起始位置,data为数据存储的数组,fp为文件指针;

for(data中前data_length个数据)

crc=CRC(data[i],crc);

for中将填充字符剔除。

3.3.2 帧的解析

在解析中需要注意,当数据长度小于46B的时候,在读完数据之后,需要读取46-data_length个字符之后的字符作为校验码。

for(等待46-data_length个字符)

file.get();

crc=file.get();

3.3.3 CRC校验函数

在图1.2中,CRC-8 的计算过程是,当寄存器R7 的移出位为1 时,寄存器组才和00000111进行XOR运算;移出位为0 时,不做运算。每次寄存器中的数据左移后就需要从输入数据中读入一位新的数据,如果读入的新数据为1,则需要把寄存器R0 置为1,然后再判断寄存器组是否需要与00000111 进行XOR 操作。具体实现的伪代码如下:

//register_8是一个8位的寄存器

把register_8中的值置为0;

在原始数据input后添加8各0;

while(数据未处理完)

{

if(register_8首位是1)

{

register_8中的数据左移1位;

if(从input中读入的新的数据为1)

{

将register_8的最低位置1;

}

register_8 = register_8 XOR 00000111;

}

else

{

register_8中的数据左移1位;

if(从input中读入的新的数据为1)

{

将register_8的最低位置1;

}

}

}

在程序中我构造了一个函数

CRC(unsigned char a,unsigned char b);

其中a为所要计算校验码的字符,b为此时crc的值。变量b可以看成一个寄存器,它的值为初始寄存器的值;a为这个寄存器变换的输入。

3.4测试结果截图

3.4.1 解析input1和input2

解析input1的部分结果如图3.1所示

图3.1 解析input1中第一帧的结果

解析input2的结果如图3.2所示

图3.2 解析input2的结果

3.4.2 封装并发送

封装一个数据长度小于46B的文件并模拟发送和解析该数据帧,测试结果见图3.3

图3.3 封装并模拟发送以及解析数据长度小于46B的帧封装一个数据长度大于46B并且小于1500B的文件并模拟发送,测试结果见图

3.4

图3.4 封装并模拟发送数据长度大于46B并且小于1500B的帧封装一个数据长度大于1500B的文件并模拟发送,由于此实验如果添加截图所占面积比较大,所以还请自行运行程序查看结果。

四、参考资料

[1] 《计算机网络高级软件编程技术》,吴功宜董大凡王珺刘乾编著,清华大学出版社,第2 章Ethernet 帧结构解析程序

[2] 《计算机网络程序设计》,吴功宜胡晓英张仁王宁编著,机械工业出版社,第三章帧封装

计算机网络课程设计---基于Wireshark的网络数据包内容解析

基于Wireshark的网络数据包内容解析 摘要本课程设计是利用抓包软件Wireshark,对网络服务器与客户端进行网络数据收发过程中产生的包进行抓取,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的。设计过程中对各种包进行抓取分析,各种包之间比较,了解每种包的传输过程与结构,通过本次课程设计,能很好的运用Wireshark对数据包分析和Wireshark各种运用,达到课程设计的目的。 关键词IP协议;TCP协议;UDP协议;ARP协议;Wireshark;计算机网络; 1 引言 本课程设计主要是设计一个基于Wireshark的网络数据包内容解析,抓取数据包,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的 1.1 课程设计目的 Wireshark是一个网络封包分析软件。可以对网络中各种网络数据包进行抓取,并尽可能显示出最为详细的网络封包资料,计算机网络课程设计是在学习了计算机网络相关理论后,进行综合训练课程,其目的是: 1.了解并会初步使用Wireshark,能在所用电脑上进行抓包; 2.了解IP数据包格式,能应用该软件分析数据包格式。 1.2 课程设计要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。

(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。 1.3 课程设计背景 一、Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。 网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Wireshark的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Wireshark是目前全世界最广泛的网络封包分析软件之一。 二、网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。 网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。 网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监控系统的实现基础,首先就来详细地介绍一下网络嗅探技术,接下来就其在网络监控系统的运用进行阐述。 2 网络协议基础知识 2.1 IP协议 (1) IP协议介绍

常用的网络工具命令解析

如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。 例如,"sh int" 的意思是"show interface"。 现在Windows 2000 也有了类似界面的工具,叫做netsh。 我们在Windows 2000 的cmd shell 下,输入netsh 就出来:netsh> 提示符, 输入int ip 就显示: interface ip> 然后输入dump ,我们就可以看到当前系统的网络配置: # ---------------------------------- # Interface IP Configuration # ---------------------------------- pushd interface ip # Interface IP Configuration for "Local Area Connection" set address name = "Local Area Connection" source = static addr = 192.168.1.168 mask = 255.255.255.0 add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0 set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1 set dns name = "Local Area Connection" source = static addr = 202.96.209.5 set wins name = "Local Area Connection" source = static addr = none

封装及管脚定义(精)

管脚定义

1. LCM参数: 1.1 屏幕大小:240*RGB*302 dots,262144色(2的(R(6位数+G(6位数+B(6位数)次方) 1.2 控制器:HX8347-A 1.2.1最低供电电压:1.65V ,内置升压器, 1.2.2三种接口模式: ①命令参数接口模式 ②寄存器内容接口模式 ③RGB 接口模式 1.2.3工作温度:-40~85℃ 1.3显示:

1.3.1正常显示模式 ①命令参数接口模式:262144(R(6,G(6,B(6色 ②寄存器内容接口模式:a262144(R(6,G(6,B(6,b 65536(R(5,G(6,B(5色 1.3.2空闲显示模式①8(R(1,G(1,B(1色 1.4显示组件 1.4.1 VCOM 控制组件:-2V~5.5V 1.4.2 DC/DC转换 ①DDVDH :3.0V~6.0 ②VGH :+9.0V~16.5V ③VGL :-6.0V~-13.5V 1.4.3 帧存储区域240(水平)*320(垂直)*18bit 1.5显示/控制接口 1.5.1显示接口模式 ①命令参数接口模式 A .8/16bit并行总线接口 B .串行总线接口 C .16/18bit并行RGB 总线 ②寄存器内容接口模式 A .8/16/18bit并行接口 B .串行总线接口

C .16/18bit并行RGB 总线 1.5.2控制接口模式 IFSEL0=0:命令参数接口模式 IFSEL0=1:寄存器内容接口模式 1.5.3电压 ①逻辑电压(IOVCC ):1.65V~3.3V ②驱动电压(VCI ):2.3V~3.3V 1.5.4颜色模式 A .16Bit :R(5,G(6,B(5 A .18Bit :R(6,G(6,B(6 接口模式选择: 写寄存器:

数据的封装与解封装

数据的封装与解封装 封装:数据要通过网络进行传输,要从高层一层一层的向下传送,如果一个主机要传送数据到别的主机,先把数据装到一个特殊协议报头中,这个过程叫-封装。 封装分为:切片和加控制信息 解封装:上述的逆向过程 现在简单的说下封装 比如现在,我用QQ和Reborn 聊天,这个模型,首先我要在QQ上发了一条“hello,Reborn”这个在QQ的应用程序做的这个“hello,Reborn”的动作,就是在应用层上完成的,但是怎么才能把“hello,Reborn”这几个字发给在网络另一端的Reborn呢?假设QQ这个应用程序在传输层上是用的TCP做协议的,那么在传输层,就用TCP做报头,在“hello,Reborn”等高层数据的前面进行封装。并且这个时候进行数据的分段,和标记上顺序号,当然这些都是在TCP报头上完成的,到了传输层,目前的状况是TCP报头+hello,Reborn等高层数据,大家看到,TCP报头被加在了高层数据前面,这个就封装了一次,因为TCP被加在了前面。这个就是传输层的PDU(数据协议单元),这个传输层的PDU就叫做段(segment)。网络层,在网络层所有来自网络层的以上数据,也就是TCP+hello,Reborn等高层数据,再次被封装在其前面加上IP报头,IP用与寻址,这样才能找到Reborn那台PC的IP地址。到了网络层,现在数据变成了IP报头+TCP+hello,Reborn等高层数据,在网络层的PDU叫做数据包,packet,又会来到下面的一层,叫做数据链路层(data-link layer),现在的数据是这样的了以太帧+IP 报头+TCP报头+hello,Reborn等高层数据,这个时候的PDU叫做帧,以太帧+IP报头+TCP 报头+hello,Reborn等高层数据,这些在第2层的frame再次进入最低层,也就是物理层,进行信号等等的编码,以010*******这样的bits流进行在网络介质上传输给Reborn。 解封装 以太帧+IP报头+TCP报头+hello,Rebron等高层数据,这些数据在Rebron这边开始解封装这是个第2层的frame,首先在Rebron这边去掉以太帧IP报头+TCP报头+hello,Rebron等高层数据,到了网络层,然后再去掉IP报头,TCP报头+hello,Rebron等高层数据到了传输层,再去掉TCP报头,最后,在应用层的QQ程序里,Reborn终于收到了我发的“hello,Rebron”的消息。当然在业界都是用TCP/IP模型,没用OSI模型,但是封装解封装都是一个原理。大家都知道了封装与解封装,那么具体是怎么操作的呢?上层和下层是怎么配合工作的呢?我怎么知道封装给下一层的哪一个报头呢?hello,Rebron等高层数据,这高层的数据流在进入传输层时,假设QQ聊天是用的TCP ,那么QQ这个应用程序本身已经对下层,也就是传输层做了映射,或有一个字段指向了传输层,通知它,请把我的数据封装到你的TCP协议里,传输层这个时候,在TCP里也有一个目的端口号,指向QQ应用程序,QQ的端口好像是4000,这样,在接受方,也就是Rebron,解封装的时候,传输层才知道把封装了的数据交给上层的哪个程序 下面分析传输层的TCP报头,我讲几个TCP报头里主要的结果字段,TCP报头首先是源端口,目的端口,然后有序列,检验和,等等.当我们发消息或进行HTTP协议上网的时候,远端口是1024以上的一个随机端口,这样在传输层接封装的时候在传输层,才知道把我的数据交递给上层的http程序,通过什么知道的呢?正是通过这个在TCP报头里的目的端口号这样实现上下层配合工作。 下面讲述网络层,IP报头的封装 首先看看IP报头里有哪些字段,我只讲几个,如果讲完,时间不够,而且讲多了,有些人也茫然,IP报头里有源IP地址,目的IP地址,协议,等等等字段,首先源地址当然就是我这台的外网地址了,那么在网络层进行封装的时候,用高层已经知道了Reborn的IP地址,所以加上这个IP地址,TCP报头里的协议,这个东西重要,协议字段,这正是指向(映射)

网络数据包的捕获与分析毕业设计

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。 【关键词】Winpcap;数据包;捕获;分析

The Capture and Analysis of Network Data Packets Wang Hang (Grade 11,Class 1, Major Network Engineering, Scho ol of Mathematics and Computer Science Dept, Shaanxi University of Technology, Hanzhong 723003, Shaanxi) Tutor: Jia Wei Abstract: The capture of network data packets plays an important part in network security, which is helpful for our better analysis of network data flow.This paper is about a network monitoring tool based on Windows system, which emphasizes particularly on realizing the capture and analysis of network data packets and then displays them. Take analysis as an example, it will check the type of the IP protocol, the source address of IP, the destination address of IP and the port https://www.doczj.com/doc/469789708.html,e the Winpcap(Windows Packet Capture)to capture of data packets. In MFC programming of VC++6.0, the capture of network data packets can be realized via the invoking and control of the functions through a full control panel, and then the analysis of IP ,TCP,UDP and TCP/IP will be done before they are displayed. Certainly the information captured can be saved to the appointed destination in order to go through an advanced analysis. Key words:Winpcap;Data Packets;Capture;Analysis

实验报告2 常用网络命令的使用

计算机网络实验报告 班级信工(2)班日期 2016-5-12 学号 20130702047 姓名李格 实验名称常用网络命令的使用 一、实验目的 1. 掌握几种常用的网络命令,通过使用这些命令能检测常见网络故障。 2. 理解各命令的含义,并能解释其显示内容的意义。 二、实验步骤 (一)ping 命令的使用 1、单击开始按钮,输入cmd 并按回车键,进入windows DOS环境。 2、输入ping/? 回车,了解ping命令的基本用法。结果如下: 最常用的ping命令是在ping后面直接跟域名或IP地址。测试内网或外网的联通情况。 3、依次输入以下命令并查看分析结果。 (1)输入ping https://www.doczj.com/doc/469789708.html,并回车查看分析结果。 结果如下:

分析: (2)输入ping 218.197.176.10并回车查看分析结果。结果如下: 分析: (3)输入ping https://www.doczj.com/doc/469789708.html, 并回车查看分析结果。结果如下: 分析: (3)输入pi ng 121.14.1.189 并回车查看分析结果。

结果如下: 分析: 4、使用不同的参数测试ping命令。 结果如下: 分析: (二)ipconfig 命令的使用 1、单击开始按钮,输入cmd 并按回车键,进入windows DOS环境。 2、输入ipconfig/? 回车,了解ipconfig 命令的基本用法。结果如下:

3、依次输入以下命令并查看分析结果。 (1)输入ipconfig 并回车查看并分析结果。结果如下:

分析: (2)输入ipconfig/all 并回车查看分析结果。结果:

如何数据包装

如何包装你的实验结果 不少研究生们可能都有这样的体会:千辛万苦得来的实验结果,不知道该如何展现给别人?的确如此,有些研究工作做得非常出色,可能由于呈现方式的问题,不能发表高水平的文章(尤其是SCI文章)。 仔细分析C-N-S系列的大牛文章,不难发现,这些高水平论文的图表质量也高人一筹。因此,合理的“包装”自己的实验结果非常重要。 一、共聚焦图片 1. 拍照时要保留大中小三个倍数的图,且图片分辨率不能太低(我们用1024*1024),能大则大,我们是因为机器限制。用的时候要进行裁减,比如文章上放的是200倍和400倍的图,实际上200倍的图来自拍照时100倍的图,400倍的图来自拍照时200倍的图。这样有利于准确地形成系列图片。 2. 图片对比度、中间色之类可以(或者是必须)在保证趋势的基础上进行适当调整。 3. 荧光图片不提倡定量,定量要配合western。 4. 应该是tif格式。 5. 拍照时一般不要把对比度调节的太大,尽量保存细节。拍的太强了后期是不好调弱的,或者背底太暗了也会丢失细节的。这些后期都可以通过软件调节。 6. 低倍-高倍的顺序。反之会形成暗区,特别是在高倍加zoom放大层扫之后特别明显。这是教训,不能看见高倍下面比较好的结果,就欣喜若狂,先高倍后低倍。 7. 一定要保留你的oib格式,不能因为省空间,只存留tif格式。有些杂志会要求伪色,比如,红色的用粉色显示,要是有oib格式就很好调整,重新出图就是。没有oib,用tif也可以用其他软件转换,但总觉得最后的颜色不是很对,因为很难把握粉色的色值。 8. 层扫的图片叠加或出2D的tif图,建议不要用“输出所见”这个选项,这样出来的1024-1024的会变成512-512,这时候还是选择一般tif,1024-1024,后期再用其他软件合成会比较好。 9. 结果好,拍照好,才是最基本的,一定要杜绝对结果的修改。对于形态学的图片来说,用软件修改后的用一些二进制的软件打开后可以明显看出修改过程。这是同学告诉我的,自己没试过,因为没这样修过。 二、幻灯片 实验室就非常强调你的汇报能力。幻灯片至少是要无懈可击。可能你的工作很漂亮,但是你做了一个很粗糙的幻灯,而且讲的也很粗糙,这样,别人对你的评价就会打折扣。我一般喜欢用prism作图,非常漂亮,而从来不用excel 作图。而幻灯,思路要很明确,背景要介绍清楚。然后大家一定要控制时间,给你十五分钟,最好是留有10s的空余,但是一定不能多,也不能讲到十分钟就结束了。 三、图片 目前杂志投稿没有一个统一的标准比较麻烦,比如照片的DPI不同杂志要求就不一样,有的杂志甚至单独要求Merge 图片的DPI,还有的连统计图的线粗细磅数也要求不一样。这就造成一稿被拒,还要重新治理很多照片和统计图,非常麻烦。 1. 首先对文章中图片的逻辑关系要十分清楚,针对results部分排好序,而且开始的时候要多准备一点图片,挑出几张拍摄效果好的,在投稿的时候,除了你认为最好的那张图以外,还可以放几张备选图到附件中。 2. 图片的排列一定要有逻辑性,不管是从大体形态到分子机制,还是从分子机制再到形态学,不管按照什么方式叙述,都要按照一定的逻辑顺序。 3. 图片要尽量的精美,而且要每组图片要保留几个备用的图片,以免要求修改时,找不到合适的图片。 4. 要注重细节,放在PPT上排列时,要注意上下左右的图片尽量对齐,包括用来放在柱形图上的小星号,一定要对齐,放好。 5. 代表趋势变化的图,一定要能看出趋势。不明显的图就不要放在上面了。 6. 如果是大体照片,比如关节炎肿胀的照片,要放一个尺在背景中,这样即使照片焦距不一样,有了尺的刻度在照片里,就很能说明问题(尺的刻度随照片大小改变而改变)。 7. 在excell中作的柱状图或线图,我一般都是用字体14号,字形加粗,线条粗细在1.75到2.0。 8. 当然大家想要得到精美图片掌握photoshop等作图软件是少不掉。 9. 几幅图如何排版,最好看看级别高的杂志,他们是如何排版的。

网络数据包分析实验

实验一:网络数据包分析实验 班级:班学号:姓名:一、实验目的 通过对实际的网络数据包进行捕捉,分析数据包的结构,加深对网络协议分层概念的理解,并实际的了解数据链路层,网络层,传输层以及应用层的相关协议和服务。 、实验内容 1. IGMP包解析 1.1数据链路层 El代XEL洱丁;亡日:亡5 MB)」osr: IP- 4m 4 t-is :hi-At I _n * tP f Ld L^iJ 1 Sei 00:00:1^^ saur-ctt El1imro_&ai?SiU Type;IP CgMOsw) 源数据: 数据链路层头部:01 00 5e 00 00 16 00 21 97 0a e5 16 08 00 数据链路层尾部:00 00 00 00 00 00 分析如下:

数据头部的前6个字节是接收者的mac地址:01 00 5e 00 00 16 数据头部的中间6个字节是发送者的mac地址:00 21 97 0a e5 16 数据头部的最后2个字节代表网络协议,即:08 00协议类型。 1.2网络层 Header* 1 cngth: 24 byres n axed services "乜Id:0x00 (.DSCP 0X00: D&fau11: 0x003 Tqtil rength:斗D Tdsrrtificar I cn: QklclJ 也^7460) H Flmqs: Q>00 Fra^Tienr offset;:Q Time VQ live; 1 Fr DTCCDl : IGMP go?) ¥ HPAder fhecksijn:CxJ85c [correct] 5DU RUM;172,10.103.?0

计算机网络常用命令

网络常用命令 1.Ping 命令 Ping 是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP 参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP 配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP 的正确性。 简单的说,Ping 就是一个测试程序,如果Ping 运行正确,你大体上就可以排除网络访问层、网卡、MODEM 的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping 也被某些别有用心的人作为DDOS (拒绝服务攻击)的工具,前段时间Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping 数据报而瘫痪的。 按照缺省设置,Windows 上运行的Ping 命令发送 4 个ICMP (网间控制报文协议)回送请求,每个32 字节数据,如果一切正常,你应能得到 4 个回送应答。 Ping 能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping 还能显示TTL (Time To Live 存在时间)值,你可以通过TTL 值推算一下数据包已经通过了多少个路由器:源地点TTL 起始值(就是比返回TTL 略大的一个 2 的乘方数)-返回时TTL 值。例如,返回TTL 值为119,那么可以推算数据报离开源地址的TTL 起始值为128,而源地点到目标地点要通 过9 个路由器网段(128-119);如果返回TTL 值为246,TTL 起始值就是256,源地点到目标地点要通过9 个路由器网段。 通过Ping 检测网络故障的典型次序 正常情况下,当你使用Ping 命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping 命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping 命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:ping 127.0.0.1-- 这个Ping 命令被送到本地计算机的IP 软件,该命令永不退出该计算机。 如果没有做到这一点,就表示TCP/IP 的安装或运行存在某些最基本的问题。 ping 本机IP--这个命令被送到你计算机所配置的IP 地址,你的计算机始终都应该对该 Ping 命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP 地址。 ping 局域网内其他IP--这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机, 再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP 地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。 ping 网关IP--这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。 ping 远程IP--如果收到4 个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet (但不排除ISP 的DNS 会有问题)。 ping localhost--localhost 是个作系统的网络保留名,它是127.0.0.1 的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件 (/Windows/host )中存在问题。 ping https://www.doczj.com/doc/469789708.html,-- 对这个域名执行Pin ... 地址,通常是通过DNS 服务器如果这里出现故障,则表示DNS 服务器的IP 地址配置不正确或DNS 服务器有故障(对于拨号上网用户,某些ISP

Java中八种基本数据类型和八种封装数据类型

Java中八种基本数据类型和八种封装数据类型 初使值的求解过程及比较 作者:Zealjiang 1.八种基本数据类型 创建名为MemberTestBasic的java文件,其内容如下:public class MemberTestBasic { /** 八种基本类型 int, short, float ,double, long, boolean, byte, char */ int i; short s; float f; double d; long l; boolean bo; byte by; char c; public static void main(String[] args) { //创建对象m

MemberTestBasic m=new MemberTestBasic(); m.printMember(); } //为对象m创建一个printMember方法 public void printMember() { System.out.print("int->"+i+"\n"); System.out.print("short->"+s+"\n"); System.out.print("float->"+f+"\n"); System.out.print("double->"+d+"\n"); System.out.print("long->"+l+"\n"); System.out.print("boolean->"+bo+"\n"); System.out.print("byte->"+by+"\n"); System.out.print("char->"+c+"\n"); } } 运行结果如下:

网络数据包协议分析

网络数据包协议分析 一、实验目的 1.学习网络协议分析工具Ethereal的使用方法; 2.截获数据并对它们观察,分析其中2中协议(arp&tcp)数据包包头各数据位的含义, 了解协议的运行机制。 二、实验步骤 1.安装并打开Ethereal软件; 2.利用”运行cmd”打开命令提示符,输入“ping”确认网络连接是否完成; 3.点击capture->options选择网卡(默认有线); 4.点击capture开始抓包; 5.打开浏览器,访问一个网站,这样才可以抓到tcp的数据包; 6.点击stop停止抓包。 三、实验结果分析 1.Arp---address resolution protocol,地址解析协议的缩写,就是主机在发送帧前将目 标IP地址(32位)转换成目标MAC地址(48位)的过程。它属于链路层的协议。

ARP协议数据包包头数据位分析: 1.第一栏显示帧信息。 Frame 280 (60 bytes on wire,60 bytes capture)是指该数据包含有60个字节,ethereal软件截获了60个字节。点击打开,里面包括了到达时间、相对前一个包的时间延迟、传输时间、帧号280、包长度(60字节)和捕获到的长度(60字节)。 2.第二栏显示以太网信息。 源MAC地址是f4:6d:04:3a:62:33,目的MAC地址是ff:ff:ff:ff:ff:ff。 3.第三栏显示因特网协议信息。 它包括了硬件类型:以太网;协议类型是IP协议和发送方的IP地址与MAC地址,也包括了目的IP地址和MAC地址。 2.tcp—transition control protocol,传输控制协议的缩写。是一种面向连接(连接导向) 的、可靠的、基于字节流的传输层通信协议。

常用的网络测试命令

常用的网络测试命令 在进行各类网络实验和网络故障排除时,经常需要用到相应的测试工具。网络测试工具基本上分为两类:专用测试工具和系统集成的测试命令,其中,专用测试工具虽然功能强大, 但价格较为昂贵,主要用于对网络的专业测试。对于网络实验和平时的网络维护来说,通过熟练掌握由系统(操作系统和网络设备)集成的一些测试命令,就可以判断网络的工作状态和常见的网络故障。我们以 Windows XP 为例,介绍一些常见命令的使用方法。 1 Ping网络连通测试命令 1.1 Ping 命令的功能 Ping 是网络连通测试命令,是一种常见的网络工具。用这种工具可以测试端到端的连 通性,即检查源端到目的端网络是否通畅。该命令主要是用来检查路由是否能够到达,Ping 的原理很简单,就是通过向计算机发送Internet控制信息协议(ICMP )从源端向目的端发 出一定数量的网络包,然后从目的端返回这些包的响应,以校验与远程计算机或本地计算机 的连接情况。对于每个发送网络包,Ping 最多等待 1 秒并显示发送和接收网络包的数量, 比较每个接收网络包和发送网络包,以校验其有效性。默认情况下,发送四个回应网络包。 由于该命令的包长非常小,所以在网上传递的速度非常快,可以快速的检测要去的站点是否可达,如果在一定的时间内收到响应,则程序返回从包发出到收到的时间间隔,这样根据时间间隔就可以统计网络的延迟。如果网络包的响应在一定时间间隔内没有收到,则程序认为包丢失,返回请求超时的结果。这样如果让Ping 一次发一定数量的包,然后检查收到相应 的包的数量,则可统计出端到端网络的丢包率,而丢包率是检验网络质量的重要参数。 一般在去某一站点是可以先运行一下该命令看看该站点是否可达。如果执行Ping不成功,则可以预测故障出现在以下几个方面: 网线是否连通 网络适配器配置是否正确 IP 地址是否可用 如果执行Ping 成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,Ping 成功只能保证当前主机与目的主机间存在一条连通的物理路径。它的使用格式是在命 令提示符下键入: ping IP 地址或主机名,执行结果显示响应时间,重复执行这个命令,可以 发现 Ping 报告的响应时间是不同的。 如果网络管理员和用户的Ping 命令都失败了, Ping 命令显示的出错信息是很有帮助的, 可以指导进行下一步的测试计划。这时可注意 Ping 命令显示的出错信息,这种出错信息通常分 为三种情况: (1) unknown host(不知名主机),该远程主机的名字不能被DNS(域名服务器)转换成ip 地址。网络故障可能为 DNS 有故障,或者其名字不正确,或者网络管理员的系统与远程 主机之间的通信线路有故障。 (2)network unreachable (网络不能到达),这是本地系统没有到达远程系统的路由,可 用 netstat-rn 检查路由表来确定路由配置情况。

JSON的List数据封装解析方案

对象封装成为List和JSON解析成封装有对象的List 1、封装方法类(将JSONArray放入JSONObject中发给客户端) package com.mlp.tools; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import https://www.doczj.com/doc/469789708.html,ebean.Messages; import https://www.doczj.com/doc/469789708.html,ebean.Resources; import https://www.doczj.com/doc/469789708.html,ebean.Types; public class ListToJSONArray { public static JSONArray setListToJR(ArrayList list){ JSONObject json=null; JSONArray ja=new JSONArray(); for(int i=0;i list){ JSONObject json=null;

实验1:网络数据包的捕获与协议分析

实验报告 ( 2014 / 2015 学年第二学期) 题目:网络数据包的捕获与协议分析 专业 学生姓名 班级学号 指导教师胡素君 指导单位计算机系统与网络教学中心 日期2015.5.10

实验一:网络数据包的捕获与协议分析 一、实验目的 1、掌握网络协议分析工具Wireshark的使用方法,并用它来分析一些协议; 2、截获数据包并对它们观察和分析,了解协议的运行机制。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线、局域网 四、实验步骤 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)打开windows命令行,键入“ipconfig -all”命令获得本机的MAC地址和缺省路由器的IP地址;结果如下: (2)用“arp -d”命令清空本机的缓存;结果如下 (3)开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包。(4)执行命令:ping https://www.doczj.com/doc/469789708.html,,观察执行后的结果并记录。

此时,Wireshark所观察到的现象是:(截图表示) 2.设计一个用Wireshark捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。(截 图加分析) 3.设计一个用Wireshark捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计。要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析该ICMP 报文。(截图加分析) 4. 设计一个用Wireshark捕获IP数据包的过程,并对捕获的结果进行分析和统计(截图加分析) 要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址 五、实验总结

数据封装与传输分析

主机A与主机H进行通信经过三个步骤: 一、主机A进行数据封装; 二、数据在不同设备之间传输; 三、主机H对数据进行拆封。 详细说明: 一、数据封装 1.用户打开某个应用程序,该程序通过应用层到达表示层。 2.表示层把本机(应用程序)数据格式转换为标准格式。 3.会话层将不同应用程序的数据进行分离。 4.传输层(TCP)先创建一条虚电路,创建成功之后,对数据添加报头其中包括源端口、 目标端口、序列号(对数据段进行排序)等,形成数据段。 创建虚电路: (1)主机A向主机H发送一个SYN(同步)分组,经传输层、网络层、数据链路层封装(同数据分组,只是在传输层数据段格式中的数据为空)。 (2)主机H收到SYN(同步)分组,向主机A发送ACK(确认)分组和另一个同步分组(请求同步接收方的排序)。 (3)主机A最后向主机H发送ACK(确认)分组,至此虚电路创建完成。 5.在网络层,数据段添加源IP地址、目标IP地址(上层提供,通常是DNS解析的)等报 头信息形成数据分组。 6.在数据链路层,继续对数据分组添加报头信息,包括目标MAC地址和源MAC地址,形 成数据帧。 获取目标MAC地址: (1)主机A发送ARP广播,请求路由器R1接口E0的MAC地址(主机知道自己网关也就是E0的IP地址); (2)R1收到广播之后,发送E0接口的MAC地址; (3)主机A获取到了目标MAC地址,进行第二层封装; 7.物理层,将数据帧转化成数字信号(比特),然后进行传输(同一网段当中通过MAC过 滤表寻找路径传输)。 二、主机A向主机H传输 1.信号传输到路由器R1的E0接口,R1对数据进行拆封,拆封到第三层时,把目标地址

网络数据包的协议分析程序的设计开发—毕业设计论文

毕业设计(论文)网络数据包的协议分析程序的设计开发 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期:

网络数据包的协议分析程序的设计开发 摘要 本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。 本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。 关键词:Libpcap;Linux;数据包捕获;应用层;协议识别

The Design and Development of Network Packet Protocol Analyzing Program Abstract The thesis is an attempt to introduce an implementation of network protocol analyzing program which is based on Libpcap, a famous network packet capture library on Linux. It has a rich feature set which includes capturing network packets and analyzing popular network protocols on Internet. The program is made up of an input/output module, a rules matching module, a packet capturing module and a protocol analyzing module. And the last two modules are key modules. The research work was described as followed. firstly, we introduce the background and concepts about network protocol analyzing programs; and we make an integrated design on the program, define functions of it, figure out its structure and hierarchical graphs, describe the workflow of it, and analyze the key techniques used in it; Secondly, after elaborating on the background of packet capture and the Libpcap library, we state a approach to implement a packet capture module with Libpcap; Thirdly, we explain the workflow about protocol analysis, and analyze common network protocols; Finally, we test our program to see whether it works as expected, fortunately, it does. Key words: Libpcap; Linux; Network packet capturing; Application layer; Protocol identification

相关主题
文本预览
相关文档 最新文档