HCIP-BGP

本贴最后更新于 1173 天前,其中的信息可能已经事过境迁

1.概述

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

自治系统 AS(Autonomous System)

AS 是指在一个实体管辖下的拥有相同选路策略的 IP 网络。BGP 网络中的每个 AS 都被分配一个唯一的 AS 号,用于区分不同的 AS。AS 号分为 2 字节 AS 号和 4 字节 AS 号,其中 2 字节 AS 号的范围为 1 至 65535,其中 1-64511 为公有 AS 号,64512-65534 为私有 AS 号。4 字节 AS 号的范围为 1 至 4294967295。支持 4 字节 AS 号的设备能够与支持 2 字节 AS 号的设备兼容。这个编号由 IANA 分配。

clipboard.png

clipboard.png

2.特点

BGP 属于外部或域间路由协议。BGP 的主要目标是为处于不同 AS 中的路由器之间进行路由信息通信提供保障。BGP 既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。这是因为 BGP 在发布到一个目的网络的可达性的同时,包含了在 IP 分组到达目的网络过程中所必须经过的 AS 的列表。通路向量信息时十分有用的,因为只要简单地查找一下 BGP 路由更新的 AS 编号就能有效地避免环路的出现。BGP 对网络拓扑结构没有限制,其特点包括:

(1)实现自治系统间通信,传播网络的可达信息。BGP 是一个外部网关协议,允许一个 AS 与另一个 AS 进行通信。BGP 允许一个 AS 向其他 AS 通告其内部的网络的可达性信息,或者是通过该 AS 可达的其他网络的路由信息。同时,AS 也能够从另一个 AS 中了解这些信息。与距离向量选路协议类似,BGP 为每个目的网络提供的是下一跳(next-hop)结点的信息。

(2)多个 BGP 路由器之间的协调。如果在一个自治系统内部有多个路由器分别使用 BGP 与其他自治系统中对等路由器进行通信,BGP 可以协调者一系列路由器,使这些路由器保持路由信息的一致性。

(3)BGP 支持基于策略的选路(policy-base routing)。一般的距离向量选路协议确切通告本地选路中的路由。而 BGP 则可以实现由本地管理员选择的策略。BGP 路由器可以为域内和域间的网络可达性配置不同的策略。

(4)可靠的传输。BGP 路由信息的传输采用了可靠地 TCP 协议。BGP 四层使用 tcp 179 号端口

(5)路径信息。在 BGP 通告目的网络的可达性信息时,处理指定目的网络的下一跳信息之外,通告中还包括了通路向量(path vector),即去往该目的网络时需要经过的 AS 的列表,使接受者能够了解去往目的网络的通路信息。

(6)增量更新。BGP 不需要再所有路由更新报文中传送完整的路由数据库信息,只需要在启动时交换一次完整信息。后续的路由更新报文只通告网络的变化信息。这种网络变化的信息称为增量(delta)。

(7)BGP 支持无类型编制(CIDR)及 VLSM 方式。通告的所有网络都以网络前缀加子网掩码的方式表示。

(8)路由聚集。BGP 允许发送方把路由信息聚集在一起,用一个条目来表示多个相关的目的网络,以节约网络带宽。

(9)BGP 还允许接收方对报文进行鉴别和认证,以验证发送方的身份。

(10)BGP 主要用于大型网络、大型集团、运营商、银行、国家电网、国家与国家之间的路由。

(11)BGP 可以跨路由器建立邻居(因为 BGP 发送的报文都是单播)

(12)一台路由器只能启用一个 BGP 进程

3.运行方式

如图 1 所示,BGP 按照运行方式分为 EBGP(External/Exterior BGP)和 IBGP(Internal/Interior BGP)。

clipboard.png

  • EBGP:运行于不同 AS 之间的 BGP 称为 EBGP。为了防止 AS 间产生环路,当 BGP 设备接收 EBGP 对等体发送的路由时,会将带有本地 AS 号的路由丢弃。
  • IBGP:运行于同一 AS 内部的 BGP 称为 IBGP。为了防止 AS 内产生环路,BGP 设备不将从 IBGP 对等体学到的路由通告给其他 IBGP 对等体,并与所有 IBGP 对等体建立全连接。为了解决 IBGP 对等体的连接数量太多的问题,BGP 设计了路由反射器和 BGP 联盟。

说明:

