IPv4编址

地址结构

IPv4 地址为32位分层地址,由网络部分和主机部分两个部分组成。
IPv4 地址 - 这是主机的唯一 IPv4 地址。
子网掩码 - 用于标识 IPv4 地址的网络部分/主机部分。

  • IPv4 主机地址 (例192.168.10.10) -主机的 IPv4 地址,采用点分十进制和二进制格式。除了根据掩码的主机位全0位(这将是网络地址)或全1位(这将是广播地址)之外,主机地址在主机部分可以有任何位的组合。IPv4 将 224.0.0.0 到 239.255.255.255 的地址保留为组播范围(不可作为主机地址)。
  • 子网掩码 (例255.255.255.0) -主机的子网掩码,采用点分十进制和二进制格式。
  • 网络地址 (例192.168.10.0) -IPv4地址和子网掩码之间的逻辑AND运算产生一个点分十进制和二进制格式的IPv4网络地址。
    例中,主机地址 192.168.10.10 与子网掩码 255.255.255.0 (/24) 之间的 AND运算会产生 IPv4 网络地址为192.168.10.0/24。
    子网掩码与IP地址相结合用于确定设备属于哪个子网

IPv4 单播、广播和组播

单播

单播传输是指在一对一通信中,一个设备向另一个设备发送消息。
IPv4 单播主机地址的地址范围是 1.1.1.1到 223.255.255.255。不过,此范围中的很多地址被留作特殊用途。这些特殊用途的地址将在本模块后续部分讨论。

广播

广播播传输是指设备在一对多通信中,向网络上的所有设备发送消息。
广播数据包以32个1位或主机部分全部为 1 的地址作为目的 IP地址。
除了 255.255.255.255 的广播地址外,每个网络还有一个广播 IPv4 地址。这个地址称为定向广播,它使用网络范围内的最大地址,即所有主机位全部为 1 的地址。例如,网络192.168.1.0/24的定向广播地址是192.168.1.255。

组播

主机通过组播传输可以向所属组播组中的选定主机组发送一个数据包,从而减少了流量。
组播数据包是一个目的IP地址为组播地址的数据包。IPv4 将 224.0.0.0 到 239.255.255.255 的地址保留为组播范围。
接收特定组播数据包的主机称为组播客户端。组播客户端使用客户端程序请求的服务来加入组播组。
每个组播组由一个 IPv4 组播目的地址代表。当 IPv4 主机加入组播组后,该主机既要处理目的地址为此组播地址的数据包,也要处理发往其唯一单播地址的数据包。

IPv4 地址的分类

公有 IPv4 地址是能在 ISP(互联网运营商)路由器之间全局路由的地址。但是,并非所有可用的 IPv4 地址都可用于互联网。大多数组织使用称为私有地址的地址块向内部主机分配 IPv4 地址。
由于 IPv4 地址空间耗尽,引入了私有 IPv4 地址。私有 IPv4 地址并不是唯一的,可以在任何网络内部使用它。
| 网络地址和前缀 | RFC 1918 私有地址范围 |
| — | — |
| 10.0.0.0/8 | 10.0.0.0 - 10.255.255.255 |
| 172.16.0.0/12 | 172.16.0.0 - 172.31.255.255 |
| 192.168.0.0/16 | 192.168.0.0 - 192.168.255.255 |

私有 IPv4 地址和网络地址转换 (NAT)

在 ISP(Internet Service Provider 互联网服务提供商)可以转发此数据包之前,它必须使用网络地址转换 (NAT) 将源 IPv4 地址(即私有地址)转换为公有 IPv4 地址。NAT用于转换私有和公有 IPv4 地址。这通常是在将内部网络连接到 ISP 网络的路由器上完成。在路由到互联网之前,组织内部网中的私有 IPv4 地址将被转换为公有 IPv4 地址。

专用 IPv4 地址

一些地址,比如网络地址和广播地址不能分配给主机。还有些特殊地址可以分配给主机,但这些主机在网络内的交互方式却受到限制。

环回地址

环回地址(127.0.0.0 /8 或 127.0.0.1 到 127.255.255.254)通常仅被标识为127.0.0.1,主机使用这些特殊地址将流量指向其自身。

本地链路地址

本地链路地址(169.254.0.0 /16 或 169.254.0.1 至 169.254.255.254)通常称为自动私有 IP 编址 (APIPA) 地址或自分配地址。 当没有可用的DHCP服务器时,Windows DHCP客户端使用它们进行自我配置。本地链路地址可以用于点对点连接,但通常不用于此目的。

IP 地址的分配

IPv4 和 IPv6 地址是通过互联网编号指派机构 (IANA) 管理的。IANA 管理并向地区性互联网注册机构 (RIR) 分配 IP 地址块。

  • AfriNIC (非洲网络信息中心) - 非洲地区
  • APNIC (亚太网络信息中心) - 亚太地区
  • ARIN (美洲互联网号码注册管理机构) - 北美地区
  • LACNIC (拉丁美洲及加勒比互联网地址注册管理机构) - 拉丁美洲和部分加勒比海岛屿
  • RIPE NCC (欧洲 IP 地址注册中心) - 欧洲、中东和中亚
    RIR 的职责是向 ISP 分配 IP 地址,而 ISP 将向组织和更小的 ISP 提供 IPv4 地址块。根据 RIR 的政策规定,组织也可直接从 RIR 获取地址。

网络分段

广播域和分段

在以太网局域网中,设备使用广播和地址解析协议 (ARP) 来定位其他设备。地址解析协议 (ARP)将第 2 层广播发送到本地网络上的已知 IPv4 地址,以发现相关 MAC 地址。以太网局域网上的设备还可以使用服务定位其他设备。主机通常需要使用动态主机配置协议 (DHCP) 来获取 IPv4 地址配置,这会发送本地网络上的广播来定位 DHCP 服务器。
交换机会将广播传播到所有接口,接收它的接口除外。
路由器不传播广播。
因此,每个路由器接口都连接了一个广播域,而广播只能在特定广播域内传播。

大型广播域存在的问题与子网划分

大型广播域是连接很多主机的网络。大型广播域的一个问题是这些主机会生成太多广播,这会对网络造成不良影响。在图中,局域网1 连接了 400 个用户,可能会产生过量的广播流量。这会导致网络操作速度缓慢,因为它会导致大量的流量,而设备操作变慢是因为设备必须接受和处理每个广播数据包。

解决方案是使用称为子网划分的过程缩减网络的规模以创建更小的广播域。这些较小的网络空间通常称为“子网”。
子网划分可以降低整体网络流量并改善网络性能。它也能让管理员实施安全策略,例如哪些子网允许或不允许进行通信。另一个原因是,它减少了由于错误配置、硬件/软件问题或恶意意图而受到异常广播流量影响的设备数量。

IPv4 网络的子网

创建 IPv4 子网时会将一个或多个主机位作为网络位。具体做法是延长子网掩码,从地址的主机部分借用若干位来增加网络位。借用的主机位越多,可以定义的子网也就越多。为了增加子网数量而借用的位越多,每个子网的主机数量就越少。

VLSM(Variable Length Subnetwork Mask 可变长子网掩码)

并不是您创建的每个子网都需要这么多主机,这会导致许多IPv4地址未被使用。也许您需要一个包含更多主机的子网。这就是开发可变长子网掩码 (VLSM) 的原因。

所有子网都使用相同的子网掩码。这意味着每个子网有相同数量的可用主机地址。如图左边所示,传统子网划分可以创建大小相等的子网。传统方案中每个子网都使用相同的子网掩码。如图右边所示,VLSM 使网络空间能够分为大小不等的部分。使用 VLSM,子网掩码将根据特定子网所借用的位数而变化,从而成为 VLSM 的“变量”部分。
使用 VLSM 子网,可以为 LAN 和路由器之间网段提供地址,而不产生不必要浪费。

提示


n=子网掩码-网络掩码
2^n=子网数
2^(32-网络掩码-n)-2=主机数
子网数*(主机数+2)=2^(32-网络掩码)
例:
网络管理员将 192.168.10.0/24 网络划分成带 /26 子网掩码的子网。会创建4个相同大小的子网,每个子网可有62台主机
2=子网掩码-网络掩码=26-24
2^2=子网数=4
2^(32-网络掩码-n)-2=2^(8-2)-2=主机数=62
子网数*(主机数+2)=4*(62+2)=2^(32-网络掩码)=2^(32-24)

减二因为最低位(后面全是0)用于表示主机号,最高位(后面全是1)用于表示广播地址

DMZ:Demilitarized Zone 隔离区

IPv6编址

IPv6 旨在接替 IPv4。IPv6 拥有更大的 128 位地址空间,提供 340 涧(即,340后面有36个0)个不确定地址。IETF 已经创建了各种协议和工具来协助网络管理员将网络迁移到 IPv6。迁移技术可分为三类:

  • 双堆栈-双堆栈允许 IPv4 和 IPv6 在同一网段上共存。双堆栈设备同时运行 IPv4 和 IPv6 协议栈。称为原生 IPv6
  • 隧道-隧道是一种通过 IPv4 网络传输 IPv6 数据包的方法。
  • 转换-网络地址转换 64 (NAT64) 允许支持 IPv6 的设备与支持 IPv4 的设备使用类似于 IPv4 中 NAT 的转换技术进行通信。IPv6 数据包被转换为 IPv4 数据包,IPv4 数据包被转换为 IPv6 数据包。

IPv6 地址表示方法

书写 IPv6 地址的首选格式为 x:x:x:x:x:x:x:x,每个“x”均包括四个十六进制值。

  • 第一条有助于缩短 IPv6 地址记法的规则是省略十六进制数中的所有前导 0(零)
  • 第二条有助于缩短 IPv6 地址记法的规则是使用双冒号 (::) 替换任何由一个或多个全由 0 组成的16 位十六进制数组成的连续字符串
  • 双冒号 (::) 仅可在每个地址中使用一次,否则可能会得出一个以上的地址。

IPv6 地址类型

IPv6 地址三大类

  • 单播 - IPv6 单播地址用于唯一标识支持 IPv6 的设备上的接口。
  • 组播 - IPv6 组播地址用于将单个 IPv6 数据包发送到多个目的地。
  • 任播 -IPv6 任播地址是可分配到多个设备的 IPv6 任播地址。发送至任播地址的数据包会被路由到最近的拥有该地址的设备。
    与 IPv4 不同,IPv6 没有广播地址。但是,IPv6 具有 IPv6 全节点组播地址,这在本质上与广播地址的效果相同。

IPv6 前缀长度

在 IPv4 中,/24 称为前缀。在 IPv6 中,它被称为前缀长度。IPv6 不使用点分十进制子网掩码记法(如255.255.255.0)。与IPv4一样,前缀长度以斜线记法表示,用于表示 IPv6 地址的网络部分。
强烈建议对大多数网络使用 64 位接口 ID。这是因为无状态地址自动配置(SLAAC)使用64位作为接口ID。它还使子网划分更易于创建和管理。

IPv6 单播地址


IPv6地址通常有两个单播地址:

  • 全局单播地址(GUA) - 这类似于公有 IPv4 地址。这些地址具有全局唯一性,是互联网可路由的地址。GUA可静态配置或动态分配
  • 链路本地地址 (LLA) -这对于每个支持ipv6的设备都是必需的。LLA用于与同一链路中的其他设备通信。在 IPv6 中,术语“链路”是指子网。LLA仅限于单个链路。它们的唯一性仅在该链路上得到保证,因为它们在该链路之外不具有可路由性。换句话说,路由器不会转发具有本地链路源地址或目的地址的数据包。

唯一本地地址

(范围 fc00:: /7 到 fdff:: /7)
IPv6 唯一本地地址与 IPv4 的 RFC 1918 私有地址具有相似之处,但是也有着重大差异。

  • 唯一本地地址用于一个站点内或数量有限的站点之间的本地编址。
  • 唯一本地地址可用于从来不需要访问其他网络的设备。
  • 唯一本地地址不会全局路由或转换为全局 IPv6 地址。

IPv6 全局单播地址 (GUA)

IPv6 全局单播地址 (GUA) 具有全局唯一性,可在 IPv6互联网上路由。这些地址相当于公有 IPv4 地址。互联网名称与数字地址分配机构 (ICANN),即 IANA 的运营商,将 IPv6 地址块分配给五家 RIR。目前分配的仅是前三位为 001 或 2000::/3 的全局单播地址(GUA)
注意: 2001:db8::/32已经留作备档之用,包括示例用途。
下图显示了 GUA 的结构和范围。

带有 /48 全局路由前缀和 /64 前缀的 IPv6 地址

GUA 有三个部分:

全局路由前缀

全局路由前缀为提供商(如 ISP)分配给客户或站点的地址的前缀或网络部分。例如,ISP 通常会为其客户分配 /48 全局路由前缀。
例如,IPv6 地址2001:db8:acad::/48 的全局路由前缀,该前缀表示ISP知道该前缀(网络)的方式是前48位(3个十六进制数)(2001:db8:acad)。/48 前缀长度后面的双冒号 (::) 表示地址的剩余部分全部为 0。全局路由前缀的大小决定子网 ID 的大小。

子网 ID

子网ID字段是全局路由前缀和接口ID之间的区域。与IPv4不同,在IPv4中您必须从主机部分借用位来创建子网,IPv6在设计时考虑到了子网。组织使用子网 ID 确定其站点的子网。子网 ID 越大,可用子网越多。
使用典型的/64前缀长度,前四个十六进制数是地址的网络部分,其中第四个十六进制数表示子网 ID。剩下的四个十六进制数用于接口 ID。

接口 ID

IPv6 接口 ID 相当于 IPv4 地址的主机部分。使用术语“接口 ID”是因为单个主机可能有多个接口,而每个接口又有一个或多个 IPv6 地址。
/64 子网或前缀(全局路由前缀 + 子网 ID)为接口 ID 留下 64 位。建议允许启用 SLAAC 的设备创建自己的 64 位接口 ID。它还使得 IPv6 编址计划的开发变得简单而有效。

IPv6 链路本地地址 (LLA)

IPv6 链路本地地址(LLA)允许设备与同一链路上支持 IPv6 的其他设备通信,并且只能在该链路(子网)上通信。具有源或目的LLA的数据包不能在数据包的源链路之外进行路由。
GUA 不是一项要求。但是,每个启用 IPv6 的网络接口都必须有 LLA。
如果没有手动为接口配置LLA,设备会在不与 DHCP 服务器通信的情况下自动创建自己的地址。支持 IPv6 的主机会创建 IPv6 LLA,即使没有为该设备分配 IPv6 全局单播地址。这允许支持 IPv6 的设备与同一子网中的其他支持 IPv6 的设备通信。这包括与默认网关(路由器)的通信。
IPv6 LLAs在fe80::/10范围内。/10 表示前 10 位是 1111 1110 10xx xxxx。第一个十六进制数的范围是 1111 1110 1000 0000 (fe80) 到 1111 1110 1011 1111 (febf)。
设备可以通过两种方式获取 LLA:

  • 静态 -这意味着设备已手动配置。
  • 动态 -这意味着设备通过使用随机生成的值或使用扩展唯一标识符 (EUI) 方法创建自己的接口 ID,该方法使用客户端 MAC 地址和其他位。

注意: 通常情况下,用作链路上其他设备的默认网关的是路由器的LLA而不是GUA。

GUA 和 LLA 静态配置

在 思科IOS 中,大多数 IPv6 的配置和验证命令与 IPv4 的相似。在多数情况下,唯一区别是命令中使用“ipv6”取代“ip”

1
2
3
4
5
6
7
8
9
10
11
12
13
使用以下地址在千兆以太网 0/0/0 接口上配置并激活 IPv6:
R1(config)#interface g0/0/0
将 g0/0/0 作为接口名称
R1(config-if)#ipv6 address fe80::1:1 link-local
设置LLA为fe80::1:1注意加“link-local”
R1(config-if)#ipv6 address 2001:db8:acad:1::1/64
设置GUA为2001:db8:acad:1::1/64
R1(config-if)#no shutdown
激活接口
%LINK-3-UPDOWN: Interface GigabitEthernet0/0/0, changed state to up
显示已开启
R1(config-if)#exit
退出接口配置模式
1
2
3
4
5
6
7
8
9
10
11
12
13
使用以下地址在串行 0/1/0 接口上配置并激活 IPv6:
R1(config)#interface s0/1/0
将 s0/1/0 作为接口名称
R1(config-if)#ipv6 address fe80::3:1 link-local
设置LLA为fe80::3:1注意加“link-local”
R1(config-if)#ipv6 address 2001:db8:acad:3::1/64
设置GUA为2001:db8:acad:3::1/64
R1(config-if)#no shutdown
激活接口
%LINK-3-UPDOWN: Interface Serial0/1/0, changed state to up
显示已开启
R1(config-if)#exit
退出接口配置模式

GUA动态编址

RS and RA 消息

大多数设备会动态获取其 IPv6 GUA。
对于 GUA,设备通过 Internet 控制消息协议版本 6 (ICMPv6) 消息动态获取地址。IPv6 路由器每 200 秒定期将 ICMPv6 RA 消息发送到网络上所有支持 IPv6 的设备。在响应发送 ICMPv6 路由器请求 (RS) 消息的主机时,也会发送 RA 消息,RS消息是对RA消息的请求。

为路由器启用 IPv6 路由,这在默认情况下是不启用的。若要将路由器启用为 IPv6 路由器,必须使用 ipv6 unicast-routing 全局配置命令。
ICMPv6 RA 消息提示设备获取 IPv6 GUA的方式。最终决定取决于设备的操作系统。ICMPv6 RA 消息包括以下:

  • 网络前缀和前缀长度 – 这会告知设备其所属的网络。
  • 默认网关 – IPv6 LLA,RA 消息的源 IPv6 地址。
  • DNS 地址和域名 – 这些是DNS 服务器的地址和域名。
    RA 消息有三种方法:

方法 1:SLAAC(Stateless address auto-configuration,无状态地址自动配置)

SLAAC是一种允许设备在没有DHCPv6服务的情况下创建自己的GUA的方法。使用 SLAAC,设备根据本地路由器的 ICMPv6 路由器通告 (RA) 消息获取必要信息。
默认情况下,RA 消息会提示接收设备使用 RA 消息中的信息创建其自己的 IPv6 GUA及其他必要信息。DHCPv6 服务器的服务不是必需项。
SLAAC 是无状态的,也就是说没有中央服务器(例如有状态DHCPv6 服务器)来分配GUA和维持设备及其地址的清单。借助 SLAAC,客户端设备使用 RA 消息中的信息创建其自己的GUA。
地址的两部分生成如下:

  • 前缀 -这是在 RA 消息中通告的。
  • 接口 ID -使用 EUI-64 流程或通过生成一个随机 64 位数字产生,取决于设备的操作系统。
    enter description here

方法 2:SLAAC 和无状态 DHCPv6(Dynamic Host Configuration Protocol动态主机配置协议)

路由器的接口可配置为使用 SLAAC 和无状态 DHCPv6 或仅使用有状态 DHCPv6 发送路由器通告。
如图所示,使用此方法,RA 消息建议设备使用以下内容:

  • SLAAC创建自己的IPv6 GUA
  • 路由器LLA,是RA源IPv6地址,作为默认网关地址
  • 使用无状态 DHCPv6 服务器获取其他信息,例如 DNS 服务器地址和域名。
  • 注意*: 使用无状态 DHCPv6 服务器分配 DNS 服务器地址和域名。它不分配 GUA。
    enter description here

方法 3:有状态的DHCPv6

路由器接口可以配置为仅使用有状态的DHCPv6发送RA。
有状态 DHCPv6 与 IPv4 的 DHCP 相似。设备可以从有状态 DHCPv6 服务器自动接收编址信息,包括GUA、前缀长度和 DNS 服务器地址。
如图所示,使用此方法,RA 消息建议设备使用以下内容:

  • 路由器LLA,是RA源IPv6地址,作为默认网关地址。
  • 使用有状态 DHCPv6 服务器获取GUA、DNS 服务器地址、域名和其他必要信息。
    enter description here
    使用有状态 DHCPv6 服务器分配并维持哪台设备接收哪个 IPv6 地址的清单。IPv4 的 DHCP 是有状态的。
  • 注意:* 默认网关地址仅可从 RA 消息中动态获取。无状态或有状态 DHCPv6 服务器均不提供默认网关地址。

EUI-64 流程和随机生成

当 RA 消息为 SLAAC 或 SLAAC 和无状态 DHCPv6 时,客户端必须生成自己的接口 ID。客户端从 RA 消息中获知地址的前缀部分,但必须创建自己的接口 ID。如图所示,接口 ID 可使用 EUI-64 流程或随机生成的 64 位数字创建。

IEEE 定义了扩展唯一标识符 (Extended Unique Identifier) 或修改的 EUI-64 流程。该流程使用客户端的 48 位以太网 MAC 地址,并在该 48 位 MAC 地址的中间插入另外 16 位来创建 64 位接口 ID。
以太网 MAC 地址一般使用十六进制表示,由两部分组成:

  • **组织唯一标识符 (OUI) **- OUI 为 IEEE 分配的 24 位(6 个十六进制数字)厂商代码。
  • 设备标识符 - 设备标识符是通用 OUI 内的唯一 24 位(6 个十六进制数字)值。
    EUI-64 接口 ID 以二进制表示,共分三个部分:
  • 客户端 MAC 地址的 24 位 OUI,但是第 7 位(通用/本地 (U/L) 位)颠倒。这意味着,如果第 7 位是 0,则它会变为 1,反之亦然。U/L 位的用途和该位值的翻转原因会在 RFC 5342 中讨论。
  • 插入的 16 位值 fffe(十六进制)。
  • 客户端 MAC 地址的 24 位设备标识符。

    EUI-64 优势在于可以使用以太网 MAC 地址确定接口 ID。这也允许网络管理员使用唯一 MAC 地址轻松跟踪终端设备的 IPv6 地址。

然而,这引起了许多用户的隐私担忧,他们担心自己的数据包可能会被追踪到实际的物理计算机。出于这些顾虑,可以转而使用随机生成的接口 ID。
根据操作系统,设备可以使用随机生成的接口 ID,而不使用 MAC 地址和 EUI-64 流程。从 Windows Vista 开始,Windows 使用随机生成的接口 ID,而不是 EUI-64 创建的接口 ID。Windows XP 和之前的 Windows 操作系统均使用 EUI-64。
注意:为确保任何 IPv6 单播地址的唯一性,客户端可以使用重复地址检测 (DAD) 流程。这与 ARP 请求其地址的流程相似。如该请求没有响应,则地址是唯一的。

LLA动态编址

所有 IPv6 设备都必须有 IPv6 LLA。与 IPv6 GUA一样,您也可以动态创建 LLA。无论您如何创建LLA(和GUA),重要的是要验证所有IPv6地址配置。
使用fe80::/10 前缀和通过 EUI-64 流程或随机生成的 64 位数字创建的接口 ID 动态创建LLA。

Windows上的动态LLA

操作系统,如Windows,通常会对SLAAC创建的GUA和动态分配的LLA使用相同的方法(EUI-64 生成、随机生成)

思科路由器上的动态LLA

当为接口分配GUA时,思科路由器会自动创建 IPv6 LLA。默认情况下,思科 IOS 路由器使用 EUI-64 为 IPv6 接口上的所有LLA生成接口 ID。对于串行接口,路由器会使用以太网接口的 MAC 地址。回想一下,LLA在该链路或网络上必须具有唯一性。但是,使用动态分配的LLA的缺点在于其接口 ID 较长,因此很难识别并记住分配的地址。示例显示了路由器 R1 千兆以太网0/0/0 接口的 MAC 地址。该地址用于在同一接口上动态创建LLA,也用于串行0/1/0接口。
为了更容易在路由器上识别和记忆这些地址,通常要在路由器上静态配置 IPv6 LLA。

命令

show ipv6 interface brief 命令会显示以太网接口的 MAC 地址。EUI-64 使用此 MAC 地址生成LLA的接口 ID。此外,show ipv6 interface brief 命令用于显示各个接口的缩略输出。与接口位于同一行的 [up/up] 输出指示第 1 层/第 2 层接口状态。这与等效的 IPv4 命令的状态和协议列相同。
show ipv6 route 命令可用于检验 IPv6 网络和特定 IPv6 接口地址已添加到 IPv6 路由表中。该 show ipv6 route 命令将仅显示 IPv6 网络,而不显示 IPv4 网络。
IPv6 的 ping 命令和 IPv4 中这条命令的用法相同,只不过后接使用的是 IPv6 地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
输入显示 IPv6 接口状态摘要的 show 命令。
R1#show ipv6 interface brief
GigabitEthernet0/0/0 [up/up]
FE80::1:1
2001:DB8:ACAD:1::1
GigabitEthernet0/0/1 [up/up]
FE80::2:1
2001:DB8:ACAD:2::1
Serial0/1/0 [up/up]
FE80::3:1
2001:DB8:ACAD:3::1
Serial0/1/1 [down/down]
unassigned
GigabitEthernet0 [administratively down/down]
unassigned
验证从R1到PC2在2001:db8:acad:1::10的连接性。
R1#show ipv6 route
IPv6 Routing Table - default - 7 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, la - LISP alt
lr - LISP site-registrations, ld - LISP dyn-eid, a - Application
C 2001:DB8:ACAD:1::/64 [0/0]
via GigabitEthernet0/0, directly connected
L 2001:DB8:ACAD:1::1/128 [0/0]
via GigabitEthernet0/0, receive
C 2001:DB8:ACAD:2::/64 [0/0]
via GigabitEthernet0/1, directly connected
L 2001:DB8:ACAD:2::1/128 [0/0]
via GigabitEthernet0/1, receive
C 2001:DB8:ACAD:3::/64 [0/0]
via Serial0/0/1, directly connected
L 2001:DB8:ACAD:3::1/128 [0/0]
via Serial0/0/1, receive
L FF00::/8 [0/0]
via Null0, receive

R1#ping 2001:db8:acad:1::10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:ACAD:1::10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
您已成功验证 IPv6 地址配置。

IPv6 组播地址

IPv6 组播地址类似于 IPv4 组播地址。回想一下,组播地址用于发送单个数据包到一个或多个目标(组播组)。IPv6 组播地址的前缀为ff00::/8。
IPv6 组播地址分为两种类型:

  • 知名组播地址
  • 请求节点组播地址

知名组播地址

