[英]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.