如果在 AS 内一台 BGP 设备收到 EBGP 邻居发送的路由后,需要通过另一台 BGP 设备将该路由传输给其他 AS,此时推荐使用 IBGP。

BGP 报文交互中的角色

BGP 报文交互中分为 Speaker 和 Peer 两种角色。

Speaker:发送 BGP 报文的设备称为 BGP 发言者(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它 BGP Speaker。

Peer:相互交换报文的 Speaker 之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)。

BGP 的路由器号(Router ID)

BGP 的 Router ID 是一个用于标识 BGP 设备的 32 位值,通常是 IPv4 地址的形式,在 BGP 会话建立时发送的 Open 报文中携带。对等体之间建立 BGP 会话时,每个 BGP 设备都必须有唯一的 Router ID,否则对等体之间不能建立 BGP 连接。

BGP 的 Router ID 在 BGP 网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺省情况下,BGP 选择设备上的 Loopback 接口的 IPv4 地址作为 BGP 的 Router ID。如果设备上没有配置 Loopback 接口,系统会选择接口中最大的 IPv4 地址作为 BGP 的 Router ID。一旦选出 Router ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的 Router ID。

4.BGP 报文

BGP 对等体的建立、更新和删除等交互过程主要有 5 种报文、6 种状态机和 5 个原则。

BGP 对等体间通过以下 5 种报文进行交互,其中 Keepalive 报文为周期性发送,其余报文为触发式发送:

Open 报文:用于建立 BGP 对等体连接。

Update 报文:用于在对等体之间交换路由信息。可以发布也可以撤销路由信息。

Notification 报文:用于中断 BGP 连接。

Keepalive 报文:用于保持 BGP 连接。

Route-refresh 报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的 BGP 设备会发送和响应此报文。

5.BGP 状态机

BGP 对等体的交互过程中存在 6 种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open 报文已发送(OpenSent)、Open 报文已确认(OpenConfirm)和连接已建立(Established)。在 BGP 对等体建立的过程中,通常可见的 3 个状态是:Idle、Active 和 Established。

图 2 BGP 对等体交互过程

clipboard.png

  1. Idle 状态是 BGP 初始状态。在 Idle 状态下,BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后,BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。
  • Start 事件是由一个操作者配置一个 BGP 过程,或者重置一个已经存在的过程或者路由器软件重置 BGP 过程引起的。
  • 任何状态中收到 Notification 报文或 TCP 拆链通知等 Error 事件后,BGP 都会转至 Idle 状态。
  1. 在 Connect 状态下,BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接。
  • 如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent 状态。
  • 如果 TCP 连接失败,那么 BGP 转至 Active 状态。
  • 如果连接重传定时器超时,BGP 仍没有收到 BGP 对等体的响应,那么 BGP 继续尝试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态。
  1. 在 Active 状态下,BGP 总是在试图建立 TCP 连接。
  • 如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器,并转至 OpenSent 状态。
  • 如果 TCP 连接失败,那么 BGP 停留在 Active 状态。
  • 如果连接重传定时器超时,BGP 仍没有收到 BGP 对等体的响应,那么 BGP 转至 Connect 状态。
  1. 在 OpenSent 状态下,BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的 AS 号、版本号、认证码等进行检查。
  • 如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至 OpenConfirm 状态。
  • 如果发现收到的 Open 报文有错误,那么 BGP 发送 Notification 报文给对等体,并转至 Idle 状态。
  1. 在 OpenConfirm 状态下,BGP 等待 Keepalive 或 Notification 报文。如果收到 Keepalive 报文,则转至 Established 状态,如果收到 Notification 报文,则转至 Idle 状态。
  2. 在 Established 状态下,BGP 可以和对等体交换 Update、Keepalive、Route-refresh 报文和 Notification 报文。
  • 如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状态,将保持 BGP 连接。
  • 如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对端,并转至 Idle 状态。
  • Route-refresh 报文不会改变 BGP 状态。
  • 如果收到 Notification 报文,那么 BGP 转至 Idle 状态。
  • 如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态。

BGP 对等体之间的交互原则

