华为产品技术学习笔记之路由原理(一)

       路由器:路由器是一种典型的网络连接设备,用来进行路由选择和报文转发。
路由器与它直接相连的网络的跳数为0,通过一台路由器可达的网络的跳数为1.
      路由协议:路由器之间维护路由表的规则,用以发现路由,生成路由表,并引导报文转发。
路由器决策路由关键是路由表,转发报文关键是FIB表(Forwarding Information Base)表。每个路由器至少维护着一张路由表和一张FIB表。
      路由表中通常包含:
链路层协议发现的路由(接口路由或直连路由)
网络管理员人工配置的静态路由
动态路由协议主动发现的路由
FIB表指明分组到某网段或某主机应通过路由器的物理接口或逻辑接口发送,到达计划路径的下一个路由器,当然也可以不经过路由器直达直接相连网络中的主机。
一台路由器保存着一张本地核心(管理)路由表,路由协议也维护着自己的路由表。即
本地核心路由表
      用来保护协议路由和决策优选路由,负责把优选路由下发到FIB,由FIB负责指导转发。具体通过display ip routing-table,查看 
各种路由协议的优先级和度量值选取路由。
协议路由表
     即协议主动发现的路由。路由协议可以引入并发布其它协议生成的路由。
例如:查看路由表
<quidway>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
        Destinations : 20       Routes : 20
Destination/Mask    Proto  Pre  Cost     Flags NextHop         Interface
10.201.54.215/32  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
  10.201.57.128/27  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
    10.201.62.0/26  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
    10.201.63.4/32  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
   10.201.81.16/29  Direct 0    0           D  10.201.81.20    GigabitEthernet1/0/23
   10.201.81.20/32  Direct 0    0           D  127.0.0.1       InLoopBack0
   10.201.81.23/32  Direct 0    0           D  127.0.0.1       InLoopBack0
   10.201.81.24/30  Direct 0    0           D  10.201.81.25    Vlanif30
   10.201.81.25/32  Direct 0    0           D  127.0.0.1       InLoopBack0
   10.201.81.26/32  Direct 0    0           D  10.201.81.26    Vlanif30
   10.201.81.27/32  Direct 0    0           D  127.0.0.1       InLoopBack0
  10.201.93.241/32  Direct 0    0           D  127.0.0.1       InLoopBack0
  10.201.93.242/32  Static 60   0          RD  10.201.81.26    Vlanif30
      127.0.0.0/8   Direct 0    0           D  127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct 0    0           D  127.0.0.1       InLoopBack0
127.255.255.255/32  Direct 0    0           D  127.0.0.1       InLoopBack0
      138.1.1.1/32  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
      138.2.1.1/32  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
      138.7.1.1/32  Static 60   0          RD  10.201.81.19    GigabitEthernet1/0/23
255.255.255.255/32  Direct 0    0           D  127.0.0.1       InLoopBack0
解释:
Route Flags:路由标记,R表示该路由是迭代路由,D表示该路由下发到FIB表。
Routing Tables:说明路由表是公网路由表还是私网路由表。
Destinations:目的网络或者主机的总数。
Routes:路由总数。
Destination/Mask:目的地址和子网掩码。
Proto:协议,说明是直连、静态还是动态路由。
Pre:本条路由加入路由表的优先级。它包括前面所讲的所有路由,加上优先级,优先级高(数值小)的便是当前的最佳路由。各协议的路由优先级如下表:
表1-1 路由协议及缺省时的路由优先级
路由协议或路由种类 相应路由的优先级
DIRECT                              0
OSPF                                10
IS-IS                                 15
STATIC                             60
RIP                                  100
OSPF ASE                        150
OSPF NSSA                      150
IBGP                                 255
EBGP                                255
注意:除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。
Cost:路由开销。当到达同一目的地的多条路由具有相同的优先级时,它就派上用场了。路由开销小的将成为当前的最佳路由。
提醒:Pre用于不同路由协议间路由优先级的比较,cost即用于同一种路由协议内部不同路由优先级的比较。
Flags:路由标记,即路由表头的Route Flags,表示路由信息所处状态。
NextHop:下一跳地址。说明IP包经过的下一个路由器。
Interface:下一跳可达的出接口。说明IP包将从下一个路由器哪一个接口转发。
不过上面的路由表只是路由表简表,它只显示激活的路由,而完整的路由表还包括未激活的路由。可以通过命令display ip routing-table verbose查看。
例如:
<quidway>dis ip routing-table verbose
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
        Destinations : 20       Routes : 27

