在网卡驱动里写入数据,是否要修改以太网帧头?

爆板流 爆板流 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用单片机控制ENC28J60来实现网络的通信,我在PC机的TCP客户端发送数据到单片机TCP服务器,当TCP服务器接到数据后,再发回去。就是 PC机发送“123”到单片机,单片机接受到后,就将这串数据修改后发回去。
只是这个数据的修改不是在上层改动的,是在网卡驱动里面改的,我修改好数据后,需要重新构建IP、TCP的头,以及校验和的计算;一开始TCP客户端发送“123456”然后服务器接收到后,进行处理将修改数据的值,但是数据的长度是不变的。这样可以实现通信,没有卡住的现象。
但是当我修改了数据,改变了数据的长度后(比如说一开始是 data[6],改后变为data[7],就是在后面加了一位数),同样进行了IP、TCP头构建,以及校验和计算,虽然可以实现通信,但是只能实现一次(比如:PC机TCP客户端发送“123”,然后单片机接受到后就返回了“1234”,可以实现一次通信,第二次TCP客户端发送数据就出现了未知错误了如下图:)
不知道哪里出错了?不知道要不要修改以太网帧头啊?
我试过修改,就是把 以太网帧头的那个 数据类型长度 加1,但是结果第一次都发送不了·请高手指点啊~
...全文

相关推荐

安卓网卡驱动

用来插有线网卡的驱动器这是一个更有用的安卓上网驱动,帮你实现安卓插网线,前提要买qf9700的网卡。

u010275356

ThinkPad以太网卡驱动程序全解析与实践指南

在计算机网络技术的快速发展中,以太网卡驱动程序扮演着至关重要的角色。网卡驱动是操作系统与物理网络接口卡(NIC)之间的关键通信桥梁,它使得操作系统能够控制网络硬件,并且利用其功能进行数据包的发送和接收。驱动程序兼容性指的是驱动程序能够在特定的操作系统版本上正常工作,实现硬件设备的预期功能,而不会引起系统崩溃、性能下降或不稳定。硬件制造商通常会为不同的操作系统提供相应的驱动程序。

就念

以太网卡驱动安装失败异常解决办法.docx

win10更改IP地址遇错(出现了一个意外情况,不能完成你的更改);电脑以太网卡驱动故障;安装网卡驱动时所出现的“the realtek network controller was not found,if deep sleep mode is enable please plug the cable ”解决办法

qq_23664661

Eeupdate 网卡mac地址修改

eeupdate 5.17.....mac更改 dos eeupdate -nic = 1 - mac =********(mac地址)

sinat_39294068

C#利用SharpPcap发送以太网报文(以太网原始帧),可发送任意以太网帧

C#利用SharpPcap发送以太网报文(以太网原始帧),软件基本流程:从文件读取要发送的帧内容,然后找到电脑上的以太网卡,接下来利用SharpPcap来循环发送。 vs2008工程,全部源代码,可编译和测试。 以太网帧内容可以自己构造任意的帧类型和内容;也可以使用wireshark抓包,然后利用本软件来重放。 wireshark抓包后取数据方法:在wireshark的收到的帧上点右键,选择 复制 -> 为一个HEX流,然后粘贴到一个空文件内,命名为packet.dat,这样本软件就会读取packet.dat内的内容并循环发送了。

glen30
评论 33
收藏 已收藏
分享
返回顶部
爆板流
网络编程 18,356 成员 64,161 内容