BGP 设备将最优路由加入 BGP 路由表,形成 BGP 路由。BGP 设备与对等体建立邻居关系后,采取以下交互原则:

  • 从 IBGP 对等体获得的 BGP 路由,BGP 设备只发布给它的 EBGP 对等体。
  • 从 EBGP 对等体获得的 BGP 路由,BGP 设备发布给它所有 EBGP 和 IBGP 对等体。
  • 当存在多条到达同一目的地址的有效路由时,BGP 设备只将最优路由发布给对等体。
  • 路由更新时,BGP 设备只发送更新的 BGP 路由。
  • 所有对等体发送的路由,BGP 设备都会接收。

| 参数 | 缺省值 |
| BGP | 未使能 |

Keepalive 消息发送间隔 60 秒

6.BGP 与 IGP 交互

BGP 与 IGP 在设备中使用不同的路由表,为了实现不同 AS 间相互通讯,BGP 需要与 IGP 进行交互,即 BGP 路由表和 IGP 路由表相互引入。

BGP 引入 IGP 路由

BGP 协议本身不发现路由,因此需要将其他路由引入到 BGP 路由表,实现 AS 间的路由互通。当一个 AS 需要将路由发布给其他 AS 时,AS 边缘路由器会在 BGP 路由表中引入 IGP 的路由。为了更好的规划网络,BGP 在引入 IGP 的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置 MED 值指导 EBGP 对等体判断流量进入 AS 时选路。

BGP 引入路由时支持 Import 和 Network 两种方式:

  • Import 方式是按协议类型,将 RIP、OSPF、ISIS 等协议的路由引入到 BGP 路由表中。为了保证引入的 IGP 路由的有效性,Import 方式还可以引入静态路由和直连路由。
  • Network 方式是逐条将 IP 路由表中已经存在的路由引入到 BGP 路由表中,比 Import 方式更精确。

IGP 引入 BGP 路由

当一个 AS 需要引入其他 AS 的路由时,AS 边缘路由器会在 IGP 路由表中引入 BGP 的路由。为了避免大量 BGP 路由对 AS 内设备造成影响,当 IGP 引入 BGP 路由时,可以使用路由策略,进行路由过滤和路由属性设置。

IGP:路由发现和计算

BGP:路由的控制和优先

7.BGP 路由的生成方式

1.network //只能 network ip 路由表里的路由,路由和掩码需要一致

clipboard.png

2.import

[R5-bgp]import-route ospf 1

[R3-bgp]import-route ospf 1

3.路由汇总

路由黑洞:能够学习到路由,但是无法访问。

8.BGP 示例 1

clipboard.png

[R1]interface g0/0/0

[R1-GigabitEthernet0/0/0]ip add 10.1.12.1 24

[R1]interface loopback 0

[R1-LoopBack0]ip add 1.1.1.1 24

[R1-LoopBack0]interface loopback 1

[R1-LoopBack1]ip add 1.1.2.1 24

[R1]router id 1.1.1.1

[R1]ospf 1

[R1-ospf-1]area 5

