IP地址,MAC地址,计算机连接方式
Contents
IP地址,MAC地址,计算机连接方式
计算机之间的通信基础
-
需要得知对方的 IP地址
-
最终是根据MAC地址(网卡地址),输送数据到网卡,被网卡接收
- 如果网卡发现数据的目标MAC地址是自己,就会将数据传递给上一层进行处理
- 如果网卡发现数据的目标MAC地址不是自己,就会将数据丢弃,不会传递给上一层
-
假设 计算机0 知道计算机1 的 IP地址,此时1 ping 2,步骤如下 :
-
0 发送 ARP 广播,此广播是为了获取到 2 的MAC地址
- 0 发送 Broadcast 广播
- 1 接收到广播,发现 0 的目标IP地址是自己,此时 1 将 自己的MAC地址通过 ARP协议回传
- 0 接收到 1 的MAC 地址,可以通过ICMP协议发送数据包
-
然后通过 ICMP 协议发送数据.
-
计算机之间的连接方式
-
网线直连
- 需要用交叉线 (不是直通线)
-
同轴电缆
- 半双工通信
- 容易冲突
- 不安全
- 中间如果断了,所有都瘫了
-
集线器(Hub)
- 半双工通信
- 容易冲突
- 不安全
- 跟同轴电缆一样,没有智商
- 对比同轴电缆的好处:
- 中间一台机器断了,对其他机器通信没有影响
-
网桥(Bridge)
- 能够通过自学习得知每个接口那侧的MAC地址
- 从而得到隔绝冲突域的作用
- 能够通过自学习得知每个接口那侧的MAC地址
-
交换机(Switch)
- 相当于多个接口的网桥, 集线器和网桥结合.
- 全双工通信
- 比集线器安全
- 是局域网的最终方案
- 但是如果跨网段,需要使用路由器Router
-
路由器(Router)
- 网线直连,同轴电缆,集线器,网桥,交换机
- 连接的设备必须在同一网段
- 连接的设备必须处于同一广播域
- 路由器
- 可以在不同网段之间转发数据
- 隔绝广播域
- 主机发送数据之前,首先会判断目标主机的IP地址跟他是否在同一个网段
- 同一个网段
- 通过交换机,集线器等 发送ARP广播
- 不在同一个网段
- 通过路由器转发数据
- 同一个网段
- 网线直连,同轴电缆,集线器,网桥,交换机
网关
- 跨网段发送数据,需要用网关,一个网关连接一个网段
MAC地址
- 每个网卡都有一个6字节(48bit) 的 MAC 地址(Media Access Control Address)
- 全球唯一,固化在网卡的ROM中,由IEEE802标准规定
- 前3个字节: OUI (Orgnizationally Unnique Identifier), 组织唯一标识符
- 由 IEEE 的注册管理机构分配给厂商
- 后3个字节: 网络接口标识符
- 由厂商自行分配
- 前3个字节: OUI (Orgnizationally Unnique Identifier), 组织唯一标识符
MAC地址的表示格式
- Windows
- 50-55-82-0A-8C-6D
- Linux, Android, Mac, iOS
- 40:55:82:0A:8C:6D
- Packet tracer
- 4055.820A.8C6D
- 当48位全为1时,代表广播地址
- FF-FF-FF-FF-FF-FF
MAC地址的获取
- 当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址
- 获取成功后,会缓存IP地址,MAC地址的映射信息,俗称ARP缓存
- 通过ARP广播获取的MAC地址,属于动态缓存
- 存储时间比较短(默认是2分钟),过期自动删除
IP地址
- IP地址(Internet Protocol Address) : 互联网上的每一个主机都有一个IP地址
- 最初是 IPv4地址, 32bit(4字节),2019年11月25日,全球的IP地址已经用完
- 后面推出了IPv6版本,128bit(16字节)
IP地址的组成
- IP地址由两部分组成 : 网路标识(网络ID),主机标识(主机ID)
- 通过子网掩码(subnet mask) 可以得知网络ID,主机ID
- 主机所在的网段 = 子网掩码 & IP地址
- 计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段
- 同一网段 : 不需要由路由器转发
- 不同网段 : 交由路由器进行转发
IP地址的分类
- A类地址 : 默认子网掩码是 255.0.0.0
- 8bit 网络ID 0开头
- 24bit 主机ID
- B类地址 : 默认子网掩码是 255.255.0.0
- 16bit 网络ID 10开头
- 16bit 主机ID
- C类地址 :默认子网掩码是 255.255.255.0
- 24bit 网络ID 110开头
- 8bbit 主机ID
- D类地址 : 以1110开头,多播地址
- E类地址 : 以1111开头,保留为今后使用
- 只有A/B/C类地址才能分配给主机
- 主机ID为全0,表示主机所在网段
- 主机ID为全1,表示主机所有网段的全部主机(广播)
子网掩码的CIDR表示方法
- CIDR(Classless Inter-Domain Routing) : 无类别域间路由。
- 子网掩码的CIDR表示方法
- 123.168.1.100/24 代表子网掩码有24个1, 也就是 255.255.255.0
- 123.210.100.200/16 代表子网掩码有16个1,也就是 255.255.0.0
为什么要进行子网划分?
- 如果需要让200台主机在同一个网段内,可以分配一个C类网段,比如192.168.1.0/24
- 共254个可用IP地址,这种情况并不算浪分
- 如果需要500台主机在同一个网段内,那就分配一个B类网段,比如 192.100.0.0/16
- 共65534 个 可用的IP地址:191.100.0.1 ~ 191.100.255.254
- 多出 650034 个空闲的IP地址,这种情况属于极大的资源浪费
子网划分
- 借用主机位作为子网位,划分出多个子网
- 可以分为
- 等长子网划分 : 将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的
- 变长子网话费 : 每个子网的可用IP地址数量可以是不一样的
题目
这两个机器可以正常通信吗?
- 根据IP地址 和 子网掩码计算 网段
- 192.168.0.10/24 –> 192.168.0.0
- 192.168.10.10/16 –> 192.168.0.0
- 计算出网段,两台机器是一样的,所以理论上应该是可以通信的
- 但是通过Packet Tracer测试后,发现不通
为什么不通呢?
- 因为计算机0 在给 计算机1 发消息时, 只知道 1 的IP,不知道 1 的 子网掩码
- 所以计算机0 在判断 1是否跟自己在同一网段时,是用 1 的IP地址,和自己的子网掩码计算网段
- 所以计算机0计算出的 1 的网段:
- 192.168.10.10/24 –> 192.168.10.0
- 跟0 不在同一网段
- 不在同一网段,没有路由器不能通信
超网
- 超网: 跟子网反过来,它是将多个连续的网段合并成一个更大的网段
思考
- 192.168.0.255/23这个 IP地址,可以分配给计算机使用吗?
- 回答这个问题之前,先看另一个问题,192.168.0.255/24可以分配个计算机使用吗?
- 不可以,全1的地址为广播地址
- 192.168.0.255/23可以分配给计算机使用,因为主机位不是全为1,后边8位为1,前边有一位0.
- 192.168.1.255/23 可以分配给计算机使用吗?
- 不可以,因为后边主机位都为1(后边9位), 为广播地址
判断一个网段是子网还是超网
- 一
- 看看该网段的类型,是A类网络,B类网络,C类网络?
- 默认情况下A类子网掩码的位数是8,B类子网的掩码的位数是16,C类子网的掩码的位数是24
- 二
- 如果该网段的子网掩码位数比默认子网掩码多,就是子网
- 如果该网段的子网掩码位数比默认子网掩码少,就是超网
- 例
- 25.100.00.0/16 就是一个A类子网
- 200.100.0.0/16 就是一个C类超网
路由
- 在不同网段之间转发数据,需要有路由器的支持
- 默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态路由,动态路由告诉它
- 静态路由
- 管理员手动添加路由信息
- 适用于小规模网络
- 动态路由
- 路由器通过路由选择协议(RIP,OSPF)自动获取路由信息
- 适用于大规模网路
- 静态路由
练习
两路由器,四台机器之间通信
四路由四主机通信
Author 飞熊
LastMod Oct 22