Destination: 10.201.54.215/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 8d05h16m34s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 10.201.54.215/32
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 8d05h16m34s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 10.201.57.128/27
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 138d23h14m06s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 10.201.57.128/27
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 138d23h14m06s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 10.201.62.0/26               
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 138d23h14m05s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 10.201.62.0/26
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 138d23h14m08s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 10.201.63.4/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 140d23h35m45s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 10.201.63.4/32
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 140d23h28m08s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 10.201.81.16/29
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 10.201.81.20     Neighbour: 0.0.0.0
        State: Active Adv             Age: 140d23h35m45s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.81.20/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h35m46s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.81.23/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h35m46s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
                                          
Destination: 10.201.81.24/30
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 10.201.81.25     Neighbour: 0.0.0.0
        State: Active Adv             Age: 140d23h28m09s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.81.25/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h28m09s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.81.26/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h28m05s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.81.27/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h28m54s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.93.241/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active Adv             Age: 140d23h42m01s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 10.201.93.242/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 138d23h13m26s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: RD
Destination: 127.0.0.0/8
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h42m07s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 127.0.0.1/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h42m10s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 127.255.255.255/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h42m10s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
Destination: 138.1.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 140d23h36m37s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 138.1.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 140d23h29m01s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 138.2.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 140d23h36m38s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 138.2.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 140d23h29m01s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 138.7.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 60                    Cost: 0
      NextHop: 10.201.81.19     Neighbour: 0.0.0.0
        State: Active Adv GotQ        Age: 140d23h36m38s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: GigabitEthernet1/0/23
     TunnelID: 0x0                  Flags: RD
Destination: 138.7.1.1/32
     Protocol: Static          Process ID: 0
   Preference: 100                   Cost: 0
      NextHop: 10.201.81.26     Neighbour: 0.0.0.0
        State: Inactive Adv GotQ      Age: 140d23h29m01s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: Vlanif30
     TunnelID: 0x0                  Flags: R
Destination: 255.255.255.255/32
     Protocol: Direct          Process ID: 0
   Preference: 0                     Cost: 0
      NextHop: 127.0.0.1        Neighbour: 0.0.0.0
        State: Active NoAdv           Age: 140d23h42m11s
          Tag: 0                 Priority: 0
        Label: NULL               QoSInfo: 0x0
 RelayNextHop: 0.0.0.0          Interface: InLoopBack0
     TunnelID: 0x0                  Flags:  D
解释:
注意这里的Routes比刚才的多了,是因为将未激活的路由条数加进来了。此外,还多出其它一些项目:
Process ID:路由协议的进程号。
Neighbour:邻居。
State:路由的状态,包括有
Active:激活的路由
Invalid:无效的路由
Inactive:非激活的路由
NoAdv:不充许发布的路由
Adv:可以发布的路由
Del:即将要删除的路由
GotQ:迭代到下一跳及出接口的路由,或者迭代到隧道的路由
WatiQ:没有迭代到下一跳及出接口的路由,或者迭代到隧道的路由
Stale:带Stale标记的路由,在GR中使用
Age:路由有存活时间。
Tag:路由管理标识。
Priority:优先级。
Label:MPLS分配的标签。
QoSInfo:QoS信息。
RelayNextHop:迭代下一跳。
Interface:迭代出接口。
Tunnel ID:隧道ID。
SecTunnel ID:备份隧道ID。
BkNextHop:备份出接口。
Route of Packet Load-balance:显示逐包软转发查询时所使用的路由的信息
前面说过,华为路由器还有一个FIB负责指引报文转发。路由表选择出路由后,路由表就会将已经激活的路由下发到FIB中。由于FIB表进行转发。
FIB表根据匹配最长匹配原则。即查找FIB表时,报文的目的地址和FIB中各表项的掩码进行“逻辑与”运算,将得到的地址与FIB表项中的网络地址匹配,并选择最长匹配的FIB表项进行报文转发。

 
附注:关于迭代路由的解释(摘抄网上的)
我对路由迭代的理解:
      通常路由的下一跳是路由器某个接口的同网段地址,但是存在这样的情形:
