【问题标题】:OSI Layer 2 Network ProgrammingOSI 第 2 层网络编程
【发布时间】:2011-10-16 09:05:29
【问题描述】:

我最近参加了一些网络课程(CCNA 1 到 4),所以我了解其中的大部分理论。我现在想做的就是将我所拥有的知识以一些小应用程序的形式付诸实践。

我一直在阅读 MSDN 上有关如何执行此操作的一些文章,但它们似乎只涵盖第 3 层或第 4 层及更高层的网络编程,IIRC。我正在寻找一些简单示例,说明如何处理主机之间的第二层连接(即成帧),甚至只是一些简单的例子,例如如何执行以太网广播。

我对 C# 和 C++ 有一点经验,因此使用这两种语言的示例会很棒。

谢谢。

【问题讨论】:

  • “一点经验”可能不是低级编程的一个很好的基础......

标签: c# c++ network-programming ethernet data-link-layer


【解决方案1】:

对于 Windows,请查看WinPcap,它提供了低级网络访问。开发人员包已经包含一些简单的示例来帮助您入门。

顺便说一句,在 Linux 上有 packet sockets

【讨论】:

    【解决方案2】:

    您可以使用eEx Network Library 编写小应用程序(我在 CCNA 期间也做过同样的事情)。

    它是一个易于使用且面向对象的 .Net 编程库,可让您深入到第 2 层并通过 WinPcap 发送自定义帧。

    实现了以太网、ARP、IP、UDP、TCP 和 RIP 等帧类型,据我所知,这些是在 CCNA 期间发生的协议。

    C# 教程可在here 获得,如果您想深入了解某些内容,例如地址解析,您可以随时查看源代码,因为该库是开源的。

    【讨论】:

      【解决方案3】:

      很可能,您可以研究 GNU/Linux 系统上的低级网络实用程序,或者还可以研究内核 TCP 或 UDP 或 IP 层。但是例如,进行以太网广播是非常低级的事情,而且不是很有用。而真实的例子(通常是用 C 而不是 C++ 编写的)可能并不简单,因为它们必须处理错误处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        • 2017-06-19
        • 2016-11-29
        相关资源
        最近更新 更多