已分配的知名IPv6 组播地址。分配的组播地址是为预先定义的设备组保留的组播地址。
这些是两种常见的 IPv6 分配组播组:

  • ff02::1全节点组播组 -这是一个包含所有支持 IPv6 的设备的组播组。发送到该组的数据包由该链路或网络上的所有 IPv6 接口接收和处理。这与 IPv4 中的广播地址具有相同的效果。
  • ff02::2:全路由器组播组 - 这是所有IPv6路由器加入的组播组。当在IPv6路由器全局模式下启用ipv6 unicast-routing命令后,该路由器即成为该组的成员。发送到该组的数据包由该链路或网络上的所有 IPv6 路由器接收和处理。

请求节点组播地址

请求节点组播地址类似于全节点组播地址(ff02)。请求节点组播地址的优势在于它被映射到特殊的以太网组播地址。这使得以太网网卡可以通过检查目的 MAC 地址过滤该帧,而不是将它发送给 IPv6 流程来判断该设备是否是 IPv6 数据包的既定目标。

IPv6 网络的子网划分

使用IPv4时,我们必须从主机部分借用位来创建子网。这是因为对IPv4来说,子网划分是事后才想到的。但是,IPv6 的设计考虑到了子网划分。IPv6 GUA中的一个单独的子网ID字段用于创建子网。如图所示,子网ID字段是全局路由前缀和接口ID之间的区域。

128 位地址的好处在是,它可以为每个网络支持足够多的子网并为每个子网支持足够多的主机。地址保留不是问题。

  • 16 位子网 ID -创建多达 65,536 个子网
  • 64 位接口 ID -每个子网支持多达 1800亿亿个主机 IPv6 地址(即 18,000,000,000,000,000,000)

配置命令

1
2
3
4
5
6
7
8
9
10
11
R1(config)# interface gigabitethernet 0/0/0
R1(config-if)# ipv6 address 2001:db8:acad:1::1/64
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface gigabitethernet 0/0/1
R1(config-if)# ipv6 address 2001:db8:acad:2::1/64
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface serial 0/1/0
R1(config-if)# ipv6 address 2001:db8:acad:3::1/64
R1(config-if)# no shutdown

命令ping ::1用于测试IPv6主机的内部配置
::1 是一个环回地址。成功地ping到这个地址意味着正确地安装了TCP/IP堆栈。

ICMP

ICMP 消息

虽然 IP 只是“尽最大努力”的协议,但在与另一个IP设备通信时,TCP/IP套件确实提供了错误消息和参考消息。这些消息使用 ICMP 服务发送。其用途是就特定情况下处理 IP 数据包的相关问题提供反馈,而并非是使 IP 可靠。ICMP 消息并非必需的,而且在网络内通常出于安全原因而被禁止。
ICMP 可同时用于 IPv4 和 IPv6。ICMPv4 是 IPv4 的消息协议。ICMPv6 为 IPv6 提供相同的服务,此外,还包括其他功能。在本课程中,涉及 ICMPv4 和 ICMPv6 时均会使用术语 ICMP。
ICMP 消息的类型及其发送原因非常多。ICMPv4 和 ICMPv6 通用的 ICMP 消息包括:

主机联通性

ICMP Echo消息可用于测试 IP 网络上主机的可达性。

目的地或服务不可达

当主机或网关收到无法传送的数据包时,它会使用 ICMP 目的地不可达消息通知源主机,目的地或服务无法到达。消息包括指示数据包为何无法传送的代码。
ICMPv4 的目的地不可达代码示例有:

  • 0 - 网络不可达。
  • 1 - 主机不可达。
  • 2 - 协议不可达。
  • 3 - 端口不可达。

ICMPv6 的目的地不可达代码示例有:

  • 0-没有通往目标的路由。
  • 1-管理上禁止与目的地通信(例如防火墙)
  • 2-超出源地址的范围
  • 3-地址无法访问
  • 4-端口不可达。
  • 注意*: ICMPv6 的目的地不可达消息代码与此类似,但稍有不同。

超时

路由器使用 ICMPv4 超时消息表明,因为数据包的生存时间 (TTL) 字段递减到 0 而不能转发该数据包。如果路由器接收数据包并且将 IPv4 数据包的 TTL 字段的值递减为零,则它会丢弃数据包并向源主机发送超时消息。
如果路由器因数据包过期而无法转发 IPv6 数据包,ICMPv6 也会发送超时消息。ICMPv6使用IPv6跳数限制字段来确定数据包是否已过期,而不是IPv4 TTL字段。

ICMPv6 (特有)消息

在 ICMPv6 中发现的信息和错误消息非常类似于 ICMPv4 的控制和错误消息。但是,ICMPv6 拥有 ICMPv4 中所没有的新特性和功能提升。ICMPv6 消息封装在 IPv6 中。
ICMPv6 在邻居发现协议(ND 或 NDP)中包括四个新协议。
IPv6 路由器和 IPv6 设备之间的消息传递,包括动态地址分配如下所示:

  • 路由器请求 (RS) 消息-RS消息是对RA消息的请求。一个IPv6主机启动后将发送一个RS。
  • 路由器通告 (RA) 消息-启用IPv6的路由器每200秒发送RA消息,向启用IPv6的主机提供编址信息。RA 消息中可以包含主机的编址信息,例如前缀、前缀长度、DNS 地址和域名。使用 SLAAC 的主机会将其默认网关设置为发送 RA 的路由器的本地链路地址。
    IPv6 设备之间的消息传递,包括重复的地址检测和地址解析如下所示:
  • 邻居请求 (NS) 消息-当设备分配有全局IPv6单播或本地链路单播地址时,则建议对地址执行 重复检测(DAD) 来确保IPv6地址的唯一性。如果网络中的其他设备具有该地址,则会使用 NA 消息进行响应。此 NA 消息通知发送方设备地址已在使用。如果回应的 NA 消息未在固定的一段时间返回,则单播地址是唯一的,可以使用。
  • 邻居通告 (NA) 消息-当 LAN 上的设备知道目的 IPv6 单播地址,但不知道其以太网 MAC 地址时,会使用地址解析。要确定目的 MAC 地址,设备会将 NS 消息发送到请求节点地址。该消息包括已知(目标)IPv6 地址。具有目标 IPv6 地址的设备会使用包含其以太网 MAC 地址的 NA 消息进行回应。
  • 注意*: ICMPv6 ND 还包括重定向消息,与 ICMPv4 中使用的重定向消息功能相似。

Ping 和 Traceroute 测试

Ping

Ping 是一种测试程序,它使用 ICMP Echo请求和Echo应答消息来测试主机之间的连接。
为了测试与网络上的另一台主机的连接,可使用 ping 命令将回应请求发送给该主机地址。若指定地址处的主机收到回应请求,便会使用Echo应答进行响应。每收到一个Echo应答,ping都会提供发出请求与收到应答的时间反馈。这可以作为网络性能的度量。
Ping 对响应规定了超时值。如果在超时前没有收到应答,ping 会提供一条消息,表示未收到响应。这可能表示存在问题,但是,还可能表示在网络上启用了阻止 ping 消息的安全功能。如果在发送ICMP Echo请求之前需要执行地址解析(ARP或ND),那么第一次ping通常会超时。
所有请求发送完毕后,ping实用程序会提供摘要,包括成功率和到达目的地的平均往返时间。

在路由器上输入 ping 命令时,最常见的指示符如下所示:

  • ! - 表示收到一个 ICMP Echo 应答消息
  • . - 表示超时,正在等待 ICMP Echo应答消息
  • U - 表示收到了一个 ICMP 无法到达的消息

使用ping进行的连通性测试的类型包括:

  • Ping 本地环回-从 127.0.0.1 接收的 IPv4 响应或从 ::1 接收的 IPv6 响应,表示主机上的 IP 安装正确。此响应来自网络层。但是,此响应并不代表地址、掩码或网关配置正确。它也不能说明有关网络协议栈下层的任何状态。它只测试 IP 网络层的 IP 连接。如果收到错误消息,则表示该主机上的 TCP/IP 无法正常运行。
  • 向默认网关发出 ping 命令-成功 ping通网关表示主机和充当网关的路由器接口在本地网络中均运行正常。
  • Ping 远程主机-如果 ping 成功,则说明网际网络大部分运行正常。在互联网络上成功 ping通即确认本地网络上的通信正常,充当网关的路由器运行正常,且可能位于本地网络和远程主机网络之间路径上的所有其他路由器运行正常。

Traceroute

Ping 用于测试两台主机之间的连接,但是不提供关于主机之间设备的详细信息。Traceroute tracert实用程序可以生成通信路径上成功到达的设备列表。此列表可以提供重要的验证和故障排除信息。如果数据到达目的地,则 Trace 就会列出主机之间的路径中每台路由器上的接口。如果数据在沿途的某一跳上失败,则回应 Trace 的最后一个路由器的地址可以提供指示,说明发现问题或有安全限制的地方。
往返时间
Traceroute 可提供沿路径每一跳的往返时间并指示是否有某一跳未响应。往返时间是数据包到达远程主机以及从该主机返回响应所花费的时间。星号 * 用于表示丢失的或无应答的数据包。
此信息可用于在路径中定位有问题的路由器,或表示路由器配置为不应答。如果显示器显示特定的某一跳响应时间长或数据丢失,这表示该路由器的资源或其连接可能压力过大。
IPv4 TTL 和 IPv6 跳数限制
Traceroute 使用第 3 层报头中的 IPv4 TTL 字段功能和 IPv6 跳数限制字段功能以及 ICMP 超时消息。

网络层

IP 版本 4 (IPv4) 和 IP 版本 6 (IPv6) 是主要的网络层通信协议。其他网络层协议包括路由协议,如开放式最短路径优先协议(OSPF),和消息传递协议,如Internet控制消息协议(ICMP)。

特征

为了实现跨网络边界的端到端通信,网络层协议执行四个基本操作:

  • 终端设备编址 - 必须为终端设备配置唯一的 IP 地址,以便在网络上进行识别。
  • 封装 - 网络层将来自传输层的协议数据单元 (PDU) 封装到数据包中。封装过程中会添加 IP 报头信息,例如来源(发送)和目的(接收)主机的 IP 地址。封装过程由 IP 数据包的源主机执行。
  • 路由 - 网络层提供服务,将数据包转发至另一网络上的目的主机。要传送到其他网络,数据包必须经过路由器的处理。路由器的作用是为数据包选择最佳路径,并将其转发至目的主机,该过程称为路由。数据包可能需要经过很多路由器才能到达目的主机。数据包在到达目的主机的过程中经过的每个路由器均称作一跳。
  • 解封 - 当数据包到达目的主机的网络层时,主机会检查数据包的 IP 报头。如果在报头中的目的 IP 地址与其自身的 IP 地址匹配,IP 报头将被会从数据包中删除。网络层解封数据包后,后继的第 4 层 PDU 会向上传递到传输层的相应服务。解封过程由 IP 数据包的目的主机执行。

IP封装

IP 通过添加 IP 报头将传输层数据段或其他数据进行封装。IP报头用于将数据包传送到目的主机。
路由器实施路由协议以在网络之间路由数据包。这些中间设备所执行的路由进程会检查数据包报头中的网络层地址。在任何情况下,数据包的数据部分,即封装的传输层 PDU或其他数据,在网络层的各个过程中都保持不变。

IP特征

IP 被设计为一种低开销协议只提供通过互连的网络系统从源主机向目的主机传送数据包所必需的功能。该协议并不负责跟踪和管理数据包的流动。
IP的基本特征:

  • 无连接 - 发送数据包前不与目的地建立连接。
  • 尽力而为 - IP本质上是不可靠的,因为不保证数据包交付。
  • 介质无关性 - 其工作与传输数据的介质(即铜缆、光纤或无线)无关。但是网络层会考虑介质的一个重要特征:每种介质可以传输的最大 PDU 大小。此特征称为最大传输单位 (MTU)。数据链路层为网络层指示所用介质的 MTU

IPv4

IPv4 数据包报头是由包含重要数据包信息的字段组成。这些字段中包含的二进制数字由第 3 层进程进行检查。
图中所示的 IP 协议报头图标识了 IPv4 数据包中的字段。

IPv4 报头中的重要字段包括以下:

  • 版本 - 包含一个 4 位二进制值 0100,用于标识这是 IPv4 数据包。
  • 差分服务或区分服务 (DS) - 以前称为服务类型 (ToS) 字段,DS 字段是一个 8 位字段,用于确定每个数据包的优先级。DiffServ 字段的六个最高有效位是区分服务代码点 (DSCP)位,而后两位是显式拥塞通知 (ECN) 位。
  • 报头校验和 -用于检测 IPv4 报头中的损坏。
  • 生存时间 (TTL) - TTL包含一个 8 位二进制值,用于限制数据包的生命周期。IPv4 数据包的源设备设置初始 TTL 值。当数据包每被路由器处理一次,数值就减少一。如果 TTL 字段的值减为零,则路由器将丢弃该数据包并向源 IP 地址发送互联网控制消息协议 (ICMP) 超时消息。由于路由器减少每个数据包的 TTL,因此路由器也必须重新计算报头校验和。
  • 协议 - 该字段用于标识下一级协议。此 8 位二进制值表示数据包包含的数据负载类型,使网络层将数据传送到相应的上层协议。常用的值包括 ICMP (1)、TCP (6) 和 UDP (17)。
  • 源 IPv4 地址 - 包含表示数据包源 IPv4 地址的 32 位二进制值。源 IPv4 地址始终为单播地址。
  • 目的 IPv4 地址 - 包含 32 位二进制值,表示数据包的目的 IPv4 地址。目的 IPv4 地址为单播、组播或广播地址。
  • 互联网报头长度 (IHL)、总长度报头校验和字段均用于识别和验证数据包。
  • 具体而言,IPv4 数据包使用标识符、标志和片偏移量字段跟踪分段。路由器从一种介质向具有较小 MTU(最大传输单元) 的另一种介质转发IPv4数据包时必须将它分片。

IPv6

IPv4 三个重要问题:

  • IPv4地址耗尽 - IPv4 的可用唯一公有地址数量有限。尽管有大约 40 亿(32位)的 IPv4 地址,但是支持 IP 的新设备数量的不断增加,以及始终在线的连接的增加,和欠发达地区的潜在连接的增加,不断催生更多的地址需求。
  • 缺乏端到端连接 - 网络地址转换 (NAT) 是 IPv4 网络中经常实施的一项技术。NAT 为多种设备共享单一的公有 IPv4 地址提供方法。但是,因为共享了公有 IPv4 地址,内部网络主机的 IPv4 地址会隐藏起来。这会给需要端到端连接的技术造成难题。
  • 增加的网络复杂性 - 虽然NAT延长了IPv4的寿命,但它只是作为一种过渡到IPv6的机制。NAT在其各种实施中增加了网络的复杂性,从而造成延迟并使故障排除更加困难。
    IPv6 的功能提升包括:
  • 更大的地址空间 - IPv6 地址基于 128 位分层编址,而 IPv4 采用的是 32 位。
  • 改进数据包处理过程 - IPv6 报头简化为更少的字段。
  • 消除了对 NAT 的需求 - 有了数额如此巨大的公有 IPv6 地址,私有 IPv4 地址和公有 IPv4 地址之间不再需要 NAT。这可避免需要端到端连接的应用程序遇到某些由 NAT 引起的故障。

报头


IPv6 数据包报头中的字段包括以下:

  • 版本 - 此字段包含一个 4 位二进制值 0110,用于标识这是 IPv6 数据包。
  • 流量类别 - 此 8 位字段相当于IPv4 区分服务 (DS)字段。
  • 流标签 - 此 20 位字段建议所有含相同流标签的数据包接受相同类型的路由器处理。
  • 负载长度 - 此 16 位字段表示 IPv6 数据包的数据部分或负载的长度。这不包括 IPv6 报头的长度,它是固定的 40 字节报头。
  • 下一报头 - 此 8 位字段相当于“IPv4 协议”字段。它表示数据包传送的数据负载类型,使网络层将数据传送到相应的上层协议。
  • 跳数限制 - 此 8 位字段取代 IPv4 的 TTL 字段。每个转发数据包的路由器均会使此数值减一。当跳数达到 0 时,会丢弃此数据包,并且会向发送主机转发 ICMPv6 超时消息。这表明包没有到达目的地,因为超出了跳数限制。与 IPv4 不同,IPv6 不包括 IPv6 报头校验和,因为此功能同时在下层和上层执行。这意味着校验和不需要在每个路由器降低跳数限制字段时重新计算,这也提高了网络性能。
  • 源 IPv6 地址 - 此 128 位字段用于标识发送主机的 IPv6 地址。
  • 目的 IPv6 地址 - 此 128 位字段用于标识接收主机的 IPv6 地址。
    IPv6 数据包还可能包含扩展报头 (EH),以便提供可选的网络层信息。扩展报头为可选项,位于 IPv6 报头及负载之间。EH 用于分段、安全性、移动性支持等。
    与 IPv4 不同,路由器不会对路由的 IPv6 数据包进行分段。

主机路由方式

对于IPv4和IPv6,数据包总是在源主机上创建,为此主机终端设备将创建自己的路由表。
主机可以将数据包发送至如下:

  • 主机自己 - 主机可以通过向特定的地址发送数据包来向自己发起ping测试,这个特定的地址是:IPv4地址127.0.0.1,或者IPv6地址 ::1,它被称为环回接口。对环回接口执行 ping 操作可以测试主机上的 TCP/IP 协议堆栈。
  • 本地主机- 目的主机与发送主机位于同一本地网络。源和目的主机共享同一个网络地址。
  • 远程主机 - 这是位于远程网络上的目的主机。源和目的主机不共享同一个网络地址。
    数据包是要发送到本地主机还是远程主机是由源端设备决定的。源端设备确定目的 IP 地址是否与源设备本身所在的网络相同。确定方法因 IP 版本不同而异:
  • 在 IPv4 中 -源设备使用自己的子网掩码以及自己的 IPv4 地址和目的 IPv4 地址来进行此判断。
  • 在 IPv6 中 -本地路由器将本地网络地址(前缀)通告给网络上的所有设备。

默认网关

默认网关是可以将流量路由到其他网络的网络设备,通常是具有以下功能的路由器:

  • 它拥有与本地网络其他主机位于相同地址范围的本地 IP 地址。
  • 它可以接受数据到本地网络,并将数据转发出本地网络。
  • 它向其他网络路由流量。
    主机的路由表通常包括默认网关。在IPv4中,主机通过动态主机配置协议 (DHCP) 动态接收默认网关 IPv4 地址,或者通过手动配置。在 IPv6 中,路由器通告默认网关地址,或者可以在主机上手动配置。
    配置默认网关会在 PC 的路由表中创建一个默认路由。默认路由是计算机尝试联系远程网络时所用的路由或路径。
    PC1 和 PC2 都会使用默认路由将去往远程网络的所有流量发送到 R1。

路由表

路由表存储三种类型的路由条目:

  • 直连网络- 这些网络路由条目是活动的路由器接口。当接口配置了 IP 地址并激活时,路由器会添加直连路由。每个路由器接口均连接到一个不同的网段。在图中,R1 IPv4路由表中的直连网络为192.168.10.0/24和209.165.200.224/30。
  • 远程网络 - 这些网络路由条目连接到其他路由器。路由器通过由管理员明确配置或使用动态路由协议交换路由信息来学习远程网络。在图中,R1 IPv4路由表中的远程网络为10.1.1 /24。
  • 默认路由 -像主机一样,大多数路由器还包含默认路由条目,即默认网关。当IP路由表中没有更好(更长)的匹配时,将使用默认路由。在图中,R1 IPv4路由表很可能包含一个将所有数据包转发到路由器R2的默认路由。

静态路由

静态路由是手动配置的路由条目。如果网络拓扑改变,静态路由不会自动更新
静态路由具有以下特征:

  • 必须手动配置静态路由。
  • 如果拓扑发生变化,且静态路由不再可用,则管理员需要重新配置静态路由。
  • 静态路由适用于小型网络且当冗余链路很少或没有冗余链路的情况。
  • 静态路由通常与动态路由协议一起用于配置默认路由。

    动态路由

    动态路由协议可让路由器从其他路由器那里自动学习远程网络,包括默认路由。如果使用动态路由协议,则路由器无需网络管理员的参与,即可自动与其它路由器共享路由信息并对拓扑结构的变化作出反应。如果网络拓扑发生变化,路由器将使用动态路由协议共享此信息,并自动更新路由表。
    动态路由协议包括OSPF和增强型内部网关路由协议 (EIGRP)。
    动态路由协议将自动执行如下操作:
  • 发现远程网络
  • 维护最新路由信息
  • 选择通往目的网络的最佳路径
  • 当前路径无法再使用时尝试找出新的最佳路径
    通常一些路由器会同时使用静态路由和动态路由协议。

路由表命令

在 Windows 主机上,使用route print或命netstat -r令可以显示主机路由表。
特权 EXEC 模式命令 show ip route 用于查看思科 IOS 路由器上的 IPv4 路由表。每个路由表条目的开头都有一个代码,用于标识路由的类型或路由的学习方式。常见路由源(代码)包括以下内容:

  • L - 直连的本地接口 IP 地址
  • C - 直连网络
  • S - 静态路由由管理员手动配置
  • O - OSPF
  • D - EIGRP

地址解析

有时,主机必须发送消息,但它只知道目的设备的 IP 地址。主机需要知道该设备的MAC地址,但是如何才能发现它呢? 这就是地址解析变得至关重要的地方。

MAC 和 IP

  • 物理地址(MAC 地址) – 用于同一网络上的以太网网卡之间的通信。
  • 逻辑地址(IP地址) – 用于将数据包从源设备发送到目的设备。目的IP地址可能与源地址在同一个IP网络上,也可能在远程网络上
    数据流中 IP 数据包的 IP 地址如何与通往目的地路径中每条链路上的 MAC 地址相关联?对于IPv4数据包,这可以通过地址解析协议 (ARP) 过程来完成。对于IPv6数据包,这个过程是ICMPv6邻居发现(ND)。

ARP

设备使用地址解析协议(ARP)来确定一个已知 IPv4 地址的本地设备的目的MAC地址。当数据包发送到要封装入以太网帧的数据链路层时,设备将参照其内存中的表来查找映射至 IPv4 地址的 MAC 地址。此表临时存储在RAM内存中,称为 ARP 表或 ARP 缓存。
ARP 提供两个基本功能:

  • 将 IPv4 地址解析为 MAC 地址
  • 维护IPv4到MAC地址映射表

ARP请求与应答

如果设备找到 IPv4 地址,其相应的 MAC 地址将作为帧中的目的 MAC 地址。如果找不到该条目,设备会发送一个 ARP 请求。
ARP 请求使用以下帧头信息封装在以太网帧中:

  • 目的 MAC 地址 – 这是一种要求 LAN 上的所有以太网网卡接受并处理 ARP 请求的广播地址FF-FF-FF-FF-FF-FF。
  • 源 MAC 地址 – 这是ARP请求发送方的MAC地址。
  • 类型 - ARP 消息的类型字段为 0x806。该类型字段会通知接收网卡需要将帧的数据部分传递给 ARP 进程处理。
    只有具有与ARP请求相应的目的IPv4地址的设备才会以ARP应答做出响应。ARP 应答使用以下帧头信息封装在以太网帧中:
  • 目的 MAC 地址 – 这是ARP请求发送方的MAC地址。
  • 源 MAC 地址 – 这是ARP应答发送方的MAC地址。
  • 类型 – ARP 消息的类型字段为 0x806。该类型字段会通知接收网卡需要将帧的数据部分传递给 ARP 进程处理。
    只有原始发送 ARP 请求的设备会收到单播 ARP 应答。收到该 ARP 应答后,设备会将 IPv4 地址及相应的 MAC 地址添加到自身的 ARP 表中。

ARP表的删除

对于每台设备,ARP 缓存定时器将会删除在指定时间内未使用的 ARP 条目。时间根据设备的操作系统不同而不同。例如,较新的 Windows 操作系统将 ARP 表条目存储 15 秒到 45 秒之间,如图所示。

命令

在思科路由器上,show ip arp命令用于显示 ARP 表。
在 Windows 10 PC 上,arp –a命令用于显示 ARP 表。

两个问题

  • 广播时对性能的影响
    作为广播帧,本地网络上的每台设备都会收到并处理 ARP 请求。在一般的商业网络中,这些广播对网络性能的影响可能微不足道。但是,如图所示,如果大量设备都已启动,并且同时开始使用网络服务,网络性能可能会有短时间的下降。在设备发出初始 ARP 广播并获取必要的 MAC 地址之后,网络受到的影响将会降至最小。
  • ARP欺骗
    有时,使用 ARP 可能会造成潜在的安全风险。威胁发起者可以使用 ARP 欺骗来执行 ARP 毒化攻击。威胁发起者使用这种技术来应答属于另一台设备(例如默认网关)的 IPv4 地址的 ARP 请求。威胁发起者会发送一个带有自己 MAC 地址的 ARP 应答。ARP 应答的接收方会将错误的 MAC 地址添加到其 ARP 表中,并将这些数据包发送给威胁发起者。
    企业级的交换机包含称为动态 ARP 检查 (DAI) 的缓解技术。

邻居发现

IPv6 使用与 IPv4 类似的 ARP 流程,称为 ICMPv6 邻居发现(ND或NDP)。与 IPv4 的 ARP 请求和 ARP 应答类似,IPv6 使用邻居请求和邻居通告消息。
ICMPv6 ND (在 IETF RFC 4861 中定义)使用五种 ICMPv6 消息来执行这些服务:

  • 邻居请求消息
  • 邻居通告消息
  • 路由器请求消息
  • 路由器通告消息
  • 重定向消息
    邻居请求和邻居通告消息用于设备到设备的消息传递,例如地址解析(类似于 IPv4 的 ARP)。设备包括主机计算机和路由器。ICMPv6邻居请求消息使用特定的以太网和IPv6组播地址发送。
    路由器请求和路由器通告消息用于设备和路由器之间的消息传递。通常,路由器发现用于动态地址分配和无状态地址自动配置 (SLAAC)。
    重定向消息用于更好的下一跳选择。

路由器基本配置

