IP协议和以太网

IP 协议

IP 协议是网络层的协议。
网络层负责地址管理和路由选择,主要负责网络中两个节点之间的路径规划。

IP 协议报头格式
在这里插入图片描述


IP 地址

IP地址就是用来标识一台主机在网络中的位置。

格式:

IP地址是一个32位的二进制数,4个字节,通过三个点隔开。

IP地址通常用点分十进制来表示,将每个字节转为10进制。

例如: 11000000.10101000.00000101.00000110

用点分十进制表示: 192.168.5.6


IP 组成:

IP 地址分为两个部分,网络号和主机号

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识。
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

网络号,标识一个网段(局域网),同一个局域网中的设备,网络号一样,主机号不一样。
相邻的两个局域网的网络号不能重复。


如何划分网络号和主机号

  1. IP 地址分类
    在这里插入图片描述
    前缀用来区分类别,每个类别网络号和主机号长度都是固定的。
范围适用网络网络数量主机最大连接数
0.0.0.0 ~ 127.255.255.255大型网络12616777214 (2^24 - 2)
128.0.0.0 ~ 191.255.255.255中型网络约16000个65534 (2^16-2)
192.0.0.0 ~ 223.255.255.255小型网络254 (2^8-2)
224.0.0.0 ~ 239.255.255.255
240.0.0.0 ~ 247.255.255.255

这个分类方式不够灵活,会造成大量IP地址的浪费。例如,A类地址,可以连接的主机数为 16777214,实际上一个网段很少有这么多的设备,就算是B类地址,数量也有 65,534 个,而C类地址,只有254个地址,不够用。这个方式已经淘汰了,现在是用子网掩码的方式划分。

  1. 子网掩码

子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1
的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
左侧都是 1,右侧都是 0,不会出现混合的情况。
在这里插入图片描述
子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24,表示 IP 地址前24位都是网络号。


特殊的 IP 地址

  1. 主机号全为 0 的 IP 地址,就是网络号,标识一个局域网

  2. 主机号全为 1 的 IP 地址,是广播地址。
    向这个局域网发送UDP数据报(TCP不支持广播),这个数据报会被转发给这个局域网的所有主机

  3. 127.* 的 IP 地址是环回 IP,通常是 127.0.0.1 。
    用于本机环回测试(本机与本机的网络通信),不会走网络的方式传输,速度更快

  4. 主机号为 1 的 IP 地址,一般作为网关IP(不强制,习惯上的行为),192.168.124.1 。


地址管理

IP 地址又来标识网络设备在网络中的位置。
32位的二进制数,IP 地址数量为 2^32, 大约 43 亿左右,这对全世界的网络设备来说,是不够用的。

如何解决 IP 地址不够用呢?

动态分配IP

主机需要上网才分配 IP,提高了 IP 地址的利用率,但是这个方案效果有限,不能完全解决问题。

NAT机制

主要依赖路由器的 NAT 功能。

将所有 IP 地址分为两大类:

内网IP:

10.*
172.16.* ~ 172.31.*
192.168.*

外网IP:其他 IP 地址

要求外网IP唯一,内网 IP 在不同的局域网中是可以重复的。

NAT 机制下如何通信:

外网设备 ==> 外网设备,不需要NAT,可以直接通信。

内网设备 ==> 内网设备,不允许通信。

外网设备 ==> 内网设备,不允许通信。

内网设备 ==> 外网设备,内网设备对应的路由器,触发 NAT 机制进行 源IP 替换,将数据包的 IP 替换为路由器的 IP(外网IP)。

这样,就能用一个外网,代表一个内网(局域网)中的所有设备,大大提高IP的利用率。


IPv6

上面说的 动态分配IP 和 NAT,只提高 IP 地址的利用率。而 IPv6 从根本上解决 IP 地址不够的问题。

IPv4,是传统的 IP 协议,用 4 个字节标识 IP 地址,能表示 IP 地址数量为 2^32。
IPv6,使用 16 个字节,128 位二进制标识 IP 地址。能表示 IP 地址数量为 2^128。
IPv6 能表示的 IP 地址数量 是 IPv4 能表示 IP 地址数量的 4次方,这个数量根本用不完。

但是 IPv6 并没有真正的启用,现在基本上还是用 IPv4。

要想使用 IPv6,需要升级硬件设备(路由器)。升级硬件设备成本比较高,而且IPv4 又不是不能用,动态分配IP + NAT 就能解决IP 地址不够用的问题。
但是我国 IPv6 的普及非常高,现在我们绝大部分的路由器都支持 IPv6,但是 IPv6 默认都是关闭的。
我国大力推进 IPv6的普及,是由于 IPv4 地址有限,而 IPv4 的地址分配是美国人负责的,我们要防患于未然,避免被卡脖子。


路由选择

网络上 主机A 给 主机B 传输数据,有很多条路径。

网络环境非常复杂,路由器无法将整个网络环境记录下来,路由器只能记录周围的网络设备,通过路由表这样的数据结构来记录。

所以 主机A 给 主机B 传输数据,无法直接确定一条路径,数据的转发过程,像问路一样,逐渐向 主机B 靠近,如果当前路由器不知道主机B 的位置,就会指出一条默认路径(路由表中的 “下一跳表项”),指向更上级的路由器,越上级的路由器,能记录的地址越多。


以太网

以太网既包含了数据链路层的内容,也包含了一些物理层的内容。

数据链路层主要关注两个相邻节点之间的数据传输。

以太网数据帧格式:

在这里插入图片描述

  • 目的地址和源地址,指的是 MAC 地址。
  • CRC 是校验和
  • 类型,0800 是普通类型,用于数据传输,0806和8035 是特殊类型。

MAC 地址

MAC 地址,用于标识网络设备的硬件物理地址。

  • MAC地址,6个字节,比4个字节大6w多倍。

  • 虽然 IPv4 不够用了,但是 MAC 地址还够用,MAC 地址与网卡绑定,每个网卡都有唯一的 MAC 地址,网卡在出厂时就写死了。

  • 由于 MAC 地址是唯一的,并且写死与网卡绑定,所以 MAC 地址可以作为网络上身份标识的一种有效技术手段。


MTU

MTU 是数据链路层数据帧,载荷的最大长度。

  • 以太网载荷的最小 46 字节,不够要在后面补填充位,最大是 1500 字节。
  • 不同的数据链路层,对应不同的物理层(硬件设备),传输的上限不同,以太网对应的硬件设备是网线。
  • 不同的数据链路层协议,MTU也不相同。

这是硬件限制。

如果传输的数据超过了 MTU,就会在网络层(IP 协议)将 IP 数据包进行分包。

分包和组包

这里分包和组包是 IP 协议完成的。

IP 协议报头中,有以下这几个字段,来完成分包 和 组包的工作。

在这里插入图片描述

  • 将一个 IP 数据报拆成多个小报,它们的 标识 都是相同的
  • 片偏移 表示这些小报的先后顺序。
  • 3位标志位,第一位保留,第二位表示是否禁止拆包,如果禁止而且超过MTU,这个包会被丢弃,第三位是结束标志,最后一个包是1,其他的包为0。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值