目录
IP 地址分为两类:IPV4 和 IPV6;IP地址用于标识网络设备。网络中的设备都有IP地址,并通过IP地址进行网络的连接。
IP 地址是逻辑地址,可以手动配置和修改。
IPV4 使用32位二进制表示 IP 地址。通常采用点分十进制表示法来进行表示:每8位为一组,共4组,每组之间使用 “.” 进行分隔。
每一组的取整范围都是 0~255 (十进制);
两部分:前面的网络部分、后面的主机部分。
如:192.168.0.11 ,设其网络部分是192.168,后面的 0.11则为主机部分。
如果几台主机的网络部分是一样的,则代表他们在同一个网段(在同一网段的主机即在同一局域网下,相互通信使用交换机通信,不需要使用路由器;而不同网段的主机之间相互通信需要使用到路由器)。
A类地址:第一组为网络部分,限制第一组的范围为 1~126;
B类地址:第一、二组为网络部分,限制第一组的范围为 128~191;
C类地址:第一、二、三组为网络部分,限制第一组的范围为 192~223;
D类地址:第一组为网络部分,取值为224~239,其他三组是组播地址IP;
E类地址(保留地址):第一组取值为240~255;
其中A、B、C类地址是单播地址,D类地址是多播地址。单播表示“一对一”之间的通信,而多播即“一对多”的通信。
在计算有效的 IP 地址(能够分配给用户主机使用的IP)个数时,要减去2。其中一个是主机部分全为0,表示网络地址;一个是主机位全取1,表示广播地址。如 IPV4 地址 192.168.1.100 中,前24位(192.168.1)为网络部分,则有效的 IP 地址为192.168.1.1~192.168.1.254,减去网络地址192.168.1.0 和广播地址 192.168.1.255。
多播是向一组特定的接收者发送信息,只有加入了同一个组的主机才能接收到此组内的所有数据。广播则是向网络中的所有主机发送信息,不论这些主机是否属于同一组。
多播有固定的地址段(D类地址),而广播使用特定的广播地址或特定网络的广播地址(如199.123.255.255)
不管一个组播组中包含多少个成员,当组播服务发送信息时,只需要发送一个分组。( 在组播中,“组”是用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备)加入一个组播组,就成为该组的成员,可以识别并接收发往该组播组的组播数据。一个组播源可以同时向多个组播组发送数据,而多个组播源也可以同时向一个组播组发送数据。组播组成员可以动态地加入或离开组播组,成员的主机可以广泛分布在网络中的任何地方。)
组播和广播只能用于目的地址,而不能用于源地址。
224.0.0.0 - 224.0.0.255 | 供路由器协议使用 |
224.0.1.0 - 224.0.1.255 | 公用组播地址,用于Internet |
224.0.2.0 - 238.255.255.255 | 全网范围内的临时可用组播地址 |
239.0.0.0 - 239.255.255.255 | 本地管理组播地址,仅在特定的本地范围内有效 |
形式 | 是否能作为源地址使用 | 是否能作为目的地址使用 | 备注 |
0.0.0.0 | 是 | 否 | 在本网络上代表本主机 |
255.255.255.255 | 否 | 是 | 在本网络上进行广播 |
127.0.0.1 | 是 | 是 | 用作本地软件环回地址测试使用 |
169.254.x.y (主机号非全0或全1) | 是 | 是 | Windows主机DHCP服务器故障时操作系统分配的私有 IP 地址(APIPA,自动专用IP地址) |
公有地址由因特网信息中心复杂分配,可以通过公有地址直接访问因特网。公有地址是全网唯一的,不能重复使用。
私有地址是非注册地址,专门为组织机构内部使用,不能直接访问因特网。私有地址在同一内网中唯一使用,不同内网中可以重复使用。
私有地址要访问因特网,需要使用 NAT(网络地址转换协议)将私有的 IP 转换为公有 IP。内网的主机使用NAT协议,可以通过一个公共的网关来访问因特网。
地址类别 | 地址范围 | 网络号 |
A | 10.0.0.0 - 10.255.255.255 | 10 |
B | 172.16.0.0 - 172.31.255.255 | 172.16 ~ 172.31 |
C | 192.168.0.0 - 192.168.255.255 | 192.168.0 ~ 192.168.255 |
目的 —— 解决地址浪费问题。
作用 —— 将一个大的网络划分成多个不同的小网络,进而解决 IP 地址空间利用率低、两级IP地址不够灵活的问题。
实现过程 —— 借用 IP 地址的若干主机位来充当子网位,进而生成多个不同的子网网络。
通过子网划分后IP地址变成了三级的结构:<网络位><子网位><主机位>
由子网号取不同的值,得到不同的子网网络。
某公司想把原来使用的172.16.0.0/16标准网络划分为12个子网,其中最大的子网节点数在4000个左右。求每个子网的范围。
172.16.0.0/16,最后的16表示网络号位数为16位,则主机号位数为32-16=16位,最后两组为主机号,可以用来做子网划分。
需要12个子网,使用4个二进制位可以表示12,则第 17-20 位用作子网位(可以任意选择12个数,16选12);剩余的12位用作主机位,12位主机位可以表示的主机数量为 2^12-2=4094 个,满足题目的要求。
每个子网的范围可以是:
172.16.0000 0000.1/20 ~ 172.16.0000 0000.254/20;
172.16.0001 0000.1/20 ~ 172.16.0001 0000.254/20;
……
172.16.1011 0000.1/20 ~ 172.16.1011 0000.254/20;
172.16.1100 0000.1/20 ~ 172.16.1100 0000.254/20;
作用:用于指明 IP 地址的网络位和主机位,规定网络位取1,主机位取0;
设某IP地址的网络位有19位,主机位有13位,则子网掩码为
由 IP 地址的表示方式:192.168.128.100/19 可以看出:
1)子网掩码:255.255.224.0,子网掩码长度19位
2)网络部分:192.168.100 00000.100
3)主机部分:192.168.100 00000.100
4)该地址为C类的私有 IP 地址
在子网的基础上继续划分子网。计算方法也是类似的。
无类别域间路由。是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。
CIDR使用斜线记法,又称为 CIDR 记法,即在 IP 地址后面加一个斜线“/”,然后写上网络前缀所占的位数(子网掩码中1的个数),如:192.168.32.10/20
CIDR路由汇聚:将网络地址中连续相同的位进行汇聚,不同的位则归为汇聚之后的主机位,从而实现多个网段汇聚成一个新的超网网段。
如有四个网段:
192.168.129.0/24 —— 192.168.1000 0001.0/24
192.168.130.0/24 —— 192.168.1000 0010.0/24
192.168.132.0/24 —— 192.168.1000 0100.0/24
192.168.133.0/24 —— 192.168.1000 0101.0/24
则可知在第三组取得最长公共前缀: 1000 0,则新的网络位为 2 * 8 + 5 = 21 位。192.168.128.0/21 为汇聚后的超网 ID。
路由汇聚的好处是可以精简路由器的路由表的数量;路由汇聚的特点是,将多个小的网络,汇聚成一个大的网络。
使用路由汇聚时,路由表的项目主要由 “网络前缀” 和 “下一跳” 地址组成。
查找路由表匹配报文中的目标IP地址时可能会得到不止一个匹配项,应当从匹配结果中选择具有最长网络前缀的路由(最长前缀匹配)。
网络前缀越长,其块地址就越小,因而路由就越具体(即该网络下的主机数量越少)。
字段 | 占位大小(位) | 备注 | 取值 |
版本 | 4 | ip协议的版本号 | IPV4为4(0100) |
首部长度 | 4 | IP报文的长度 | 单位为4字节。最小取值为5(0101),即IP报文的报头长度最小是20个字节 |
总长度 | 16 | IP报文的总长度 | 单位为字节。IP报文最长为 65535 B。 |
标识 | 16 | 对IP分片做表示 | 同一报文中的不同分片有相同的标识,用于对分片的重组 |
标志 | 3 | DF占一位,表示是否不允许分片; MF占一位,表示是否还有更多的分片; 还有一位是保留位。 | 若分片,则DF为0,否则DF=1; 若该片为最后的一片,没有更多的分片,则MF=0,否则MF=1; |
片偏移 | 13 | 指出分片中的数据在报文中的相对位置 | 单位为8B,可以按片偏移字段的值从小到大进行排序和重组。 |
生存时间(TTL) | 8 | 也叫“跳数”,用来预防IP报文无限制地在网络中转发 | 每经过一个路由器,报文中的TTL值会相应减1,当TTL值为0时,路由器将丢弃该报文。 |
协议 | 8 | 用来标识上层使用了什么协议 | |
首部校验和 | 16 | 在网络中转发时,对IP头部做校验 | |
源地址 | 32 | 发送方方IP地址 | |
目的地址 | 32 | 接收方的IP地址 | |
选项 | 可变长 | ||
填充 | 可变长 | 用于确保IP报文首部的长度为4B的整数倍 |
例:IP数据报经过 MTU 较小的网络时需要分片。假设一个大小为1500的报文分为两个较小的报文,其中一个报文的大小为800字节,则另一个报文的大小至少为多少字节?(2017年下半年网工上午试题)
1500的报文,IP 报头占 20 字节,则数据只有 1480 字节;
要分成两个小的报文来发送,第一个报文的数据是800-20=780字节,那么第二个报文的数据是 1480-780=700,加上首部 20个字节,则为 720 字节。
ARP协议只在局域网中使用。
当一台主机要和另一台主机通信时,必须要知道目的主机的MAC地址,而这个MAC地址就是通过ARP协议获得的。 ARP 协议即地址解析协议,用于实现 IP 地址到 MAC 地址的映射。
当主机A想要与主机 B 通信但不知道其 MAC 地址时,它会发送一个 ARP 请求广播报文到局域网中,询问主机 B 的 MAC 地址。这个 ARP 请求广播报文会包含主机 B 的 IP 地址,由于尚未知道主机 B 的 MAC 地址,此时的目的 MAC 地址为 0 ;当封装成帧时,目的 MAC 地址会被设置为广播地址(FF-FF-FF-FF-FF-FF),以便局域网中的所有主机都能接收到这个报文。
若主机 hostA 的 MAC 地址为 aa-aa-aa-aa-aa-aa,主机 hostB 的 MAC 地址为 bb-bb-bb-bb-bb-bb。由 hostA 发出的查询 hostB 的 MAC 地址的帧格式如下图所示,则此帧中的目标MAC地址为多少?ARP报文中的目标MAC地址为多少?(2018年上半年网工上午题)
帧中的目标MAC地址为:ff-ff-ff-ff-ff-ff;
报文中的目标MAC地址为:00-00-00-00-00-00
当主机 B 收到这个 ARP 请求广播报文后,它会检查报文中的 IP 地址是否与自己的IP地址匹配。如果匹配,主机 B 就会回复一个ARP响应报文给主机 A,将自己的 MAC 地址提供给主机A。(广播发送 ARP 请求,单播回应 ARP 响应。)
网络层及以上使用 IP 地址;数据链路层及以下使用硬件地址(MAC地址)。
设主机 H1 和主机 H2 在不同的局域网中,主机 H1 要发送消息给主机 H2,通信中间要经过路由器 R1。
数据离开 H1 时,源IP为IP1,目的IP为IP2,源MAC地址为 HA1,目的MAC地址是HA3。(注意这里是广域网通信,不清楚目标主机的MAC,所以目标MAC是中转的路由器MAC地址,让路由器帮忙处理;如果是局域网中,则目标MAC地址就一定是目标主机的MAC地址)
从 H1 到 R1 和从 R1 到 H2 时:IP数据报中的源地址和目的地址都是 IP1 、IP2;两个IP地址始终保持不变。
但是,从H1 到 R1 后,数据帧中的目的 MAC 地址由 R1 的 MAC 地址变成 H2 的 MAC 地址HA2,源MAC地址由 HA1 变成 HA4。
总而言之,在不同的局域网中进行通信,IP地址始终不变,每经过一次路由器,MAC地址都(源、目的)会发生改变;在同一个局域网中进行通信,IP地址和MAC地址都不会变。
ARP 协议在 IP 协议之下,通过广播发送 ARP 请求报文,来获取 IP 与 MAC 的映射关系。
ARP 报文包括 ARP 请求分组报文和 ARP 响应分组报文。报文内容都包括以下部分:
发送方MAC地址;
发送方IP地址;
目标方MAC地址(如果是请求分组报文,该项未知时为0);
目标方IP地址;
路由器不会转发 ARP 请求,ARP请求只会在本地进行广播,直接封装在帧中进行传输。
arp -a | 查看ARP缓存表 |
arp -d | 清除ARP缓存 |
arp -s ip地址 mac地址 | 用于静态绑定 如:arp -s 192.168.1.123 a0-1a-64-aa-aa-aa |
arp 192.168.1.2 | 获取 192.168.1.2 这台主机对应的MAC地址 |
当出现跨网段的 ARP 请求时,由离源主机最近的路由器将自己的 MAC 地址返回给发送 MAC广播请求的主机,实现 MAC 地址代理最终使主机能够正常通信。
逆向地址解析协议,实现 MAC 地址到 IP 地址的映射。
背景:IP 协议采用无连接的数据报转发方式,网络中的节点尽最大努力交付IP报文,整个过程并不保证可靠交付。
ICMP 协议的作用:可以传送 IP 通信过程中出现的错误信息,进而帮助提升 IP 报文成功交付的概率。
ICMP 协议封装在 IP 数据报中进行传输。
路由追踪的过程:
通过向目标发送一连串TTL值依次加1且端口不可达的数据报,从而实现对到达目标地址的路径跟踪。
H1发送一个 TTL=1 数据包,根据返回的超时消息可获得第一跳路由器的地址 RA;
H1发送一个 TTL=2 数据包,根据返回的超时消息可获得第二跳路由器的地址 RB;
……
H1发送一个 TTL = 4 数据包,数据包成功到达目标主机,返回一个端口不可达的错误,此时路由跟踪结束。
IPV4 网络存在以下几个问题:延迟、丢包、延迟抖动;
QoS —— 服务质量,是用来解决网络延迟和阻塞等问题的一项技术。使用QOS的目的是为了区分流量,保证重要流量及时被转发。
解决的问题:从根本上解决 IPV4 地址资源不足的问题
相较于 IPV4 的改进:
IPv6地址由128位组成,分为前缀和后缀两部分。前缀部分用于标识网络,由IPv6地址分配机构分配;后缀部分用于标识主机,由网络接口ID生成
如 IPV6 的初始地址为:0000:0000:0000:0db8:0000:0000:0042:8329
前导零进行省略:0000:0000:0000:db8:0000:0000:42:8329
压缩连续的零:::db8:0000:0000:42:8329 或 0000:0000:0000:db8::42:8329
因为连续的零只能出现一次,因此不能变成:::db8::42:8329
特殊的地址:
环回地址
0000:0000:0000:0000:0000:0000:0000:0001,可以通过规则缩写为 ::1
未分配地址(全为0),不能分配给任何节点,也不能用作目的地址
0000:0000:0000:0000:0000:0000:0000:0000,即 ::/128
在 IPV6 中,CIDR斜线表示方法仍然适用,如 60 位前缀12AB00000000CD30可以记为:
(1)单播:传统的点对点通信
(2)多播:一点对多点的通信
(3)任播:任播是IPV6 新增加的一个类型,数据报在交付时只交付其中的一个,通常是距离最近的一个。
地址类型 | 地址前缀 | IPV6前缀标识 |
全球单播地址 | 全球路由选择前缀(48位) | 前三位固定为001 |
链路本地(单播)地址 | 1111111010 | FE80::/10 |
站点本地(单播)地址 | 1111111011 | FEC0::/10 |
多播地址 | 11111111 | FF00::/8 |
任播地址 | 从单播地址空间中进行分配,使用单播地址格式 |
全球单播地址的等级结构:
首部长度固定40字节, 通过选项字段来扩充首部,并封装于有效载荷。
IPV6 和 IPV4 二者是不兼容的(报文格式不同)。
在 IPV6 网络中,除了逐跳选项拓展首部外,路由器都不处理其他的拓展首部,这样大大提高了路由器的处理效率。
在 RFC 2460 中定义了六种拓展首部:
IPV6 的隧道技术有多种,分为手动隧道和自动隧道
隧道技术 | 特殊地址 | |
自动隧道 | ISATAP隧道 | ::0000:5EFE:w.x.y.z |
IPV4 兼容 IPV6 自动隧道 | ::w.x.y.z(0:0:0:0:0:0:w.x.y.z) | |
IPV6 to IPV4 隧道 | 完整的IPV6 to IPV4 主机地址由 IPV6 to IPV4地址的48位格式前缀(2002:A.B.C.D::/48)和后面的子网标识符ID以及64位的接口ID组成 | |
手动隧道 | IPV6-OVER-IPV4 GRE隧道 | 手动指定IPV4地址 |
三种过渡方案的对比:
特点 | |
双协议栈技术 | 是实现其他IPV6过渡方案的基础技术 |
隧道技术 | 通常应用于IPV6孤网,通过现有的IPV4网络通信,通过再次封装,形成通信隧道 |
网络地址转换技术 | 通过地址转换协议,进行 IPV6 to IPV4 或IPV4 to IPV6 访问转换,可满足IPV4纯节点于IPV6纯节点之间的双向访问请求 |
参考: