OSI第二层网络编程

7
我最近学习了一些网络课程(CCNA 1到4),因此我理解大部分理论知识。现在我想把这些知识应用到一些小型应用程序中去。
我已经阅读了一些MSDN上的文章,但它们似乎只涵盖第3或第4层及以上的网络编程,如果我没记错的话。我正在寻找一些简单的例子,例如如何处理主机之间的第二层连接(即帧)或者甚至只是如何执行以太网广播。
我有一点C#和C++的经验,所以使用这两种语言的示例将非常棒。
谢谢。

2
“对于低级编程来说,仅有一点经验”可能不是一个很好的基础…… - Marc Gravell
3个回答

5

针对Windows平台,可以考虑使用WinPcap提供的底层网络访问。开发者包中已经包含了一些简单示例以帮助您入门。

另外,在Linux上还有packet sockets可用。


5
您可以使用eEx网络库编写小型应用程序(我在CCNA期间也做过同样的事情)。
这是一个易于使用和面向对象的.Net编程库,可让您进入第2层并通过WinPcap发送自定义帧。实现了Ethernet、ARP、IP、UDP、TCP和RIP等帧类型,据我所知,这些协议在CCNA期间发生。
C#教程可在此处找到,如果您想深入了解某些内容,例如地址解析,您始终可以查看源代码,因为该库是开源的。

1

很有可能,你可以在GNU/Linux系统上学习低级网络工具,或者研究内核TCP、UDP或IP层。但是例如,进行以太网广播是非常低级的,也不是很有用的。而真实的例子(通常编写在C语言中,而不是C++)可能并不简单,因为它们必须处理错误处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接