配置初始路由器设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
进入全局配置模式将路由器名称配置为“R1”。
Router>enable
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hostname R1
将加密密码配置为“class”。
R1(config)#enable secret class
将控制台线路密码配置为“cisco”并要求用户登录,然后返回全局模式。
R1(config)#line console 0
R1(config-line)#password cisco
R1(config-line)#login
R1(config-line)#exit
对于vty线路0到4,将密码配置为“cisco”并要求用户登录,启用SSH和Telnet访问,然后返回全局模式。
R1(config)#line vty 0 4
R1(config-line)#password cisco
R1(config-line)#login
R1(config-line)#transport input ssh telnet
R1(config-line)#exit
加密所有明文密码
R1(config)#service password-encryption
输入标语“Authorized Access Only!”并使用# 作为定界符。
R1(config)#banner motd #Authorized Access Only!#
退出全局配置模式。
R1(config)#exit
R1#

配置接口

此表总结了用于验证接口配置的更常用 show 命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
进入全局配置模式。
R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
配置接口GigabitEthernet 0/0/0。
R1(config)#interface gigabitethernet 0/0/0
将链路描述为“Link to LAN”。
R1(config-if)#description Link to LAN
使用 IPv4 地址192.168.10.1和子网掩码255.255.255.0配置接口。
R1(config-if)#ip address 192.168.10.1 255.255.255.0
使用 IPv6 地址 2001:db8:acad:10::1 和前缀长度/64配置接口。
R1(config-if)#ipv6 address 2001:db8:acad:10::1/64
启用接口并返回全局配置模式。
R1(config-if)#no shutdown
*Aug 1 01:43:53.435: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/0, changed state to down
*Aug 1 01:43:56.447: %LINK-3-UPDOWN: Interface GigabitEthernet0/0/0, changed state to up
*Aug 1 01:43:57.447: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0/0, changed state to up
R1(config-if)#exit
R1#
您已成功配置路由器 R1 上的初始设置。

配置默认网关

要为交换机配置默认网关,请使用ip default-gateway ip-address 全局配置命令。配置的 IP 地址是连接到交换机的本地路由器接口的 IP 地址。

1
2
3
4
5
6
7
进入全局配置模式。
S1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
将 S1 的默认网关配置为“192.168.10.1”。
S1(config)#ip default-gateway 192.168.10.1
S1(config)#
您已在交换机S1上成功配置默认网关。

查漏补缺

当有多个可用路由时,路由器使用哪项参数来选择到达目的网络的路径?

  • 与目的网络相关的较低度量值

当有多个可用路由时,路由器使用哪项参数来选择到达目的网络的路径?

  • 流标签

当在交换机 vty 线路上输入 transport input ssh 命令时会发生什么?

  • 交换机和远程用户之间的通信是加密的

思科路由器启动过程分为四个主要阶段:

  1. 执行POST
  2. 加载 bootstrap 程序
  3. 查找并加载 Cisco IOS 软件
  4. 查找并加载启动配置文件,或进入设置模式

传输层

传输层负责在不同主机上运行的应用程序之间进行的逻辑通信。
传输层包括两个协议:

  • 传输控制协议 (TCP Transmission Control Protocol)
  • 用户数据报协议 (UDP User Datagram Protocol)

传输层的职责

  • 跟踪各个会话-源应用和目的应用之间传输的每个数据集称为会话并分别进行跟踪
  • 数据分段和数据段重组-将应用程序数据划分为适当大小的块。根据所使用的传输层协议,传输层块称为数据段或数据报。
  • 添加报头信息-将包含二进制数据的报头信息添加到每个数据块中,这些数据被组织成几个字段。不同的传输层协议通过这些字段值在管理数据通信过程中执行各自的功能。
  • 标识应用-为了将数据流传递到适当的应用程序,传输层使用称为端口号的标识符来标识目标应用。
  • 会话多路复用-使不同的通信会话在同一网络上交错。

传输层协议

传输层协议指定如何在主机之间传输消息,并负责管理会话的可靠性要求。传输层包括 TCP 和 UDP 协议。
不同的应用有不同的传输可靠性要求。因此,TCP/IP 提供了两个传输层协议,如图所示

TCP

TCP 被认为是可靠且功能齐全的传输层协议,用于确保所有数据到达目的设备。TCP包含确保应用数据传递的字段。这些字段需要发送和接收的主机进行额外处理。
TCP将数据分为若干个数据段。
TCP 使用以下基本操作提供可靠性和流量控制:

  • 编号并跟踪从特定应用程序发送到特定主机的数据段。
  • 确认收到数据
  • 在一定时间段后重新传输未确认的数据
  • 有顺序的数据可能以错误的顺序到达 以接收方可以接受的有效速率* 发送数据

UDP

UDP是一种比TCP更简单的传输层协议。它不提供可靠性和流量控制,这意味着它需要更少的报头字段。由于发送方和接收方UDP进程不需要管理可靠性和流量控制,这意味着 UDP 数据报的处理速度比 TCP 数据段快。UDP 仅提供在相应应用之间传输数据报的基本功能,需要很少的开销和数据检查。
UDP 将数据划分为数据报,也称为数据段。
UDP是一种无连接协议。由于 UDP 不提供可靠性或流量控制,因此不需要建立连接。由于 UDP 不跟踪客户端和服务器之间发送或接收的信息,因此UDP 也称为无状态协议。
UDP 也称为最大努力交付协议,因为在目的地接收到数据后没有确认消息。UDP 中没有通知发送方是否成功传输的传输层程。
enter description here
UDP 是一个尽最大努力传输协议,而 TCP 是一个可靠的传输协议。
实时视频和语音应用能够容忍具有极小或没有明显影响的一些数据丢失,非常适合于 UDP。

TCP概述

功能

除了支持数据分段和重组的基本功能之外,TCP 还提供以下服务:

  • 建立会话 -TCP是一种面向连接的协议,在转发任何流量之前,在源设备和目的设备之间协商并建立永久连接(或会话)。通过建立会话,设备可以协商特定时间能够转发的流量,而且两个设备之间的通信数据可得到严格管理。
  • 确保可靠的传递 -由于多种原因,数据段在网络传输过程中可能会损坏或者完全丢失。TCP确保从源设备发送的每个数据段都能够到达目的地。
  • 提供相同顺序的传递 -由于网络可能提供了多条路由,每条路由又有不同的传输速率,所以可能导致数据抵达的顺序错乱。通过对数据段编号和排序,TCP 确保按正确的顺序重组这些数据段。
  • 支持流量控制 -网络主机的资源有限(即,内存或处理能力)。当 TCP 发现这些资源超负荷运转时,它可以请求源应用程序降低数据流速。为此,TCP 会调整源设备传输的数据量。流量控制可避免当接收主机的资源不堪重负时,数据的重新传输。

报头

在封装应用层数据时,TCP 数据段会增加 20 个字节(即 160 位)的开销。该图显示的是 TCP 报头中的字段。(10个)
enter description here

报头字段

TCP 报头字段 描述
源端口 一个16位字段, 用于通过端口号标识源应用程序。用于跟踪设备之间的多个会话。还用于为服务器的响应保留打开的条目
目的端口 一个16位字段, 用于通过端口号标识目的应用 程序。
序列号 一个32位字段, 用于数据重组。
确认号 一个32位的字段, 用于指示已接收到数据, 并且期望从源 接收下一个字节。
报头长度 一个4位字段, 称为“数据偏移”, 表示 TCP数据段报头的长度。
保留 一个6位字段, 保留供将来使用。
控制位 一个6位字段, 包括位代码或标志, 指示 TCP段的目的和功能。
窗口大小 一个16位字段, 用于指示一次可以接受的 字节数。
校验和 一个16位字段, 用于数据段报头和数据的错误检查。
紧急 一个 16 位字段, 用于指示包含的数据是否紧急。

应用程序

FTP、HTTP、SMTP、SSH

UDP概述

因此,UDP 仅仅是将接收到的数据按照先来后到的顺序转发到应用程序。如果数据顺序对应用程序很重要,应用程序必须确定正确的顺序并决定如何处理数据。因此,UDP 仅仅是将接收到的数据按照先来后到的顺序转发到应用程序。如果数据顺序对应用程序很重要,应用程序必须确定正确的顺序并决定如何处理数据。### 功能
UDP 是一种尽最大努力传输协议。UDP 是一种轻型传输协议,提供与 TCP 相同的数据分段和重组功能,但是没有 TCP 所提供的可靠性和流量控制
UDP 协议非常简单,它通常被描述为与 TCP 比较所不提供的功能。
UDP的特点包括以下几种:

  • 数据按照接收顺序重构。
  • 丢失的任何数据段都不会重新发送。
  • 不会建立会话。
  • 不会告知发送者资源可用性。

报头

UDP 是无状态协议,这意味着客户端和服务器都不会跟踪通信会话的状态。如果使用 UDP 作为传输协议时要求可靠性,必须由应用来处理可靠性
UDP 中的通信块称为数据报或数据段,这些数据报通过传输层协议尽力传送,有四个字段,需要8个字节(即64位)。该图显示的是 UDP 报头中的字段。
enter description here

报头字段

UDP 报头字段 描述
源端口 一个16位字段,用于通过端口号标识源应用程序。
目的端口 一个16位字段,用于通过端口号标识目的应用 程序。
长度 一个16位字段,指示UDP数据报报头的长度。
校验和 一个16位字段,用于数据报报头和数据的错误检查。

应用程序

最适合采用 UDP 协议的三种应用程序包括:

  • 实时视频和多媒体应用程序 - 这些应用可以容忍部分数据丢失但要求延迟极小或没有延迟的应用程序。示例包括 VoIP 和实时流传输视频。
  • 简单请求和应答应用程序- 处理简单事务的应用程序,其中主机发送请求,但不一定收到应答。示例包括 DNS 和 DHCP。
  • 处理可靠性的应用程序 - 不要求进行流量控制、错误检测、确认和错误恢复,或这些功能由应用程序来执行的单向通信。示例包括 SNMP 和 TFTP。
    即:DHCP、DNS、SNMP、TFTP、VoIP、视频会议

端口号

TCP 和 UDP 传输层协议使用端口号来管理多个同时的对话。TCP和UDP报头字段标识源和目的应用程序端口号。

源端口和目的端口都被置入分段内,然后分段封装于IP 数据包内。IP 数据包中含有源 IP 地址和目的 IP 地址。
源 IP 地址和源端口号的组合或者目的 IP 地址和目的端口号的组合,称为套接字

互联网编号指派机构 (IANA) 是负责分配各种编址标准(包括端口号)的标准组织。用于标识源端口号和目的端口号的16位二进制提供了从0到65535的端口范围。

三个端口组
| 端口组 | 号码范围 | 描述 |
| — | — | — |
| 公认端口 | 0到1023 | 这些端口号保留用于常见或流行的服务和应用程序, 例如 Web浏览器, 电子邮件客户端和远程访问 客户端。为常用的服务器应用程序定义的公认端口使 客户端能够轻松识别所需的关联服务。
|
| 注册端口 | 1024到49151 | IANA将这些端口号分配给请求实体, 以用于特定的进程或应用程序。这些进程主要是用户选择安装的单个 应用程序, 而不是使用公认端口号的 常见应用程序。例如, 思科已为其RADIUS服务器身份验证进程 注册了端口1812。
|
| 私有和(或)动态端口 | 49152 到 65535 | 这些端口也称为 _临时端口_。客户端的操作系统通常在 发起与服务的连接时动态分配端口号。之后即可在通信过程中使用动态端口识别客户端 应用程序。
|

该表显示了一些常用的公认端口号及其相关应用程序。
| 端口号 | 协议 | 应用层 |
| — | — | — |
| 20 | TCP | 文件传输协议 (FTP) - 数据 |
| 21 | TCP | 文件传输协议 (FTP) - 控制 |
| 22 | TCP | 安全 Shell (SSH) |
| 23 | TCP | Telnet |
| 25 | TCP | 简单邮件传输协议 (SMTP) |
| 53 | UDP、TCP | 域名服务 (DNS) |
| 67 | UDP | 动态主机配置协议 (DHCP)- 服务器 |
| 68 | UDP | 动态主机配置协议-客户端 |
| 69 | UDP | 简单文件传输协议 (TFTP) |
| 80 | TCP | 超文本传输协议 (HTTP) |
| 110 | TCP | 邮局协议第 3 版 (POP3) |
| 143 | TCP | 互联网消息访问协议 (IMAP) |
| 161 | UDP | 简单网络管理协议 (SNMP) |
| 443 | TCP | 安全超文本传输协议 (HTTPS) |

Windows中命令netstat可列出正在使用的协议、本地地址和端口号、外部地址和端口号以及连接的状态。
默认情况下,netstat命令会试图将 IP 地址解析为域名,将端口号解析为公认应用程序。使用 -n 选项能够以数字形式显示 IP 地址和端口号。

TCP通信进程

在服务器上运行的每个应用程序进程都配置为使用一个端口号。端口号由系统管理员自动分配或手动配置。
在同一传输层服务中,单个服务器上不能同时存在具有相同端口号的两个不同服务。
分配有特定端口的活动服务器应用程序被认为是开放的,也就是说,传输层将接受并处理分配到该端口的数据段。所有发送到正确套接字地址的传入客户端请求都将被接受,数据将被传送到服务器应用。

TCP 连接的建立(三次握手)

三次握手验证目标主机是否可用来通信。

  • 第一步SYN:源客户端请求与服务器进行客户端-服务器通信会话。
  • 第二步ACK和SYN:服务器确认客户端-服务器通信会话,并请求服务器-客户端通信会话。
  • 第三步ACK:源客户端确认服务器-客户端通信会话。

会话终止

若要关闭连接,分段报头必须设置完成 (FIN) 控制标志。为终止每个单向 TCP 会话,需采用包含 FIN 分段和确认 (ACK) 分段的二次握手。
因此,若要终止 TCP 支持的整个会话过程,需要实施四次交换,以终止两个双向会话。客户端或服务器都可以发起终止。

  • 第一步FIN:当客户端的数据流中没有其他要发送的数据时,它将发送带 FIN 标志设置的分段。
  • 第二步ACK:服务器发送 ACK 信息,确认收到从客户端发出的请求终止会话的 FIN 信息。
  • 第三步FIN:服务器向客户端发送 FIN 信息,终止从服务器到客户端的会话。
  • 第四部ACK:客户端发送 ACK 响应信息,确认收到从服务器发出的 FIN 信息。

TCP 三次握手分析

主机维护状态,跟踪会话过程中的每个分段,并使用 TCP 报头信息交换已接收数据的相关信息。TCP 是全双工协议,每个连接都代表两个单向通信会话。若要建立连接,主机应执行三次握手。如图所示,TCP 报头中的控制位指出了连接的进度和状态。
这些是三次握手的功能:

  • 确认目的设备存在于网络上。
  • 确认目的设备有活动的服务,并且正在源客户端要使用的目的端口号上接受请求。
  • 通知目的设备源客户端想要在该端口号上建立通信会话。
    通信完成后,将关闭会话并终止连接。连接和会话机制保障了 TCP 的可靠性功能。
    enter description here
    TCP 分段报头的控制位字段中的六位被称为标志。标志是设置为开启或关闭的位
    六个控制位标志如下:
  • URG - 紧急指针字段(重要)
  • ACK - 用于建立连接和会话终止的确认标志
  • PSH - 推送功能
  • RST - 在出现错误或超时时重置连接
  • SYN - 同步建立连接中使用的序列号
  • FIN - 没有更多来自发送方的数据,并用于会话终止

可靠性和流控制

TCP可靠性 - 保证及按序传递

有时可能TCP数据段没有到达目的地。有时,TCP段可能会无序到达。因此,为了让接收方理解原始消息,必须接收所有数据并重组这些数据段,使其恢复原有顺序。每个数据包中的数据段报头中都含有序列号,便于进行数据重组。序列号代表 TCP 分段的第一个数据字节在完整数据中的位置。
在会话建立过程中,将设置初始序列号 (ISN)。此 ISN 表示传输到接收应用的字节起始值。在会话过程中,每传送一定字节的数据,序列号就随之增加。通过这样的数据字节跟踪,可以唯一标识并确认每个分段,还可以标识丢失的分段。
(ISN 并不是从 1 开始,而是随机的数字。这样做的目的是防止某些类型的恶意攻击。为简单起见,本章的示例中我们将使用 1 作为 ISN。)

TCP可靠性 - 数据丢失和重传

TCP 提供了管理数据段丢失的方法。其中一个方法就是重新传输未确认的数据。

  • 序列 (SEQ) 号和确认 (ACK) 号一起使用,以确认接收传输段中包含的数据字节。SEQ 编号标识正在传输的数据段中的第一个字节。TCP 使用发送回源代码的 ACK 编号来指示接收方希望接收的下一个字节。这称为期望确认
    在进行后续增强之前,TCP只能确认预期的下一个字节。
  • 今天的主机操作系统通常采用一种称为选择性确认 (SAK) 的可选 TCP 功能,在三次握手期间协商。如果两个主机都支持SACK,则接收方可以明确地确认接收了哪些数据段(字节),包括任何不连续的段。因此,发送主机只需要重新传输丢失的数据。

TCP 流量控制 - 窗口大小和确认

TCP 还提供了流量控制机制

  • 流量控制即目的主机能够可靠地接收并处理的数据量。
    流量控制可以调整给定会话中源和目的地之间的数据流速,有助于保持 TCP 传输的可靠性。为此,TCP 报头包括一个称为“窗口大小”的 16 位字段。

  • 窗口大小用于确定在获得确认前可以发送的字节数。

  • 确认号是指下一个预期字节的编号。
    窗口大小是 TCP 会话的目的设备一次可以接受和处理的字节数。
    初始窗口大小在三次握手期间建立 TCP 会话时确定。源设备必须根据目的设备的窗口大小限制发送到目的设备的字节数。只有源设备收到字节数已接收的确认之后,才能继续发送更多会话数据。

注意:设备如今使用滑动窗口协议。接收方通常在每收到两个数据段之后发送确认。在确认之前收到的数据段的数量可能有所不同。滑动窗口的优势在于,只要接收方确认之前的数据段,就可以让发送方持续传输数据段。

TCP 流量控制-最大段大小 (MSS)

MSS 是 TCP 报头中选项字段的一部分,用于指定设备可以在单个 TCP数据段中接收的最大数据量(以字节为单位)。

  • MSS 大小不包括 TCP 报头。
  • MSS 通常包括在三次握手过程中。
  • 使用 IPv4 时,常见的 MSS 为 1460 字节。
    主机会从以太网最大传输单位 (MTU) 中减去 IP 和 TCP 报头,从而确定其 MSS 字段的值。在以太网接口上,默认 MTU 为 1500 个字节。减去 20 个字节的 IPv4 报头和 20 个字节的 TCP 报头,默认 MSS 大小为 1460 个字节
    enter description here

TCP 流量控制 - 避免拥塞

网络中出现拥塞会使过载的路由器丢弃数据包。当包含 TCP 数据段的数据包未到达其目的地时,它们就成为未确认的数据包。通过确定 TCP 数据段发送但未确认的速率,源设备可以假设一定程度的网络拥塞。
出现网络拥塞时,从源设备丢失的 TCP 数据段就会重传。如果不适当控制重传,TCP 数据段的额外重传会使拥塞的情况更糟。网络中不仅有 TCP 数据段的新数据包,而且还有重传丢失的 TCP 数据段的反馈效果,这都增加了拥塞。
为避免和控制拥塞,TCP 使用了多个拥塞处理机制、计时器和算法。
如果源设备确定 TCP 数据段没有被确认或没有被及时确认,它会在收到确认之前减少发送的字节数

UDP通信

低开销与可靠性

UDP 数据报重组

与 TCP分段类似,当将多个 UDP 数据报发送到目的主机时,它们通常采用不同的路径,到达顺序也可能跟发送时的顺序不同。与 TCP 不同,UDP 不跟踪序列号。
因此,UDP 仅仅是将接收到的数据按照先来后到的顺序转发到应用程序。如果数据顺序对应用程序很重要,应用程序必须确定正确的顺序并决定如何处理数据。

UDP 服务器进程与请求

与基于 TCP 的应用程序相同的是,基于 UDP 的服务器应用程序也被分配了公认端口号注册端口号。当上述应用或进程在服务器上运行时,它们就会接受与所分配端口号相匹配的数据。当 UDP 收到用于某个端口的数据报时,它就会按照应用的端口号将数据发送到相应的应用。

UDP 客户端进程

客户端应用向服务器进程请求数据,便会发起客户端-服务器通信。
UDP 客户端进程则是从可用端口号中动态挑选一个端口号,用来作为会话的源端口。
而目的端口通常都是分配到服务器进程的公认端口号或注册端口号。

应用层

应用层、表示层和会话层

应用层

该层为用于通信的应用程序和用于消息传输的底层网络提供接口。应用层协议用于在源主机和目的主机上运行的程序之间进行数据交换。
基于TCP/IP模型,OSI 模型上面三层(应用层、表示层和会话层)定义了 TCP/IP 应用层的功能。

表示层

表示层具有三个主要功能:

  • 将来自源设备的数据格式化或表示成兼容形式,以便目的设备接收。
  • 采用可被目的设备解压缩的方式对数据进行压缩。
  • 加密要传输的数据并在收到数据时解密数据。
    表示层标准的示例有MKV、GIF、JPG、MOV和PNG。

会话层

会话层的功能就是创建并维护源应用程序和目的应用程序之间的对话。会话层用于处理信息交换发起对话并使其处于活动状态,并在对话中断或长时间处于空闲状态时重启会话

TCP/IP 应用层协议

域名系统

DNS - 域名系统(或服务)

  • TCP,UDP客户端 53
  • 将域名(例如 cisco.com)转换为 IP 地址。

主机配置

BOOTP - 引导程序协议

  • UDP 客户端 68,服务器 67
  • 允许无盘工作站探查其 IP 地址、网络中 BOOTP 服务器的 IP 地址以及要加载到内存中以引导机器的文件
  • BOOTP 正在被 DHCP 所取代

DHCP-动态主机配置协议

  • UDP 客户端 68,服务器 67
  • 动态分配IP地址可以重复使用不再需要的地址

电子邮箱

SMTP - 简单邮件传输协议

  • TCP 25
  • 允许客户端向邮件服务器发送电子邮件
  • 允许服务器向其他服务器发送电子邮件

POP3 - 邮局协议

  • TCP 110
  • 允许客户端从邮件服务器检索电子邮件 将电子邮件* 下载到客户端的本地邮件应用程序

IMAP - 互联网消息访问协议

  • TCP 143
  • 允许客户端访问存储在邮件服务器中的电子邮件
  • 在服务器上维护电子邮件

文件传输

FTP - 文件传输协议

  • TCP 20至21
  • 设置规则,使得一台主机上的用户能够通过网络访问另一台主机或向其传输文件
  • FTP是一种可靠、面向连接且进行确认的文件传输协议。
    TFTP - 简单文件传输协议
  • UDP 客户端 69
  • 一个简单的,无连接的文件传输协议,使用尽最大努力、不被答复的文件交付
  • 它使用的开销比FTP少

Web

HTTP-超文本传输协议

  • TCP 80,8080
  • 有关在万维网上交换文本、图形图像、音频、视频以及其他多媒体文件的一组规则集
    HTTPS - 安全 HTTP
  • TCP,UDP 443
  • 浏览器使用加密技术保护 HTTP 通信
  • 验证您的浏览器连接的网站

客户端-服务器模式

客户端进程和服务器进程都处于应用层。客户端首先向服务器发送数据请求,服务器通过发送一个或多个数据流来响应客户端。应用层协议规定了客户端和服务器之间请求和响应的格式。除了实际数据传输外,数据交换过程还要求用户身份验证以及要传输的数据文件的标识。

对等网络(P2P)

在对等 (P2P) 网络模式中,可以从对等设备访问数据,而无需使用专用服务器。

P2P 网络模型包含两个部分:P2P 网络和 P2P 应用程序。

P2P 网络

在 P2P 网络中,两台或多台计算机通过网络互连,它们共享资源(如打印机和文件)时可以不借助专用服务器。每台接入的终端设备(称为“对等体”)既可以作为服务器,也可以作为客户端。在某项事务中,作为服务器的计算机也可以同时成为其他服务器的客户端。于是,计算机的角色根据请求的不同在客户端和服务器之间切换。

P2P 应用程序

对等 (P2P) 应用程序允许设备在同一通信中同时充当客户端和服务器。在该模型中,每台客户端都是服务器,而每台服务器也同时是客户端。P2P 应用程序要求每台终端设备提供用户界面并运行后台服务。

常见对等应用程序

使用 P2P 应用程序时,网络中运行该应用程序的每台计算机都可以充当在网络中运行该应用程序的其他计算机的客户端或服务器。常见 P2P 网络包括:

  • BitTorrent
  • Direct Connect
  • eDonkey
  • Freenet

某些 P2P 应用程序基于 Gnutella 协议,允许每个用户与他人共享整个文件。如图所示,通过与 Gnutella 协议兼容的客户端软件,用户可以在互联网上连接 Gnutella 服务,然后定位并访问由其他 Gnutella 对等设备共享的资源。许多Gnutella客户机应用程序可用,包括μTorrent,BitComet, DC++, Deluge, 和emule。

Web 和电子邮件协议

超文本传输协议(HTTP)和超文本标记语言(HTML)

URL(Uniform Resource Locator,统一资源定位符)
URI(Uniform Resource Identifier,统一资源标识符)

对于http://www.cisco.com/index.html(URL)

  • 浏览器对 URL 地址的三个组成部分进行分析:http(协议或方案)、www.cisco.com(服务器名称)、index.html(所请求的特定文件名)
  • 然后,浏览器将通过域名服务器将 www.cisco.com 转换成数字表示的 IP 地址,用它连接到该服务器。客户端通过向服务器发送GET请求向服务器发起一个HTTP请求并请求index.html文件。
  • 作为对请求的响应,服务器将此web页面的HTML代码发送到浏览器。
  • 浏览器解译 HTML 代码并为浏览器窗口格式化页面。

HTTP 和 HTTPS

HTTP 是一种请求/响应协议。当客户端,尤其是 Web 浏览器,发送请求到 Web 服务器时,HTTP 将指定用于该通信的消息类型。
常用的三种消息类型包括 GET、POST 和 PUT。

  • GET - 客户端请求数据。客户端(Web 浏览器)向 Web 服务器发送 GET 消息以请求 HTML 页面。
  • POST - 上传数据文件到 Web 服务器,例如表单数据。
  • PUT - 用于向 Web 服务器上传资源或内容,例如图像。

尽管 HTTP 灵活性相当高,但它不是一个安全协议。
为了在互联网中进行安全通信,人们使用 HTTP 安全(HTTPS)协议。HTTPS 借助身份验证和加密来保护数据,使数据得以安全地在客户端与服务器之间传输。HTTPS 使用的客户端请求服务器响应过程与 HTTP 相同,但在数据流通过网络传输以前会使用安全套接字层 (SSL) 加密。