A ____B______D___E 
       \____C_____/

    路由器A、B、C、D间运行IGP路由协议,而路由器E不参与,为了使A能到达E,需要在A上配置静态路由,A可以经由B或者C到达D再到达E,那么我们可以在A上配置到E的2条路由:
E    下一跳B       
      E    下一跳C  (备用)
     
     当A到B的链路出现问题
A __X_B______D___E 
       \____C_____/
    
    下一跳到C的路由起作用了,可以正常工作。
    但是如果是B-D的链路出问题怎么办呢?看下图:
     A ____B__X___D___E 
       \____C_____/
A并不知道这一点,仍然将到E的报文向B转发结果当然是不通了。
      解决的办法就是在A上配置迭代路由
E    下一跳D 
      
      A到E具体走B还是走C取决于A到D是走B还是走C,
      而A到D具体是走B还是走C则由IGP路由协议动态算出,这样无论是A-B的链路出现问题还是B-D的链路出现问题都不会影响A-E的转发。
      有人要问为什么不让E也参与IGP不使用静态路由不就不会出类似问题么?
      1、在真实的组网环境中很可能A\B\C\D属于同一个管理区域,E属于另一个管理区域,互相之间不允许运行IGP路由协议。
      2、A-D间可能采用了某种隧道技术,可能B/C根本就不知道E的存在,使用IGP路由协议也不能解决。


本文转自 独钩寒江雪 51CTO博客,原文链接:http://blog.51cto.com/bennie/265440,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络配置:设置IP地址、网关DNS、主机名

查看网络信息 1、ifconfig eth0 2、ifconfig -a 3、ip add 设置主机名需改配置文件&#xff1a; /etc/hosts /etc/sysconfig/network vim /etc/sysconfig/network NETWORKINGyes NETWORKING_IPV6no HOSTNAMEwendyhost Linux配置网络 方法一&#xff1a; 1、使用setup命令进入如…

编译原理—小型(简化)高级语言分析器前端(Java)

实现一个一遍扫描的编译前端&#xff0c;将简化高级语言的部分语法成分&#xff08;含赋值语句、分支语句、循环语句等&#xff09;翻译成四元式&#xff08;或三地址代码&#xff09;&#xff0c;还要求有合理的语法出错报错和错误恢复功能。 测试样例 beginwhile a<b do…

linux boot菜单列表,Bootstrap 下拉菜单(Dropdowns)简介

Bootstrap 下拉菜单是可切换的&#xff0c;是以列表格式显示链接的上下文菜单。这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现。如需使用下拉菜单&#xff0c;只需要在 class .dropdown 内加上下拉菜单即可。下面的实例演示了基本的下拉菜单&#xff1a;实例主…

dynamodb管理ttl_如何使用DynamoDB TTL和Lambda安排临时任务

dynamodb管理ttlby Yan Cui崔燕 如何使用DynamoDB TTL和Lambda安排临时任务 (How to schedule ad-hoc tasks with DynamoDB TTL and Lambda) CloudWatch Events let you easily create cron jobs with Lambda. However, it’s not designed for running lots of ad-hoc tasks,…

5g创业的构想_数据科学项目的五个具体构想

5g创业的构想Do you want to enter the data science world? Congratulations! That’s (still) the right choice.您想进入数据科学世界吗&#xff1f; 恭喜你&#xff01; 那(仍然)是正确的选择。 The market currently gets tougher. So, you must be mentally prepared f…

Microsoft Windows Phone 7 Toolkit Silverlight SDK XNA Game Studio 4.0 开发工具套件正式版下载...

Windows Phone 7开发工具套件包括Visual Studio 2010 Express for Windows Phone、Windows Phone模拟器、Expression Blend 4 for Windows Phone、XNA Game Studio 4.0和新增加的必应地图SDK。 英文版的光盘镜像&#xff1a;点击下载 文档中心&#xff1a;Windows Phone develo…

数据挖掘—Apriori算法(Java实现)

算法描述 &#xff08;1&#xff09;扫描全部数据&#xff0c;产生候选1-项集的集合C1&#xff1b; &#xff08;2&#xff09;根据最小支持度&#xff0c;由候选1-项集的集合C1产生频繁1-项集的集合L1&#xff1b; &#xff08;3&#xff09;对k>1&#xff0c;重复执行步骤…

怎么汇报一周开发工作情况_如何在没有经验的情况下获得第一份开发人员工作

