【网络基础】网络层

【网络基础】网络层

1、IP协议

1.1 基本概念

  1. 主机(Host): 主机是指在网络中具有独立标识和地址的计算机或设备。主机可以是个人计算机、服务器、移动设备等。它们是数据的源和目的地,能够执行各种网络服务和应用程序。主机有自己的IP地址,用于在网络中唯一标识它们。

  2. 路由器(Router): 路由器是一种网络设备,用于在网络中转发数据包。它基于目标IP地址和路由表来决定将数据包发送到哪个接口,使数据能够从源主机到达目标主机。路由器在互联网和局域网之间扮演着关键角色,帮助实现数据的跨网络传输。

  3. 节点(Node): 节点是指网络中的任何设备、主机或路由器,它们能够在网络中传输、接收或处理数据。节点可以是起始点、中间路由器或终点。网络中的所有设备都被视为节点,负责将数据在网络中传递和交换。

1.2 协议头格式

IP协议头是在IP数据包中的固定部分,它包含了一系列字段,用于指示数据包的各种信息,如源和目标IP地址、协议版本、数据包长度等。以下是IPv4协议头的基本格式:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |Type of Service|         Total Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|      Fragment Offset    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Time to Live |    Protocol   |        Header Checksum        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source IP Address                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination IP Address                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options                    |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

这里是各字段的解释:

  • Version (4 bits): 这是IP协议的版本号,IPv4对应的值为4。

  • IHL (4 bits): IHL表示IP头部的长度,以32位字(4字节)为单位。由于IP头部的长度可以变化(因为选项字段的存在),因此这个字段指示头部的字数,最小值为5。

  • Type of Service (8 bits): 这些位用于指定服务质量和优先级,通常被用来支持不同类型的服务和流量处理。

  • Total Length (16 bits): 这个字段指示整个IP数据包的长度,包括IP头部和数据部分,以字节为单位。

  • Identification (16 bits): 用于唯一标识IP数据包的碎片。在IP分片时,每个分片都具有相同的标识。

  • Flags (3 bits): 这些标志用于指示IP数据包是否可以进行分片以及如何处理分片。其中包括"不分片"和"更多分片"标志。

  • Fragment Offset (13 bits): 在IP分片时,这个字段表示分片在原始数据包中的偏移量。

  • Time to Live (8 bits): 表示数据包在网络上可以经过的最大路由跳数(跃点数)。每经过一个路由器,TTL减少1,当TTL为0时,数据包会被丢弃。

  • Protocol (8 bits): 指示IP数据包中所包含的上层协议,比如TCP、UDP、ICMP等。

  • Header Checksum (16 bits): 用于校验IP头部的完整性,确保头部没有在传输过程中损坏。

  • Source IP Address (32 bits): 源IP地址,指示数据包的发送者。

  • Destination IP Address (32 bits): 目标IP地址,指示数据包的接收者。

  • Options (可变长度): 用于包含可选字段,比如记录路由路径、时间戳等。

  • Padding (可变长度): 如果选项字段的长度不是32位的倍数,会用填充位来补齐。

这是IPv4协议头的基本格式,IPv6协议头有一些不同,因为IPv6在协议设计上进行了改进,但核心的IP地址、长度等概念仍然存在。

1.3 IP地址

1.3.1 网络层次

将网络层次从大到小划分通常包括以下层次:

  1. 互联网(Internet): 互联网是全球范围内连接的计算机网络,它由多个自治系统(AS)组成,使用多种协议进行通信,其中最重要的是TCP/IP协议。互联网连接了各种网络,包括局域网、广域网和城域网。

  2. 自治系统(AS): 自治系统是互联网的一个较大的组成部分,它是由一组路由器和IP地址组成的网络,由一个单独的组织、运营商或实体管理。自治系统内部使用内部路由协议(如OSPF、EIGRP)来决定如何转发数据包,而自治系统之间则使用外部路由协议(如BGP)来进行路由交换。

  3. 区域网络(Area Network): 区域网络是一个城市或区域内的网络,通常由多个局域网和广域网组成。它可以是大学校园、企业内部网络或城市范围内的公共网络。

  4. 广域网(Wide Area Network,WAN): 广域网是跨越较大地理区域的网络,通常由多个局域网和连接这些局域网的路由器、交换机等设备组成。广域网可能由多个自治系统连接而成,使用不同的传输介质,如光纤、卫星、电缆等。

  5. 局域网(Local Area Network,LAN): 局域网是在一个较小的地理区域内的网络,如家庭、办公室、学校等。它通常由多台计算机和其他设备(如打印机、交换机)连接在一起,使用以太网等协议进行通信。

  6. 子网(Subnet): 子网是在一个局域网内部进一步划分的网络部分。子网划分允许更有效地管理IP地址资源、提供更好的网络性能和隔离,并支持更精细的网络管理。

  7. 主机(Host): 主机是网络中的终端设备,可以是计算机、服务器、移动设备等。主机通过网络进行通信,可以在同一子网内直接通信,而跨越不同子网的通信需要经过路由器。