电子邮件协议

邮件是通过网络发送、存储和检索电子消息的存储转发方法。邮件消息存储在邮件服务器的数据库中。
邮件客户端通过与邮件服务器通信来收发邮件。邮件服务器之间也会互相通信,以便将邮件从一个域发到另一个域中。也就是说,发送邮件时,邮件客户端并不会直接与另外一个邮件客户端通信。而是双方客户端均依靠邮件服务器来传输邮件。

电子邮件支持三种单独的协议以实现操作:简单邮件传输协议 (SMTP)、邮局协议 (POP) 和 Internet 邮件访问协议 (IMAP)。发送邮件的应用层进程会使用 SMTP。客户端会使用以下两种应用层协议之一来检索邮件:POP 或 IMAP。

SMTP

SMTP 邮件格式要求邮件具有报头和正文。虽然邮件正文没有长度限制,但邮件报头必须具有格式正确的收件人邮件地址和发件人地址。

当客户端发送邮件时,客户端 SMTP 进程会连接公认端口 25 上的服务器 SMTP 进程。连接建立后,客户端将尝试通过此连接发送邮件到服务器。服务器收到邮件后,如果收件人在本地,它会将邮件保存在本地账户中,或者将邮件转发给另一台邮件服务器以便传输。

发出邮件时,目的邮件服务器可能并不在线,或者正忙。因此,SMTP 将邮件转到后台处理,稍后再发送。服务器会定期检查邮件队列,然后尝试再次发送。经过预定义的过期时间后,如果仍然无法发送邮件,则会将其作为无法投递的邮件退回给发件人。

POP

应用程序使用 POP 从邮件服务器中检索邮件。根据 POP 的规定,邮件将从服务器下载到客户端,然后从服务器上删除。这是 POP 的默认操作。

服务器通过在 TCP 端口 110 上被动侦听客户端连接请求来启动 POP 服务。当客户端要使用此服务时,它会发送一个请求来建立与服务器的 TCP 连接。一旦建立连接,POP 服务器即会发送问候语。然后客户端和 POP 服务器会交换命令和响应,直到连接关闭或中止。

根据 POP,由于电子邮件会下载到客户端并从服务器删除,因此电子邮件不会集中保存在某一特定的位置。因为 POP 不存储邮件,因此不建议用于需要集中备份解决方案的小型企业。POP3 是最常用的版本。

IMAP

IMAP 是另外一种用于检索电子邮件消息的协议。与 POP 不同的是,当用户连接使用 IMAP 的服务器时,邮件的副本会下载到客户端应用程序。同时原始邮件会一直保留在服务器上,直到用户将它们手动删除。用户在自己的邮件客户端软件中查看邮件副本。

用户可以在服务器上创建文件层次结构来组织和保存邮件。该文件结构会照搬到邮件客户端。当用户决定删除邮件时,服务器会同步该操作,从服务器上删除对应的邮件。

IP 编址服务

使用数字 IP 地址标记设备以便通过网络发送和接收数据。人们创建了可以将数字地址转换为简单易记名称的域名系统。
DNS (Domain Name System,域名系统)协议定义了一套自动化服务,该服务将资源名称与所需的数字网络地址匹配。协议涵盖了查询格式、响应格式及数据格式。DNS 协议通信采用单一格式,即消息格式。该格式用于所有类型的客户端查询和服务器响应、报错消息、以及服务器间的资源记录信息的传输。

DNS 消息格式

DNS 服务器中存储不同类型的资源记录,用来解析域名。这些记录中包含域名、地址以及记录的类型。
这些记录有以下类型:

  • A - 终端设备 IPv4 地址
  • NS - 授权域名服务器
  • AAAA - 终端设备 IPv6 地址(读作“四 A”)
  • MX - 邮件交换记录

在客户端进行查询时,服务器 DNS 进程首先会查看自己的记录以解析名称。如果服务器不能通过自身存储的记录解析域名,它将联系其他服务器对该域名进行解析。在检索到匹配信息并将其返回到原始请求服务器后,服务器临时存储数字地址,以供再次请求同一域名时使用。

DNS在服务器间使用相同的消息格式,包含所有类型的客户端查询的问题、回答、授权和更多信息以及服务器响应、错误消息和服务器间的资源记录信息的传输。

ipconfig /displaydns命令显示所有 DNS 缓存条目。(Windows)
nslookup命令后,即显示为主机配置的默认 DNS 服务器,可以在nslookup提示符下输入主机名或域名

DNS 层级

DNS 协议采用分层系统创建数据库以提供名称解析

不同的顶级域有不同的含义,分别代表着组织类型或起源国家/地区

动态主机配置协议(DHCP)

主机连入网络时,将联系 DHCP 服务器并请求地址。DHCP 服务器从已配置地址范围(也称为“地址池”)中选择一条地址,并将其分配(租赁)给主机。

在较大型的网络中,或者用户经常变更的网络中,地址分配优先选用 DHCP。新用户可能在到达时需要连接;其他用户可能有新计算机必须要连接。与为每个连接使用静态编址的做法相比,采用 DHCP 自动分配 IPv4 地址的方法更有效。
DHCP可以在一段可配置的时间内分配IP地址,这段时间称为租期。租期是一个重要的 DHCP 设置,当租期过期或 DHCP 服务器收到 DHCPRELLAME 消息时,地址将返回到 DHCP 池以便重复使用。因此,用户可以自由的移动位置,并通过DHCP随时重新连接网络。

很多网络都同时采用 DHCP 和静态编址。DHCP 用于一般用途主机,例如用户终端设备。静态编址用于网络设备,例如网关路由器、交换机、服务器和打印机。

DHCP 工作原理

配置了 DHCP 的 IPv4 设备在启动或连接到网络时,
客户端将广播一条 DHCP 1发现 (DHCPDISCOVER) 消息以确定网络上是否有可用 DHCP 服务器。
DHCP 服务器回复 DHCP 2服务 (DHCPOFFER) 消息,为客户端提供租赁服务。该服务消息包含为其分配的 IPv4 地址和子网掩码、DNS 服务器的 IPv4 地址和默认网关的 IPv4 地址。租赁服务还包括租用期限。

如果本地网络中有超过一台 DHCP 服务器,客户端可能会收到多条 DHCPOFFER 消息。此时,客户端必须在这些服务器中进行选择,并且将包含服务器标识信息及客户端所接受的租赁服务的 DHCP 3请求 (DHCPREQUEST) 消息发送出去。客户端还可选择向服务器请求分配以前分配过的地址。

如果客户端请求的 IPv4 地址(或者服务器提供的 IPv4 地址)仍然可用,服务器将返回 DHCP 4确认 (DHCPACK) 消息,向客户端确认地址租赁。如果请求的地址不再有效,则所选服务器将回复一条 DHCP 否定确认 (DHCPNAK) 消息。一旦返回 DHCP NAK 消息,应重新启动选择进程,并重新发送新的 DHCP 发现消息。客户端租赁到地址后,应在租期结束前发送 DHCPREQUEST 消息进行续期。

DHCP 服务器确保每个 IP 地址都是唯一的(一个 IP 地址不能同时分配到不同的网络设备上)。因此,大多数ISP往往使用 DHCP 为其客户分配地址。

DHCPv6 有一组与DHCPv4 类似的消息。DHCPv6 消息包括 SOLICIT、ADVERTISE、INFORMATION REQUEST 和 REPLY。

文件共享服务

文件传输协议(FTP)

FTP 用于客户端和服务器之间的数据传输。FTP 客户端是一种在计算机上运行的应用,用于从 FTP 服务器中收发数据。

客户端使用 TCP 端口 21 与服务器建立第一个连接用于控制流量。流量由客户端命令和服务器应答组成。
客户端使用 TCP 端口 20 与服务器建立第二个连接用于实际数据传输。每当有数据需要传输时都会建立此连接。

数据传输可以在任何一个方向进行。客户端可以从服务器下载(取)数据,也可以向服务器上传(放)数据。

服务器消息块(SMB)

服务器消息块 (SMB) 是一种客户端/服务器文件共享协议,用于规范共享网络资源(如目录、文件、打印机以及串行端口)结构。这是一种请求-响应协议。所有的 SMB 消息都采用一种常用格式。该格式采用固定大小的文件头,后跟可变大小的参数以及数据组件。
三个功能:

  • 启动、身份验证以及终止会话
  • 控制文件和打印机的访问
  • 允许应用程序向任何设备收发消息
    Microsoft 网络配置中主要采用 SMB 形式实现文件共享和打印服务。

与 FTP 协议支持的文件共享不同,SMB 协议中的客户端要与服务器建立长期连接。一旦建立连接,客户端用户就可以访问服务器上的资源,就如同资源位于客户端主机上一样。

物理层

物理层的用途

物理连接可以通过线缆进行有线连接,也可以通过无线电波进行无线连接。
网络接口卡 (NIC) 将设备连接到网络。以太网网卡用于有线连接,而无线局域网(WLAN)网卡用于无线连接。
接收设备的物理层将位传递到数据链路层
物理层接收帧进行编码和传输

物理层的特征

标准

在物理层标准的制定和维护中涉及许多不同的国际和国家组织、政府监管机构和私营企业。例如,物理层硬件、介质、编码和信令标准由以下组织定义和管理:

  • 国际标准化组织 (ISO)
  • 电信工业协会/电子工业协会 (TIA/EIA)
  • 国际电信联盟 (ITU)
  • 美国国家标准学会 (ANSI)
  • 电气电子工程师协会 (IEEE)
  • 国家级电信管理局包括美国联邦通信委员会 (FCC) 和欧洲电信标准协会 (ETSI)。
    除了这些组织之外,通常还有地方性布线标准组织,例如 CSA(加拿大标准协会)、CENELEC(欧洲电工标准化委员会)和 JSA/JIS(日本标准协会),开发本地规范。

物理组件

物理组件是电子硬件设备、介质和其他连接器,它们用于传输用于表示位的信号。网卡、接口和连接器、线缆材料以及线缆设计等硬件组件均按照物理层的相关标准进行规定。

编码

编码或线路编码是一种将数据位流转换为预先定义“代码”的方法。这些代码就是位的编组,用于提供一种可预测模式,以便发送者和接收者均能识别。换句话说,编码是用于表示数字信息的方法或模式。

信令

物理层必须在介质上生成代表“1”和“0”的电信号、光信号或无线信号。表示位的方法称为信令方法。 物理层标准必须定义哪种类型的信号代表“1”,而哪种类型的信号代表“0”。这可以简单到只是改变电信号或光脉冲的级别。例如,长脉冲可能代表 1,而短脉冲可能代表 0。

带宽

不同的物理介质所支持的位传输速率不同。数据传输的讨论通常都会提及带宽。带宽是介质承载数据的能力。数字带宽可以测量在给定时间内从一个位置流向另一个位置的数据量。
多种因素的结合,决定了网络的实际带宽:

  • 物理介质的属性
  • 信令和检测网络信号所选用的技术
    带宽单位 缩写 当量
    位/秒 bps 1 bps = 带宽的基本单位
    千位/秒 Kbps 1 Kbps = 1,000 bps = 10^3^bps
    兆位/秒 Mbps 1 Mbps = 1,000,000 bps = 10^6^ bps
    千兆位/秒 Gbps 1 Gbps = 1,000,000,000 bps = 10^9^ bps
    兆兆位/秒 Tbps 1 Tbps = 1,000,000,000,000 bps = 10^12^ bps
  • 延迟延迟是指数据从一个给定点传送到另一给定点所用的时间,包括时延。
  • 吞吐量吞吐量是给定时段内通过介质传输的位的量度。
  • 实际吞吐量实际吞吐量是在给定时间段内传输的有用数据的衡量标准。
    实际吞吐量就是吞吐量减去建立会话、确认、封装和重传所产生的流量开销。
    实际吞吐量总是低于吞吐量,而吞吐量通常低于带宽。

铜缆布线

网络使用铜介质是因为其价格低廉、易于安装、对电流的电阻低。但是,铜介质受到距离和信号干扰的限制。
在铜缆中,通过电脉冲传输数据。目的设备网络接口中的探测器接收的信号必须可成功解码为与发送的信号相符。但是,信号传输的距离越远,信号下降就越多。这称为信号衰减。因此,所有铜介质必须严格遵循指导标准所指定的距离限制。
电脉冲的时间和电压值易受两个干扰源的干扰:

  • 电磁干扰 (EMI) 或射频干扰 (RFI)- EMI 和 RFI 干扰信号会扭曲和损坏通过铜介质承载的数据信号。EMI 和 RFI 的潜在来源包括无线电波和电磁设备(如荧光灯或电动机)。
  • 串扰 - 串扰是一根电线中信号的电场或磁场对邻近电线中的信号造成的干扰。在电话线上,串扰会由相邻电路中另一语音会话的接听部分引起。具体而言,当电流流经电线时,会在电线周围产生一个较小的环形磁场,而相邻电线可能接收到该磁场。
    为了应对 EMI 和 RFI 的负面影响,某些类型的铜缆会用金属屏蔽套包裹,并要求适当的接地连接。
    为了应对串扰的负面影响,某些类型的铜缆将相反电路线对绞合在一起以有效消除串扰。
    使用以下建议也可以限制电子噪音对铜缆的影响:
  • 选择的电缆类型或类别要适合特定的网络环境。
  • 设计电缆基础设施时应规避建筑结构中已知和潜在的干扰源。
  • 使用包括正确处理和端接电缆的布线技术。

非屏蔽双绞线 (UTP)

通过 RJ-45 连接器端接的 UTP 布线用于网络主机与中间网络设备的互连,例如交换机和路由器。
在 LAN 中,UTP 电缆由四对用颜色标记的电线组成。这些电线绞合在一起,并用软塑料套包裹,以避免较小的物理损坏。电线的扭绞有助于防止电线之间的串扰。
关键特征:

  1. 外层护套可防止铜缆受到物理损坏。
  2. 线对扭绞可防止信号串扰。
  3. 颜色编码的塑料绝缘层使电线之间相互隔离并标识每个线对。

屏蔽双绞线 (STP)

屏蔽双绞线 (STP) 比 UTP 布线提供更好的噪声防护。但是,与 UTP 电缆相比,STP 电缆更加昂贵而且不易安装。和 UTP 相同,STP 也使用 RJ-45 连接器。STP 电缆结合屏蔽技术来应对 EMI 和 RFI,使用线缆扭绞技术来应对串扰。为了充分利用屏蔽的优势,STP 电缆使用特殊屏蔽 STP 数据连接器进行端接。如果电缆接地不正确,屏蔽就相当于一个天线,会接听多余信号。
关键特征:

  1. 外层护套
  2. 金属编织或箔屏蔽
  3. 金属箔屏蔽
  4. 双绞线

同轴电缆

同轴电缆用于有线电视和互联网服务,并将天线连接到无线设备,它使用多种类型的连接器,包括BNC、N型和F型连接器。
虽然 UTP 电缆在现代以太网安装中最终取代了同轴电缆,但在以下情形中仍采用同轴电缆设计:

  • 无线安装 - 用同轴电缆将天线连接到无线设备。同轴电缆可传送天线和无线电设备之间的射频 (RF) 能量。
  • 有线电视互联网安装 - 有线电视服务提供商为其客户提供互联网连接,他们会使用光缆替换同轴电缆和支撑放大元件部分。但是,客户所在地的布线仍采用同轴电缆。
    关键特征:
  1. 外层护套
  2. 铜网屏蔽
  3. 塑料绝缘层
  4. 铜质导线

UTP 布线

用作网络介质时,UTP电缆由四对用颜色标记的铜线组成。这些铜线扭绞在一起,并用软塑料套包裹。在安装过程中,它尺寸较小是有利的。
UTP 电缆并不使用屏蔽层来对抗 EMI 和 RFI 的影响。相反,电缆设计者发现他们可以通过以下方式来减少串扰的负面影响:

  • 抵消 - 电缆设计者现在对电路中的电线进行配对。当电路中的两根电线紧密排列时,彼此的磁场正好相反。因此,这两个磁场相互抵消,也抵消了所有的外部 EMI 和 RFI 干扰信号。
  • 变化每个线对中的扭绞次数 - 为了进一步增强配对电线的抵消效果,设计者会变化电缆中每个线对的扭绞次数。UTP 电缆必须遵守精确的规定来管理每米(3.28 英尺)电缆所允许的扭绞次数或编织数。请注意,图中橙色/橙白色线对比蓝色/蓝白色线对的扭绞次数要少。每个彩色线对扭绞的次数不同。
    UTP 电缆仅通过线对扭绞的抵消效果来减小信号衰减,并为网络介质中的线对提供有效的自屏蔽。

标准

UTP 布线遵循由 TIA/EIA 共同制定的标准。具体而言,TIA/EIA-568 规定了 LAN 安装的商业布线标准,它是 LAN 布线环境中最常用的标准。
电气电子工程师协会 (IEEE) 定义了铜缆的电气特性。IEEE 按照它的性能对 UTP 布线划分等级。电缆分类的依据是它们承载更高速率带宽的能力。
-3 类电缆最初用于语音线路的语音通信,但后来用于数据传输。
-5 类和5e 类电缆用于数据传输。5类电缆支持 100Mbps,5e 类电缆支持 1000 Mbps
-6类电缆在每对线之间增加了一个分隔器以支持更高的速度。 6类电缆支持高达 10 Gbps。 -7类电缆也支持 10 Gbps。 -8类电缆支持 40 Gbps。
一些制造商制造的电缆超出了 TIA/EIA 6a 类电缆的规格,将其称为 7 类电缆。
UTP 电缆类别之间的结构差异:3类电缆有四根电线(直)。5类电缆 和 5e类电缆有四对双绞线。6类电缆(STP)有四对双绞线,每对之间都有一个塑料分隔器。

连接器

RJ-45 UTP

直通和交叉UTP电缆

  • 以太网直通电缆 -最常见的网络电缆类型。它通常用于主机到交换机和交换机到路由器的互连。
  • 以太网交叉电缆 -用于互连相似设备的电缆。例如,交换机到交换机、主机到主机或路由器到路由器的连接。但是,由于网卡使用介质相关接口交叉(auto-MDIX)来自动检测电缆类型并进行内部连接,因此现在已将交叉电缆视为传统电缆。
    电缆类型 标准 应用
    以太网直通线 两端均为 T568A 或两端均为 T568B 将网络主机连接到交换机或集线器之类的网络设备
    以太网交叉线 一端为 T568A,另一端为 T568B 连接两个网络主机或连接两台网络中间设备 (交换机到交换机或路由器到路由器)
    全反电缆 思科专有 使用适配器连接工作站串行端口与路由器 控制台端口。
  • 蓝中间,棕右边,左绿为A橘为B,花线左但中间反*

光纤布线

因为它是昂贵的,所以在各种类型的铜缆布线中并不常用。但是光纤布线具有某些特性,使其成为某些情况下的最佳选择
与其他网络介质相比,光缆能够以更远的距离和更高的带宽传输数据。不同于铜缆,光缆传输信号的衰减更少,并且完全不受 EMI 和 RFI 影响。光纤常用于互连网络设备。
目前光纤布线用于四类行业:

  • 企业网络 - 用于主干布线和基础设施设备互连。
  • 光纤到户 (FTTH) - 用于为家庭和小型企业提供不间断宽带服务。
  • 长距离传输网络 - 由服务提供商用于连接国家/地区与城市。
  • 水下有线网络 - 用于提供可靠高速、高容量的网络解决方案,使其在深度与横跨海洋的距离相当的严酷海下环境中仍能生存。在互联网上搜索“海底电缆电信地理地图”,以在线查看各种地图。

两种类型:

  • 单模光纤 (SMF)单模光纤包含一个极小的芯,使用昂贵的激光技术来发送单束光,如图所示。单模光纤在跨越数百公里的长距离传输情况下很受欢迎,例如应用于长途电话和有线电视中的光纤。
    enter description here
  • 多模光纤 (MMF)多模光纤包含一个稍大的芯,使用 LED 发射器发送光脉冲。具体而言,LED 发出的光从不同角度进入多模光纤,如图所示。普遍用于 LAN 中,因为它们可以由低成本的 LED 提供支持。它可以通过长达 550 米的链路提供高达 10 Gb/s 的带宽。
    enter description here
    多模和单模光纤之间的主要区别之一就是色散的数量。色散是指光脉冲在时间上的分布。色散增加意味着信号强度损失增加。多模光纤具有比单模光纤更大的色散。这就是为什么多模光纤在信号丢失之前只能传播 500 米。

光纤连接器与光纤插接线略

4.5.4、4.5.5

无线介质

无线介质使用无线电或微波频率来承载代表数据通信二进制数字的电磁信号。
无线介质提供所有介质中最好的移动特性,而且启用无线的设备数量不断增加。无线现在是用户连接到家庭和企业网络的主要方式。
以下是无线网络的一些局限性:

  • 覆盖面积 - 无线数据通信技术非常适合开放环境。但是,在楼宇和建筑物中使用的某些建筑材料以及当地地形将会限制它的有效覆盖。
  • 干扰 - 无线电易受干扰,可能会受到家庭无绳电话、某些类型的荧光灯、微波炉和其他无线通信装置等常见设备的干扰。
  • 安全性 - 无线通信覆盖无需进行介质的物理接线。因此,未获得网络访问授权的设备和用户可以访问传输。所以网络安全是无线网络管理的重要组成部分。
  • 共享介质 - WLAN 以半双工模式运行,意味着一台设备一次只能发送或接收。无线介质由所有无线用户共享。许多用户同时访问WLAN会导致每个用户的带宽减少。
    虽然无线在桌面连接中逐渐普及,但铜缆和光纤仍是部署网络中间设备(如路由器和交换机)最常见的物理层介质。

标准

  • Wi-Fi (IEEE 802.11) - 无线 LAN (WLAN) 技术,通常称为 Wi-Fi。WLAN 使用一种称为“载波侦听多路访问/冲突避免 (CSMA/CA)”的争用协议。无线 NIC 在传输数据之前必须先侦听,以确定无线信道是否空闲。如果其他无线设备正在传输,则 NIC 必须等待信道空闲。Wi-Fi 是 Wi-Fi 联盟的标记。Wi-Fi 与基于 IEEE 802.11 标准的认证 WLAN 设备结合使用。
  • 蓝牙 (IEEE 802.15) - 这是一个无线个人局域网 (WPAN) 标准,通常称为 “蓝牙”。它采用设备配对过程进行通信,距离为 1 到 100 米。
  • WiMAX (IEEE 802:16) - 通常称为微波接入全球互通 (WiMAX),这个无线标准采用点到多点拓扑结构,提供无线带宽接入。
  • Zigbee (IEEE 802.15.4) - Zigbee是一种用于低数据速率、低功耗通信的规范。它适用于需要短距离、低数据速率和长电池寿命的应用。Zigbee 通常用于工业和物联网 (IoT) 环境,如无线照明开关和医疗设备数据采集。

常见方式-WLAN

常见的无线数据实施方式是使设备通过LAN以无线方式连接。通常,WLAN 要求具备下列网络设备:

  • 无线接入点 (AP) - 集中用户的无线信号,并连接到现有基于铜介质的网络基础设施,如以太网。如图所示,家庭和小型企业无线路由器将路由器、交换机和接入点的功能整合到了一起。
  • 无线网卡适配器 - 能够为每台网络主机提供无线通信。
    随着技术的发展,许多以太网 WLAN 标准应运而生。在购买无线设备时,必须确保它的兼容性和互操作性。
    无线数据通信技术的益处是显而易见的,尤其是节省了昂贵的房屋布线,而且方便主机移动。网络管理员必须制定和应用严格的安全策略和流程保护WLAN,防止网络遭受不速之客的访问和破坏。

查漏补缺

物理层负责通过物理介质将实际信号作为传输。
交换帧、控制介质访问和执行错误检测都是数据链路层的功能。

帧编码会将转化为预定义的代码,以便提供一种可预测模式,帮助区分数据位和控制位。

  • 数据 - 一般术语,泛指应用层使用的 PDU
  • 段 - 传输层 PDU
  • 数据包 - 网络层 PDU
  • 帧 - 数据链路层 PDU
  • 位 - 通过介质实际传输数据时使用的物理层 PDU

数据链路层

OSI模型的数据链路层(第2层)为物理网络准备网络数据。数据链路层负责网络接口卡 (NIC) 到网络接口卡的通信。数据链路层执行以下操作:

  • 允许上层访问介质。上层协议完全不知道用于转发数据的介质类型。
  • 接受数据,通常是第 3 层数据包(即 IPv4 或 IPv6),并将它们封装到第 2 层帧中。
  • 控制数据在介质上的放置和接收方式,
  • 通过网络介质在终端之间交换帧。
  • 接收封装的数据,通常是第 3 层数据包,并将它们定向到适当的上层协议。
  • 执行错误检测并拒绝任何损坏的帧。

IEEE 802LAN/MAN 数据链路子层

  • 逻辑链路控制 (LLC) - 这个 IEEE 802.2 子层在上层的网络软件与下层的设备硬件之间进行通信。它放入帧中的信息用于确定帧所使用的网络层协议。此信息允许多个第 3 层协议(如 IPv4 和 IPv6)使用相同的网络接口和介质。
    LLC 子层获取网络协议数据(通常是 IPv4 或 IPv6数据包)并加入第2层控制信息,帮助将数据包传送到目的节点。 
    
  • 介质访问控制 (MAC) - 在硬件上实现这个子层(IEEE 802.3、802.11 或 802.15)。它负责数据封装和介质访问控制它提供数据链路层寻址,并与各种物理层技术集成。
    MAC子层控制网卡和负责在有线或无线LAN/MAN介质上发送和接收数据的其他硬件。
    MAC 子层提供数据封装:
    *   **帧定界** - 在成帧过程中提供重要的定界符,用来标识帧中的字段。这些定界符位可以在发送节点与接收节点之间提供同步。
    *   **编址** - 提供源和目的编址,用于在同一共享介质上的设备之间传输第 2 层帧。
    *   **错误检测** - 包含一个帧尾,用于检测传输错误。
    MAC 子层还提供介质访问控制,允许多个设备通过共享(半双工)介质进行通信。全双工通信不需要访问控制。
    

介质访问方法