怎么汇报一周开发工作情况Whether you’ve done a coding bootcamp or taught yourself, getting your first developer job with only a few months of coding under your belt is hard.无论您是完成了编码训练营还是自学了&#xff0c;仅靠几个月的编码就很难拿到第一份开发人…

vue.js的认知

Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue 学习起来非常简单&#xff0c;。转载于…

c语言中的无符号字节,C语言之有符号数和无符号数

我们知道&#xff0c;在C语言中存在无符号数和有符号数(一些高级语言如Java里面是没有无符号数的)&#xff0c;但是对于计算机而言&#xff0c;其本身并不区别有符号数和无符号数&#xff0c;因为在计算机里面都是0或者1&#xff0c;但是在我们的实际使用中有时候需要使用有符号…

8种排序算法比较

8种排序算法&#xff0c;各算法名称见下表或见源码。运行程序时&#xff0c;将需要你输入一数值&#xff0c;以确定对多少随机数进行排序。然后将会显示各排序算法的耗时。并且你可选择时否进行正序和反序测试。 由于水平有限&#xff0c;可能存在一些错误&#xff0c;还请各位…

两个问题,关于XP进程优化及SVSP虚拟存储平台

这两个问题让我有点头痛&#xff0c;是Boss这阵子布置给我的&#xff0c;都一段时间了&#xff0c;我还是没找出合适的解决方案来答复Boss.第一个问题是&#xff1a;查查X200或X61中的进程&#xff0c;看哪些是可以不要的&#xff0c;停掉&#xff0c;但又不影响用户使用。&…

数据挖掘—朴素贝叶斯分类算法(Java实现)

算法描述 &#xff08;1&#xff09;扫描训练样本数据集&#xff0c;分别统计训练集中类别 Ci 的个数 Di 和属于类别Ci 的样本中属性Ak取值Xk为 Dik 的实例样本个数&#xff0c;构成统计表&#xff1b; &#xff08;2&#xff09;计算先验概率和条件概率&#xff0c;构成概率表…

net core 获取网站目录

AppContext.BaseDirectory 获取项目的根目录转载于:https://www.cnblogs.com/zxs-onestar/p/7147265.html

泰晤士报下载_《泰晤士报》和《星期日泰晤士报》新闻编辑室中具有指标的冒险活动-第1部分:问题

泰晤士报下载TLDR: Designing metrics that help you make better decisions is hard. In The Times and The Sunday Times newsrooms, we have spent a lot of time trying to tackle three particular problems.TLDR &#xff1a;设计度量标准以帮助您做出更好的决策非常困难…

速度一半永远追不上_您将永远不会知道自己应该怎么做的一半-没关系。

速度一半永远追不上by Ken Gilb肯吉尔伯(Ken Gilb) 您将永远不会知道自己应该怎么做的一半-没关系。 (You will never know half of what you think you should — and that’s ok.) Impostor syndrome is a real thing in software development. After 20 years in the indus…

c语言自学门槛,初学C语言的人最常问的几个问题

初学C语言的人最常问的几个问题C语言是一门通用计算机编程语言&#xff0c;应用广泛。对于新手来说学习C语言并不是那么容易&#xff0c;下面是C语言初学者最常问的几个问题&#xff0c;欢迎阅读!1.多久能学会编程?这是一个没有答案的问题。每个人投入的时间、学习效率和基础都…

背景消除的魔力

图片的功能非常强大&#xff0c;有一图胜千言的效果&#xff0c;所以在文档或演示文稿中使用图片来增加趣味性是一种很棒的想法。但问题是&#xff0c;图片通常会变为文字中间的独立矩形&#xff0c;而不是真正与内容融合在一起。您可以在图片中放置边框或效果&#xff0c;使其…

Puppet 之 模板和模块

1 概述模板文件是在puppet模块下面templates目录中以”.erb”结尾的文件&#xff0c;puppet模板主要用于文件&#xff0c;例如各种服务的配置文件&#xff0c;相同的服务&#xff0c;不同的配置就可以考虑使用模板文件。模块是Puppet自包含的代码和数据集合。绝大多数的清单都…

java异步io_Java中的异步IO与异步请求处理

java异步ioIn this article, I am trying to explain the difference between Async-IO and Async-Request processing in the HTTP request in the Java world.在本文中&#xff0c;我试图解释Java世界中HTTP请求中Async-IO和Async-Request处理之间的区别。 In the pre-Java …