第2层(以太网层)使用ARP协议识别MAC地址。它会向整个网络发送一个问题:“哪个MAC地址有IP x?”这就是它识别目的MAC地址的方式。
但是,第3层(IP层)如何知道IP地址?它不会从传输层(第4层)传递给它。仅传递端口号。
我希望我是具体的。提前谢谢。
发布于 2012-01-03 00:27:55
有两个IP地址与数据包相关联,即发送IP (也称为源) IP和目的IP。
发送IP -发送IP是微不足道的,它是用于传输数据包的网络接口的配置参数。它是静态配置的,在现代网络中更常见的是通过DHCP配置。
目标IP -目标IP可能会稍微复杂一些,具体取决于目标计算机对于发送计算机是本地还是远程。在这种情况下,remote表示目标计算机与源计算机不在同一子网中。
对于远程目标,DNS服务器用于名称<->IP解析。域名系统是允许人类使用我们的力量,名称,如www.espn.com,而计算机可以使用他们的力量,位表示的IP地址,如10.5.0.1。DNS解析可以通过许多不同的方式进行配置,但基本上归结为检查本地缓存以查看是否存在先前的解析,如果不存在,则查询一个或多个DNS服务器来解析请求。
如果目标机器在同一子网上的本地,则ARP/RARP用于MAC<->IP转换。在创建新的ARP请求(从而使用网络带宽)之前,再次首先检查缓存,在本例中为ARP缓存。
我希望这能帮到你。
发布于 2014-10-20 16:42:44
每一层都为上一层提供了一个接口。layer4正是通过此接口发送目的IP地址layer3。layer5 (应用层)将其想要与之通信的目的IP地址发送到layer4,然后再将其发送到layer3。Layer3将此包含在IP数据包中,并将此数据包传递给layer2 (以及目的地的MAC地址等其他信息)。
这就像在调用函数时给出参数一样。假设layer3提供的接口是send_packet()
,layer4称之为它,可能是,像send_packet(srcIP, destIP)
发布于 2014-10-20 17:17:36
但是第3层(IP层)如何知道IP地址?它不会从传输层(第4层)传递给它。仅传递端口号。
这是不正确的。TCP或UDP都有明确的bind()
操作,它确实传递了IP地址。TCP还具有显式connect()
操作和隐式bind()
操作,前者也传递IP地址,后者根据单播IP路由表计算源IP地址。
https://stackoverflow.com/questions/8699256
复制相似问题