在数据包从本地主机传送到远程主机的过程中,其遇到的各种网络环境可能具有不同的特性。对于串行链路,访问方法可能只包括两个设备之间的直接连接,通常是两个路由器。因此,它们不需要 IEEE 802 MAC 子层所使用的技术。
使用合适的介质访问控制方法来访问每个链路。
确定所使用的介质访问控制方法的两个条件是所涉及的介质共享类型拓扑
在路径上的每一跳,路由器都执行以下第 2 层功能:

  1. 从介质接受帧
  2. 解封帧
  3. 将数据包重新封装到新帧中
  4. 从适合该物理网络网段的介质转发新帧

数据链路层标准

与 TCP/IP 的上层协议不同,数据链路层协议通常不是由征求意见 (RFC) 文档定义的。互联网工程任务组 (IETF) 虽然维护着 TCP/IP 协议簇上层的工作协议和服务,但它没有定义TCP/IP模型的网络接入层的功能和操作。
定义适用于网络接入层(即,OSI的物理和数据链路层)的开放标准和协议的工程组织包括:

  • 电气电子工程师协会 (IEEE)
  • 国际电信联盟 (ITU)
  • 国际标准化组织 (ISO)
  • 美国国家标准学会 (ANSI)

拓扑

  • 物理拓扑 - 标识物理连接,以及终端设备和中间设备(即,路由器、交换机和无线接入点)如何互连。这个拓扑还可能包括特定的设备位置,如房间号和设备机架上的位置。物理拓扑通常是点对点拓扑或星型拓扑。
  • 逻辑拓扑 - 是指网络将帧从一个节点传输到另一节点的方法。此拓扑使用设备接口和第 3 层 IP 寻址方案识别虚拟连接。

访问控制方法

  • 基于竞争的访问-在基于竞争的多路访问网络中,所有节点都工作在半双工方式,争夺介质的使用。然而,一次只有一台设备能够发送。因此,当多台设备同时传输时,会使用一个处理过程。基于竞争的访问方法示例如下:
    • 在传统总线拓扑以太网局域网上使用载波侦听多路访问/冲突检测(CSMA/CD)
    • 在无线局域网上使用载波侦听多路访问/冲突避免(CSMA/CA)
  • 受控访问-在基于控制的多路访问网络中,每个节点都有自己的时间来使用介质。这种确定性的传统网络类型效率很低,因为设备必须等到轮到自己才能访问介质。使用受控访问的多路访问网络的示例包括:
    • 传统令牌环
    • 传统ARCNET
  • 如今,以太网网络以全双工方式运行,不需要访问方法。使用交换机的以太网 LAN 不使用基于竞争的系统,因为交换机和主机网卡在全双工模式下运行。无线局域网 (WLAN)只支持半双工,因为同一时间只有一台设备可以访问介质。

数据链路帧

虽然有许多描述数据链路层帧的不同数据链路层协议,但每种帧均有三个基本组成部分:

  • 帧头
  • 数据
  • 帧尾
    成帧技术将位流拆分成可破解的多个分组,且将控制信息作为不同字段值插入帧头和帧尾中。此格式使物理信号具备能被节点识别且可在目的地解码成数据包的一种结构。
    图中显示了通用帧字段。并非所有协议均包含全部此类字段。特定数据链路协议的标准定义了实际帧格式。

    帧字段包括以下内容:
  • 帧开始和停止指示标志 - 用于标识帧的开始和结束位置的限制。
  • 编址 - 表示介质上的源节点和目的节点。
  • 类型 - 用于标识数据字段中的第 3 层协议。
  • 控制 - 用于标识特殊流量控制服务,比如服务质量 (QoS)。QoS 为某些类型的消息提供转发优先权。例如,IP 语音 (VoIP) 帧通常优先接收,因为它们对延迟敏感。
  • 数据 - 包含帧负载(即数据包报头、数据段报头和数据)。
  • 错误检测 - 包含在数据之后以形成帧尾。
    数据链路层协议将帧尾添加到各帧结尾处。在一个叫做错误检测的过程中,帧尾会判断帧是否到达时没有错误。它将组成帧的各个位的逻辑或数学摘要放入帧尾中。要将错误检测添加到数据链路层,因为介质中的信号可能遭受干扰、失真或丢失,从而大幅更改这些信号所代表的位值。
    发送节点会创建帧内容的逻辑摘要,称为循环冗余校验 (CRC) 值。此值将放入帧校验序列 (FCS) 字段中以代表帧内容。在以太网尾部,FCS 为接收节点提供一种方法,用于确定帧是否出现传输错误。
    数据链路层向第3层数据包添加一个包含源和目的第2层地址的帧头和一个包含帧检查序列(FCS)的帧尾

查漏补缺

以太网帧在数据链路层由它们的MAC地址来标识,每个网卡的地址都是唯一的
MAC 子层的功能:提供数据链路层编址,检查位错误,支持以太网技术,由硬件执行控制对介质的访问
数据链路层接受第3层的数据包并将它们封装到称为帧的数据单元中

以太网

以太网标准同时定义第 2 层协议和第 1 层技术。
以太网在数据链路层和物理层运行,是 IEEE 802.2 和 802.3 标准中定义的一系列网络技术。

以太网帧

以太网帧大小的最小值为 64 个字节,最大值为 1518 个字节。这包括从“目的 MAC 地址”字段到“帧校验序列 (FCS)”字段的所有字节。在描述帧的大小时,不包含“前导码”字段。

| 字段 | 说明 |
| — | — |
| 前导码和帧首定界符字段(SFD) | 前导码(7 字节)和帧首定界符(SFD),也称为 帧首(1 字节),该字段用于发送设备 与接收设备之间的同步。帧开头的八个字节 用于引起接收节点的注意。基本上,前几个字节的 作用是告诉接收方准备接收新帧。 |
| 目的 MAC 地址字段 | 该 6 字节字段是预期接收方的标识符。读者应该还记得, 此地址被第2层用来协助设备 确定帧是否发送到目的地。帧中的地址将会与设备中的 MAC 地址进行比对。如果匹配, 设备就接受该帧。可以是单播、组播或广播 地址。 |
| 源 MAC 地址字段 | 该 6 字节字段标识发出帧的网卡 或接口。 |
| 类型/长度 | 该字段包含两个字节,标识封装于以太网帧中的 上层协议。常见值为十六进制,0x800 用于 IPv4, 0x86DD 用于 IPv6,0x806 用于 ARP。
注意:您也可能会看到此字段称为 EtherType、类型或长度。 |
| 数据字段 | 该字段(46-1500 字节)包含来自 较高层的封装数据,一般是第3层PDU或更常见的IPv4 数据包。所有帧至少必须有 64 个字节。如果封装的是小数据包, 则使用填充位将帧 增大到最小值。 |
| 帧校验序列字段 | “帧校验序列 (FCS)”字段(4 个字节)用于检测帧中 的错误。它使用循环冗余校验 (CRC)。发送设备 在帧的 FCS 字段中包含 CRC 的结果。接收设备 接收帧并生成 CRC 以查找 错误。如果计算匹配,就不会发生错误。计算 不匹配则表明数据已经改变。因此, 帧会被丢弃。数据的变化可能是 由于代表比特位的电信号受到干扰所致。 |

以太网MAC地址

在以太网中,每台网络设备都连接到同一个共享介质。MAC 地址用于标识本地网段上的物理源和目的设备。MAC 编址为 OSI 模型的数据链路层提供了设备识别方法。
以太网 MAC 地址是使用 12个十六进制数字表示的 48 位地址,一个字节等于 8 位,也可以说 一个MAC 地址长度为 6 个字节。
所有 MAC 地址对于以太网设备或以太网接口必须是唯一的。为了确保这一点,所有销售以太网设备的供应商必须向 IEEE 注册才能获得唯一的 6个十六进制(即 24 位或 3 字节)代码,称为组织唯一标识符 (OUI)。使用其分配的 OUI 作为前 6 个十六进制数字。为后 6 个十六进制数字分配唯一值。
enter description here
MAC 地址通常称为烧录地址 (BIA),因为传统上该地址被烧录到网卡的只读存储器(ROM)中。这意味着该地址会永久编码到 ROM 芯片中。
收到以太网帧时,网卡会查看帧中的目的 MAC 地址是否与设备 RAM 中存储的物理 MAC 地址匹配。如果不匹配,设备就会丢弃帧。如果与帧中的目的 MAC 匹配,则网卡会将帧向上传送到 OSI 层进行解封处理。

IPv4 目的地址为广播地址 192.168.1.255
当封装数据为IPv4组播包时,目的MAC地址为01-00-5E;当封装数据为IPv6组播包时,目的MAC地址为33-33

MAC地址表

交换机通过检查端口传入帧的源 MAC 地址来动态构建 MAC 地址表。交换机通过匹配帧中的目的 MAC 地址与 MAC 地址表中的条目来转发帧。
如果目的 MAC 地址为单播地址,该交换机会看帧中的目的 MAC 地址与 MAC 地址表中的条目是否匹配。如果表中存在该目的MAC地址,交换机会从指定端口转发帧。如果表中不存在该目的MAC地址,交换机会从除传入端口外的所有端口转发帧。这称为未知单播。

交换机

存储转发交换

这个帧转发的方法接收整个帧并计算CRC。CRC 根据帧中的比特位为 1 的位数量,使用数学公式来确定收到的帧是否有错。如果 CRC 有效,则交换机查找目的地址,目的地址决定了转发接口。帧然后从正确的端口转发出去。
存储转发交换的一大优点是,它可以在传播帧之前确定帧是否有错误。当在帧中检测到错误时,交换机丢弃该帧。丢弃有错的帧可减少损坏的数据所耗用的带宽量。存储转发交换对于融合网络中的服务质量 (QoS) 分析是必需的

直通交换

在直通交换中,交换机在收到数据时立即处理数据,即使传输尚未完成。交换机只缓冲帧的一部分,缓冲的量仅足以读取目的 MAC 地址,以便确定转发数据时应使用的端口。
直通交换有两种变体:

  • 快速转发交换 -  快速转发交换提供最低程度的延时。快速转发交换在读取目的地址之后立即转发数据包。由于快速转发交换在收到整个数据包之前就开始转发,因此有时候中继数据包时会出错。这种情况并不经常发生,而且目的网络适配器在收到含错数据包时会将其丢弃。在快速转发模式下,延时是指从收到第一个位到传出第一个位之间的时间差。快速转发交换是典型的直通交换方法。
  • 免分片交换 -  在免分片交换中,交换机在转发之前存储帧的前 64 个字节。可以将免分片交换视为存储转发交换和直通交换之间的折衷。免分片交换只存储帧的前 64 个字节的原因是,大部分网络错误和冲突都发生在前 64 个字节。免分片交换在转发帧之前对帧的前 64 个字节执行小错误检查以确保没有发生过冲突,并且尝试通过这种方法来增强快速转发交换功能。免分片交换是存储转发交换的高延时和高完整性与快速转发交换的低延时和弱完整性之间的折衷。

交换机上的内存缓冲

以太网交换机在转发帧之前,可以使用缓冲技术存储帧。当目的端口由于拥塞而繁忙时,也可以使用缓冲。交换机将帧存储起来,直到可以传输。
| 方法 | 描述 |
| — | — |
| 基于端口的内存 |

  • 帧存储在链接到特定传入端口和传出 端口的队列中。
  • 只有当队列前面的所有帧都成功传输后, 才会将帧传输到传出端口。
  • 由于目地端口繁忙, 单个帧可能会造成内存中所有帧的传输延迟。
  • 即使其他帧可以传送到开放的目的端口, 这种延迟仍然会发生。
    |
    | 共享内存 |
  • 将所有帧存储到由所有交换端口共享的公共内存缓冲区中, 并且动态分配一个端口所需的 缓冲区内存量。
  • 缓冲区中的帧动态地链接到目的端口, 允许在一个端口上接收数据包,然后 在另一个端口上发送,而无需移动到另一个队列。
    |

自动协商

交换机上最基本的两个设置是带宽(有时称为“速率”)和每个交换机端口的双工设置。交换机端口和连接的设备(例如计算机或另一台交换机)的双工设置和带宽设置必须匹配。
当链路上的一个或两个端口被重置时,会发生双工不匹配,自动协调过程并不会使链路上的两个端口的配置相同。当用户重新配置链路的一端而忘记重新配置另一端时,也会出现这样的情况。链路的两端均应都使用或都不使用自动协商。最佳实践是将两个以太网交换端口都配置为全双工。

Auto-MDIX

大多数交换机设备都支持自动介质相关接口交叉 (auto-MDIX) 功能。当该功能启用时,交换机可检测连接到端口的线缆类型,并相应地配置接口。因此,如果要连接到交换机上的铜缆 10/100/1000 端口,您既可以使用交叉线,也可以使用直通线,而无需考虑连接另一端的设备类型。

名词

  • 网络接口卡 (NIC)- 将设备物理连接到网络。
  • 物理端口 - 网络设备上的接口或插口,介质通过它连接到终端设备或其他网络设备。
  • 接口- 网络设备上连接到独立网络的专用端口。由于路由器连接了不同的网络,路由器上的端口称为网络接口。
  • LAN(局域网)- 是覆盖较小地理区域的网络基础设施。局域网具有如下特点:
    LAN 在有限区域(如家庭、学校、办公大楼或园区)内互连终端设备。
    LAN 通常由一个组织或个人管理。实行网络级管控、安全控制并制定访问控制策略。
    LAN 为内部终端设备和中间设备提供高速带宽。
  • WAN(广域网)- 是覆盖广泛地理区域的网络基础设施。WAN 通常由服务提供商 (SP) 或互联网服务提供商 (ISP) 管理。WAN 具有如下特点:
    WAN 互连广泛地理区域(例如各大城市、州、省、国家/地区或大陆之间)内的 LAN。
    WAN 通常由多个服务提供商管理。
    WAN 通常提供 LAN 之间的较慢链路。
  • 互联网-是一个遍及全球的互相连接的网络(简称互联网络或互联网)的集合。将互联网看作互连的 LAN 和 WAN 集合。
  • 内部网-用于表示一个组织的私有局域网和广域网连接。内部网的设计旨在仅允许该组织的成员、员工或其他获得授权的人员进行访问。
  • 外联网-为在其他组织工作,但需要本组织数据的人提供安全访问。
  • ISP(互联网服务提供商)-互联网服务提供商,即向广大用户综合提供互联网接入业务、信息业务、和增值业务的电信运营商。(电信移动联通)
  • 病毒、蠕虫和特洛伊木马 - 这些包括在用户设备上运行的恶意软件或代码。间谍软件和广告软件 -这些是安装在用户设备上的软件类型。这些软件会秘密收集有关用户的信息。零日攻击(也称零小时攻击) - 在出现漏洞的第一天发起的攻击。威胁发起者攻击 -恶意人员攻击用户设备或网络资源。拒绝服务攻击DoS - 使网络设备上的应用和进程减缓或崩溃的攻击。数据拦截和盗窃 - 通过公司网络捕获私人信息的攻击。身份盗窃 - 窃取用户的登录凭证来访问私人数据的攻击。
  • 访问控制列表 (ACL)-基于IP地址和应用程序,进一步过滤访问和流量转发。
  • 入侵防御系统 (IPS)- 识别快速扩散的威胁,例如零日攻击或零小时攻击。
  • 虚拟专用网络 (VPN)- 为远程工作人员提供对组织机构的安全访问。
  • 命令行界面 (CLI) 图形用户界面 (GUI)-
  • 控制台 (Console)-这是一种物理管理端口,可通过该端口对思科设备进行带外访问。控制台连接需要运行终端仿真软件的计算机和用于连接设备的特殊控制台电缆。
  • 带外访问-是指通过仅用于设备维护的专用管理通道进行访问。使用控制台端口的优势在于,即使没有配置任何网络服务,也可以访问设备,例如执行初始配置时。
  • 安全外壳(SSH)-SSH 是一种带内且被推荐的方法,它使用虚拟接口通过网络远程建立安全的 CLI连接。不同于控制台连接,SSH 连接需要设备上具有有效的网络服务,包括配置了地址的有效接口。
  • Telnet Telnet-使用虚拟接口通过网络远程建立 CLI 会话,这种带内方法并不安全。与 SSH 不同,Telnet 不提供安全的加密连接,只能在实验室环境中使用。用户身份验证、密码和命令通过网络以明文形式发送。
  • AUX-某些设备,比如路由器,还可以支持传统辅助端口(如3mm音频接口),这种辅助端口可使用调制解调器通过电话连接远程建立 CLI 会话。类似于控制台连接,AUX 端口也是带外连接,且不需要配置或提供网络服务。
  • PDU-一段数据在任意协议层的表示形式称为协议数据单元 (PDU)
  • API-Application Programming Interface,应用程序接口
    第二部分
  • URL- (Uniform Resource Locator,统一资源定位符)对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
  • ACL-访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。
  • RPC-RPC是远程过程调用(Remote Procedure Call)的缩写形式。
  • RESTful api-REST即Representational State Transfer的缩写,是基于HTTP协议之上的一组约束和属性,翻译过来是表现层状态转移。REST是一种_设计风格_(并非一种标准),描述的是在网络中Client和Server的一种交互形式,目的是便于不同的软件/程序在网络中互相传递消息。RESTful即实现REST设计风格的一种架构,如RESTful API(REST设计风格的API)

CLI命令(思科 IOS)

上下文相关帮助为用户提供了一个命令列表以及与网络设备当前模式中这些命令相关联的参数。
语法检查器提供了对已提交命令的错误检查,如果输入了部分命令,则 TAB 键可用于将命令补充完整。

权限模式

用户 EXEC 模式(用户模式)标识“>”
特权 EXEC 模式(特权模式)标识“#”
要从用户模式切换到特权模式,请使用enable命令。使用特权模式命令disable返回用户模式。
要配置设备,用户必须进入全局配置模式。
在全局配置模式下, CLI 配置所做的更改将影响整个设备的运行。全局配置模式由在设备名称之后加(config)#结尾的提示符标识,比如Switch(config)#。
要进出全局配置模式,请使用特权模式命令configure terminal。要返回特权模式,请输入全局配置模式命令exit
访问全局配置模式之后才能访问其他具体的配置模式。子配置模式:

  • 线路配置模式0- 用于配置控制台、SSH、Telnet 或 AUX 访问。默认提示符是 Switch(config-line)#
  • 接口配置模式1- 用于配置交换机端口或路由器网络接口。 Switch(config-if)#
    要进入线路子配置模式,您可以使用line命令后跟您要访问的管理线路类型和编号来实现。
    1
    2
    3
    Switch(config)# line console 0
    Switch(config-line)# exit
    Switch(config)#
    要从全局配置模式的任何子配置模式切换到模式层级中的上一级模式,请输入exit命令。
    要从任何子配置模式切换到特权模式,请输入end命令或输入组合键Ctrl+Z。
    还可以直接从一个子配置模式切换到另一个子配置模式。注意在选择接口后,命令提示符如何从 (config-line)# 到 (config-if)#
    1
    2
    Switch(config-line)# interface FastEthernet 0/1
    Switch(config-if)#

键位操作

键盘输入 描述
Tab 补全部分输入的命令项。
Backspace 删除光标左边的字符。
Ctrl-D 删除光标所在的字符。
Ctrl-K 删除从光标到命令行尾的所有字符。
Esc D 删除从光标到词尾的所有字符。
Ctrl+U或 Ctrl+X 删除从光标到命令行首的 所有字符。
Ctrl-W 删除光标左边的单词。
Ctrl-A 将光标移至行首。
向左箭头Ctrl+B 将光标左移一个字符。
Esc B 将光标向后左移一个单词。
Esc F 将光标向前右移一个单词。
向右箭头Ctrl+F 将光标右移一个字符。
Ctrl-E 将光标移至命令行尾。
向上箭头Ctrl+P 调出历史记录缓冲区中的命令, 从最近输入的命令开始。
Ctrl+RCtrl+ICtrl+L 收到控制台消息后重新显示系统提示符和 命令行。
Ctrl-C 处于任何配置模式下时,用于结束该配置模式并返回 特权模式。处于设置模式下时,用于中止并返回命令 提示符。
Ctrl-Z 处于任何配置模式下时,用于结束该配置模式并返回 特权模式。
Ctrl-Shift-6 通用中断序列用于中止 DNS lookup、traceroutes、 pings等。

设备配置命令

  • 命名hostname Sw-Floor-1
  • 用户 EXEC 模式密码设置
    1
    2
    Sw-Floor-1(config-line)# password cisco
    Sw-Floor-1(config-line)# login
  • 特权 EXEC 访问密码设置
    1
    Sw-Floor-1(config)# enable secret cisco
  • 虚拟终端 (VTY) 线路支持通过Telnet或SSH对设备的远程访问
    使用line vty 0 15全局配置命令进入线路 VTY 模式
  • 加密所有明文密码,请使用全局配置命令service password-encryption
  • 使用show running-config命令验证密码现在是否已加密
  • 使用banner motd #当日消息#全局配置命令,命令执行完毕后,系统将向之后访问设备的所有用户显示该标语,直到该标语被删除为止
  • 特权 EXEC 模式命令show running-config用于查看正在运行的配置
  • 要查看启动配置文件,请使用特权 EXEC 命令show startup-config
  • 使用特权 EXEC 模式命令erase startup-config可删除启动配置
  • 使用特权 EXEC 模式命令 reload重新加载设备都能恢复启动配置
  • copy running-config startup-config将运行配置拷贝到启动配置以做修改

端口和地址

使用 IP 地址,是设备能够相互查找并在 Internet 上建立端到端通信的主要方式。
IPv4 地址的结构称为点分十进制记法,用 0 到 255 之间的四个十进制数字表示。
对于 IPv4 地址,子网掩码也是必要设置。IPv4 子网掩码是将地址的网络部分与主机部分区分开来的 32 位值。子网掩码,与 IPv4 地址相结合,可用于确定设备属于哪个子网。
例如 IPv4 地址 (192.168.1.10)、子网掩码 (255.255.255.0) 和默认网关 (192.168.1.1)。
默认网关地址是主机将用于访问远程网络(包括 Internet)的路由器的 IP 地址。
IPv6 地址长度为 128 位,写作十六进制值字符串。每 4 位以一个十六进制数字表示;共 32 个十六进制值。由四个十六进制数字组以冒号 (:) 分隔。IPv6 地址不区分大小写,可用大写或小写书写。
注意子网掩码(IPv4)或前缀长度(IPv6)用于将IP地址的网络部分与主机部分区分开来。
交换机有一个或多个**交换机虚拟接口 (SVI)**。这些是虚拟接口,是因为设备上没有任何物理硬件与之关联。SVI 会在软件中创建。虚拟接口可以让您使用 IPv4和IPv6 通过网络远程管理交换机。每台交换机的默认配置中都“现成”带有一个 SVI。默认 SVI 是接口 VLAN1。

配置IP

终端通常默认使用 DHCP 进行 IPv4 地址自动配置。
IPv6 使用 DHCPv6 和 SLAAC(无状态地址自动配置)进行动态地址分配。
要远程访问交换机,SVI 上必须配置 IP 地址和子网掩码。要在交换机上配置 SVI,请使用全局配置命令interface vlan 1。Vlan 1 并不是一个实际物理接口,而是一个虚拟接口。然后使用接口配置命令 ip address ip-address(192.168.1.20) subnet-mask(255.255.255.0) 配置 IPv4 地址。最后,使用接口配置命令 no shutdown 启用虚拟接口。
show ip interface brief查看IP配置
ping命令(command命令)可用于测试与网络上的另一设备或互联网上的一个网站的连接。

协议和模型

协议的要求

网络通信中使用的协议共享许多基本特质。除了识别源和目的地之外,计算机和网络协议还定义了消息在网络中如何传输的细节。常用的计算机协议包含以下要求:

消息编码

在发送消息时,首先执行的步骤之一是编码。编码是将信息转换为另一种广为接受的形式的过程,目的是为了便于传输信息。解码是编码的逆向过程,用来解释信息。

消息格式和封装

当消息从源发送到目的地时,必须使用特定的格式或结构。消息格式取决于消息的类型和传递信道。
将一种消息格式(信件)放入另一种消息格式(信封)的过程称为封装。

消息大小

消息时序

消息时序在网络通信中也非常重要。消息时序包括以下内容:

  • 流量控制- 这是管理数据传输速率的过程。流量控制定义了可以发送多少信息以及传递信息的速率。例如,如果一个人讲话太快,对方就难以听清和理解。在网络通信中,源设备和目的设备使用网络协议来协商和管理信息流。
  • 响应超时 -如果一个人提问之后在合理的时间内没有得到回答,就会认为没有获得回答并作出相应的反应。此人可能会重复这个问题,也可能继续谈话。网络上的主机会使用网络协议来指定等待响应的时长,以及在响应超时的情况下执行什么操作。
  • 访问方法 -这决定人们可以发送消息的时间。单击图中的“播放”来查看如果两个人同时讲话,就会发生信息冲突,两个人必须作出让步,重新开始的动画演示。同样,当设备想要在无线局域网上传输时,有必要使用 WLAN 网络接口卡 (NIC) 来确定无线介质是否可用。

消息传输选项

单播、组播和广播

协议

使终端设备能够通过网络进行通信,每个设备都必须遵守相同的一套规则。这些规则被称为协议

类型

协议类型 描述
网络通信协议 这类协议使两个或多个设备能够在一个或多个 网络上通信。以太网技术家族涉及多种协议, 例如IP,传输控制协议(TCP), 超文本传输协议(HTTP)等。
网络安全协议 这类协议保护数据以提供身份验证、数据完整性和 数据加密。安全协议的示例包括安全外壳协议 (SSH)、安全套接字层协议 (SSL) 和传输层安全协议 (TLS)。
路由协议 这类协议使路由器能够交换路由信息,比较路径 信息,然后选择到达目标网络的 最佳路径。路由协议的示例包括开放最短路径优先协议 (OSPF)和边界网关协议 (BGP)。
服务发现协议。 这类协议用于设备或服务的自动检测。 服务发现协议的示例包括发现用于IP地址分配 服务的动态主机配置协议(DHCP), 和用于执行域名到IP地址转换的 域名系统(DNS)。

功能