这些层次从全球范围的互联网到较小的子网和主机,形成了一个逐步细化的网络层次结构,使得网络可以更有效地组织、管理和运行。

1.3.2 子网

IP地址分为网络号和主机号两个部分,这种划分有助于在网络中唯一标识不同的网络和主机。

  1. 网络号(Network Portion): 网络号是IP地址中的一部分,用于标识特定的网络。它在整个网络中必须是唯一的,以确保相互连接的不同网络之间具有不同的标识。网络号通常由IP地址的高位位构成,其长度取决于网络的规模和划分。不同的网络号允许路由器在网络间正确转发数据包,以使数据包能够到达正确的目标网络。

  2. 主机号(Host Portion): 主机号是IP地址的另一部分,用于在同一个网络内唯一标识不同的主机。在同一个网络内,所有主机共享相同的网络号,但必须具有不同的主机号。主机号位于IP地址的低位位,并且它决定了在特定网络中的具体设备。主机号的大小取决于网络中的主机数量,较大的主机号范围允许更多的主机连接到同一个网络。

IP地址的网络号和主机号的组合允许在互联网中唯一地标识每个主机和网络。这种分层结构有助于将IP地址空间划分为不同的网络,并在每个网络中分配独特的主机标识,以便实现有效的数据传输和网络管理。

不同的子网是通过将具有相同网络号的主机放在一起来实现的。当在一个子网中新增一台主机时,这台主机的网络号与该子网的网络号相同,但主机号必须在该子网中唯一,以确保不会与子网内的其他主机重复。

  • 网络号相同: 在同一个子网中,所有主机都具有相同的网络号。这意味着它们可以直接通信,而不需要经过路由器。网络号决定了哪些主机在同一个子网中,它们可以在局域网内通过MAC地址进行直接通信。

  • 主机号唯一: 在同一个子网中,主机号必须是唯一的。主机号是标识在同一网络中不同主机的部分。当新增一台主机时,需要确保其主机号在该子网内尚未被分配给其他设备。

这种划分方式有助于在局域网内实现设备的逻辑隔离,使不同的子网在逻辑上成为独立的网络。路由器负责将不同子网之间的数据进行转发,以实现不同子网之间的通信。

需要注意的是,子网划分和主机的IP地址分配通常由网络管理员进行管理。管理员需要确保IP地址分配的合理性,避免IP地址冲突,并根据实际需求来划分子网以满足不同部门、功能或隔离需求。

地址分配

CIDR,全称为"Classless Inter-Domain Routing"(无类别域间路由),是一种灵活的IP地址分配方法,旨在取代传统的IP地址类别(Classful addressing)。CIDR的引入使得IP地址分配更加高效,允许更精细地控制和划分IP地址空间。

传统的IP地址类别(A、B、C等)在分配IP地址时存在一些浪费,因为每个类别有固定的位数分配给网络号和主机号,而实际需求可能并不总是适应这种划分。CIDR通过使用可变长度的子网掩码(Prefix Length)来解决这个问题,使得IP地址分配更灵活。

CIDR表示法使用IP地址后面加上斜线和一个数字,这个数字表示子网掩码中前面的“1”位的数量,即子网的前缀长度。例如:

  • 192.168.1.0/24:前24位用于网络号,后8位用于主机号。
  • 10.0.0.0/16:前16位用于网络号,后16位用于主机号。

CIDR表示法中的X可以是0到32之间的任何数。CIDR表示法使用“/”后面跟一个数字来表示子网掩码的长度,这个数字表示了网络号中的“1”位的数量。CIDR表示法的有效范围是从0到32。

  • CIDR /0: 这表示所有IP地址都在同一个网络中,网络号和主机号都是0。
  • CIDR /32: 这表示每个IP地址都是一个独立的主机,没有网络号。

对于CIDR /X,X可以是0到32之间的任何整数,表示网络号中的前X位是网络号,剩余的32 - X 位是主机号。

