计算机之间的通信
-
需要得知对方的 IP 地址,最终是根据 MAC(网卡) 地址,输送数据到网卡,被网卡接收,如果网卡发现数据的目标 MAC 地址是自己,就会将数据传递给上一层进行处理。如果网卡发现数据的目标地址不是自己,就会将数据丢弃,不会传递给上一层进行处理
-
ARP:地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
-
在我们进行数据传递的时候,有时候只知道目标的 ip 并不知道目标的 mac 地址,这个时候数据是怎么传递的呢? 这个时候其实就是源主机将一个包含目标 ip 地址的 ARP 请求广播至局域网的所有主机上,所有主机都验证目标 ip 是否是自己,如果不是自己就忽略,如果是自己,处理并返回消息,源主机收到返回消息后将该 ip 地址和 MAC 地址存入本机 ARP 缓存中并保留一定时间
计算机之间的联机方式
网线直连
- 用于两台计算机之间的连接,需要用交叉线(不是直通线)
同轴电缆
- 同轴电缆由终结电阻、T 型连接器、电缆组成。
- 其特点是半双工通信(A 在发信号时,别的主机就不能再发),容易冲突,不安全,中间如果有电缆断了,整个都瘫痪了
-
终结电阻是防止外部信号干扰
集线器(Hub)
- 其特点是半双工通信(A 在发送信号的时候,别的主机不能发),容易冲突,不安全,
- 相比于同轴电缆, 一部分断了不会导致全部瘫痪
- 集线器可以再连集线器
网桥
- 网桥有两个接口
- 能够通过自己学习得知每个接口那侧的 MAC 地址,从而起到隔绝冲突域的作用,但其只能隔绝左右接口冲突,左接口或右接口内部的冲突没法隔绝
如上图所示如果计算机 6 要给计算机 7 发送信息是怎么执行的呢?
首先由于计算机 6 不知道计算机 7 的 MAC 地址,就会发一个 ARP 广播,这个广播会广播至计算机 7、8 、集线器 1 ,并通过集线器 1 广播至网桥 0,此时网桥会将计算机6 的 MAC 地址保存在左接口中,由于此时的广播没有 MAC 地址,所以网桥不也不知道计算机 7 是在自己的左边接口还是右边接口,所以会将广播继续广播出去,广播通过集线器 0 广播至计算机 1、计算机 2、计算机 3; 计算式 7 在收到广播后,发现ip 是自己的,然后就接收并返回消息,这个时候消息会经集线器 1 广播至网桥 0,网桥0 就会将计算机 7 的 MAC 地址保存在左接口中;当计算机 6 再向计算机 7 发送数据时,广播经过网桥 0 是就不会再向网桥 0 的右边进行传递,因为其已经知道计算机 7 在其左边接口中。
交换机
- 通常都有几个到几十个端口,实质上就是一个多端口的网桥
- 交换机的每个端口都直接与主机相连,并且一般都工作在全双工方式
- 每个端口如果有大量数据发送,则端口会先将收到的等待发送的数据存储到寄存器中,在轮到发送时再发送出去
- 比集线器安全:集线器会将数据发送给所有局域网的主机,这样的话别人就可以抓包数据
路由器
-
如果很多个主机(比如全球所有主机)都用交换机相连会怎么样?
同一时间会有很多主机都在发 ARP 广播,产生广播风暴。 -
网线直连、同轴电缆、集线器、网桥、交换机都需要连接的设备必须在同一网段, 连接的设备处在同一广播域
-
路由器可以在不同网段之间转发数据,隔绝广播域,也就是一个网段的数据不能通过路由器发送到另一个网段的广播域。那路由器是怎么实现跨网段传输数据的呢,这里路由器用的是网关。
-
为什么相同的网段的主机之间不能通过路由器传递数据, 当主机发送数据是会先分析目标 ip ,如果发现是同一个网段,直接发个 ARP 广播找到这个主机就好了,如果发现不是同一个网段,就会先找到网关,经路由器向另一个网关转发数据。如果相同网段的主机之间通过路由器连接,当 A 想发信息给 B 的时候,发现是同一网段,所以根本不会去找网关,也就不会经过路由器转发了,所以B 收不到 A 的信息。
当计算机 2 想发信息给计算机 3 时,首先会发一个 ARP 广播,这个广播可以被计算机 3、交换机 1 和路由器收到,但是该广播不能通过路由器传到交换机 2 、计算机 4 、计算机 5,因为他们不再统一网段.。当计算机 2 想给计算机 5 发信息时,首先会发一个 ARP 广播,这个广播也是可以被计算机 3、交换机 1、路由器的 Fa0/0 网关收到,因为他们都在同一个网段, 路由器 1 收到广播后会分析目标 ip 的网关,发现是 Fa1/0 的,然后将数据转发给 Fa1/0, 由 Fa1/0 向它所属的网段发送广播,这个广播就可以被计算机 5 收到了,因为它们属于同一网段。
路由
- 在不同网段之间转发数据需要有路由器的支持
- 默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由、动态路由告诉它
- 静态路由: 由管理员手动添加路由信息, 适用于小规模网络
- 动态路由: 路由器通过路由选择协议(比如 RIP、OSPF) 自动获取路由信息, 适用于大规模网路
- 默认路由是 0.0.0.0, 在不知道下一跳是什么的时候就会去到默认路由
- 特定 IP 路由,当子网掩码是 255.255.255.255 的时候就是特定 IP 路由
- 汇总路由: 可以给所有相同网络端的主机指定统一的下一跳
- 比如: 192.168.2.34 和 192.168.4.78 可以设置 192.168.0.0 的下一跳是 194.170.1.2, 这样在访问192.168.2.34 和 192.168.4.78 就会找到194.170.1.2网关
- 再比如: 192.168.2.34 和 192.168.4.78 可以设置 192. 0.0.0 的下一跳是 194.170.1.2, 这样在访问192.168.2.34 和 192.168.4.78 也会找到194.170.1.2网关
- 当两台主机A 和 B通过路由器相连时, 为什么第一次在 A主机 ping B 主机的 ip 地址会超时,而第一次之后都正常?
这是因为A 第一 ping B 时,数据包经过路由器时,由于路由器不知道 B 的MAC 地址,会将本次数据丢弃, 丢弃的同时也会发送广播查找 B 的 MAC 地址,查找到之后将 MAC 地址和 ip 缓存起来,下次再收到 A 向 B 的数据时,有了 B IP 和 MAC 的缓存,就能正常通过了
网友评论