[R1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255

[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

[R1-ospf-1-area-0.0.0.0]network 1.1.2.1 0.0.0.0

[R1]bgp 100 //R1 AS 号

[R1-bgp]peer 2.2.2.2 as-number 100 //Loopback 接口属于逻辑接口,与物理接口相比,不受链路影响,减少 BGP 振荡。 邻居的 AS 号为 100

[R1-bgp]peer 2.2.2.2 connect-interface loopback 0 //指定更新源 loopback0 为 R1 环回接口地址 1.1.1.1

[R2]interface g0/0/0

[R2-GigabitEthernet0/0/0]ip add 10.1.12.2 24

[R2-GigabitEthernet0/0/0]interface loopback 0

[R2-LoopBack0]ip add 2.2.2.2 24

[R2]interface g0/0/1

[R2-GigabitEthernet0/0/1]ip add 10.1.23.2 24

[R2-GigabitEthernet0/0/1]interface g0/0/2

[R2-GigabitEthernet0/0/2]ip add 10.1.25.2 24

[R2]router id 2.2.2.2

[R2]ospf 1

[R2-ospf-1]area 0

[R2-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]network 10.1.25.0 0.0.0.255

[R2-ospf-1-area-0.0.0.0]area 5

[R2-ospf-1-area-0.0.0.5]network 10.1.12.0 0.0.0.255

[R2-ospf-1-area-0.0.0.5]network 2.2.2.2 0.0.0.0

[R2-ospf-1-area-0.0.0.5]q

[R2-ospf-1]silent-interface g0/0/1 //将 g0/0/1 和 g0/0/2 配置为静默接口

[R2-ospf-1]silent-interface g0/0/2

[R2]bgp 100

[R2-bgp]peer 1.1.1.1 as-number 100

[R2-bgp]peer 1.1.1.1 connect-interface loopback 0

[R2-bgp]peer 10.1.23.3 as-number 200

[R2-bgp]peer 10.1.25.5 as-number 200

clipboard.png

//reset bgp all 重置 BGP 邻居关系 生产环境不能使用

clipboard.png

[R3]interface g0/0/0

[R3-GigabitEthernet0/0/0]ip add 10.1.23.3 24

[R3-GigabitEthernet0/0/0]interface g0/0/1

[R3-GigabitEthernet0/0/1]ip add 10.1.34.3 24

[R3-GigabitEthernet0/0/1]interface loopback 0

[R3-LoopBack0]ip add 3.3.3.3 24

[R3-LoopBack0]q

[R3]router id 3.3.3.3

[R3]ospf 1

[R3-ospf-1]area 0

[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0

[R3-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]network 10.1.34.0 0.0.0.255

[R3-ospf-1-area-0.0.0.0]q

[R3-ospf-1]silent-interface g0/0/0

[R3]bgp 200

[R3-bgp]peer 5.5.5.5 as-number 200

[R3-bgp]peer 5.5.5.5 connect-interface LoopBack 0

[R3-bgp]peer 4.4.4.4 as-number 200

[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0

[R3-bgp]peer 10.1.23.2 as-number 100

[R4]interface g0/0/0

[R4-GigabitEthernet0/0/0]ip add 10.1.34.4 24

[R4-GigabitEthernet0/0/0]interface g0/0/1

[R4-GigabitEthernet0/0/1]ip add 10.1.45.4 24

[R4-GigabitEthernet0/0/1]interface loopback 0

[R4-LoopBack0]ip add 4.4.4.4 24

[R4-LoopBack0]interface loopback 1

[R4-LoopBack1]ip add 4.4.5.4 24

[R4-LoopBack1]q

[R4]router id 4.4.4.4

[R4]ospf 1

[R4-ospf-1]area 0

[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0

[R4-ospf-1-area-0.0.0.0]network 4.4.5.4 0.0.0.0

[R4-ospf-1-area-0.0.0.0]network 10.1.34.0 0.0.0.255

[R4-ospf-1-area-0.0.0.0]network 10.1.45.0 0.0.0.255

[R4]bgp 200

[R4-bgp]peer 3.3.3.3 as-number 200

[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[R4-bgp]peer 5.5.5.5 as-number 200

[R4-bgp]peer 5.5.5.5 connect-interface LoopBack 1

[R5]interface g0/0/0

[R5-GigabitEthernet0/0/0]ip add 10.1.25.5 24

[R5-GigabitEthernet0/0/0]interface g0/0/1

[R5-GigabitEthernet0/0/1]ip add 10.1.45.5 24

[R5-GigabitEthernet0/0/1]interface loopback 0

[R5-LoopBack0]ip add 5.5.5.5 24

[R5-LoopBack0]q

[R5]router id 5.5.5.5

[R5]ospf 1

[R5-ospf-1]area 0

[R5-ospf-1-area-0.0.0.0]network 5.5.5.5 0.0.0.0

[R5-ospf-1-area-0.0.0.0]network 10.1.25.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]network 10.1.45.0 0.0.0.255

[R5-ospf-1-area-0.0.0.0]q

[R5-ospf-1]silent-interface g0/0/0

[R5]bgp 200

[R5-bgp]peer 10.1.25.2 as-number 100

[R5-bgp]peer 3.3.3.3 as-number 200

[R5-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[R5-bgp]peer 4.4.5.4 as-number 200

[R5-bgp]peer 4.4.5.4 connect-interface LoopBack 0

clipboard.png

相关帖子

1 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 589 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 169 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 44 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 38 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 4 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1450 回帖 • 2 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 191 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 641 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 7 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    228 引用 • 1450 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 10 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 629 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖 • 2 关注
  • 倾城之链
    23 引用 • 66 回帖 • 97 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 563 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    116 引用 • 99 回帖 • 265 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    940 引用 • 1458 回帖 • 156 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    85 引用 • 895 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 5 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    4 引用 • 7 回帖 • 1 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 150 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 547 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 9 关注