需要注意的是,低于 /8 的CIDR表示法(例如,/0、/1、/2 等)用于特殊情况,一般在互联网路由中较少使用。通常,CIDR表示法在 /8 到 /32 的范围内更为常见,以实现更细粒度的IP地址分配和路由控制。

当你有一个IP地址和对应的子网掩码时,你可以通过将IP地址和子网掩码进行逻辑"与"操作来计算出网络号。这个操作将保留IP地址中与子网掩码中对应位上都是"1"的位,而将其他位置为"0"。

假设你有以下的IP地址和子网掩码:
IP地址: 192.168.10.45
子网掩码:255.255.255.0

首先,将IP地址和子网掩码转换成二进制形式,然后进行逻辑"与"操作。

  1. 将IP地址和子网掩码转换成二进制形式:
    IP地址: 11000000.10101000.00001010.00101101
    子网掩码:11111111.11111111.11111111.00000000

  2. 进行逻辑"与"操作,按位相与:
    11000000.10101000.00001010.00101101 (IP地址)
    & 11111111.11111111.11111111.00000000 (子网掩码)


​ 11000000.10101000.00001010.00000000

  1. 将结果转换回十进制形式,得到网络号:
    192.168.10.0

所以,通过计算,IP地址192.168.10.45 在子网掩码255.255.255.0 下的网络号是192.168.10.0。这个网络号代表了这个IP地址所在的子网。

CIDR的优势包括:

  1. 更有效的地址分配: CIDR允许根据实际需求和网络规模分配IP地址,避免了传统类别划分中的浪费。

  2. 更好的路由聚合: CIDR促使网络管理员将具有相同前缀的子网进行聚合,减少了路由表的大小,提高了路由器的效率。

  3. 支持VLSM: CIDR支持可变长度子网掩码(VLSM),使得在同一个网络中可以使用不同大小的子网,更好地利用IP地址空间。

  4. 减少IP地址枯竭: 由于CIDR允许更灵活的IP地址分配,它有助于减少IP地址枯竭问题,延长IP地址池的可用性。

  5. 网络规划的灵活性: CIDR使得网络规划更具灵活性,可以根据实际需求划分子网,适应不同的网络拓扑和要求。

CIDR的引入提高了IP地址管理的效率和可用性,同时也有助于更好地支持互联网的扩展和发展。

1.3.3 IP地址数量限制

IPv4(Internet Protocol version 4)是最常用的IP协议版本,它使用32位二进制数表示IP地址。在IPv4中,IP地址的数量是有限的,由于使用32位二进制,IPv4最多支持约42亿个不同的IP地址。这个数量可能在早期互联网发展时看起来很大,但随着互联网的迅速增长,IPv4地址枯竭问题逐渐显现出来。

IPv4的地址枯竭问题促使开发出IPv6(Internet Protocol version 6),它使用128位二进制数表示IP地址。IPv6的地址空间极大,理论上可以支持340 undecillion(340的39次方)个不同的IP地址,这个数量远远超过了IPv4。

因此,IPv4地址数量的限制是约42亿个,而IPv6地址数量则极其庞大,足以支持未来的互联网增长。为了解决IPv4地址不足的问题,全球范围内的技术社区正在推动IPv6的采用,以便为不断增长的互联网设备提供足够的IP地址。

CIDR(Classless Inter-Domain Routing)提供了一种解决方案,用于更有效地分配和管理IP地址,以及更灵活地控制路由和子网划分。CIDR主要解决了以下问题:

  1. 更有效的IP地址分配: 传统的IP地址类别划分在分配IP地址时存在浪费,导致IP地址短缺。CIDR允许将IP地址划分为更小的子网,根据实际需求分配位数,避免了不必要的地址浪费。

  2. 更好的路由聚合: CIDR促使网络管理员将具有相同前缀的子网进行聚合,减少了路由表的大小。这有助于减轻路由器的负担,提高网络路由的效率。

  3. 可变长度子网掩码(VLSM): CIDR支持VLSM,使得在同一个网络中可以使用不同大小的子网。这允许网络管理员更精细地划分IP地址,根据子网规模和需求进行分配。

  4. 延长IP地址池的可用性: 通过更有效的IP地址分配,CIDR延长了IPv4地址池的可用性。虽然IPv4地址数量有限,但CIDR可以使得IP地址的使用更加高效。

  5. 支持互联网扩展: CIDR的引入使互联网得以更好地扩展,容纳不断增长的互联设备。IPv4地址枯竭问题得到部分缓解,而IPv6的推广也在为未来提供更广阔的地址空间。

1.3.4 私有&公网地址