功能 描述
编址 这使用已定义的编址方案来标识消息的发送者 和预期的接收者。提供编址的协议示例 包括以太网,IPv4和IPv6。
可靠性 此功能提供了有保证的传输机制, 以防消息在传输过程中丢失或损坏。TCP 提供可靠的传输。
流量控制 此功能可确保数据在两个通信设备之间 高效传输。TCP 提供流量控制服务。
排序 此功能唯一地标记每个传输的数据段。接收设备 使用排序信息正确地 重组信息。如果数据段丢失,延迟或未按顺序接收, 这将很有用。TCP 提供排序服务。
差错检测 此功能用于确定传输过程中数据 是否已损坏。提供差错检测的各种协议包括 以太网,IPv4,IPv6和TCP。
应用接口 此功能包含用于网络应用程序之间的进程间 通信的信息。例如,访问网页时, 使用HTTP或HTTPS协议在客户端和服务器Web进程 之间进行通信。

常见协议

  • 超文本传输协议 (HTTP) - 该协议控制 Web 服务器和 Web 客户端进行交互的方式。HTTP 定义了客户端和服务器之间交换的请求和响应的内容与格式。客户端软件和 Web 服务器软件都将 HTTP 作为应用程序的一部分来实现。HTTP 依靠其他协议来控制客户端和服务器之间传输消息的方式。
  • 传输控制协议 (TCP) - 此协议管理各个会话。TCP负责保证信息的可靠传递和管理终端设备之间的流量控制。
  • 互联网协议 (IP) - 此协议负责将消息从发送方传输给接收方。路由器使用 IP 来跨多个网络转发消息。
  • 以太网 - 此协议负责将消息从一个 NIC 传输到同一个以太网局域网 (LAN) 上的另一个 NIC。

协议簇

协议簇是相互作用、帮助解决某个问题的规则集。

几种协议簇

  • 互联网协议簇或 TCP/IP - 这是目前使用的最常见和最相关的协议簇。TCP/IP 协议簇是由互联网工程任务组 (IETF) 维护的开放标准协议簇。
  • 开放系统互连(OSI)协议 - 这是1977年由国际标准化组织(ISO)和国际电信联盟(ITU)联合开发的一系列协议。OSI协议还包括一个被称为OSI参考模型的七层模型。OSI参考模型对其协议的功能进行分类。如今,OSI主要以其分层模型而闻名。OSI协议在很大程度上已经被TCP/IP所取代。
  • Apple Talk - 一个由苹果公司于1985年为苹果设备发布的短期专有协议簇。1995年,苹果公司采用TCP/IP技术取代了AppleTalk。
  • Novell NetWare - 一种短暂的专有协议套件和网络操作系统,由诺维尔公司在 1983 年使用 IPX 网络协议开发。1995年,Novell采用TCP/IP取代了IPX。

TCP/IP协议簇

如今,TCP/IP 协议簇包含许多协议,并且不断发展以支持新服务。
enter description here
TCP/IP是开放的标准的协议簇

应用层

域名系统

  • DNS - 域名系统。将域名(例如 cisco.com)转换为 IP 地址。
    主机配置
  • DHCPv4 - IPv4动态主机配置协议。DHCPv4 服务器在启动时动态地将 IPv4 编址信息分配给 DHCPv4 客户端,并允许在不再需要时重新使用这些地址。
  • DHCPv6 - IPv6动态主机配置协议。DHCPv6类似于DHCPv4。DHCPv6服务器在启动时动态地将IPv6编址信息分配给DHCPv6客户端。
  • SLAAC - 无状态地址自动配置。一种允许设备在不使用DHCPv6服务器的情况下获得其IPv6编址信息的方法。
    邮件
  • SMTP - 简单邮件传输协议。使客户端能够将邮件发送到邮件服务器,并使服务器能够将邮件发送到其他服务器。
  • POP3 - 邮局协议第 3 版。使客户端能够从邮件服务器检索电子邮件并将电子邮件下载到客户端本地邮件应用程序。
  • IMAP - 互联网消息访问协议。使客户端能够访问存储在邮件服务器上的电子邮件,并在服务器上维护电子邮件。
    文件传输
  • FTP - 文件传输协议。它设置规则,使得一台主机上的用户能够通过网络访问另一台主机或向其传输文件。FTP是一种可靠、面向连接且进行确认的文件传输协议。
  • SFTP - SSH文件传输协议。作为安全外壳 (SSH)协议的扩展,SFTP可用于建立安全的文件传输会话,在该会话中对文件传输进行加密。SSH 是一种安全远程登录的方法,通常用于访问设备的命令行。
  • TFTP - 简单文件传输协议。这是一个简单的,无连接的文件传输协议,使用尽最大努力、无需确认的文件传输方式。它使用的开销比FTP少。
    Web和Web服务
  • HTTP - 超文本传输协议。这是有关在万维网上交换文本、图形图像、音频、视频以及其他多媒体文件的一组规则集。
  • HTTPS - 安全 HTTP。这是一种安全的HTTP形式,它对在万维网上交换的数据进行加密。
  • REST - 具象状态传输协议。它使用应用程序编程接口 (API) 和 HTTP 请求创建 Web 应用程序的 Web 服务。

传输层

面向连接

  • TCP - 传输控制协议。它使运行在不同主机上的进程之间能够进行可靠的通信,并提供可靠的、需要确认的传输,以确保传输成功。
    无连接
  • UDP - 用户数据报协议。它允许一台主机上运行的进程向另一台主机上运行的进程发送数据包。但是,UDP不会确认数据报传输是否成功。

互联网层

Internet 协议IP

  • IPv4 - 互联网协议第 4 版。它接收来自传输层的消息段,将消息打包成数据包,并为通过网络进行端到端传递的数据包进行地址分配。IPv4 使用 32 位地址。
  • IPv6 - 互联网协议第 6 版。与 IPv4 类似,但使用 128 位地址。
  • NAT - 网络地址转换。将私有网络 IPv4 地址转换为全球唯一的公有 IPv4 地址。
    消息传送ICMP
  • ICMPv4 - IPv4 互联网控制消息协议。目的主机针对数据包传输中出现的错误,向源主机提供反馈。
  • ICMPv6 - 用于 IPv6 的ICMP。与 ICMPv4 类似的功能,但用于 IPv6 数据包。
  • ICMPv6 ND - IPv6 邻居发现。包括用于地址解析和重复地址检测的四个协议消息。
    路由协议
  • OSPF - 开放最短路径优先协议。它使用基于区域的分层设计的链路状态路由协议。OSPF是一种开放式标准内部路由协议。
  • EIGRP — 增强型内部网关路由协议这是一种思科开发的开放标准路由协议,使用基于带宽、延迟、负载和可靠性的复合度量。
  • BGP - 边界网关协议。这是一种开放标准的外部网关路由协议,用于互联网服务提供商(ISP)之间。BGP 还通常用于 ISP 与其大型私有客户端之间来交换路由信息。

网络接入层

地址解析

  • ARP - 地址解析协议。提供 IPv4 地址与硬件地址之间的动态地址映射。
  • *注意**:您可能会看到其他文档状态,表明 ARP 在互联网层(OSI 第 3 层)运行。但是,在本课程中,我们声明 ARP 在网络接入层(OSI 第 2 层)运行,因为它的主要目的是发现目标的 MAC 地址。MAC 地址是第 2 层地址。
    数据链路协议
  • 以太网 - 为网络接入层的布线和信令标准定义规则。
  • WLAN - 无线局域网。定义 2.4 GHz 和 5 GHz 无线电频率的无线信号规则。

标准组织

互联网标准

  • Internet 协会 (ISOC) – 负责在全世界推进互联网的开放式开发、发展和使用。
  • 互联网架构委员会 (IAB) - 负责互联网标准的整体管理和发展。
  • 互联网工程任务组 (IETF) - 负责开发、更新和维护互联网和 TCP/IP 技术。包括用于开发新协议和更新现有协议的流程和文档,称为征求意见 (RFC) 文档。
  • 互联网研究任务组 (IRTF) - 负责互联网和 TCP/IP 协议相关的长期研究,包括反垃圾电子邮件研究组(Anti-Spam Research Group,ASRG)、密码技术研究组(Crypto Forum Research Group,CFRG)和对等网络研究组(Peer-to-Peer Research Group,P2PRG)等。
  • 互联网名称与数字地址分配机构 (ICANN) - 总部设在美国,ICANN负责协调 IP 地址分配、域名的管理和 TCP/IP 协议中使用的其他信息的分配。
  • 互联网编号指派机构 (IANA) - 负责监督和管理 ICANN 中的 IP 地址分配、域名管理和协议标识符。

电子和通信标准

  • 电气电子工程师协会(IEEE,读作“I-triple-E”) –是为致力于推动诸多行业领域的技术创新和标准创建的工程师设立的组织,涉及的领域包括电力与能源、医疗保健、电信和网络。重要的 IEEE 网络标准包括 802.3 以太网和 802.11 无线局域网标准。可在互联网上搜索其他 IEEE 网络标准。
  • 美国电子工业协会 (EIA)- 该组织因其在用于安装网络设备的电线、连接器和 19 英寸机架方面的标准而知名。
  • 电信工业协会 (TIA)- 该组织负责开发各种领域的通信标准,包括无线电设备、手机信号塔、IP 语音 (VoIP) 设备和卫星通信等。该图显示了一个经认证的以太网电缆的示例,它是由TIA和EIA合作开发的。
  • 国际电信联盟电信标准局 (ITU-T)- 是最大最早的通信标准组织之一。ITU-T 定义视频压缩、Internet 协议电视 (IPTV) 和宽带通信的标准,例如数字用户线路 (DSL)。

模型


| OSI 模型层 | 描述 |
| — | — |
| 7 - 应用层 | 应用层包含用于进程间通信 的协议。 |
| 6 - 表示层 | 表示层用常用方式表示数据 在应用层服务之间的传输。 |
| 5 - 会话层 | 会话层向表示层提供服务,组织对话并 管理数据交换。 |
| 4 - 传输层 | 传输层定义服务以对数据进行分段,传输和 重组,以进行终端设备之间的单独 通信。 |
| 3 - 网络层 | 网络层为所标识的终端设备之间通过网络 交换独立的数据的片段提供服务。 |
| 2 - 数据链路层 | 数据链路层协议描述了设备之间通过 公共介质交换数据帧的方法。 |
| 1 - 物理层 | 物理层协议描述了机械的、电气的、功能的 和程序化的方法,以激活,维护和解除物理连接, 实现与网络设备之间的位 设备。 |

TCP/IP 模型层 描述
4 - 应用层 向用户提供数据,以及编码和对话控制。
3 - 传输层 支持各种设备之间通过不同网络通信。
2 - 互联网层 确定通过网络的最佳路径。
1 - 网络接入层 控制组成网络的硬件设备和介质。

一般题5层模型:1物理层2数据链路层层3网络层4传输层5应用层

封装

消息分段有两个主要好处:

  • 提高速度 - 由于将大数据流分段成为数据包,因此可以在不独占通信链路的情况下,通过网络发送大量数据。这允许许多不同的会话在称为多路复用的网络上交错。
  • 提高效率 - 如果单个数据段由于网络故障或网络拥塞而无法到达其目的地,则只需要重新传输该段,而不需要重新发送整个数据流。
    在通过网络介质传输应用程序数据的过程中,随着数据沿协议栈向下传递,每层都要添加各种协议信息。此过程称为封装。
  • 注意*: 虽然UDP PDU被称为数据报,但IP数据包有时也被称为IP数据报。
    一段数据在任意协议层的表示形式称为协议数据单元 (PDU)。在封装过程中,后续的每一层都根据使用的协议封装其从上一层接收的 PDU。在该过程的每个阶段,PDU 都以不同的名称来反映其新功能。尽管目前对 PDU 的命名没有通用约定,但本课程中根据 TCP/IP 协议簇的协议来命名 PDU。图中显示了每种形式数据的 PDU。
  • 数据 - 一般术语,泛指应用层使用的 PDU
  • 段 - 传输层 PDU
  • 数据包 - 网络层 PDU
  • 帧 - 数据链路层 PDU
  • 位 - 通过介质实际传输数据时使用的物理层 PDU
  • *注意**:如果传输报头是TCP,那么它是一个数据段。如果传输报头是 UDP,那么它是一个数据报。
    当数据沿着协议栈向下移动时,协议数据被添加到原始数据中。此过程称为封装。
    数据在朝着最终用户应用程序沿协议栈向上移动的过程中被解封。

地址

在网络中对消息进行分段是必要的,但是如果未正确编址这些分段的消息,它们将无处可去。
网络层和数据链路层负责将数据从源设备传输到目的设备。两层中的协议都包含源地址和目的地址,但它们的地址具有不同的用途:

  • 网络层源地址和目的地址 - 负责将 IP 数据包从原始源设备传输到可能处于同一网络或远程网络中的最终目的设备。

  • 数据链路层源地址和目的地址 – 负责将数据链路帧从一个网络接口卡 (NIC) 传输到同一网络上的另一个 NIC。

    该图显示了OSI模型中用于传递数据的各个层的编址和标记。它从左至右显示为:物理层提供时序和同步位;数据链路层提供目的和源物理地址;网络层提供目的和源逻辑网络地址;传输层提供目的进程和源进程编号(端口);上层提供编码的应用程序数据。

  • IP 地址是网络层(或第 3 层)逻辑地址,用于将 IP 数据包从原始源设备传输到最终目的设备

  • 数据链路层(第 2 层)物理地址具有不同的作用。数据链路层地址的作用是将数据链路层帧从一个网络接口传输到同一网络中的另一个网络接口。
    在 IP 数据包可以通过有线或无线网络发送之前,必须将其封装成数据链路层帧,以便通过物理介质传输。
    当 IP 数据包从主机到路由器、从路由器到路由器和最终从路由器到主机传输时,沿途中的每个点上都会将 IP 数据包封装到新的数据链路层帧中。每个数据链路层帧包含发送帧的 NIC 卡的源数据链路层地址和接收帧的 NIC 卡的目的数据链路层地址。
    路由器会将其 NIC 上收到的第 2 层信息删除,添加新的数据链路层信息,然后将数据包从通往最终目的地路径的出口 NIC 上转发出去。

示例

同一网络中的设备

  • 源IPv4地址 - 发送设备的IPv4地址,即客户端计算机PC1:192.168.1.110。
  • 目的IPv4地址 - 接收设备的IPv4地址,即服务器,Web服务器:172.16.1.9。
    当 IP 数据包的发送方和接收方处于同一网络中时,数据链路帧将直接发送到接收设备。在以太网中,数据链路地址称为以太网介质访问控制(MAC)地址是以太网网卡的物理内嵌地址。
  • 源 MAC 地址 - 这是发送封装有 IP 数据包的数据链路帧的设备的数据链路地址,或以太网 MAC 地址。PC1 以太网网卡的 MAC 地址为 AA-AA-AA-AA-AA-AA,以十六进制表示法表示。
  • 目的MAC地址 - 当接收设备与发送设备在同一网络中时,这就是接收设备的数据链路层地址。在本例中,目的MAC地址就是FTP服务器的MAC地址: CC-CC-CC-CC-CC-CC-CC,用十六进制记法表示。

远程网络中的设备

  • 源IPv4地址 – 发送设备的IPv4地址,即客户端计算机PC1:192.168.1.110。
  • 目的IPv4地址 – 接收设备的IPv4地址,即服务器,Web服务器:172.16.1.99。
    当 IP 数据包的发送方和接收方位于不同网络时,以太网数据链路帧不能直接发送到目的主机,因为在发送方的网络中无法直接到达该主机。
    必须将以太网帧发送到称为路由器或默认网关的另一设备。在示例中,默认网关是 R1。R1 有一个以太网数据链路地址与 PC1 位于同一网络中。这使 PC1 能够直接到达路由器。
  • 源 MAC 地址 - 发送设备 PC1 的以太网 MAC 地址。PC1 以太网接口的 MAC 地址是 AA-AA-AA-AA-AA-AA。
  • 目的 MAC 地址 - 当接收设备(目的 IP 地址)与发送设备位于不同网络时,发送设备使用默认网关或路由器的以太网 MAC 地址。在本示例中,目的 MAC 地址是 R1 的以太网接口的 MAC 地址:11-11-11-11-11-11。这是连接到与PC1相同的网络的接口,如图所示。

查漏补缺

主题 3.6.0-在网络上发送消息时,封装过程从 OSI 或 TCP/IP 模型的顶层开始自上而下工作。在该模型的各层上,上层信息被封装到下一协议的数据字段中。例如,在 IP 数据包可以发送之前,会将其封装到第 2 层的数据链路帧中,以便其能够通过物理介质发送。
主题 3.6.0-术语协议数据单元 (PDU) 用于描述网络模型的任一层上的一段数据。数据包是网络层PDU。帧是数据链路层PDU。数据段是传输层PDU。
主题 3.1.0-双工通信指的是介质在两个方向上传送消息的能力。

概念补充

hyperleger fabric的三个重要角色

  • client
    客户端,用来发起transaction process(提案),可以是cli、node sdk或者Java sdk
  • peers
    最常见的节点,维护了ledger的副本,记录验证同步数据
  • orderer
    接收背书后的请求,排序生成区块,最后交给peer节点

共识的达成

