繁体   English   中英

局域网内的发送者的MAC,接收者的MAC和路由器MAC:java jpcap的测试

[英]Sender's MAC, Receiver's MAC and Routers MAC - within a LAN: a testing by java jpcap

这些天来,我正在“自我学习”有关包括TCP,UDP和其他协议在内的分组交换网络。 我已经确认无法将发送方的MAC地址直接发送给接收方,因为数据包往往会通过多个路由器(在其中是WAN)传输。

但是在局域网中,我假设情况类似,让我们假设有一个路由器用于两个终端,它们正在联系一个简单的“ TCP chat”(用Java设计)。 (我不会提供它的代码)。 我在Java中设计了一个简单的“ packet sniffer”(通过使用jpcap),它从每个“ packet header”中提取MAC地址,并将它们放在文本文件中,如下所示...

Destination MAC: ##:##:##:##:##:##           /*My Terminal's MAC*/
Source MAC: ##:##:##:##:##:##        /*Sender's Terminal's MAC*/

好。? 现在...我的怀疑是...在以上数据中,我发现路由器的MAC不包括在内...! 当我的终端是具有该数据包嗅探器的接收方时,因此我可以直接在上方看到发送方的MAC地址。

但是我的观点是……在发送方和接收方之间有一个路由器(在局域网中)。 那么,为什么上面的代码没有显示路由器的MAC,而不显示发送者的MAC ..?

但是,当我通过浏览器连接到Google时执行“数据包嗅探器”时,发现上面的数据如下所示...

Destination MAC:  ##:##:##:##:##:##  /* My LAN-Router's MAC */
Source MAC: ##:##:##:##:##:##  /* My Terminal's MAC */

在这里,我可以看到我的局域网路由器的MAC ...!

任何人都可以解释为什么当我通过TCP聊天与局域网中的对等方联系时为什么看不到局域网路由器的MAC ...?

提前致谢..!

Web浏览和聊天连接的方式(通常)有所不同。 当您连接到Google时,您没有直接连接到Google的IP地址(尽管您也可以这样做),但是可能是www.google.com -它需要DNS来确定HTTP请求应为的IP地址。送至。 使用TCP聊天时,您将直接转到其他人的机器上的TCP聊天。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM