物理层数据包的收发实现?

宇宙379 2011-09-19 06:36:07
本人要做一个软件,接收FPGA通过网线收发的数据,好像不能用tcp/ip 协议的socket通信。(FPGA那边没有OS,没有协议实现)。
要直接收发物理层的包。请问物理层包怎样收发的?用VC怎么实现?譬如抓包软件WinPcap等是怎么实现的?
...全文
856 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenyi0106 2011-09-20
  • 打赏
  • 举报
回复
如果你要模拟网络协议,让接受方能够接受,那么你还需要自己实现TCP/IP协议,将这些协议添加到你的发送包中,对方才能够收到。
这个难度相当于自己实现一个TCP/IP协议驱动(虽然有现成的RFC文档和部分现成的代码),实现起来可不简单呀!有条件的话,还是最好加个linux内核吧,这样协议这块你就不用考虑了
shenyi0106 2011-09-20
  • 打赏
  • 举报
回复
没有OS,socket,WinPcap都是扯淡,这些都是建立在OS基础上的(最起码是建立在NDIS驱动的基础上的)
物理层收发,你看看你的硬件有没有提供什么缓冲区和寄存器什么的,一般硬件平台的收发,没有OS支持的话,都是通过硬件的寄存器来控制收发操作的(最起码我以前看过的51系列是这样的)
宇宙379 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 stallion5632 的回复:]
http://blog.csdn.net/stallion5632/article/details/6689265
[/Quote]

谢谢,但是你那文章好像讲的不太详细啊,我配置了半天的环境还是出错。
宇宙379 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 agoago_2009 的回复:]
在创建socket时,不是用 SOCK_DGRAM 或者 SOCK_STREAM ,而是用 SOCK_RAW ,自己去解析数据包
[/Quote]
不是吧,建立Socket要对方的IP和端口啊,他那边就一个物理地址。
宇宙379 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shenyi0106 的回复:]
如果你要模拟网络协议,让接受方能够接受,那么你还需要自己实现TCP/IP协议,将这些协议添加到你的发送包中,对方才能够收到。
这个难度相当于自己实现一个TCP/IP协议驱动(虽然有现成的RFC文档和部分现成的代码),实现起来可不简单呀!有条件的话,还是最好加个linux内核吧,这样协议这块你就不用考虑了
[/Quote]
不会吧,这么麻烦?我用WinPcap为什么不行呢?他那边实现了网卡驱动吧。
那边是一块FPGA芯片连接一个网络芯片,我在pc这边收发。请教怎么做?
橘色的喵 2011-09-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/stallion5632/article/details/6689265
Gloveing 2011-09-19
  • 打赏
  • 举报
回复
在创建socket时,不是用 SOCK_DGRAM 或者 SOCK_STREAM ,而是用 SOCK_RAW ,自己去解析数据包

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