fabric的共识达成通过三个步骤

  1. 客户端发起提案,每个 peer 节点模拟执行,进行背书
  2. orderer 节点进行排序
  3. orderer 节点验证后生成区块交给 peer 节点去 apply
    三个步骤保证了区块链数据的一致性和正确性

    transaction流程

    1、sdk发起transaction proposal给peers进行背书(根据背书策略背书)
    2、背书节点模拟执行,返回签名的执行结果读写集(RW sets)交还给cli,sdk根据背书策略确定请求是否合法
    3、cli收集到读写集后给orderer节点进行线性排序
    4、orderer验证、排序、生成区块,再给所有peers进行ledger数据更新
    5、peers会验证orderer的读写集与当前世界状态是否一致来更新ledger,世界状态也随之变化
    6、最后sdk收到peers世界状态改变后的返还信息确认账本更新完成

    orderer节点

    解决双花问题(把并行事件线性排序)
    hyperledger的orderer类似中心机构出票的机制,所以效率很高没有挖矿的概念(为什么不挖矿1#14:00)(orderer节点防挂1#16:50)

    排序机制

    solo

    单一 orderer 节点用的玩具级别的排序服务,单一 orderer 服务器.采用 solo 方式

    kafka

    卡夫卡是阿帕奇的开源流式消息处理服务平台.提供非拜占庭错误(故障错误)的容错性即挂掉的排序节点不会返回误导性数据

    SBFT

    简单拜占庭容错,容忍集群中的 orderer 节点有不超过1/3的错误

    channels

    通道相当于hyperledger的子网络,不同channels相互独立,可拥有不同的sdk/ledger/peers
    orderer可以看到所有channel的数据

    state db世界状态数据库

    世界状态被存储在状态数据库里面。chaincode执行后stub.putState(key, Bufer.from(value))这些信息都是被以 key,value 的形式存放到状态数据库中通过 stub.getState(key) 的方式读出来。
    hyperledger fabric 支持两种模式的状态数据库:
  • levelDB 文件形式存储,不易查看管理.
  • couchDB 支持福查询,独立的容器数据库

    智能合约

    补充chaincode就是商业逻辑,任何更新账本的操作都智能通过智能合约来完成

    MSP(管理服务提供商)

    使用CA来颁发证书进行认证,默认fabric-ca api

实战(nodejs)

定义资产结构json

以下伪代码变量名直接使用中文

1
2
3
4
5
6
7
8
9
10
11
12
var 一次成绩 = {
学生姓名: " ",
学生学号uuid: " ",
考试科目: " ",
考试号uuid:" ",
信息修改者(即阅卷人):" ",
阅卷者uuid:"",
卷面总成绩: "0",
卷面详细成绩1:"0",
卷面详细成绩2:"0",
卷面详细成绩3:"0"
}

之类

创建基本智能合约框架

1
2
3
4
5
6
7
8
9
10
11
'use strict';
const shim = require (' fabric-shim ');//nodejs依赖
const util = require ('util');
const Chaincode = class{
//初始化智能合约的方法
async Init (stub) {
console.info ('Instantiated chaincode');
return shim.success ();
}
shim.start( new Chaincode ());
}

invoke(调用)函数

即如何调用函数的异常处理机制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async Invoke (stub){
let ret = stub.getFunctionAndParameters();//获取函数和参数
console.info( ret );
let method = this [ ret.fcn ];
if (! method ){
console.error('找不到要调用的函数,函数名:’+ ret.fcn);
throw new Error('找不到要调用的函数,函数名:’+ ret.fcn);
}
fry {
let payload = await method ( stub ,ret.params );//直接调用函数,获取返回值
return shim.success (payload );
} catch (err){
console . log(err);
return shim.error(err);
}
}

具体业务函数

如:查找

1
2
3
4
5
6
7
8
9
10
11
12
13
async query(stub,args){
if (args.length!=1){
throw new Error('错误调用参数');
}
let number = args[0];

let asBytes = await stub.getState(number);
if (!asBytes || asBytes.toString().length<=0){
throw new Error(asBytes + '不存在');
}
console.log(asBytes.toString());
return asBytes;
}

初始化账本initledger(单独写具体的init)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
async initLedger(stub,args){
console.info('开始初始化账本');
let grdes=[];
grades.push({
学生姓名: "A",
考试科目: "123",
卷面总成绩: "0"
});
grades.push({
学生姓名: "B",
考试科目: "456",
卷面总成绩: "0"
});

for (let i = 0;i < grdes.lenth;i++){
await stub.putState('GRADE' + i,Buffer.from(JSON.stringify(grades[i])));
console.info('添加',grades[i]);
}
console.info('结束初始化');
}

记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
async recordGrade(stub,args){
console.info('开始记录');
if (args.length !=4){
throw new Error('需要四个参数:ID,学生姓名,考试科目,卷面总成绩‘);
}
var grade = {
学生姓名: args[1],
考试科目: args[2],
卷面总成绩: args[3]
};

await stub.putState(args[0],Buffer.from(JSON.stringify(grade)));
console.info('记录成功');
}

查看所有:
修改:

模组文件命名规则:【大类】【功能】【如果是前置+编号】(提示说明)原文件名.jar

基础

此类即笔者认为的本整合包基础模组,除夸克外对原版本质没有影响如添加物品。夸克将其中辅助性功能定为基础(如Z键换栏,Q键投掷力度,边沿搭建辅助,背包箱子整理等)
所以Quark还添加了SCB中的(PS夸克添加了原版生物贴图如黄色鸡黑色猪)

结构

1
quark:big_dungeon

生物

1
2
3
4
5
6
7
8
9
螃蟹
柴犬
石精灵
青蛙
乌龟
游魂
遗忘者
裹尸
猎狐犬

列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
修改日期	文件大小(KB)	文件名称
2022/01/01 13:40 30,160 【基础】【便捷】jei找东西findme-1.16.3-2.2.1.0.jar
2021/04/09 23:51 123,705 【基础】【便捷】【1】边拿边走InvMove-1.16.3-0.4.6.jar
2021/04/09 22:58 281,216 【基础】【便捷】区域挖掘OreExcavation-1.8.157.jar
2021/12/26 18:09 322,836 【基础】【便捷】搬箱子carryon-1.16.5-1.15.5.22.jar
2021/12/24 15:43 17,627 【基础】【便捷】树叶快速掉落RapidLeafDecay-1.16.5-2.0.0.jar
2021/04/11 16:07 22,624 【基础】【便捷】物品堆叠upsizer-mc1.16.4-6.1.1.jar
2021/05/04 07:49 22,955 【基础】【便捷】穿草swingthroughgrass-1.16.4-1.5.3.jar
2022/01/07 02:15 245,533 【基础】【修复】合成冲突化解polymorph-forge-1.16.5-0.38.jar
2022/01/12 14:44 827,088 【基础】【前置0】jei-1.16.5-7.7.1.144.jar
2021/07/19 19:35 1,337,675 【基础】【前置1】cloth-config-4.11.26-forge.jar
2021/07/19 19:19 57,279 【基础】【前置2】AutoRegLib-1.6-49.jar
2021/10/26 10:58 106,058 【基础】【前置3】YungsApi-1.16.4-Forge-13.jar
2021/12/03 22:46 145,933 【基础】【前置4】Placebo-1.16.5-4.6.1.jar
2022/01/12 14:44 515,600 【基础】【地图】世界地图XaerosWorldMap_1.19.1_Forge_1.16.5.jar
2022/01/12 23:34 1,152,576 【基础】【地图】(小地图与信息提示)XaerosBetterPvP_21.23.1_Forge_1.16.5.jar
2021/07/19 18:33 98,900 【基础】【性能】内存加载ferritecore-2.0.5-forge.jar
2021/07/19 14:56 60,714 【基础】【性能】实体剔除EntityCulling-1.16.5-2.1.6.jar
2021/04/10 00:04 84,744 【基础】【性能】平滑加载smoothboot-forge-1.16.4-1.2.2.jar
2021/05/04 07:33 13,677 【基础】【性能】渲染优化(针对多人) out_of_sight-1.16.4-1.0.1.jar
2022/01/09 16:43 234,733 【基础】【性能】生物加载performant-1.16.2-5-3.82m.jar
2021/10/26 10:58 270,250 【基础】【汉化】【0】拼音搜索JustEnoughCharacters-1.16.4-4.3.2.jar
2021/12/03 22:46 8,537 【基础】【汉化】汉化i18nupdatemod-1.16.5.jar
2021/12/03 22:47 8,797,129 【基础】【玩法】【便捷】【2】Quark-r2.4-321.jar
2021/10/26 09:26 8,837 【基础】【玩法】爆头headshot-1.3.0.jar
2021/10/26 10:58 28,518 【基础】【界面】【前置3】群系标题yung_TravelersTitles-1.16.4-1.5.jar
2021/11/05 23:53 540,313 【基础】【界面】【定制】【4】菜单PackMenu-1.16.5-2.5.0.jar
2021/04/25 03:14 14,660 【基础】【界面】伤害显示TextDamageIndicators-1.16.3-2.0.1.jar
2021/04/24 15:37 42,604 【基础】【界面】拾取通知PickUpNotifier-v1.2-1.16.3.jar
2021/11/25 01:50 97,273 【基础】【界面】模组目录catalogue-1.5.0-1.16.5.jar
2021/12/03 22:46 136,584 【基础】【界面】模组设置configured-1.5.1-1.16.5.jar
2021/11/05 14:28 46,203 【基础】【界面】饱和度状态栏appleskin-forge-mc1.16.x-2.2.0.jar
2022/01/12 23:38 96,334 【基础】【调试工具】【便捷】游戏内模组设置GameMenuModOption-1.16.4-1.8.2.jar
2021/09/20 22:39 33,125 【基础】【调试工具】【定制】SpawnBalanceUtility-1.36.0.11.jar

核心

此部分包括了对游戏内容进行修改了的,且笔者认为是整合包添加的核心玩法的各种模组。介于核心与拓展的衡量,笔者将添加元素丰富的(如既有生物又有结构还有对应装备之类的),在游戏中戏份较大的,或有较多联动的模组归为核心,其余放入拓展系列。

charm

结构

原版村庄补充

生物

1
珊瑚鱿鱼

alex’s mobs

生物

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
骨蟒
太阳鸟
绯红蚊子
末影缓步兽
洞穴蜈蚣
诡异蟾蜍
复刻怪
灵魂鹫
灵翼
蘑菇君
悬熊
沙风怪
跨座兽
跨座蝌蚪
诡异蚊鬼
末影噬菌体
虚空蠕虫
灰熊
走鹃
瞪羚
鳄鱼
苍蝇
蜂鸟
虎鲸
大猩猩
响尾蛇
锤头鲨
龙虾
科莫多巨蜥
卷尾猴
驼鹿
浣熊
水滴鱼
海豹
蟑螂
鲸头鹳
乌鸦
大象
雪豹
大鳄龟
鸸鹋
袋鼠
螳螂虾
鸭嘴兽
袋獾
抹香鲸
切叶蚁
老虎
白头海雕
沙漠蛛蜂
皱鳃鲨
拟态章鱼
海鸥

YUNG’s

代表一系列此作者的模组,添加、改变或优化了结构,特别是洞穴生成逻辑

结构

明面上的添加

1
2
3
4
5
6
betterdungeons:skeleton_dungeon
betterdungeons:small_dungeon
betterdungeons:spider_dungeon
betterdungeons:zombie_dungeon
bettermineshafts:mineshaft
betterstrongholds:stronghol

eidolon

魔法

结构

1
2
3
eidolon:catacomb
eidolon:lab
eidolon:stray_tower

生物

1
2
3
僵尸暴君
幽魂
亡灵巫师

hexblades(eidolon扩展)

结构

1
hexblades:fire_temple

生物

1
火焰元素

ice and fire

结构

1
2
3
iceandfire:gorgon_temple
iceandfire:graveyard
iceandfire:mausoleum

生物

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
雪地村民
悚怖尸巫
(悚怖尸奴
悚怖尸兽
悚怖食尸鬼
悚怖劫蛛)
悚怖尸骑
悚怖战马
火龙
冰龙
骏鹰
小精灵
翼蚺
海马
死亡蠕虫
鸡蛇
蛇发女妖
独眼巨人
塞壬
铜羽泽鹗
食人妖
恐蚁
(恐蚁劳工
恐蚁军士
恐蚁斥候
恐蚁皇族
恐蚁女皇
恐蚁蛋
恐蜂蚁)
海蟒
九头蛇

wyrmroost

生物

1
2
3
4
5
6
7
8
9
10
蝶型利维坦
遨空银翼
高山飞龙
加那利飞龙
火龙果幼龙
游沙龙
主世界幼龙
屋栖盗客
皇室血红
金币小龙

dungeon gear/mobs

特指the_infamous_1的两个模组

生物

地下城生物不再赘述

hexerei

巫术

结构

1
2
3
hexerei:dark_coven
hexerei:mangrove_tree
hexerei:witch_hut

Paraglider

滑翔伞

结构

1
2
3
paraglider:nether_horned_statue
paraglider:tarrey_town_goddess_statue
paraglider:underground_horned_statue

Druidcraft??

德鲁伊工艺

生物

1
2
3
蓝甲虫
畏怖之鱼
月光蛾

abnormals系列

一个核心,但有很多模组依赖它且模组之间联动较多

结构

1
2
3
4
atmospheric:arid_shrine
autumnity:maple_witch_hut
outer_end:catacombs
outer_end:end_tower

生物

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
蜗牛
火鸡
灰熊
哞花
鹿

锦鲤
板鱼
耗牛
黑猩猩
芭蕉蜘蛛
刽子手
破坏者
冰术师
骷髅村民
诡术师
浮跃牛蛙
泡泡虫
紫颂鱿鱼
被埋葬者
天蓝怪
紫珀傀儡
幽灵蜂
追猎者
耀翼
发光鱿鱼

巨型长尾鲨
长尾鲨
蓑鲉
鹦鹉螺
狗鱼
鲈鱼
水母

群系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
abundance:lavender_fields
abundance:lavender_forest
abundance:nemophila_fields
atmospheric:dunes
atmospheric:dunes_hills
atmospheric:flourishing_dunes
atmospheric:petrified_dunes
atmospheric:rainforest
atmospheric:rainforest_basin
atmospheric:rainforest_mountains
atmospheric:rainforest_plateau
atmospheric:rocky_dunes
atmospheric:rocky_dunes_hills
atmospheric:sparse_rainforest_basin
atmospheric:hot_springs
autumnity:maple_forest
autumnity:maple_forest_hills
autumnity:orange_spotted_dark_forest
autumnity:pumpkin_fields
autumnity:red_spotted_taiga
autumnity:yellow_spotted_forest
bayou_blues:bayou
bayou_blues:bayou_hills
endergetic:poise_forest
environmental:blossom_highlands
environmental:blossom_hills
environmental:blossom_valleys
environmental:blossom_woods
environmental:marsh
environmental:mushroom_marsh
outer_end:azure_forest
outer_end:crystal_crag

stalwart dungeons

结构

locate无法检索文件中:

1
2
3
4
5
sheltrerer_dungeons.nbt
keeping_castle_spawn.nbt
keeping_castle.nbt
awful_dungeon_spawn.nbt
awful_dungeon.nbt

生物

1
2
3
4
5
惊骇恶魂
下界守卫
惑目烈焰人
残缺凋零
装甲烈焰人

群系

1
stalwart_dungeons:poubelle

Storage Drawers??

储物抽屉,好用至极

Farmers Delight??

制作食物方式独特且与abnormals系列联动非常多的食物模组,自己也有拓展

terraqueous??

project vibrant journeys??

MagmaFurnaceDungeonUpdate??

NeverNeededOrWanted??

SimpleOres??

食物拓展

FD

ND

PAM

质量提升

此部分包含对游戏内容本质没有改变的,而是一些图形美化、丰富音效和显示效果的模组。与基础的区别在于:若感到性能有限,想提升帧率时可视情况删除

1
2
3
4
5
6
7
8
9
2021/12/30  23:29            19,648 【质量提升】【5】物品品质框ItemBorders-1.16.5-1.1.6.jar
2021/12/24 17:05 23,045 【质量提升】【5】物品边框LegendaryTooltips-1.16.5-1.1.5.jar
2022/01/01 13:40 61,161 【质量提升】【前置5】Iceberg-1.16.5-1.0.34.jar
2021/07/19 15:14 47,260 【质量提升】【显示】【7】物理掉落物ItemPhysic_v1.4.18_mc1.16.5.jar
2021/10/26 10:59 14,746,751 【质量提升】【视听】#debug#含物理音效DynamicSurroundings-1.16.5-4.0.5.0.jar
2021/10/26 10:58 937,719 【质量提升】【贴图】【6】更好的树叶BetterFoliage-2.7.1-Forge-1.16.5.jar
2022/01/13 22:16 12,151,999 【质量提升】【音效】V3.0-Matmos-mod-1.16.jar
2021/11/10 00:02 76,505,097 【质量提升】【音效】【7】自然音效AmbientSounds_v3.1.11_mc1.16.5.jar
2021/06/04 21:01 58,565,641 【质量提升】【音效】【8】音效charmonium-forge-1.16.5-2.3.2.jar

#debug#意思是游戏出问题时优先排查对象

结构拓展

此内容包括一些比较单纯的,经过作者质量肯定的添加结构的模组

shrines??

stoneholm??

1
stoneholm:underground_village

Soaring-Structures??

1
soaring_structures2:soaring_islandf

flying_castles??

生物拓展

此内容包括一些比较单纯的,经过作者质量肯定的添加生物的模组

unnamed animal??

pandoras_creatures??

结构

1
pandoras_creatures:end_prison

群系拓展

此内容包括一些比较单纯的,经过作者质量肯定的添加群系的模组

风味拓展

此内容包括作者认为很有趣,但在游戏中“戏份”很少,不是单纯添加结构生物群系的模组

chimes??

风铃

nether’s exoticism??

下界拓展

Nef’s Medieval Pub??

装饰与结构

habitat??

Serene Shrubbery??

terraincognita??

Natural Decor Mod??

supplementaries??

小拓展

Inspirations??

全局数据包

简单来说功能就是默认添加一些数据包(文件夹global_data_packs中的)
目前选用的数据包均为非覆盖性的结构添加数据包
其中还可以将farlander的末影人添加到RepurposedRepurposedStructures中的地狱诡异森林村庄中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2022/01/14  22:01            27,970 archive-v1.0.zip
2022/01/14 20:19 224,258 FarlandersInWarpedVillages.zip
2022/01/14 20:54 76,678 fossil_dungeons.zip
2022/01/14 20:54 143,659 fs1-6-6.zip
2022/01/14 22:55 58,086 Grian's Dungeons.zip
2022/01/14 19:55 349,367 illager-fortresses-v11-for-1-18.zip
2022/01/14 22:53 480,666 More Structures.zip
2022/01/14 21:41 443,535 pillager-stronghold.zip
2022/01/14 20:25 549,446 Repurposed_Structures-Better_Strongholds_Forge.zip
2021/12/15 01:47 138,584 Repurposed_Structures-Environmental.zip
2021/12/15 01:47 311,098 Repurposed_Structures-Savage_And_Ravage.zip
2022/01/14 22:46 26,912 RRS-BuzzierVillages.zip
2022/01/14 22:46 23,914 RRS-EnvironmentallyFriendly.zip
2022/01/14 22:47 32,523 RRS-RepurposedDelight.zip
2022/01/14 22:50 218,104 Ships v13 for [1.18].zip
2021/12/15 01:47 1,893,041 the-forbidden-castle-v1-1.zip
2021/07/22 17:02 11 汇总.bat
2021/12/15 01:47 1,454,614 简单覆盖ichphilipp-s-endcity-v1-1-1-16-2-forge.zip.disabled
2022/01/14 22:37 54,663 简单覆盖outpost.zip.disabled
2021/12/15 01:47 163,568 简单覆盖pillager-settlements-e2230.zip.disabled
2022/01/14 20:19 1,890,242 简单覆盖WallsOfConquest_.zip.disabled

注明“简单覆盖”的数据包没有启用,但介于质量可观留备(作者本人不喜欢对原版结构进行破坏性覆盖性修改的东西)

kubejs

提供直接通过配置JS文件魔改游戏的功能,如对矿石生成调整添加自定义合成表等,也有矿辞统一的功能

2021/11/11 18:49 71,220 【任务】【前置00】ftb-money-1605.1.3-build.3.jar
2021/12/22 21:46 943,584 【任务】【前置00】ftb-quests-forge-1605.3.6-build.76.jar
2021/11/25 01:50 171,679 【任务】【前置00】ftb-teams-forge-1605.2.3-build.40.jar
2021/11/11 18:05 106,801 【任务】【前置00】item-filters-forge-1605.2.5-build.9.jar
2021/04/24 04:52 23,054 【优化】【前置15】byg群系生成修复chocolate-1.3.0-1.16.4.jar
2021/07/19 18:33 98,900 【优化】内存加载ferritecore-2.0.5-forge.jar
2022/01/07 02:15 245,533 【优化】合成冲突化解polymorph-forge-1.16.5-0.38.jar
2021/07/19 14:56 60,714 【优化】实体剔除EntityCulling-1.16.5-2.1.6.jar
2021/04/10 00:04 84,744 【优化】平滑加载smoothboot-forge-1.16.4-1.2.2.jar
2021/11/25 01:50 97,273 【优化】模组目录catalogue-1.5.0-1.16.5.jar
2021/12/03 22:46 136,584 【优化】模组设置configured-1.5.1-1.16.5.jar
2021/05/04 07:33 13,677 【优化】渲染优化(针对多人) out_of_sight-1.16.4-1.0.1.jar
2022/01/09 16:43 234,733 【优化】生物加载performant-1.16.2-5-3.82m.jar
2021/12/14 21:50 585,125 【前置00】ftb-library-forge-1605.3.4-build.90.jar
2021/10/26 10:58 975,289 【前置01】abnormals_core-1.16.5-3.3.0.jar
2022/01/12 14:44 827,088 【前置10】【辅助】jei-1.16.5-7.7.1.144.jar
2021/07/19 15:23 43,358 【前置11】expandability-2.0.1-forge.jar
2021/11/05 14:28 593,114 【前置12】帕秋莉Patchouli-1.16.4-53.2.jar
2021/11/13 01:49 4,286,350 【前置13】【生物】【前置12】mysticalworld-1.16.5-0.3.5.24.jar
2021/12/03 22:47 8,797,129 【前置14】【前置21】Quark-r2.4-321.jar
2021/10/26 11:00 10,314,611 【前置15】【群系】byg-1.3.5.jar
2021/04/09 23:44 328,828 【前置16】【食物】潘马斯农村食物核心pamhc2foodcore-1.16.3-1.0.2.jar
2021/12/23 01:13 2,535,453 【前置17】【食物】农夫乐事FarmersDelight-1.16.5-0.5.4.jar
2021/07/19 16:53 167,613 【前置18】【食物】simplytea-1.16.5-2.4.0.jar
2021/11/16 15:16 1,030,440 【前置19】rhino-forge-1605.1.5-build.75.jar
2021/07/19 19:35 1,337,675 【前置20】cloth-config-4.11.26-forge.jar
2021/07/19 19:19 57,279 【前置21】AutoRegLib-1.6-49.jar
2022/01/12 14:44 3,396,633 【前置22】geckolib-forge-1.16.5-3.0.58.jar
2021/11/25 01:50 1,472,504 【前置23】【杂项】血月丰收月enhancedcelestials-2.0.9-1.16.5.jar
2021/12/03 23:04 90,019 【前置24】dungeons_libraries-1.16.5-0.0.3-beta.jar
2022/01/09 16:43 257,414 【前置25.1】(25取其一)【辅助】1高亮显示Jade-1.16.4-2.8.1.jar
2022/01/01 14:00 261,390 【前置26】structure_gel-1.16.5-1.7.8.jar
2022/01/12 17:07 148,686 【前置27】structure_toolkit-1.16.5-1.0.2.jar
2021/10/26 10:58 315,420 【前置28】Bookshelf-Forge-1.16.5-10.3.29.jar
2021/12/22 21:46 805,040 【前置29】Mantle-1.16.5-1.6.152.jar
2021/07/19 18:15 501,225 【前置2】architectury-1.20.28-forge.jar
2021/12/24 15:56 542,288 【前置2】architectury-1.26.42.jar
2021/07/20 19:37 6,638,824 【前置30】kotlinforforge-1.14.0-obf.jar
2021/10/26 10:58 105,524 【前置31】morevanillalib-1.16.4-1.4.1.jar
2021/10/26 10:58 261,390 【前置32】structure_gel-1.16.5-1.7.8.jar
2021/10/26 10:58 96,151 【前置33】SimpleCoreLib-1.16.5-2.0.8.22.jar
2022/01/01 13:40 61,161 【前置34】Iceberg-1.16.5-1.0.34.jar
2022/01/12 15:01 6,636 【前置35】LibraryFerret-Forge-1.16.5-1.0.3.jar
2021/12/14 21:50 1,232,846 【前置36】附魔前置cofh_core-1.16.5-1.4.0.6.jar
2021/12/03 22:46 141,872 【前置37】collective_1.16.5_3.8.jar
2021/12/03 22:46 145,933 【前置38】Placebo-1.16.5-4.6.1.jar
2021/10/26 10:58 215,498 【前置39】selene-1.16.5-1.8.1.jar
2021/10/26 10:58 106,058 【前置3】YungsApi-1.16.4-Forge-13.jar
2022/01/07 02:15 608,118 【前置40】valhelsia_core-16.0.15.jar
2021/12/30 23:29 916,043 【前置41】【辅助】【前置19】或【前置2】(添加合成表矿辞统一)kubejs-forge-1605.3.19-build.258.jar
2021/08/17 17:04 509,849 【前置42】Penguin-Lib-1.16.5-0.4.3.jar
2022/01/12 14:44 418,156 【前置43】shetiphiancore-1.16-3.8.8.jar
2021/08/29 21:43 88,373 【前置44】majrusz-library-1.16.4-2.0.1.jar
2021/10/26 14:59 217,199 【前置45】Library_of_Exile-1.16.5-1.2.0.jar
2021/10/26 15:43 3,145,190 【前置46】【食物】简单农场simplefarming-1.16.5-1.3.8.jar
2021/11/10 00:01 147,708 【前置4】cavebiomeapi-1.16.5-1.4.2.jar
2021/07/19 15:12 631,288 【前置5】CreativeCore_v2.2.0_mc1.16.5.jar
2021/06/04 21:05 2,660,414 【前置6】【杂项】charm-forge-1.16.5-2.3.2.jar
2021/08/29 21:52 482,439 【前置7】citadel-1.8.1-1.16.5.jar
2021/06/04 19:07 102,333 【前置8】cuneiform-1.16.3-1.2.5.jar
2022/01/09 16:43 271,151 【前置9】饰品栏curios-forge-1.16.5-4.0.7.0.jar
2021/12/14 21:50 15,479 【前置】全局数据包globaldataandresourcepacks-1.16.5-1.10.2.jar
2022/01/09 19:42 139,989 【工具】剥离地形World+Stripper-1.16.5-2.1.0.jar
2022/01/09 18:53 182,118 【杂项】SaveMyStronghold-1.16.4-1.0.jar
2021/06/04 22:37 2,004,590 【杂项】[NNOW]NeverNeededOrWanted-1.16.5-1.0.9a.jar
2021/12/14 21:50 1,271,118 【杂项】【前置01】残暴与掠夺savageandravage-1.16.5-3.2.0.jar
2021/07/23 18:01 1,896 【杂项】【前置14】夸克奇思妙想QuarkOddities-1.16.3.jar
2021/07/19 16:53 3,063 【杂项】【前置17】农夫乐事兼容性farmersdelightintegration-1.16.5-1.0.3.jar
2021/10/26 10:58 29,376 【杂项】【前置17】农夫乐事兼容性farmersdelightintegrations-1.16.5-1.2.jar
2021/12/29 19:44 308,351 【杂项】【前置17】农夫乐事铜锅copperpot-1.16.5-1.2.0.jar
2021/10/26 10:58 321,866 【杂项】【前置33】矿石SimpleOres2-1.16.5-2.4.7.2.jar
2021/12/30 23:29 19,648 【杂项】【前置34】物品品质框ItemBorders-1.16.5-1.1.6.jar
2021/12/24 17:05 23,045 【杂项】【前置34】物品边框LegendaryTooltips-1.16.5-1.1.5.jar
2021/12/03 22:46 12,875 【杂项】【前置37】围火无怪nohostilesaroundcampfire_1.16.5-3.8.jar
2021/07/20 22:17 9,491 【杂项】【前置37】治疗篝火healingcampfire_1.16.5-3.3.jar
2021/10/26 10:58 28,518 【杂项】【前置3】群系标题yung_TravelersTitles-1.16.4-1.5.jar
2021/12/15 20:43 593,065 【杂项】【前置45】专业副本Infinite_Dungeons-1.16.5-1.0.9.jar
2021/07/19 15:14 47,260 【杂项】【前置5】物理掉落物ItemPhysic_v1.4.18_mc1.16.5.jar
2021/11/15 01:36 14,638 【杂项】【前置9】【前置14】饰品化夸克背包CuriosQuarkOBP-1.16.5-1.0.2.jar
2021/07/20 15:04 67,143 【杂项】【前置9】【前置24】潜影贝栏位curiousshulkerboxes-forge-1.16.5-4.0.1.0.jar
2021/07/20 15:10 27,890 【杂项】【前置9】不死图腾栏位curioofundying-forge-1.16.5-5.2.0.0.jar
2021/12/23 01:16 779,545 【杂项】下界扩展又nether-s-exoticism-1.16.5-1.1.3.jar
2021/12/22 22:13 1,249,382 【杂项】下界矿石Nether+Ores+Plus+++1.5.2+-+1.16.5.jar
2021/12/29 19:44 575,639 【杂项】储物抽屉StorageDrawers-1.16.3-8.5.0.jar
2021/10/26 10:58 6,082 【杂项】农田不再被踩坏TrampleStopper-2.6.1-build.22+mc1.16.5.jar
2022/01/03 01:24 2,595,298 【杂项】巫术精致hexerei-0.1.4.jar
2021/04/24 04:44 2,040,762 【杂项】幻梦eidolon-0.2.7.jar
2021/10/29 22:48 1,488,023 【杂项】德鲁伊工艺Druidcraft-1.16.5-0.4.54.jar
2021/06/05 00:31 560,732 【杂项】更多洞穴特征extcaves.jar
2021/10/26 09:42 19,085 【杂项】村庄英雄合成HeroOfNowhereUpdated_1.16.5.jar
2021/12/24 15:43 17,627 【杂项】树叶快速掉落RapidLeafDecay-1.16.5-2.0.0.jar
2021/12/03 22:46 8,537 【杂项】汉化i18nupdatemod-1.16.5.jar
2022/01/03 00:51 34,158 【杂项】添加了一些结构修改了一些配方Farmable1.0.0.jar
2021/10/26 09:26 8,837 【杂项】爆头headshot-1.3.0.jar
2021/12/24 15:43 4,834 【杂项】环境噪点AmbientEnvironment-5.0.0.11.jar
2021/08/17 17:07 2,661 【杂项】白天睡觉插件Daydreamer-1.16.5-1.0.jar
2021/06/05 02:31 133,745 【杂项】稀有精英怪infernalmobs-1.16.2.1.jar
2022/01/09 19:19 26,771 【杂项】结构大小限制取消StructureExpansion-1.16.5-1.0.7.jar
2022/01/09 18:54 23,749 【杂项】自然生成的半砖(加合成表)SlabGen-1.16.5-1.0.0.jar
2021/12/03 22:46 396,514 【杂项】荒野之息Paraglider-1.16.5-1.3.2.7.jar
2021/11/05 23:53 540,313 【杂项】菜单定制PackMenu-1.16.5-2.5.0.jar
2022/01/03 00:51 238,657 【杂项】额外(含一种女巫小屋)extract-1.1.jar
2021/11/11 02:08 2,291,012 【杂项】饰品背包ImprovedBackpacks-1.6.2.0.jar
2021/04/25 08:54 112,845 【杂项】(再也不用经验修补了)维修箱子RepairChests-1.16.5-1.7.jar
2021/12/22 22:23 1,162,470 【生物】(勉强通过)animalsss-0.8.jar
2021/12/22 22:22 901,412 【生物】(缝合怪)mobsgenus-0.4.jar
2021/10/26 11:01 18,135,643 【生物】alexsmobs-1.12.1.jar
2021/11/05 14:26 1,948,461 【生物】MinecraftEarthMod-2.5.7.1.jar
2021/07/20 21:55 5,522,069 【生物】mowziesmobs-1.5.19.jar
2021/09/05 02:30 1,271,721 【生物】Wilds+Version+2.2.1.jar
2021/07/21 13:20 2,970,312 【生物】Zonko’s+Monsters+1.16.5+1.2.jar
2021/12/14 21:50 840,640 【生物】【前置01】buzzier_bees-1.16.5-3.0.3.jar
2021/06/04 18:57 11,003,946 【生物】【前置01】endergetic-1.16.4-3.0.0.jar
2021/12/14 21:51 3,682,686 【生物】【前置01】碧海新生upgrade_aquatic-1.16.5-3.1.2.jar
2021/07/21 14:07 963,433 【生物】【前置22】生物与怪物CNB-1.16.3_5-1.2.11.jar
2021/12/03 22:46 2,413,584 【生物】【前置24】地下城怪物dungeons_mobs-1.16.5-2.0.1-beta.jar
2022/01/09 18:54 2,160,254 【生物】【前置27】slimierslimes-1.16.5-1.2.0.jar
2021/06/04 22:35 5,428,670 【生物】【前置32】更多末影人farlanders-1.16.4-1.3.9.jar
2021/08/17 16:57 447,935 【生物】【前置42】鱼Piscary-1.16.5-1.0.3.jar
2021/08/29 21:22 658,320 【生物】【前置44】难度渐进(宝藏袋)majruszs-difficulty-1.16.4-1.1.0.jar
2021/12/16 20:08 955,466 【生物】【前置7】Untamed+WildLife.jar
2022/01/09 18:50 127,573 【生物】劫掠兽ravageandcabbage-1.0.0.jar
2021/12/07 18:47 4,806,172 【生物】厄运(地狱恶魔)MCDoom-1.16.5-4.0.34.jar
2022/01/09 01:34 86,702 【生物】变异村民mutantvillager-0.1.jar
2021/06/04 22:26 1,289,476 【生物】变异生物MutantBeasts-1.16.4-1.1.3.jar
2021/09/03 16:23 7,681,362 【生物】古老水生物OddWaterMobs[1.16.5]_1.4.0.jar
2022/01/03 01:39 583,306 【生物】各种蘑菇人Leos_Mushrooms-1.16.4-v0.5.1.jar
2021/12/22 22:21 507,051 【生物】哥布林goblins-0.2.jar
2022/01/09 16:43 802,253 【生物】地球版生物restored_earth-1.16.5-1.4.0.jar
2021/11/05 14:24 10,560,452 【生物】外来物种Exotic+Critters+1.16+Experimental+1.19.jar
2021/11/11 00:37 1,251,211 【生物】如题ambientadditions-0.5.1.jar
2022/01/07 01:23 3,868,521 【生物】岩浆炉地牢更新MagmaFurnaceDungeonUpdate.jar
2022/01/09 01:33 150,380 【生物】巨怪ogres-0.3.jar
2021/12/22 22:22 158,032 【生物】巨魔trolls-0.1.jar
2022/01/03 01:37 606,338 【生物】恐龙JurrasicCube-0.1.1-1.16.5.jar
2021/10/26 10:58 1,225,645 【生物】无名生物(优质)unnamedanimalmod-1.0.3.jar
2021/11/16 15:17 14,521,154 【生物】更多下界生物infernal-expansion-1.16.5-2.4.0.jar
2021/07/06 10:33 1,102,070 【生物】更多傀儡extragolems-11.3.1.jar
2021/11/10 00:02 10,524,585 【生物】更多僵尸UNDEADv.1.3.release+Biome.jar
2021/10/31 18:53 772,409 【生物】更多变异生物mutantmore-1.16.5-1.0.0.jar
2021/10/26 10:48 318,147 【生物】更多小型生物LittleMoreCreatures1.1.jar
2021/12/07 18:47 1,743,846 【生物】更多挑战DungeonsMod-1.16.3-1.4.43.jar
2021/11/02 15:24 714,968 【生物】更多生物(包含但表现于落选生物)mobsgenus-0.2.jar
2021/10/26 10:58 265,717 【生物】更多职业村民morevillagers-FORGE-1.16.5-1.5.5.jar
2021/07/20 19:50 308,282 【生物】更多骷髅bones-1.16.5-2.1.0.jar
2022/01/09 16:43 2,165,733 【生物】更好动物betteranimalsplus-1.16.5-11.0.3-forge.jar
2021/07/19 19:05 382,707 【生物】末地重生EndReborn+[0.8.4].jar
2021/09/05 16:27 190,249 【生物】村民护卫guardvillagers-1.16.5.1.2.6.jar
2021/09/25 19:09 551,025 【生物】水产养殖Aquaculture-1.16.5-2.1.21.jar
2021/12/24 15:54 376,140 【生物】海洋AbyssalDepths-1.16.5-1.0.1.jar
2022/01/09 18:40 1,577,809 【生物】海盗Pirates_And_Looters_Kraken_Update.jar
2021/06/04 22:21 1,454,383 【生物】潘多拉的生物pandoras_creatures-1.16.3-2.0.1.jar
2021/11/05 14:28 760,003 【生物】灾祸村民illagers_plus-1.16.4v1.7.2.jar
2022/01/09 19:34 3,834,053 【生物】狗头人Koopa’s Critters 1.16.5 II V1.1.jar
2022/01/07 02:15 2,058,226 【生物】珍奇鸟类exoticbirds-1.16.4-1.4.0.jar
2021/11/15 01:41 999,568 【生物】科博尔兹及地牢Kobolds-1.4.9.jar
2022/01/03 01:37 279,724 【生物】科博尔德kobolds-0.1.jar
2021/10/26 10:59 743,785 【生物】落选生物outvoted-2.0.0-alpha.12-forge.jar
2021/12/26 18:09 9,241,688 【生物】阿斯特米尔的森林(地狱门与钓鱼方式改变)forestcraft-1.603.jar
2021/12/03 22:46 333,707 【生物】附魔师enchantwithmob-1.16.5-1.5.2.jar
2021/08/29 21:30 274,624 【生物】非虔诚Impish+Tome+(1.16.5_ver.1.0.2).jar
2021/11/16 23:47 4,967,448 【生物】龙栖Wyrmroost-1.16.3-1.2.11.jar
2021/07/21 14:07 389,176 【结构】 【前置32】更多地牢dungeons_plus-1.16.5-1.1.5.jar
2022/01/07 02:16 2,002,788 【结构】BrassAmberBattleTowers-1.16.5-1.1.4.jar
2021/11/25 02:13 4,149,756 【结构】castle_in_the_sky-1.16.5-0.2.6.jar
2021/11/13 01:56 313,216 【结构】more_ships_1.16.5_3.jar
2022/01/09 18:59 71,921 【结构】structures.jar
2022/01/09 19:34 79,112 【结构】VanillaStructures.jar
2021/10/26 10:58 510,439 【结构】yung_BetterDungeons-1.16.4-1.2.1.jar
2021/07/20 17:24 289,307 【结构】yung_BetterMineshafts-Forge-1.16.4-2.0.4.jar
2022/01/01 13:52 1,049,019 【结构】【前置26】dungeons_enhanced-1.16.5-1.4.jar
2022/01/09 19:34 503,637 【结构】【前置35】AwesomeDungeonForge-1.16.5-2.0.3.jar
2021/07/20 17:30 64,256 【结构】【前置3】yung-YungsExtras-Forge-1.16.4-1.0.jar
2021/09/03 15:54 541,396 【结构】【前置3】yung_BetterStrongholds-1.16.4-1.2.1.jar
2021/11/05 14:28 1,540,395 【结构】【前置40】valhelsia_structures-1.16.5-0.1.6.jar
2021/10/26 10:33 428,761 【结构】【前置45】(开箱子后会拆除塔)dungeon_World_of_Exile-1.16.5-1.4.0.jar
2022/01/12 14:45 9,509,122 【结构】【前置7】灾难Cataclysm-0.1.jar
2022/01/09 19:34 126,932 【结构】三叉戟Trident+Crafting++Structures[2.6]+1.16.x.jar
2022/01/09 01:34 658,634 【结构】不死j军团UndeadArmy-2.5.jar
2022/01/03 01:36 401,446 【结构】丛林村庄找不到Jungle+Villages+1.16.5++v1.1.jar
2021/11/05 14:28 2,562,731 【结构】中世纪城堡(不只结构)MedievalCraft-1.16.5-1.16.2.jar
2022/01/03 01:04 848,886 【结构】丰富的天空结构flying_castles_1.16.5_knights_6.0.jar
2021/06/17 01:05 85,877 【结构】刷怪castle_dungeons-2.3-1.16.5-forge.jar
2022/01/09 16:55 56,728 【结构】刷怪坛New+Spawners.jar
2022/01/09 16:43 1,001,999 【结构】哥布林地牢Goblins_Dungeons_1.0.4.jar
2021/11/25 01:50 5,544,981 【结构】地下城DungeonsArise-1.16.5-2.1.49-beta.jar
2021/06/17 01:03 218,290 【结构】地下村庄stoneholm-1.2.2.jar
2021/09/05 02:31 22,253 【结构】地下群系Below+1.0+Forge.jar
2021/10/26 11:17 1,542,647 【结构】坚毅堡垒stalwart-dungeons-1.16.5-1.1.7.jar
2022/01/09 19:28 1,851,899 【结构】墓园【前置22】The_Graveyard_2.1_(FORGE)_for_1.16.4-1.16.5.jar
2021/12/23 01:13 778,769 【结构】大型多层地牢DungeonCrawl-1.16.5-2.3.5.jar
2022/01/12 14:44 1,258,938 【结构】大型结构Shrines-1.16.5-2.0.0-Beta11.jar
2021/12/24 15:48 206,580 【结构】天空村庄SkyVillage_1.0.0_1.16.5.jar
2022/01/09 18:40 446,436 【结构】奇观Phenomena-1.7.3.jar
2022/01/02 00:50 122,912 【结构】女巫小屋betterhut+1.1.jar
2022/01/01 23:28 80,108 【结构】小型Allawi’s+Structures-1.16.5-v2.2.jar
2022/01/03 01:29 480,371 【结构】小结构找不到instantbuildings-1-16-5-1-0-1.jar
2022/01/09 19:13 150,212 【结构】少Spruce+Mineshafts.jar
2022/01/03 01:26 25,897 【结构】幻术师塔IllusionerTower2.1.1-MC1.16.5.jar
2022/01/02 01:27 717,033 【结构】幻梦扩展(eidolon)hexblades-1.16.5-0.0.9.2.jar
2022/01/09 19:27 157,147 【结构】旷野塔towers_of_the_wild-1.16.3-2.1.0.1.jar
2021/12/14 21:50 5,576,490 【结构】更多结构repurposed_structures_forge-3.4.7+1.16.5.jar
2022/01/09 16:55 664,766 【结构】有点密集地下more_underground_structures_1.16.5_4.jar
2022/01/09 18:40 1,342,900 【结构】有空球(多)more+structures+3.0.jar
2021/10/26 11:30 80,085 【结构】桥YungsBridges-Forge-1.16.4-1.0.1.jar
2021/10/22 13:45 141,714 【结构】沙漠下界元素NMN_1.16.5_v0.1.jar
2022/01/01 23:27 89,671 【结构】沙漠古迹Ancient+Structures.jar
2022/01/09 19:24 172,388 【结构】泰拉式浮空岛Floating_Islands_V1.1.2.jar
2021/12/15 20:44 94,105 【结构】测试性dungeons-chasms.jar
2021/11/25 17:48 49,668 【结构】溪流upstream-1.0.jar
2022/01/09 18:40 234,330 【结构】猪灵Piglin+Expansion+1.1.jar
2022/01/09 16:51 1,592,362 【结构】砖房Modest+Bricks+1.0.1+-+Forge+1.16.5.jar
2021/12/23 01:45 759,530 【结构】空岛地牢Soaring-Structures-2-1.16.5-2.0.jar
2022/01/09 19:13 590,639 【结构】空岛气球StructuresPlusEnd.jar
2022/01/03 00:51 456,455 【结构】超多结构locate找不到Extractures(v1.3)_1.16.5.jar
2022/01/09 16:43 1,107,495 【结构】遗迹饰品relics-0.3.4.jar
2022/01/09 19:27 1,363,108 【结构】露营者StumbleUponCampsites.jar
2022/01/09 18:59 759,530 【结构】非常好的天空结构Soaring-Structures-2-1.16.5-2.0.jar
2022/01/09 19:27 388,218 【结构】魔术师【前置32】the-conjurer-1.16.4-1.0.13.jar
2022/01/09 19:33 20,845 【结构】龟Turtle+King’s+Palace+-+A+[1.16.5]+Structure+Mod+by+TAMOA_GAMING+.jar
2022/01/03 01:37 131,854 【结构】(有点多此一举的解密)kitsunesmiscaddons-1.2-forge1.16.5-36.2.0.jar
2021/10/29 21:56 19,498 【群系】abyg-1.2-forge.jar
2021/12/22 21:46 1,577,173 【群系】BetterDefaultBiomes-1.16.4+-Alpha 2.6.1.jar
2021/10/26 11:01 81,199,992 【群系】betterendforge-1.16.5-1.6.3.jar
2021/07/19 16:20 3,651,050 【群系】BOP_BiomesOPlenty-1.16.5-13.1.0.480-universal.jar
2021/12/29 20:11 538,512 【群系】Mirabilis+1.0.3-1+1.16.5.jar
2021/12/22 22:23 4,907,893 【群系】simplybiomes-0.5.jar
2021/07/21 14:07 4,751,584 【群系】Spheric 1.0.3 1.16.5.jar
2021/10/26 11:02 57,328,296 【群系】【前置01】末地OuterEnd-0.2.14.jar
2021/07/19 14:45 554,081 【群系】【前置01】河口群系Bayou-Blues-1.16.5-1.0.5.jar
2021/12/07 18:47 978,332 【群系】【前置01】秋原autumnity-1.16.5-2.1.2.jar
2021/12/14 21:51 7,004,513 【群系】【前置01】自然环境(有生物)environmental-1.16.5-1.1.1.jar
2021/07/19 17:16 665,178 【群系】【前置01】薰衣草Abundance-1.16.5-1.0.5.jar
2021/12/07 18:47 1,535,248 【群系】【前置01】雨林沙丘atmospheric-1.16.5-3.1.1.jar
2022/01/09 16:43 375,479 【群系】【前置13】【前置12】mysticalbiomes-1.16.5-0.0.1.9.jar
2021/07/19 21:30 305,286 【群系】【前置22】无尽海洋endless_oceans-1.0.5-forge.jar
2022/01/07 02:16 51,519,595 【群系】【前置4】cavesandcliffs-1.16.5-7.2.0.jar
2021/10/26 10:58 870,285 【群系】【前置4】【前置27】岩石darkerdepths-1.16.5-1.1.4.jar
2022/01/09 19:40 268,800 【群系】【结构】Wolfie’s+biomes+1.3.jar
2022/01/03 01:12 1,543,591 【群系】原版群系升级H.E.B+Release+1.0.jar
2021/12/07 18:47 561,462 【群系】地狱生物ShretNether - Release -1.3.4.jar
2021/07/19 15:44 280,211 【群系】彩色世界MysticsBiomes-1.16.4-1.1.0.jar
2021/07/21 14:07 2,365,497 【群系】恶地改造Betterlands-1.16.5-0.5.0.jar
2021/11/16 15:16 1,598,328 【群系】探险者explorercraft-5.0.6.jar
2021/11/05 14:29 22,443,866 【群系】更好地狱betternether_reforged-1.2.jar
2021/12/15 20:43 6,553,790 【群系】末地添加EndAdditions(Forge)-1.13.jar
2021/12/22 22:21 593,427 【群系】滋养下界NourishedNetherV8.jar
2021/12/23 01:34 2,732,447 【群系】滋养末地NourishedEndV2.jar
2021/07/21 14:06 1,700,785 【群系】灰烬之地Desolation 1.1.0-1 1.16.5.jar
2021/09/05 00:01 7,273,457 【群系】舒适下界ComfortableNether4.9.jar
2021/12/14 21:51 10,681,350 【群系】通用群系genericeco-1.16.5-2.3.jar
2021/12/24 12:53 467,569 【装备】【前置9】【前置11】Artifacts-1.16.5-2.10.4.jar
2021/05/24 21:50 327,436 【装备】【前置9】泰拉瑞亚更多饰品curioBountiful+Baubles+FORGE-1.16.3-0.0.2.jar
2021/07/20 15:10 30,293 【装备】【前置9】经验护符CrimsonXP-1.1.1.jar
2021/10/26 10:58 1,001,013 【装备】升级下界合金装备Upgraded Netherite 1.10.1.jar
2021/12/03 22:46 2,220,332 【装备】地下城装备dungeons_gear-1.16.5-3.1.2-beta.jar
2021/07/20 17:01 1,462,309 【装饰】【前置29】灵感原版装饰Inspirations-1.16.5-1.2.3.37.jar
2021/12/29 19:44 14,012,744 【装饰】【前置39】supplementaries-1.16.5-0.18.0.jar
2021/12/14 21:51 7,871,701 【装饰】【前置43】地灵云心海树山花terraqueous-1.16-1.7.18.jar
2022/01/01 13:40 1,024,489 【装饰】【前置8】装饰性环境植物terraincognita-1.16.3-1.7.1.1.jar
2022/01/09 16:55 39,470,353 【装饰】【结构】More+decoration+1.4+1.16.5.jar
2021/12/07 18:47 1,557,189 【装饰】活力之旅projectvibrantjourneys-1.16.5-3.2.11.jar
2021/12/15 20:44 595,183 【装饰】生境habitat-1.0.1.jar
2021/11/05 14:28 9,241,804 【装饰】自然装饰NaturalDecorMod 1.16 II V0.23.jar
2022/01/09 16:43 105,349 【装饰】花finallyfarmabledyes-1.16.5-1.2.1.0.jar
2021/07/20 22:35 280,581 【装饰】花草灌木SereneShrubbery-1.16.5-1.1.0.jar
2021/10/26 12:06 8,476,267 【装饰】风铃Chimes-1.0.0-1.16.5.jar
2021/07/20 23:03 5,398,623 【装饰】(菜篮)NefsMedievalPub+v0.9(1.16.5).jar
2022/01/01 13:40 30,160 【辅助】jei找东西findme-1.16.3-2.2.1.0.jar
2021/05/03 15:29 792,263 【辅助】Xaeros_Better_PvP_21.8.0_Forge_1.16.5.jar
2021/07/21 14:07 19,362 【辅助】【前置10】jei-professions-1.0.0-1.16.4.jar
2021/04/09 02:10 24,981 【辅助】【前置10】JEI拓展jeiintegration_1.16.5-7.0.1.15.jar
2021/12/30 23:29 69,011 【辅助】【前置10】JEI效果信息显示jeed-1.16.5-1.6.jar
2021/12/30 23:29 235,560 【辅助】【前置10】JEI资源显示JustEnoughResources-1.16.5-0.12.1.133.jar
2021/10/26 10:58 270,250 【辅助】【前置10】拼音搜索JustEnoughCharacters-1.16.4-4.3.2.jar
2021/07/21 14:06 31,243 【辅助】【前置10】附魔信息JEIEnchantmentInfo-1.16.4-1.2.1.jar
2021/04/09 23:51 123,705 【辅助】【前置20】边拿边走InvMove-1.16.3-0.4.6.jar
2021/12/22 21:46 21,587 【辅助】【前置9】盔甲架显示饰品Curious Armor Stands-1.16.5-2.2.0.jar
2022/01/12 14:44 515,600 【辅助】世界地图XaerosWorldMap_1.19.1_Forge_1.16.5.jar
2021/04/25 03:14 14,660 【辅助】伤害显示TextDamageIndicators-1.16.3-2.0.1.jar
2021/04/24 15:37 42,604 【辅助】拾取通知PickUpNotifier-v1.2-1.16.3.jar
2021/12/26 18:09 322,836 【辅助】搬箱子carryon-1.16.5-1.15.5.22.jar
2021/04/11 16:07 22,624 【辅助】物品堆叠upsizer-mc1.16.4-6.1.1.jar
2021/09/20 22:39 33,125 【辅助】生物生成管理SpawnBalanceUtility-1.36.0.11.jar
2021/05/04 07:49 22,955 【辅助】穿草swingthroughgrass-1.16.4-1.5.3.jar
2021/09/26 01:06 134,996 【辅助】结构指南针ExplorersCompass-1.16.5-1.1.2-forge.jar
2021/09/26 01:06 203,573 【辅助】群系指南针NaturesCompass-1.16.5-1.9.1-forge.jar
2021/11/05 14:28 46,203 【辅助】饱和度状态栏appleskin-forge-mc1.16.x-2.2.0.jar
2021/04/09 22:58 281,216 【辅助】(区域挖掘)OreExcavation-1.8.157.jar
2021/11/11 00:37 588,910 【附魔】【前置01】allurement-1.16.5-1.2.1.jar
2021/12/14 21:50 59,391 【附魔】【前置28】附魔描述EnchantmentDescriptions-1.16.5-7.0.18.jar
2021/12/14 21:50 133,379 【附魔】【前置36】更多附魔ensorcellation-1.16.5-1.4.0.1.jar
2021/10/26 10:58 478,696 【附魔】更多附魔flowingagony-1.16.5-1.0.4.jar
2021/07/20 21:14 136,931 【附魔】更多附魔Unique+Enchantments-1.16.5-2.0.1.jar
2021/07/20 21:14 11,607 【附魔】更多附魔—战斗Unique+Enchantments+Battle-1.16.5-1.0.jar
2021/07/20 21:14 31,406 【附魔】更多附魔工具Unique+Enchantments+Utils-1.16.5-1.3.jar
2021/04/25 04:14 47,064 【附魔】附魔拆解台Disenchanting-forge-1.16.5-1.7.1.jar
2021/12/15 20:24 4,320,518 【食物】【前置01】neapolitan-1.16.5-2.2.1.jar
2021/12/07 18:47 553,175 【食物】【前置01】【前置17】A系融合农夫乐事abnormals_delight-1.16.5-1.2.1.jar
2021/04/27 12:06 804,052 【食物】【前置16】潘马斯作物pamhc2crops-1.16.3-1.0.2.jar
2021/04/27 12:17 545,339 【食物】【前置16】潘马斯树木pamhc2trees-1.16.3-1.0.1.jar
2021/04/27 12:18 913,219 【食物】【前置16】潘马斯食物拓展pamhc2foodextended-1.16.3-1.0.2.jar
2021/10/26 10:58 11,809 【食物】【前置17】【前置18】farmerstea-1.16.5-1.3.jar
2021/10/26 10:58 283,157 【食物】【前置17】农夫乐事下界扩展nethers_delight-2.1.jar
2021/07/19 16:54 130,982 【食物】【前置17】农夫乐事扩展Farmers_Extra_Foods_1.2.jar
2021/10/26 10:58 199,890 【食物】【前置17】(巨多联动)农夫乐事非正规厨师irregularchef-1.16.5-1.0.1.jar
2021/08/17 17:07 496,315 【食物】【前置42】Horticulture-1.16.5-1.0.2.jar
2021/10/26 12:11 79,425 【食物】【前置46】【前置17】简单快乐simpledelights-1.2.jar
2021/07/20 23:03 682,828 【食物】懒人厨房CookingForBlockheads_1.16.5-9.3.3.jar
2022/01/09 19:43 225,004 全群系world_blender-1.16.5-4.0.2-forge.jar

最简单用法:直接拖进去

比如我就可以直接吧文件拷到C:\Users\123\OneDrive\123中即可等待自动传输同步。相当于OneDrive会把任何其目录下的内容上次云端
但是如果不想改文件位置,甚至文件太大不想拷一份呢(而且每次修改需要重新拷过来)

着重记下指定任意文件夹进行备份

这个不算是官方功能,但只需要运用映射文件夹的简单道理,即可实现一般所谓的文件夹备份(即修改本地文件夹内容后自动修改OneDrive上的内容)
即cmd(管理员)中运行mklink /d C:\Users\123\OneDrive\123 D:\456进行文件夹映射(链接)

(概念)

排序服务

每个Fabric网络还包括一个排序服务

排序服务允许对等节点专注于验证交易并将它们提交到账本。 排序节点从客户那里收到认可的交易后,他们就交易顺序达成共识,然后添加区块。 这些区块之后被分配给添加这些区块到账本的对等节点。 排序节点还可以操作定义Fabric网络的功能系统通道, 系统通道定义了哪个组织是该联盟的成员。

该示例网络使用一个单节点Raft排序服务,该服务由排序组织运行。 您可以看到在您机器上正在运行的排序节点orderer.example.com。 虽然测试网络仅使用单节点排序服务,一个真实的网络将有多个排序节点,由一个或多个多个排序者组织操作。 不同的排序节点将使用Raft共识算法达成跨交易顺序的共识网络。

智能合约与链码

在Fabric中,智能合约作为链码以软件包的形式部署在网络上。 链码安装在组织的对等节点上,然后部署到某个通道,然后可以在该通道中用于认可交易和区块链账本交互。 在将链码部署到通道前,该频道的成员需要就链码定义达成共识,建立链码治理。 何时达到要求数量的组织同意后,链码定义可以提交给通道,并且可以使用链码了。
链码通过应用提交的交易来初始化以及管理账本状态。
链码通常用来处理网络中成员共同接受的业务逻辑,所以它可以被认为是“智能合约”。

Fabric 链码生命周期

Fabric 链码生命周期是一个过程,它允许多个组织在使用一个链码之前就如何操作达成一致。网络操作者可以使用 Fabric 生命周期来展开以下的任务:

测试网络

启动测试网络test-network

./network.sh down删除先前运行的所有容器或工程
./network.sh up
此命令创建一个由两个对等节点和一个排序节点组成的Fabric网络。 运行./network.sh up时没有创建任何channel, 虽然我们将在后面的步骤实现。 如果命令执行成功,您将看到已创建的节点的日志:
enter description here

使用例程创建通道

您可以使用network.sh脚本在Org1和Org2之间创建通道并加入他们的对等节点。 运行以下命令以创建一个默认名称为“ mychannel”的通道:
./network.sh createChannel
您也可以使用channel标志创建具有自定义名称的通道。 作为一个例子,以下命令将创建一个名为channeljin的通道:
./network.sh createChannel -c channeljin

在通道启动一个链码

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

后面网络交互就照着做

下一步

既然您已经使用测试网络在您的本地计算机上部署了Hyperledger Fabric,您可以使用教程来开始开发自己的解决方案:

  • 使用将智能合约部署到通道 教程了解如何来将自己的智能合约部署到测试网络。
  • 访问编写您的第一个应用程序 教程了解如何从您的客户端程序使用Fabric SDK提供的API调用智能合约。
  • 如果您准备将更复杂的智能合约部署到网络,请跟随商业票据教程 探索两个组织使用区块链网络进行商业票据交易的用例。

您可以在教程页上找到Fabric教程的完整列表。

用CA建立网络

默认情况下,脚本使用cryptogen工具创建证书和密钥。(比如以上)
测试网络脚本还提供了使用证书颁发机构(CA)的网络的启动选项。 在产品网络中,每个组织操作一个CA(或多个中间CA)来创建属于他们的组织身份。 所有由该组织运行的CA创建的身份享有相同的组织信任根源。
./network.sh up -ca
enter description here
测试网络使用Fabric CA客户端以每个组织的CA注册节点和用户身份。 之后这个脚本使用enroll命令为每个身份生成一个MSP文件夹。 MSP文件夹包含每个身份的证书和私钥,以及在运营CA的组织中建立身份的角色和成员身份。
检查Org1管理员用户的MSP文件夹:tree organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/
enter description here

每次记得关闭docker容器

直接用./network.sh down

使用configtx.yaml创建通道配置

cryptogen
cryptogen 是用来生成 Hyperledger Fabric 密钥材料的工具。它为测试提供了一种预配置网络的工具。通常它不应使用在生产环境中。

最后跑的命令2.2的示例
configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block -channelID fabric-channel configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
2.3的示例
configtxgen -profile TwoOrgsApplicationGenesis -outputBlock ./channel-artifacts/genesis.block -channelID fabric-channel

部署节点

使用docker的话这些配置文件会有一个默认的内置在docker hyperledger fabric官方容器中
即一般测试会写一个docker-compose.yaml的配置文件来用docker创建节点
否则一般有:

创建一个 peer 节点

在创建 peer 节点之前,你需要为 peer 节点定制配置文件。在 Fabric 中,这个文件叫做 core.yaml

创建一个排序节点

与创建 peer 节点不同,你将需要创建一个创世纪块(或者引用已经创建的块,如果将排序节点添加到现有的排序服务中),并在启动排序节点之前指定其路径。
在Fabric中,这个用于排序节点的配置文件称为 orderer.yaml

最后部署链码。。。

1
2
3
4
5
6
7
# education程序解读
* chaincode文件存放链码及相关依赖
* fixtures文件存放docker的配置文件(docker-compose.yaml)通道配置文件(configtx.yaml)网络配置文件(crypto-config.yaml)
* img作者示例图片与网页资源图片
* sdkinit
* service
* web 基本的网页应用前后端

(记)

docker compose用docker启动节点

在有docker-compose.yaml的地方
docker-compose up即可

删除container和image

1
2
3
4
5
6
7
8
9
docker container ls -a #查看所有container
docker rm xxxxxxx #通过container id 删除container,container id可以不写全
docker ps -a #通过docker提供的commands 可以做到manager commands的效果,还简便些。
docker rm $(docker container ls -qa) #批量删除
#删除前先要STOP
docker stop xxxx

docker image ls #查看所有image
docker rmi xxxxxxx #通过image id 删除

enter description here
docker rm -f $(docker ps -aq) docker rmi -f $(docker images -q)

进入容器内bash

docker exec -it cli1 bash

go代理

go env -w GOPROXY=https://goproxy.cn,direct