jessinio@niolaptop ~ $ arp
Address HWtype HWaddress Flags Mask Iface
192.168.10.1 ether 00:23:cd:4a:1c:ec C wlan0
192.168.10.105 ether 08:00:27:e9:70:63 C wlan0
ARP表罗列出的其实就是IP与MAC的对照表. 一看, IP还需要对照? 哪还要IP干嘛?, 其实:
在以太网中, 通信是使用MAC地址. 所以在局域网中, 知道MAC地址其实就可以机器之间通信了.
但是用户的程序都是使用基于IP的TCP或者是UDP, 所以, 单单可以数据通信没有意义(因为用户级程序无法明白和使用发来的信息)
在局域网通信中, 数据包还是和平时与广域网机器通信一样的处理过程, 只是链路级的目的地地址为IP对应的MAC, 而不是网关的地址(它也在arp表中)
这样, 信息包就被点对点地传输了.
这就是ARP表的用处: 找到IP对应的MAC, 直接发数据过去(当然还是IP包了)
那么route table有什么用处呢?
默认时(dhclient程序返回和修改的):
jessinio@niolaptop ~ $ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.10.0 * 255.255.255.0 U 0 0 0 wlan0
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.10.1 0.0.0.0 UG 0 0 0 wlan0
route表主要是起到数据流向的作用
默认的作用为: 给出了对待非局域网IP的数据方式 -- 发给网关(过程也是MAC点对点传输)
使用route表强制数据流向的例子:
1. 指定某(些)目的IP的数据都流向网关, 即使可以点对点.
2. 指定某目的地的IP数据包由指定的网卡发出
3. 当使用网卡的alias作用时, 就可以解释为: 使用指定源IP与某目的地IP通信( 其实与2是一样的, 只是网卡是虚拟出来的)
通过修改route表, 可以让同台机器的N张网卡"和谐"共处
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.