私有IP和公网IP是在网络中用于标识设备的不同类型的IP地址。它们在网络通信中具有不同的作用和范围。以下是私有IP和公网IP的解释:

私有IP(Private IP):
私有IP地址是在本地网络内使用的,不直接在公共互联网上可见的IP地址。这些地址被分配给局域网中的设备,如家庭网络、企业内部网络或学校网络。私有IP地址在全球范围内唯一,但它们只在特定局域网内部起作用,不在互联网上路由。这样的IP地址是为了允许多个设备在局域网内进行通信,而无需拥有唯一的全局IP地址。

常见的私有IP地址范围有三个,分别是:

  • 10.0.0.0 到 10.255.255.255(CIDR表示法:10.0.0.0/8)
  • 172.16.0.0 到 172.31.255.255(CIDR表示法:172.16.0.0/12)
  • 192.168.0.0 到 192.168.255.255(CIDR表示法:192.168.0.0/16)

公网IP(Public IP):
公网IP地址是在全球范围内唯一的IP地址,用于在互联网上标识设备和主机。这些IP地址用于实现设备之间的全球性通信,使得设备可以在互联网上访问、交流和共享信息。公网IP地址是由互联网服务提供商(ISP)分配的,用于将设备连接到公共互联网。

由于IPv4地址的有限性,公网IP地址供应不足,因此常常会采用网络地址转换(NAT)技术,通过将多个私有IP地址映射到一个公网IP地址,来实现多个设备共享一个公网IP地址。

总结:
私有IP地址是在局域网内使用的、不直接可见于互联网的IP地址,而公网IP地址是全球范围内唯一的、用于在互联网上标识设备和进行全球通信的IP地址。

私有IP和公网IP之间通过网络架构和路由技术来避免产生冲突。

私有IP地址冲突避免:
私有IP地址在全球范围内是唯一的,但在特定的局域网内可以重复使用。为了避免在不同局域网之间产生冲突,网络管理员需要确保他们在不同的局域网中使用不同的私有IP地址范围。不同的私有IP地址范围,例如10.0.0.0/8、172.16.0.0/12和192.168.0.0/16,用于在不同的局域网内进行分配,这样可以避免冲突。

公网IP地址冲突避免:
公网IP地址由互联网服务提供商(ISP)分配,确保全球范围内的唯一性。ISP使用复杂的地址分配和路由表管理,以避免将相同的公网IP地址分配给多个客户。通过这种方式,确保了公网IP地址的唯一性,从而避免了冲突。

网络地址转换(NAT):
网络地址转换(NAT)是一种技术,通过将多个私有IP地址映射到一个或多个公网IP地址,实现多个设备共享一个公网IP地址。NAT在路由器上执行,将私有IP地址转换为公网IP地址,使得在互联网上看起来只有一个公网IP地址。这样,即使多个设备使用相同的私有IP地址,它们之间仍然不会产生冲突,因为在公网上它们使用的是同一个公网IP地址。

总之,通过在不同的局域网中使用不同的私有IP地址范围,确保全球范围内公网IP地址的唯一性,以及使用NAT技术实现多个设备共享一个公网IP地址,私有IP和公网IP之间可以有效地避免产生冲突。

2、 路由

2.1 数据传输

路由在数据传输中起着关键的作用,它是将数据从源主机发送到目标主机的路径选择和转发过程。路由是实现网络通信和互联网功能的基础,它的地位和作用如下:

  1. 路径选择: 当数据从源主机发送到目标主机时,经过的路径需要选择。路由器通过比较目标IP地址和其维护的路由表,确定应该将数据包传递给哪个相邻路由器,以使数据最终到达目标主机。

  2. 数据转发: 一旦路由器确定了数据包的下一跳目的地,它将根据路由表中的信息将数据包转发到正确的输出接口,使其继续在网络中传递。这一过程可以涉及多个路由器,每个路由器都负责将数据包引导到正确的路径。

  3. 路径优化: 路由器根据网络拓扑、链路状态、延迟和负载等因素,选择最佳的路径来传输数据。这有助于最小化数据传输的延迟,提高网络的性能和效率。

  4. 故障恢复: 路由器能够检测网络中的故障或链路中断,并根据其他可用路径重新计算数据传输的路径。这种故障恢复机制确保了网络的可靠性和连通性。

  5. 隔离网络: 路由器可以将不同的网络划分为不同的子网,从而隔离网络流量。这提供了网络安全性和隔离性,使得不同的网络可以独立运行,防止流量干扰和冲突。

  6. 网络地址转换(NAT): 路由器可以执行网络地址转换,将多个设备共享一个公共IP地址,从而节省了IP地址的使用。NAT还提供了一定程度的网络安全性,隐藏了内部网络的结构。

