好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

多台电脑共享MAC和IP地址.doc

4页
  • 卖家[上传人]:宝路
  • 文档编号:8378248
  • 上传时间:2017-09-27
  • 文档格式:DOC
  • 文档大小:29KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 作者:江西新华电脑学院 2017-8-16多台电脑共享 MAC 和 IP 地址最近在论坛上看到很多人都在都在怀疑把两台电脑或多台电脑的 MAC改成一样会不会引起 IP 冲突或不能上网其实是可以的,你完全可以把两台电脑的 IP 和 MAC 改成一样,不但可以上网而且还没 IP 冲突这种方法不但可以突破路由封锁用在 ADSL 共享上网,而且还可以用在 IEEE802.1X 认证上网的环境中,但是前提必须要用相同的账号来拨号上网(前提认证服务器没设验证账号的重复性) ,我的机子是通过学校校园网接入 internet 的,客户端采用 802.1x 认证客户端软件“STAR Supplicant 拨号软件 ”来拨号上网,在我们学校里可以将两台机子的 IP 和MAC 改成一样然后用相同的一个账号来达到共享上网的目的,不过在我们学校只可以在同一个宿舍的两台机子才可以共享上网,因为我们学校的服务器不单只验证账号、ip、MAC 而且还验证接入服务器 IP(NAS IP) ,和接入服务器端口(NAS port),不同的宿舍接在学校交换机不同的端口,所以只限于同一个宿舍用这种法共享上网至于为什么不会引起 IP 冲突而且还能上网,这是因为 ARP 工作的缺陷,系统之所以会发现网上有相的 IP 的而提示“IP 冲突” ,是因为系统在启动时,TCP/IP 中的 ARP 会广播一个免费 ARP(free arp)请求包到网段上,这个ARP(free arp)包包含自己的 IP 和 MAC,如果网段上有机子回应了这个包,这台发广播的机子就会认为局域网有别的机子使用和自己相同的 IP,例如:PCA 和 PCB 的 IP 和 MAC 完全一样, PCA 的系统启动时会广播一个包含自己 IP 和 MAC 的免费 ARP(free arp)请求包到网段上,如果 PCB回应了这个请求,PCA 会认为自己的 IP 和网络上的 IP 有冲突并发出提示(这就是为什么 IP 冲突一般发生系统刚启动完成时) ,问题是 PCB 根本不会回应这个请求包,这是因为这个请求包的 IP 和 MAC 和 PCB 自己的完全一样,而作者:江西新华电脑学院 2017-8-16PCB 会认为是自己发的包,所以不会回应,既然不会回应自然不会发生 IP 冲突了。

      好了,让我来解释下一个问题,就是两台机子的 IP 和 MAC 一样到底会不会导致不能上网:既然可以,那么网络上的硬件设备是怎样区分这些数据到底是哪台机的呢??大家都知道局域网内是用硬件地址来通讯的,局域网的二层设备(如交换机)维护着一张地址表,地址表记录着本设备每个端口所对应的MAC(注:不是端口的 MAC,而是端口所连设备的 MAC) ,设备要经过地址学习状态才能知道这些端口所对应的 MAC,当一个帧经过设备的某个端口时,设备会检查该帧源地址和目的地址,然后再对照自己的地址表,看地址表中是否存在该源地址的对应项,若不存在则端口会变为“地址学习状态” ,将该地址保存在地址表中组成一个新的表项,如果 PCA 和 PCB 都连在同一个交换机上,则交换机经过“地址学习状态”后,地址表中存在两个相同的地址项,不过它们所对应的端口是不同的,当交换机在外部接收到一个目的地址为该地址(PCA 和 PCB 相同的 MAC 地址)的帧时,则会检查地址表,检查地址表后会发现存在两个相同地址的表项,于是交换机会将该帧转发到这两个表项所对应的端口,( 至于交换机是用组播的方式还是说用一个帧发两遍的方式转发给这两个端口我就不太清楚了)。

      路由器也一样,不同是的路由器的地址表是路由表,存放的是 IP 而不是硬件地址连接这两个端口的 PCA 和 PCB 都会收到同样的帧,既然会收到同样的帧,那么计算机怎样才知道哪些帧才是自己想要的呢?这取决于工作在TCP/ip 上层协议,虽然网卡是接收了这个帧,但是上层的协议进行进一步的分用,也可以说成是过滤,当 TCP/IP 的网络接口层(也叫链路层) 收到一个帧,作者:江西新华电脑学院 2017-8-16会检查帧头中的帧类型,如果是 ARP 类型的就交给 ARP 协议去处理,如果是RARP 类型就会交给 RARP 协议处理,如果是 IP 类型会去掉帧头并把这个帧传给上一层(即网络层来处理) ,网络层会根据包头(去掉帧头就叫 IP 包了)中的协议类型来分用,如是 TCMP 类型就交给 ICMP 协议处理,如果是 IGMP类型就交给 IGMP 协议处理,如果是 TCP 或 UDP 就把包头去掉并交给上一层(即传输层)来处理 ,去掉 IP 包头后就叫做报文分段了(传输层的单位) ,同样传输层也会对报文分段的头部进行检查从而进行进一步的分用,如果是TCP 类型的交给 TCP 协议处理,如果是 UDP 类型就交给 UDP 协议处理,TCP 或 UDP 会根据报文分段的头部中的“ 目的端口号”来交给应用层(交给应用层前会把报文分段的头部去掉) ,然后应用层的用户进程会根据该“端口号”来决是否接收这个数据,例如 某个进程打开了 UDP 1324 这个端口,传输层的 UDP 协议会把所有接收到的且“ 目的端口号”为 1324 的报文分段交给 的这个进程, 这样就完成接收数据的整个过程。

      虽然两台电脑都会接收到不是属于自己的数据帧,但是在把帧交给上层协议片理时有可能会被丢充,就如应用层的 进程不会接到除 “目的端口号”为 1324 以外的其它数据包,因为这些数据在应用层前已经被丢弃我只是粗略的介绍了一下 TCP/IP 是如何判段该数据是否本机所要接所的,限于篇覆,不能写出整个过程,有意者请参考 W.Richard Stevens 所著的《TCP/IP 详解》 ,看完这套书你就会明白到 TCP/IP 的工作原理,同时也会明白到这个原理虽然把多台电脑的 IP 和 MAC 可以共享上网,但是网速变慢而且会有一定的影响原因有三个一、既然存在两个 MAC 相同的电脑,局域网的设备会把“目的地址”为该 MAC 的帧转发给这两台电脑,可想而之,一个数据帧要发两遍,一百台作者:江西新华电脑学院 2017-8-16相同 MAC 的电脑就会发一百遍,这样会损耗了网络设备的资原,从而影响网络的性能.二、TCP/IP 内核处理速度受到一定的影响,因为连那些不是自己的数据帧都会接收,既然接收了数据帧,TCP/IP 内核就会进一步的对其进行处理,甚至有一些数据直到应用层才被丢弃,这样会影响 TCP/IP 内核处理速度。

      三、假如 PCA 和 PCB 同样都开了 的某个进程,而且各自所打开的端口都是一样的,虽然 客户端的进程打开的端口是随机的,但不能代表PCA 和 PCB 的 进程不会打相同的端口,机率虽小,但也有可能这样TCP/IP 内核会怎样分辩这些数据是否属于自己的??这正是我所困惑的,希望高手能够指点是或许最终由 的进程来对数据中的某些信息进行判断从而决定这些数据是否自己的吧,不知道我的假想是否正确????。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.