俞健杰抓包实验
- 格式:doc
- 大小:2.99 MB
- 文档页数:11
实验目的通过使用网路岗抓包工具-iptool软件捕获网络流量,分析数据报结构,从而更加清楚地掌握网络分层的思想,从感性认识飞跃到理性认识。
再通过捕获各个具体协议的通信数据包,一步一步具体分析其实现步骤,更加具体地掌握协议的实现过程。
实验内容任意捕获一个数据包,分析其数据链路层格式、网络层格式和传输层格式,加深学生对计算机网络分层概念的理解。
实验主要仪器和材料一台联网计算机、网路岗抓包工具-iptool软件实验步骤1、打开“网路岗抓包工具-iptool软件”,点击“包过滤”按钮,设置协议过滤仅包含“TCP”,点击“确定”,点击“开始捕包”按钮。
2、开始捕包并获得数据,点击其中一个包,进行分析。
实验结果如下图所示其中序号4、6、7、8、10、11、12为一次会话序号4:SEQ:2374403959 ACK:0序号6:SEQ:1013787468 ACK:2374403960序号7:SEQ:2374403960 ACK:1013787469序号8:SEQ:2374403960 ACK:1013787469序号10:SEQ:1013787469 ACK:2374404845序号11:SEQ:1013787469 ACK:2374404845序号12:SEQ:2374404845 ACK:1013787469下图为原始二进制代码:以下为分析结果:其中MAC header为40 16 9F A1 95 00 6C 62 6D 7D 45 D8 08 00IPV4 header为45 00 00 28 1A 46 40 00 40 06 12 95 C0 A8 01 65 DC B5 6F 32TCP header为C2 17 00 50 8D 86 8A ED 3C 6D 2C 49 50 10 FE 40 60 0C 00 00Destination Address:目的MAC地址Source Address:源MAC地址Version:4 表示IP协议的版本号为4,即IPV4,占4位,Header Length:5(20 Bytes),表示IP包头的总长度为20个字节,该部分占4个位。
电⼦科⼤⽹络安全实验2Wireshark抓包分析实验完整分析实验2 Wireshark抓包分析实验⼀、实验原理TCP三次握⼿准则介绍TCP是因特⽹中的传输层协议,使⽤三次握⼿协议建⽴连接。
当主动⽅发出SYN连接请求后,等待对⽅回答SYN,ACK。
这种建⽴连接的⽅法可以防⽌产⽣错误的连接,TCP使⽤的流量控制协议是可变⼤⼩的滑动窗⼝协议。
第⼀次握⼿:建⽴连接时,客户端发送SYN包(SEQ=x)到服务器,并进⼊SYN_SEND状态,等待服务器确认。
第⼆次握⼿:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时⾃⼰也送⼀个SYN包(SEQ=y),即SYN+ACK包,此时服务器进⼊SYN_RECV状态。
第三次握⼿:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进⼊Established状态,完成三次握⼿。
HTTP协议介绍HTTP协议⽤于在Internet上发送和接收消息。
HTTP协议是⼀种请求-应答式的协议 ——客户端发送⼀个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。
HTTP协议使⽤可靠的TCP 连接,默认端⼝是80。
HTTP的第⼀个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。
HTTP/1.1由RFC 2616 定义。
⼆、实验⽬的1、了解并会初步使⽤Wireshark,能在所⽤电脑上进⾏抓包。
2、了解IP数据包格式,能应⽤该软件分析数据包格式。
3、了解HTTP请求中的三次握⼿准则,并能利⽤该软件对该过程进⾏简要分析。
三、实验内容(1)安装wireshark软件,并使⽤该软件捕获HTTP请求中的报⽂,分析该过程中TCP建⽴连接的握⼿过程以及报头各字段的含义,记录实验结果和数据。
(2)尝试利⽤wireshark软件捕获Ping请求中的报⽂,并分析报⽂中各字段的含义,记录实验结果和数据。
网络抓包分析实验报告一:实验目的:1. 学习使用网络数据抓包软件Ethereal,对互连网进行数据抓包,巩固对所学知识的理解二:实验内容:1:分析IP,ICMP的报文格式。
三:实验工具Wireshark抓包软件四:实验步骤1、安装Wireshark,简单描述安装步骤。
2、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
3、设置完成后,点击“start”开始抓包,显示结果。
4、选择某一行抓包结果,双击查看此数据包具体结构5、抓ICMP时在开始->运行cmd->tracert 五:分析1:IP报文分析报文格式:截图:分析:由图可知:IP报文版本号是IPV4,首部长度:20 bytes,数据包总长度:58,标示符:0x7335,标志:0x00,比特偏移:0,寿命:112,上层协议:UDP,首部校验和:0x071d,并且是正确的。
源IP地址:61.142.208.196目的IP地址:192.168.1.102二:ICMP报文分析截图如下:ICMP格式有抓包显示截图可知:类型:8 (回显请求)代码/编码:0校验和:0xf2ff(正确的校验和)标示符:0x0300;序列号:512(0x0200)通过这次试验,培养了自己动手的能力,另外,通过对wireshark抓包软件的使用,用其来抓取数据包,对ip, icmp报文的格式有了进一步的了解,通过对报文格式的分析,并且把课本上多学的理论知识与实践结合起来,对以前的知识得到深化和巩固,为以后学习新的知识打下基础,也提高了学习的兴趣,收获很大。
本科实验报告实验名称:利用EtherPeek工具进行的网络抓包实验学员:学号:专业:所属学院:国防科学技术大学训练部制【实验名称】利用Wireshark工具进行的抓包实验【实验目的】通过Wireshark软件捕获并观察ARP协议、ICMP协议、FTP协议、HTTP协议以及TCP协议的工作原理,包括协议序列和报文内容【实验内容】实验环境描述:网络环境:因特网操作系统:Windows 7软件:Wiresharkv1.12.4实验步骤:1.Ping命令(ARP, ICMP分析)2.在实验主机使用FTP应用(FTP分析)3.在实验主机使用web应用(HTTP分析)【实验过程】1.ping命令(ICMP、ARP分析)实验主机的IP地址为:实验主机的MAC地址为:9c:4e:36:cf:db:e4在实验主机的命令框内输入命令:pingWireshark抓获的数据包如下:观察可得,抓获的报文里协议类型有ICMP与ARP。
(前12条是输入ping命令后抓取的)(1)ICMP分析:首先明确一下ICMP的相关知识:ICMP是(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位)、code代码字段(8位)、checksum校验和字段(16位) 8bits类型和8bits代码字段:一起决定了ICMP报文的类型。
常见的有:类型0、代码0:回应应答。
类型3、代码0:网络不可达类型3、代码1:主机不可达类型5、代码1:为主机重定向数据包类型8、代码0:回应类型11、代码0:传输中超出TTL(常说的超时)16bits校验和字段:包括数据在内的整个ICMP数据包的校验和,其计算方法和IP头部校验和的计算方法是一样的。
实验一网络连接抓包实验实验目的及要求:1)熟悉抓包工具wireshark, 掌握该软件的使用;2)加强TCP/IP协议结构认识, 根据抓获包尝试分析网络连接步骤;实验内容:1)启动wireshark, 熟悉软件各部分的功能和使用;打开邮箱、qq或其他网络应用软件, 进行抓包, 并根据抓获的数据分析网络连接的原理。
格式要求:根据实验报告格式填写各部分内容。
其中, 总结是针对实验过程中存在的问题或解决方法或者经验给出总结。
附:实验报告格式:实验名称一、实验目的1)熟悉抓包工具wireshark, 掌握该软件的使用;2)加强TCP/IP协议结构认识, 根据抓获包尝试分析网络连接步骤;二、实验步骤1.使用wireshark, 进行抓包, 并在抓的数据中, 找到成功三次握手的数据:2.TCP是主机对主机层的传输控制协议, 提供可靠的连接服务, 采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)3.第一次握手: 主机A发送位码为syn=1数据包到服务器, 主机B由SYN=1知道, A要求建立联机;4.第二次握手: 主机B收到请求后要确认联机信息, 向A发送ack number=(主机A的seq+1),syn=1,ack=15.第三次握手: 主机A收到后检查ack number是否正确, 即第一次发送的seq number+1,以及位码ack 是否为1, 若正确, 主机A会再发送ack number=(主机B的seq+1),ack=1, 主机B收到后确认seq值与ack=1则连接建立成功。
6.完成三次握手, 主机A与主机B开始传送数据。
网络抓包实验报告网络抓包实验报告一、实验目的网络抓包是一种常见的网络分析技术,通过截获和分析网络通信数据包,可以深入了解网络通信过程中的细节和问题。
本实验旨在通过抓包实践,掌握网络抓包的基本原理和操作方法,并能够利用抓包工具进行网络数据分析。
二、实验环境本次实验使用了一台运行Windows 10操作系统的电脑,并安装了Wireshark作为网络抓包工具。
Wireshark是一款开源的网络协议分析软件,可以截获并分析网络数据包。
三、实验步骤1. 安装Wireshark:从官方网站下载Wireshark安装包,并按照提示完成安装过程。
2. 打开Wireshark:双击Wireshark桌面图标,启动软件。
3. 选择网络接口:在Wireshark界面的主菜单中,点击“捕获”选项,选择要进行抓包的网络接口。
4. 开始抓包:点击“开始”按钮,Wireshark开始截获网络数据包。
5. 进行网络通信:在另一台电脑上进行网络通信,例如访问一个网站或发送电子邮件。
6. 停止抓包:在Wireshark界面的主菜单中,点击“停止”按钮,停止截获网络数据包。
7. 分析数据包:在Wireshark界面的数据包列表中,可以看到截获的网络数据包,点击其中的一条数据包,可以查看其详细信息。
四、实验结果与分析通过实验,我们成功截获了多个网络数据包,并进行了分析。
在分析过程中,我们发现了一些有趣的现象。
首先,我们观察到了HTTP通信中的明文传输问题。
在抓包过程中,我们截获了一些HTTP请求和响应的数据包,其中包含了网页的内容。
通过查看数据包的详细信息,我们发现这些数据包中的内容并没有进行加密处理,因此存在信息泄漏的风险。
这提醒我们在进行网络通信时,应尽量使用HTTPS等加密协议来保护数据的安全性。
其次,我们还观察到了TCP连接的建立和断开过程。
在进行网络通信时,客户端和服务器之间需要建立TCP连接来传输数据。
通过分析数据包中的TCP协议头部信息,我们可以清晰地看到连接的建立过程,包括三次握手和连接的断开过程,包括四次挥手。
ICMP抓包分析目录一、Echo request(8、0) (3)二、Echo reply(0、0) (3)三、Network unreachable(3、0) (3)1、实验环境 (4)2、实验步骤 (4)3、报文分析 (5)四、Host unreachable(3、1) (5)1、实验环境 (5)2、实验步骤 (5)3、报文分析 (6)五、Protocol unreachable(3、2) (6)1、实验环境 (7)2、实验步骤 (7)3、报文分析 (8)六、Port unreachable(3、3) (9)1、实验环境 (9)2、实验步骤 (9)3、报文分析 (9)七、Fragment needed but DF is set(3、4) (10)1、实验环境 (10)2、实验步骤 (10)3、报文分析 (10)八、Redirect datagrams for the Host(5、1) (11)1、实验环境 (11)2、实验步骤 (11)3、报文分析 (12)九、Time exceed(11、0) (13)1、实验环境 (13)2、实验步骤 (13)3、报文分析 (13)十、附件(报文) (14)本文档演示设计实验环境并抓取常见ICMP类型报文,通过实验过程重点理解ICMP 差错消息在什么情况下产生。
报文分析重点查看红色框选部分。
一、Echo request(8、0)Echo request即回显请求,使用ping命令发送给某地址的报文,该类型不需要设计实验环境,在主机上ping某地址(非本机且目标地址或网关ARP能解析成功)即可在网卡上抓取到该类型报文。
本文档不进行演示。
二、Echo reply(0、0)Echo reply即回显应答,当某主机(接口)收到回显请求,必须对请求作出应答,应答报文的ICMP头中的ID、Sequence number、数据部分与回显请求相同。
该类型不需要设计实验环境,在主机上ping通某地址(非本机)即可在网卡上抓取到该类型报文。
第32卷第1期北京电子科技学院学报2024年3月Vol.32No.1JournalofBeijingElectronicScienceandTechnologyInstituteMar.2024基于国产FPGA的可选算法引擎的密码模块实现陈雪松㊀赵海淇㊀李秀滢北京电子科技学院,北京㊀100070摘㊀要:在国产FPGA芯片上设计并实现密码算法是服务于我国关键基础设施建设的一项举措㊂为探讨新型密码算法模块实现的可行性,基于国产FPGA芯片设计了一款可选算法引擎的硬件密码模块,该模块可集成于嵌入式系统中,基于SPI接口实现了两种分组密码算法引擎的自主选择以及多组数据的一次性加解密处理㊂在此基础上,对比分析了在国产FPGA实现的SM4算法引擎和uBlock算法引擎的性能,并将SM4算法部署在国内和国外两款同档次的FPGA芯片上,对两种芯片的性能等方面进行对比分析㊂实验结果可知,利用国产FPGA芯片实现硬件密码模块具有较好的可行性,为FPGA的国产化替代提供一定的借鉴经验㊂关键词:国产FPGA;SM4;uBlock;可选算法;紫光同创;Altera中图分类号:TP918㊀㊀㊀文献标识码:A文章编号:1672-464X(2024)1-12-22∗㊀基金项目:北京市自然科学基金资助项目(4232034);中央高校基本科研业务费专项资金项目(3282023038,328202264,328202241)∗∗㊀作者简介:陈雪松(1998-),女,硕士研究生㊂研究方向:密码工程㊁物联网物理安全㊂赵海淇(1999-),男,硕士研究生㊂研究方向:人工智能安全㊂李秀滢(1975-),女(回),通信作者,硕士,副教授㊂研究方向:密码工程㊁嵌入式系统安全㊂E-mail:lixiuying@bes⁃ti.edu.cn㊀㊀引言随着我国网络数字化时代的到来,数据安全已成为突出的社会问题㊂为了保障数据的应用安全,诞生了许多以密码技术为核心的安全防护机制,进而也催生了基于软硬件设计实现的专用密码算法模块[1]㊂虽然软件实现的密码算法模块可变能力强,但其数据处理效率相对较低,而ASIC(专用集成电路,ApplicationSpecificIntegratedCircuit)技术形成的密码算法模块缺乏算法更换和配置的灵活性㊂比较而言,FPGA(现场可编程门阵列,FieldProgrammableGateArray)丰富的逻辑资源㊁高超的灵活性以及大吞吐量并行的工作效率,使其更加适用于密码算法模块的实现㊂所以很多实际应用中,都采用FP⁃GA实现密码模块的方案㊂目前,我国已开展了采用FPGA实现商用密码算法模块技术的研究,如SM3[2]㊁SM4[3]㊂也诞生了许多由我国学者自主设计研发的新型密码算法,但这些新型算法如TANGRAM[4]㊁uBlock[5]等目前仅处于单一算法引擎的应用研究阶段,少有将多个算法集合起来进行泛化应用的案例,这势必降低用户使用密码引擎的选择性,同时也没有充分发挥FPGA灵活性的优势㊂在同一FPGA芯片上利用可重构技术[6]实现多个算法引擎的复用是当前普遍受关注的解决方案㊂可重构技术在一定程度上提升了芯片逻辑资源的使用率,但同时也存在着资源下载占用时间长㊁算法配置时间消耗大的问题㊂第32卷基于国产FPGA的可选算法引擎的密码模块实现㊀随着芯片集成度的快速提升,在许多低成本高资源的芯片中实现多算法并行分布也成为一种好的解决方案,它在保证逻辑资源充分利用的同时,可以极大地提升下载时长㊁缩短算法配置时间㊂另外,硬件密码算法模块实现所采用的FP⁃GA芯片,目前还主要依赖于国外的芯片,如Xil⁃inx公司的Virtex系列㊁Altera公司的Cyclone系列等,未能在底层芯片技术上实现完全的自主可控,这在数据安全方面存在极大隐患,而从算法到芯片的全国产化才是未来密码应用发展的必然方向㊂本文基于国产FPGA芯片,设计并实现了一款可选算法引擎的硬件密码模块,该密码模块基于SPI(串行外围接口,SerialPeripheralInter⁃face)接口自定义了类APDU(应用协议数据单元,ApplicationProtocolDataUnit),可为用户提供两种分组算法的自主选择和多组(每组128bit)数据一次性加解密处理的功能㊂本文选择的两种分组密码算法为国密算法SM4和新型分组算法uBlock,采用的FPGA芯片为紫光同创的PGL22G芯片㊂论文在设计模块系统方案的基础上,比较分析了两种分组算法在PGL22G上的性能表现以及分组算法SM4在不同FPGA芯片上的运行效率㊂为在国产化FPGA芯片上实现硬件密码系统,提供一定的可借鉴经验㊂1㊀技术介绍1 1㊀密码算法结构原理1 1 1㊀SM4密码算法SM4[7]是由国家密码管理局颁布的商用分组密码算法,当前已被ISO/IEC组织列为国际标准㊂SM4密码算法的加密分组长度为128bit,采用32轮加密操作,每轮运算使用不同的轮密钥,算法结构主要包括密钥扩展单元和轮变换单元[8]㊂(1)轮变换单元SM4密码算法的一次加密运算是将一组128bit明文加密成128bit密文㊂整个加密算法由32轮非线性迭代运算组成,一次迭代运算为一轮变换(也称轮函数),在最后一轮变换结束后输出结果(X32,X33,X34,X35),之后对其进行反序变换,最终输出密文[9]㊂每个Xi以字长(32bit)为单位㊂SM4加密算法的轮变换结构如图1所示㊂其中i代表第i轮变换(i=0,1,2, ,31),轮密钥是通过密钥扩展函数生成的,在每轮加密变换中使用对应的第i个轮密钥rki㊂设轮函数的输入为(Xi,Xi+1,Xi+2,Xi+3),则轮函数可表示为:F(Xi+1,Xi+2,Xi+3,Xi+4)=Xi T(Xi+1 Xi+2 Xi+3 rki)(1)其中,T运算由非线性S盒变换和线性移位变换组成㊂图1㊀SM4算法轮变换单元的基本结构解密运算与加密运算的算法结构相同[10],唯一不同之处在于解密轮变换中轮密钥反序使用,即(rk31,rk30, ,rk0)㊂(2)密钥扩展单元SM4密码算法轮变换单元中使用的轮密钥是通过密钥扩展算法从初始密钥中获得的[11]㊂初始密钥的长度与明文分组长度相同,均为128bit;经过密钥扩展运算生成的轮密钥长度为32bit㊂密钥扩展算法共迭代运算32轮,每轮生成的轮密钥应用于对应轮次的加密变换㊂图2㊃31㊃北京电子科技学院学报2024年所示为密钥扩展单元的算法结构㊂其中i代表第i轮扩展(i=0,1,2, ,31),参数FK和CK均为指定参数不可变㊂图2㊀SM4算法密钥扩展单元的基本结构1 1 2㊀uBlock密码算法uBlock密码算法[12]是全国密码算法设计竞赛中的一等奖分组密码算法㊂其加解密数据分组长度和密钥长度可选128bit或256bit,分别记为uBlock-128/128㊁uBlock-128/256和uBlock-256/256㊂uBlock密码算法逻辑结构同样包括轮变换单元和密钥扩展单元,该算法在抗安全性分析㊁实现效率以及适应性上都具有较好的表现㊂为了与国密算法SM4进行对比,本文实现的uBlock算法为uBlock-128/128,即其分组长度和密钥长度均为128bit㊂(1)轮变换单元uBlock-128/128密码算法(以下简称uBlock算法)的一次加密运算是将一组128bit的明文加密成128bit的密文㊂整个加密算法由16轮迭代运算组成,一轮迭代运算为一轮变换(轮函数),最后一轮变换后的结果X与轮密钥RK16进行异或运算,得到最终的密文㊂uBlock加密算法的轮变换单元的算法结构如图3所示㊂其中,i代表第i轮的轮变换(i=0,1,2, ,15),轮密钥是通过密钥扩展算法生成的,在每轮加密变换中使用对应的第i个轮密钥RKi㊂图3㊀uBlock算法轮变换单元的基本结构uBlock解密算法的轮变换结构与加密算法的基本呈逆序关系,密文与轮密钥进行异或运算后,将结果分组先进行向量置换,再进行移位变换和异或运算,最后通过S盒变换得到轮变换的结果㊂解密变换中的S盒㊁向量置换均为加密变换中S盒㊁向量置换的逆运算,移位变换为加密算法中的反向位移㊂解密变换中轮密钥RKi倒序使用㊂(2)密钥扩展单元uBlock算法轮变换单元中使用的轮密钥共有17个,具体分为初始轮密钥RK0和16个生成轮密钥RK1 RK16㊂将128bit的密钥K放置在寄存器中,作为初始轮密钥RK0,然后进行16轮(i=1,2, ,16)的密钥扩展迭代运算,每轮形成RKi,最终形成16个生成轮密钥㊂寄存器按公式(2)进行更新㊂K0 K1 K2 K3ѳRKi-1K0ᶄ K1ᶄѳPK(K0 K1)K2ᶄѳK2 SK(K0ᶄ RCi)K3ᶄѳK3 Tk(K1ᶄ)㊃41㊃第32卷基于国产FPGA的可选算法引擎的密码模块实现㊀RKiѳK2ᶄ K3ᶄ K1ᶄ K0ᶄ(2)其中,PK为16个半字节的向量置换;RC为常数,给定值不可变;Sk为8个4比特S盒的并置;Tk为半字节模2的运算㊂(K0,K1,K2,K3)由输入的轮密钥RKi-1平分成四组构成,(K2 ,K3 ,K1 ,K0 )为每组密钥经过运算后重新组合后形成的轮密钥RKi㊂uBlock算法轮密钥扩展单元的基本结构如图4所示㊂图4㊀uBlock算法密钥扩展单元的基本结构2㊀可选算法模块的设计与实现2 1㊀系统结构设计本密码模块系统基于PGL22G为核心的FPGA开发平台进行设计,系统的总体结构如图5所示㊂系统由四部分组成:SPI接口模块㊁数据包解包封包模块㊁SM4密码算法引擎以及uBlock密码算法引擎㊂该FPGA密码模块系统对外提供密码服务的接口为SPI或SQI(四通道SPI接口)㊂该密码模块的应用对象主要针对的是MCU等微处理器的主机端,本文在SPI接口协议的基础上,又设计了类APDU协议,用于两系统间的应用通信㊂主机端向FPGA系统下达选定算法的加解密命令APDU,FPGA系统根据命令APDU进行相应算法引擎的调度,算法引擎并行地进行加解密运算处理,并将运算结果通过SPI接口的响应APDU返回给主机端㊂图5㊀硬件密码模块的系统结构2 2㊀SM4密码算法引擎的实现2 2 1㊀硬件实现的设计(1)实现结构的设计本文设计的SM4密码算法引擎的硬件实现结构由输入寄存器㊁输出寄存器㊁密钥数据寄存器㊁密钥生成单元㊁轮密钥寄存器㊁SM4加解密轮函数单元㊁状态机控制器和I/O接口组成[13,14]㊂基本单元结构如图6所示,其中所述的寄存器都是根据实际需要定义的多比特数据存储单元㊂图6㊀SM4算法引擎的硬件实现结构图6中,密钥数据寄存器用于存储初始化数据和初始密钥,输入㊁输出寄存器用于存储待处理的输入数据和已处理的输出数据㊂多个明文分组加解密运算使用的密钥相同,所以SM4算法引擎的32个轮密钥生成操作只进行一次,之后存储在轮密钥寄存器中,待轮变换单元加解密操作时使用㊂SM4轮变换对128bit的输入数据寄存器中的内容循环迭代运算32轮后,完成加㊃51㊃北京电子科技学院学报2024年解密运算,128bit的结果数据存储在输出寄存器中㊂状态机控制器统一控制SM4算法引擎各功能单元的工作调度转换㊂(2)状态机设计状态机是FPGA硬件实现的核心逻辑,本文设计的SM4算法引擎,其状态机控制器的控制逻辑主要分为Idle状态㊁GetReady状态㊁Get⁃KorD0状态㊁GetKorD1状态和GetResult状态,状态机转换过程如图7所示㊂图7㊀SM4算法引擎的状态机在图7中,Idle状态为空状态,用来等待外㊀㊀㊀部就绪信号,以控制状态机进入其它工作状态;GetReady状态主要是控制向密钥数据寄存器写入初始密钥或者向输入寄存器写入明文,控制下一状态转换;GetKorD0状态主要进行轮密钥扩展运算,并且将每轮生成的轮密钥存储到轮密钥寄存器中;GetKorD1状态主要进行轮函数加解密运算;GetResult状态用于将最终加解密结果输出,然后重新将状态机置为Idle状态㊂2 2 2㊀仿真结果针对SM4密码算法引擎的硬件实现,本文利用紫光同创公司自主研发的PDS软件和Mod⁃elsim软件进行了引擎实现的仿真,仿真结果如图8所示㊂从图8中可以看出,一组128bit的数据 h0123456789abcdeffedcba9876543210 经过加密后得到密文结果 h681edf34d206965e86b3e94f536e4246 ㊂再把该密文放入算法引擎中进行解密,得到解密明文结果为 h0123456789abcdeffedcba9876543210 ㊂仿真结果表明,SM4算法引擎的实现是正确的㊂图8㊀SM4算法引擎实现的仿真结果2 3㊀uBlock密码算法引擎的实现2 3 1㊀硬件实现的设计(1)实现结构的设计系统设计的uBlock密码算法引擎的实现结构由密钥数据寄存器㊁输入寄存器㊁输出寄存器㊁密钥生成单元㊁轮密钥寄存器㊁uBlock轮函数加解密单元㊁状态机控制器和I/O接口组成㊂由于本文选用的uBlock算法与SM4算法同为128bit的分组密码算法,且通过上述算法原理介绍可知,虽然二者在密钥扩展和轮变换单元中的运算逻辑有所不同,但算法引擎所需的功能结构基本相同,因此将其硬件实现结构与接口信号设计成一致的,具体如图9所示㊂为了实现多种算法引擎的可选操作,将各算法引擎的接口部分设计成了通用的接口信号,即在uBlock算法引擎中使用相同的接口信号㊂其中各信号的功能包括:clk为时钟信号,由系统时钟统一调度;KeyIn为密钥数据输入信号(128bit),与之相匹配的KeyRdy为密钥数据准㊃61㊃第32卷基于国产FPGA的可选算法引擎的密码模块实现㊀图9㊀uBlock算法引擎的硬件实现结构备就绪信号,用于指示算法引擎进行轮密钥的生成工作;DataIn为待加解密数据输入信号(128bit),用于向引擎内部传输待加解密的数据,与之相匹配的InRdy为准备就绪信号,指示算法引擎开始进行加解密运算工作;opMode为模式选择信号,用于指示算法引擎进行加密或解密运算;DataOut为加解密完成后的数据输出信号(128bit);KVld和OVld是分别用来向上级模块指示密钥扩展运算完成及加解密运算完成的标志信号㊂图11㊀uBlock算法引擎的仿真结果(2)状态机设计uBlock算法引擎的状态机控制逻辑主要包括:Idle状态㊁KeyExp状态㊁S0状态㊁KeyExpNop状态㊁Enc状态㊁Dec0状态㊁Dec1状态和EncDec⁃Nop状态,状态转换过程如图10所示㊂图10中,状态机控制器控制密钥扩展和加解密运算两个过程的流转㊂KeyExp状态㊁S0状态和KeyExpNop状态为密钥扩展要经历的3个流转状态,而Enc状态㊁Dec0状态㊁Dec1状态和EncDecNop状态为加解密运算要经历的4个流图10㊀uBlock算法引擎的状态机转状态㊂㊀㊀Idle状态为空状态,主要用来等待外部就绪信号,进而控制状态机进入运算状态,并向密钥数据寄存器写入初始密钥或者向输入寄存器写入待处理的明密文数据㊂在密钥扩展过程中,KeyExp和S0两个状态用于进行轮密钥的生成,并将生成的轮密钥存储到轮密钥寄存器中;KeyExpNop状态为密钥扩展结束状态,其控制状态机返回Idle状态,并输出完成信号㊂在加解密运算过程中,Enc状态为加密运算,Dec0和Dec1状态为解密运算,在加密或解密完成后均会将结果输出到输出寄存器中;EncDecNop状态为运算结束状态,其控制状态机返回Idle状态,并输出完成信号㊂2 3 2㊀仿真结果针对uBlock密码算法引擎的硬件实现,本文利用PDS软件和Modelsim软件进行了引擎实现的仿真,仿真结果如图11所示㊂㊃71㊃北京电子科技学院学报2024年㊀㊀从图11中可以看到,一组128bit的数据 h0123456789abcdeffedcba9876543210 经加密后得到密文结果为 h32122bedd023c429023470e1158c147d ,再把该密文放入算法引擎中进行解密,得到明文结果为 h0123456789abcdeffedcba9876543210 ㊂仿真结果表明uBlock算法引擎的实现是正确的㊂2 4㊀数据分组组包调度模块为了提升密码模块的处理速度(吞吐量),本文设计了FPGA系统通过SPI接口一次可处理多组(每组128bit)的明密文数据[15],这里以最多处理16组(256字节)的数据包为例介绍其设计思路㊂系统在密码算法引擎接口的基础上,设计了分组组包调度模块,用于对多组的数据包进行分组㊁引擎调度以及组包等操作㊂该调度模块先将SPI接口接收的类APDU中的数据段拆解成一个个128bit明密文数据分组,然后根据类APDU中的命令码选择调度相应的密码算法引擎,进行数据加解密运算,最后将每组运算结果打包成结果数据包待统一输出㊂2 4 1㊀硬件实现的设计FPGA中的程序块是并行执行逻辑,而本文设计的分组组包调度模块与密码算法引擎之间是一个协同顺序执行逻辑,所以将该调度模块设计成与密码算法引擎之间进行乒乓式操作的状态机结构,进而保证多组数据被正确的加解密处理㊂这里设计的分组组包调度模块的状态机工作逻辑分为IdleData状态㊁InputData状态和Out⁃putData状态㊂其中,IdleData状态为空状态,主要根据SPI模块发送来的操作码初始启动密码引擎模块进行相应的操作,操作包括密钥扩展㊁加密和解密,并设置相应的状态转换信号;Input⁃Data状态用来进行数据包分组,每次向密码引擎模块传输一组128bit数据,密钥数据仅启动密码引擎操作一次,并标记密钥扩展完成信号量;OutputData状态用来进行数据组包,根据密码引擎模块传回的结果数据进行组包操作,并判断全部数据是否加解密完成,若完成则控制状态机返回IdleData状态,若未完成则进入InputData状态继续解包并传输新一组的数据㊂状态机的具体控制逻辑如图12所示㊂图12㊀数据分组组包调度模块的状态机分组组包调度模块的状态机部分的算法伪码如下算法1所示㊂算法1分组组包调度信号说明:clk,系统时钟信号;InRdy_o,整包数据传输完成信号;KeyRdy_o,密钥数据传输完成信号;OVld,一组数据运算完成信号;KVld,密钥扩展完成信号㊂a)always@(posedgeclk)beginb)㊀㊀case(工作状态)c)㊀㊀㊀IdleData:㊀//准备空状态d)㊀㊀㊀begine)㊀㊀㊀㊀if(InRdy_o)㊀㊀㊀工作状态=InputDataf)㊀㊀㊀㊀elseif(KeyRdy_o)工作状态=OutputDatag)㊀㊀㊀endh)㊀㊀㊀InputData:㊀//数据包分组状态i)㊀㊀㊀beginj)㊀㊀㊀㊀从输入的整包数据中选择一组数据进行加解密运算k)㊀㊀㊀㊀工作状态=OutputDatal)㊀㊀㊀endm)㊀㊀㊀OutputData:㊀//数据组包状态n)㊀㊀㊀begino)㊀㊀㊀㊀if(OVld)begin㊀p)㊀㊀㊀㊀㊀保存一组加解密完成的数据q)㊀㊀㊀㊀㊀完成一组,计数+1r)㊀㊀㊀㊀㊀if(计数==分组数量)工作状态=IdleData㊃81㊃第32卷基于国产FPGA的可选算法引擎的密码模块实现㊀s)㊀㊀㊀㊀㊀else㊀㊀㊀㊀工作状态=InputDatat)㊀㊀㊀㊀endu)㊀㊀㊀㊀elseif(KVld)㊀工作状态=IdleDatav)㊀㊀㊀endw)㊀㊀endcasex)end2 4 2㊀Debug调试在多组数据调度密码引擎进行数据处理的过程中,不同信号之间很容易产生时序不协调㊁不匹配的问题,通常这种情况用Modelsim仿真是解决不了问题的㊂这就需要启动PDS开发工具中的Debug功能,在Debug中通过增加触发条件和信号观察器,来抓取程序运行中的中间结果,进而分析出时序问题,一点点修改程序,使各信号时序衔接匹配正确㊂图13展示了数据分组组包调度模块调度SM4算法引擎进行一包数据(每组16字节,共16组)加密时,PDS的debug调试器中的结果,对比图8中一组SM4加解密结果不难看出,分组组包调度模块能正确工作㊂图13㊀PDS的Debugger工具中使用SM4算法引擎加密一包数据的调试结果㊀㊀在图13中,当cmd_SM4为0x02时,代表加密操作命令,该信号的出现将启动算法引擎进行一包数据的加密,它也是Debugger调试器数据抓取的触发条件㊂start_flag_round为一组(16字节)数据加解密的启动信号,高有效;round_over为一组数据加解密完成信号,高有效㊂cnt为处理的数据组数计数器,pKey为轮密钥,tempout为加密结果暂存寄存器㊂3㊀密码算法引擎的性能分析㊀㊀本文设计的硬件密码模块主要依托的是型号为PGL22G-6FBG256的国产FPGA㊂本小节首先介绍PGL22G与国内外其他型号芯片的资源对比㊂其次分析使用的两款密码算法在PGL22G上的运行效果㊂最后,为了更好的分析国内和国外FPGA的性能差异,分别在实验室所使用的国内㊁国外两款FPGA芯片上进行了以SM4算法引擎为例的性能比较㊂3 1㊀PGL22G资源对比PGL22G[16]是紫光同创Logos系列的FPGA器件,面向工业控制市场的需求,PGL22G提供了丰富的片上时钟和RAM资源以及乘法器,支持LVDS差分标准㊁MIPI接口标准以及丰富的用户I/O,并集成了1066Mbps硬核DDR3和硬核ADC等资源㊂正是源于该芯片丰富的资源和高性能的运算速度,非常适合用于构建性能要求较高的密码算法硬件模块,目前已被许多具有技术创新和国产自主可控需求的中国系统设备厂商采用㊂如表1所示,挑选了几款与PGL22G性能相近的芯片进行比较㊂分别是国产高云公司的GW2A-18系列芯片和美国XILINX公司的Spar⁃tan-6系列芯片㊂由于后续3 3节中会对PGL22G和Altera公司CycloneⅣE系列的EP4CE75F29C6芯片进行算法实现上的比较,因此表中还添加了该芯片的资源数据㊂从表1中数据可知,PGL22G的资源情况在完全满足本文设计的硬件密码模块的各项要求的情况下,其价格最优㊂㊃91㊃北京电子科技学院学报2024年表1㊀芯片资源对比芯片厂商紫光同创高云XILINXALTERA型号PGL22GGW2A-18XC6SLX16EP4CE75工艺40nm55nm45nm60nm内核电压1 1V1 0V1 0V1 0VLUT6 9,112 (等效)LUT517,536 18,224 (等效)LUT421,04320,73621,86975,408分布式RAM71Kbit41Kbit136Kbit2,745KbitPLL6424IOBANK6848单芯片价格70元160元98元158元㊀㊀注:1个LUT6等效于2个LUT5,1个LUT5等效于1 2个LUT63 2㊀PGL22G芯片上的性能分析表2记录了两种算法引擎在PGL22G上运行时的逻辑资源使用情况㊂两种算法选取的数据分组和密钥长度均为128bit,I/O端口的设计基本相同,因此两种算法引擎的I/O端口使用量皆为390㊂而从LUT和寄存器使用情况来看,uBlock的使用量基本是SM4的2 5倍㊂表2㊀PGL22G芯片的逻辑资源使用情况算法TotalLUTsTotalRegistersI/OPortsSM414201326390uBlock34912736390表3中记录了两种算法工作时的最大时钟频率及相应吞吐量㊂测试方法为事前生成加解密过程中需要的轮密钥,然后使用该组轮密钥一次性将一包数据(256字节)进行加解密处理,再根据定义[17]:吞吐量(率)=处理的比特数/所用秒数,计算出密码引擎的吞吐量㊂从结果可知,SM4工作的最大时钟频率约为uBlock的2倍,但uBlock吞吐量却比SM4高出约30Mbit/s,这说明uBlock的工作效率更高㊂分析这一现象的主要原因在于两种算法在加解密过程中的迭代运算轮数不同,SM4加密一组数据需迭代32轮,即需要32个时钟周期才能完成一次加密操作,而uBlock的迭代运算轮数为16,FPGA是典型的并行处理逻辑单元,运算轮数对速度起决定作用㊂表3㊀算法性能分析FPGA芯片算法模块最大时钟频率吞吐量PGL22GSM4226 501MHz906Mbit/sPGL22GuBlock117 398MHz939Mbit/s3 3㊀两种芯片上的性能对比选取中国紫光同创公司研发的Logos系列PGL22G芯片与美国Altera公司CycloneⅣE系列的EP4CE75F29C6芯片进行对比分析㊂两款芯片都属于当前市面上中低端FPGA芯片,芯片资源对比已在前文中给出㊂本文在两款芯片上对SM4算法引擎的实现进行了仿真㊂表4记录了SM4算法引擎在两款FPGA芯片上的资源使用情况㊂PGL22G器件中的逻辑单元为LUT5㊂EP4CE75F29C6器件使用的逻辑单元为LUT4㊂由文献[16]可知PGL22G中使用的每个LUT5等效为1 2个LUT4㊂通过计算可知,本文设计的SM4算法引擎在紫光同创芯片上使用了约1704个LUT4㊂结合表中LUT单元㊁寄存器单元和I/O端口的使用数量可知,紫光芯片的逻辑单元使用量少于Altera芯片,其它资源的使用情况大致相同㊂表4㊀SM4逻辑资源使用情况FPGA芯片TotalLUTsTotalRegistersTotalpins紫光PGL22G1704(LUT5折算为LUT4)1326390AlteraEP4CE75F29C62000(LUT4)1344390根据文献[17]吞吐量计算公式可以得到密码算法的吞吐量计算方法,具体如公式(3)所示㊂吞吐量=分组数据长度ˑ最大时钟频率迭代运算轮数(3)表5记录了SM4算法在两款芯片上工作的最大时钟频率和相应吞吐量的对比㊂从表中结果可知,在算法的相同工作模式(ECB模式)下,紫光芯片工作的最大时钟频率是Altera芯片的1 76倍㊂由于所使用的SM4算法分组长度为128bit,加解密迭代轮数为32轮,根据公式(3)计算可知,紫光芯片运行SM4算法的吞吐量同㊃02㊃第32卷基于国产FPGA的可选算法引擎的密码模块实现㊀样是Altera芯片的1 76倍㊂这说明本文设计的SM4算法引擎在紫光芯片上的工作效率略高于Altera芯片㊂表5㊀SM4算法性能分析FPGA芯片最大时钟频率吞吐量紫光PGL22G226 5MHz906Mbit/sAlteraEP4CE75F29C6128 5MHz514Mbit/s综合上述分析情况可知,在逻辑资源使用相近的情况下,紫光PGL22G芯片的吞吐量更大㊂说明紫光PGL22G芯片在硬件密码模块实现上比Altera的EP4CE75F29C6芯片更有优势㊂4㊀结论㊀㊀本文设计了一个可选算法引擎的硬件密码模块FPGA实现方案㊂该密码模块由基于SPI(SQI)接口的自定义通信协议㊁SM4和uBlock密码算法引擎以及基于数据分组的组包调度模块组成,实现了两种密码算法自主选择㊁一次性加解密处理多组数据的高性能硬件密码模块㊂在后续应用中可根据引擎的接口配置,自主扩展其它分组密码算法,具有一定的普适性和可扩展性㊂本论文在密码模块设计实现的基础上,基于国产FPGA平台进一步讨论了实现的两种算法引擎的性能差异,以及不同FPGA芯片的性能差异㊂通过实验分析可知,对于分组长度和密钥长度均为128bit的两种分组算法引擎来说,在PGL22G芯片上SM4算法引擎的资源使用要略少于uBlock算法引擎,而uBlock算法引擎的工作效率略高于SM4算法㊂此外,SM4算法引擎实现在国产PGL22G芯片与国外产EP4CE75F29C6芯片上的测试结果说明,在国产PGL22G芯片上实现的硬件密码模块实现,其性能高于在国外产的EP4CE40F29C6芯片上的实现㊂这在一定程度上表明,推广FPGA芯片国产化替代的可行性㊂在多组数据的加解密运算效率上,本文方案还有提升空间㊂可以根据算法的工作模式设计多级流水线结构,进而实现多组数据的同时加解密处理,这不仅会提高多组数据之间的运算效率,还可以极大程度上提高片内资源的使用效率㊂如何提高多组数据的运算效率将成为后续进一步研究的方向㊂参考文献[1]㊀王剑锋,张应辉,马华.浅谈密码学与信息安全[J].西安文理学院学报(自然科学版),2020,23(1):34-36.[2]㊀郑佳乐,韩跃平,唐道光.FPGA平台SM3密码杂凑算法的优化设计[J].单片机与嵌入式系统应用,2023,23(05):33-36+39.[3]㊀赵保磊,范玉进,张建军等.基于FPGA的多秘钥SM4加解密模块设计[C]//天津市电子学会.第三十六届中国(天津)2022IT㊁网络㊁信息技术㊁电子㊁仪器仪表创新学术会议论文集.2022:246-248.[4]㊀王建新,许弘可,郑玉崝等.基于FPGA的TANGRAM分组密码算法实现[J/OL].计算机应用研究,1-7[2024-01-07].ht⁃tps://doi.org/10 19734/j.issn.1001-3695 2023 04 0190.[5]㊀吴文玲,张蕾,郑雅菲等.分组密码uBlock[J].密码学报,2019,6(06):690-703.[6]㊀陈翔宇.基于FPGA的多算法可重构加解密系统的设计[D].哈尔滨:哈尔滨工业大学,2020.[7]㊀JintaoR,ZheC.ChosenPlaintextCombinedAttackagainstSM4Algorithm[J].AppliedSciences,2022,12(18):9349.[8]㊀AlifAZ,A.H.A,FaridaR,etal.System⁃aticliteraturereview:Trendanalysisonthedesignoflightweightblockcipher[J].JournalofKingSaudUniversity-ComputerandInfor⁃㊃12㊃。
FlowVisor学习修改记录版本号修改人修改日期新增/修改内容概要V0.1 *** 2014-08-06 Flowvisor基本概念,以及安装V0.2 *** 2014-08-07 Flowvisor相关操作,以及mininet V0.3 *** 2014-08-08 Flowvisor、mininet以及ODL连接V0.4 *** 2014-08-11 之前内容的修改,flowspace实验V0.5 *** 2014-08-14 虚网划分实验V0.6 *** 2014-08-15 基于Vlan的端口划分V0.7 *** 2014-08-17 基于传输层的虚网划分V0.8 *** 2014-08-18 基于MAC地址的虚网划分V0.9 *** 2014-08-20 基于MAC地址和应用端口的虚网划分V1.0 *** 2014-08-21 基于网络2,3,4层虚网的划分目录FlowVisor学习 (1)1.FlowVisor (3)1.1.FlowVisor介绍 (3)1.1.1.FlowVisor基本概念 (3)1.1.2.切片 (3)1.1.3.流规则 (4)1.1.4.带宽 (4)1.1.5.拓扑结构 (4)1.1.6.转发表 (5)1.2.FlowVisor安装过程 (5)1.3.FlowVisor基本操作 (6)1.3.1.切片操作 (6)1.3.1.流规则操作 (7)2.Mininet (8)2.1.SDN 与Mininet 概述 (8)2.2.Mininet的特性 (8)2.3.常用指令 (9)3.Opendaylight (9)3.1.ODL概念 (9)3.2.ODL的框架原则 (9)3.3.框架概述 (10)4.建立连接 (11)4.1.FlowVisor部分 (11)4.2.Mininet部分 (12)4.3.Opendaylight部分 (14)4.4.抓包看看tcp连接 (15)5.基于实验的flowspace细述 (16)5.1.全路径,单向数据通路 (16)5.2.全路径,双向数据通路 (16)5.3.指定路径,单向数据通路 (17)5.4.指定路径,双向数据通路 (18)5.5.流规则结论 (19)1.FlowVisor1.1.FlowVisor介绍FlowVisor是建立在OpenFlow之上的网络虚拟化平台,它可以将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SDN)。
linux内核下数据包的捕获与分析
刘赟
【期刊名称】《中国水运(下半月)》
【年(卷),期】2008(008)005
【摘要】在linux下,在用户态调用libpcap库函数,存在数据从内存空间到用户空间拷贝的问题.本文通过例子探讨了netfilter框架在内核中的实现,并利用netfilter 框架进行网络数据的捕捉与数据包信息的提取.
【总页数】2页(P111-112)
【作者】刘赟
【作者单位】郧阳医学院计算机课部,湖北,十堰,442000
【正文语种】中文
【中图分类】TP311.12
【相关文献】
1.Linux下数据包捕获的若干重要问题探讨
2.高速网络环境下数据包捕获技术的分析
3.高速网络环境下数据包捕获技术的分析
4.在LINUX环境下使用Tcpdump进行数据包捕获与分析
5.基于Linux下的无线网络数据包捕获
因版权原因,仅展示原文概要,查看原文内容请购买。
1.利用Ethereal软件先抓到n多个数据包。
2.利用Filter过滤器过滤http数据包
3.蓝色的长条显示的是一个http请求报文,其中request method 也就是请求方式是POST,request version:请求的版本是HTTP 1.0,user-agent 是Foxmail,content 内容长度是43,host 主机是
Content-length 请求长度是44,connection 是keep-Alive 保活状态。
方式。
6.如图是利用过滤器Filter过滤tcp数据包
7.如图蓝色长条显示的是一个tcp数据包,可以看到在传输层这个包的内容,源端口地址是49369,目的端口地址是https(443),序列号是0,首部长度是28字节,标志字段的值是0x0002,紧急(URG),确认ACK,推送PSH,复位RET,终止FIN都是设置为0,只用同步SYN为1,其中窗口大小是8192,首部校验和是0xc6e2,是正确的。
出了固定的20B
外,还用8个可选字节,其中的内容是:最大报文长度1460字节。
8.如图是ip数据包的内容,ip数据包首部也是固定长度的20字节,第一项是版本,内容是4,表示所用ip协议为ipv4,然后依次是首部长度,20字节,区分服务,总长度为48,表识为0x06bf(1727),接下来是标志字段,0x04,MF为0,表示为如干数据包片的最后一个,DF为1,表示不能再分片,然后是片位移,值是0,接着是TTL内容为64,高层协议为TCP
首部校验和为0x79a4,正确,最后是源地址:192.168.0.103,目的地址:112.90.136.251。
9.如图是数据链路层的以太网帧,其中的内容是:目的ip地址192.168.0.1,对应MAC地址为c8 3a 35 08 c2 40,源端口地址为192.168.0.103,MAC为e0 b9 a5 60 85 45。
类型为IP
(0x0800)。
10.下图是物理层的帧内容。
号:domain(53),长度294,校验和是0xb580,显示是正确的。
12.如图是利用Filter过滤的DNS数据包。
13.DNS数据包的内容为:ID号为0x0a04,标志各字段的值是0x0118。
14.如图是利用Filter过滤的ARP数据包。
15.图中蓝色长条显示的是ARP请求数据包,内容是:硬件类型以太网,协议类型IP,硬件大小6,协议大小4,操作码:0x001表示请求报文,发送端IP:192.168.0.103,MAC为e0
b9 a5 60 85 45,目的端IP:192.168.0.1,对应MAC地址为c8 3a 35 08 c2 40。
的端IP:192.168.0.1,对应MAC地址为c8 3a 35 08 c2 40,类型为ARP。
17.图中蓝色长条显示的是ARP响应数据包,内容是:硬件类型以太网,协议类型IP,硬件大小6,协议大小4,操作码:0x002表示响应报文,目的端IP:192.168.0.103,MAC为e0
b9 a5 60 85 45,发送端IP:192.168.0.1,对应MAC地址为c8 3a 35 08 c2 40。
18.如图是ARP数据包在物理层的帧的内容。
19.下图是简单服务发现协议,(SSDP,Simple Service Discovery Protocol)是一种应用层协议,是构成通用即插即用(UPnP)技术的核心协议之一。
简单服务发现协议提供了在局部网络里面发现设备的机制。
控制点(也就是接受服务的客户端)可以通过使用简单服务发现协议,根据自己的需要查询在自己所在的局部网络里面提供特定服务的设备。
设备(也就是提供服务的服务器端)也可以通过使用简单服务发现协
议,向自己所在的局部网络里面的控制点声明它的存在。
20.该协议在传输层的内容。
21.该协议在网络层的数据包内容。