总之,路由在数据传输中扮演了数据引导、路径选择、数据转发、路径优化、故障恢复、隔离网络和地址转换等关键角色。它确保了数据在复杂的网络环境中正确、高效地传输,并且为互联网的连通性和功能提供了基础支持。

2.2 路由表

路由表是网络设备(通常是路由器或交换机)中的一个重要组成部分,用于存储和管理网络中可用的路由信息。路由表中记录了不同目标网络或主机的路径选择信息,以帮助设备决定如何转发数据包。以下是关于路由表的详细介绍:

内容: 路由表中的每一条记录通常包含以下关键信息:

  • 目标网络或目标主机的IP地址。
  • 子网掩码或前缀长度,用于确定目标网络的范围。
  • 下一跳的IP地址,即数据包应该被转发到的下一个路由器的地址。
  • 出口接口,指示数据包应该从哪个网络接口发送出去。

作用: 路由表的主要作用是帮助网络设备决定将数据包转发到哪个下一跳,以使数据包最终达到目标主机或目标网络。通过比较目标IP地址与路由表中的目标网络,设备能够选择正确的路径进行数据包转发。路由表还可以存储多个路径,以实现路径选择的优化和冗余。

路由选择: 设备使用路由表来选择最佳路径。这是根据一系列算法和策略,例如最短路径优先(Shortest Path First,SPF)、距离矢量、链接状态等。设备会选择具有最接近目标的目标网络或主机的下一跳。

动态和静态路由: 路由表可以包含动态路由和静态路由。动态路由是通过路由协议(如OSPF、BGP、RIP等)自动学习的,路由器会与其他路由器交换信息以更新路由表。静态路由是管理员手动配置的,指示设备如何转发特定的目标网络或主机。

路由更新: 路由表是动态的,会根据网络拓扑和路由信息的变化进行更新。当网络状态发生变化(如链路断开或新路由器加入)时,路由协议会传递新的路由信息,路由器会更新路由表以反映最新的网络状态。

查找和匹配: 在数据包到达时,设备会根据目标IP地址在路由表中查找匹配的条目。匹配的规则是目标IP地址与路由表中的目标网络和子网掩码进行逻辑与操作,如果匹配成功,设备将根据匹配的路由信息决定下一跳。

总之,路由表是网络设备中的重要数据结构,用于存储和管理路由信息,帮助设备在复杂的网络环境中进行数据包转发和路径选择。

2.3 路由过程

路由是数据包从源主机到目标主机的传输过程,涉及多个路由器的协作。以下是一般情况下路由的基本过程:

  1. 数据包生成: 当源主机想要向目标主机发送数据时,它会将数据包封装成网络数据包,包括目标IP地址、源IP地址、数据内容等信息。

  2. 路由查找: 源主机首先查找自己的路由表,判断目标IP地址是否在本地网络内。如果在本地网络内,数据包将直接发送到目标主机。否则,源主机会将数据包发送到默认网关(通常是本地网络的路由器)。

  3. 数据包传输: 数据包通过本地网络内的交换机或连接设备传输到默认网关(路由器)。

  4. 路由器处理: 默认网关(路由器)接收数据包后,会查找自己的路由表。它会根据目标IP地址选择最佳路径来转发数据包。

  5. 下一跳决策: 路由器通过比较目标IP地址和路由表中的目标网络来确定数据包的下一跳。它会选择能够将数据包送往最终目标的那个相邻路由器作为下一跳。

  6. 数据包转发: 路由器将数据包通过适当的输出接口转发到下一跳的路由器。这一过程可能涉及多个路由器,每个路由器都会决定下一个合适的路由器。

  7. 循环和转发: 数据包通过一系列路由器逐步传输,直到到达目标网络。每个路由器都会根据目标IP地址继续进行下一跳决策和数据包转发。

  8. 目标网络达到: 数据包通过一系列的路由器转发,最终到达目标网络。当数据包进入目标网络时,目标主机的接收器会将数据包从数据包中提取出来。

  9. 数据包解封和传递: 目标主机接收到数据包后,会解析数据包头部,提取出数据内容,然后将数据传递给目标应用程序。

总之,路由是一个复杂的过程,涉及多个路由器的协作,以确保数据包从源主机传输到目标主机的正确路径上。每个路由器根据其路由表和路由协议,选择最佳路径进行数据包转发,从而实现数据的快速、可靠传输。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值