ethernet 基础知识

1.  Promiscuous mode

一般而言,网卡有几种接收数据帧的状态,如unicast,broadcast,multicast,promiscuous等,unicast是 指网卡在工作时接收目的地址是本机硬件地址的数据帧。Broadcast是指接收所有类型为广播报文的数据帧。Multicast是指接收特定的组播报 文。Promiscuous则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查,全部接收的工作模式

对于广播式Hub来说,假如A、B、C接在同一个Hub上,当A给C发送包时,Hub将广播这个包,所以B实际上也可以看到这个包,但一般情况下它会将这个发给C的包丢弃,但如果处于混杂 模式 ,B的网卡驱动程序就不会丢弃这个包,而是把这个包送给上层的驱动程序/应用程序。

对于交换式Hub来说,B在任何情况下都看不到A发给C的包。



2 Wake-on LAN

远程唤醒,是现在很多网卡都支持的功能。而远程唤醒的实现,主要是向目标主机发送特殊格式的数据包,是AMD公司制作的Magic Packedt这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。Magic Packet格式虽然只是AMD公司开发推广的技术,并非世界公认的标准,但是仍然受到很多网卡制造商的支持,因此 许多具有网络唤醒功能的网卡都能与之兼容。
  要实现远程唤醒,还需要硬件的设置:
  主板和网卡必须都支持远程唤醒功能。一般目前的主板都支持这个功能,支持的主板上通常都有一个专门的3芯插座,以便在关机时为网卡供电。但
并 非所有的网卡都支持该功能(特别是一些价格较便宜的低档网卡),要判断网卡是否支持远程唤醒功能的方法很简单,支持远程唤醒的网卡上都有一个3针的WOL 接口和一条3芯的远程唤醒电缆,通过判断网卡是否带有WOL接口即可(有些较新的网卡可能没有WOL接口也能支持远程唤醒。这是因为现在流行的主板支持 PCI2.2标准,而PCI 2.2标准不需要通过专门的WOL接口为网卡供电,允许主板直接通过PCI插槽向网卡提供Standby电源)。


软件的实现方面,其实就是通过socket向目标的机器发送魔术包了,魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址。程序中我们可以采用UDP方式广播发送,不需要端口号,只要知道对方机器的MAC地址即可 :)  


你可能感兴趣的:(c,工作,socket,网络,制造)