IPv4,IPv6,TCP,路由

主要回顾一下TCP/IP的传输过程,在这个过程中,做了什么事情

ip : 网际协议,IP协议能让世界上任意两台计算机之间进行通信。

  • IP协议的三大功能:
  1. 寻址和路由
  2. 传递服务:不可靠(尽最大努力交付传输数据包),可靠性由上层协议提供;无连接
  3. 数据包分片重组

OSI七层架构(理论) 和 TCP/IP的4层架构(实现)
在这里插入图片描述

IP的主要作用是在复杂的网络环境中将数据包发给最终的目标地址。
在这里插入图片描述

主机和路由器的区别:

  1. 主机是配置有IP地址,但是不进行路由控制
  2. 路由器是即配有IP地址,又具有路由控制能力
  3. 主机和路由器都可被当作网络节点

由于IP地址包括网络标识和主机标识,在路由的过程中正是利用IP地址的网络标识进行路由。
网络号相同则属于统一网段内的主机,网络号不同则不属于同一网络。

实现IP通信的主机和路由器必须要有路由表:指明路由器或主机的信息。

路由表的形成方式:

  1. 管理员手动设置;(静态路由)
  2. 路由器与其他路由器相互交换时自动刷新。(动态路由)

路由表中包含了信息:

路由表中的表项内容包括:

destination:目的地址,用来标识IP包的目的地址或者目的网络。

mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。

pre:标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。

cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。

interface:输出接口,说明IP包将从该路由器哪个接口转发。

nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。

IP地址的网络地址部分被用来进行路由控制

在这里插入图片描述

DNS查询流程图:

在这里插入图片描述

域名是怎样变成数据帧中的目标地址的:
在这里插入图片描述

ARP协议:

    以目标IP地址为线索,用来定位下一个应该接受数据分包的网络设备对应的MAC地址,如果目标主机不在同一个链路上时,可以通过ARP查找下一跳路由器的MAC地址。

ARP数据包报文结构:
在这里插入图片描述

  1. 以太网帧头部(Ethernet Frame Header):包含目的MAC地址和源MAC地址。
  2. 以太网帧类型(Ethernet Type):指示数据帧中的上层协议类型,对于ARP数据包,该字段的值为0x0806。
  3. ARP帧头部(ARP Frame Header):包含以下字段:
    • 硬件类型(Hardware Type):指示网络适配器的类型,例如以太网的硬件类型为1。
    • 协议类型(Protocol Type):指示上层协议的类型,例如IPv4的协议类型为0x0800。
    • 硬件地址长度(Hardware Address Length):指示硬件地址的长度,例如以太网的硬件地址长度为6个字节。
    • 协议地址长度(Protocol Address Length):指示协议地址的长度,例如IPv4的协议地址长度为4个字节。
    • 操作码(Operation Code):指示ARP请求或ARP响应的类型。ARP请求的操作码为1,ARP响应的操作码为2。
    • 发送方硬件地址(Sender Hardware Address):指示发送方的MAC地址。
    • 发送方协议地址(Sender Protocol Address):指示发送方的IP地址。
    • 目标硬件地址(Target Hardware Address):在ARP请求中,该字段为空;在ARP响应中,该字段指示目标的MAC地址。
    • 目标协议地址(Target Protocol Address):指示目标的IP地址。

在这里插入图片描述
通过ARP数据包中的这些字段,可以实现ARP协议的功能,即通过IP地址解析对应的MAC地址。

发送ARP请求时,目标硬件地址和目标协议地址为空;接收到ARP请求后,目标主机会发送ARP响应,将目标硬件地址和目标协议地址填充到响应中,以便发送方可以获取目标主机的MAC地址。

ARP是如何知道MAC地址的:借助ARP请求和ARP响应两种类型的包确定MAC地址。

原理:ARP高速缓存中存储的有IP和MAC的映射表,但是生命周期只有20分钟,如果在主机发送IP数据包的时候,ARP的高速缓存刚好失效或在高速缓存中不存在IP-MAC的映射记录,那么主机就会发送ARP广播包,此时在同一子网内的所有设备都会收到此广播包,所有的主机都会检查自己的IP是否是主机的目的IP,如果是则发送自己的MAC地址给主机,主机在收到MAC地址后,首先对自己的ARP高速缓存列表进行更新,然后再对目标设备发送数据。

ARP协议工作原理:
ARP工作原理

路由选择协议:自适应的,那个随着网络通信量和拓扑结构的变化而自适应的进行调整。

    以上情况是,源主机与目标主机在同一子网下的操作方式,那么如果源主机与目的主机不在同一子网下,又该如何应对呢?此时就体现出了,路由的重要性了。当源主机与目的主机不在同一子网下,ARP广播包就会发送到默认网关,有默认网关转发至同一网络下的其他路由器或者设备,直到找到目的主机,目的主机在进行ARP响应的操作。ARP响应包并非沿着路由的路径原路返回给源主机的,因为目的主机在进行响应的时候是知道源主机的MAC地址的,所以会直接将ARP响应包发送给源主机,以确保响应包能够直接到达源主机。

路由转发流程:
在这里插入图片描述
为什么IP地址可以唯一标识一台主机,在进行数据传输的时候还要知道MAC地址?

因为IP地址是在逻辑上唯一标识一台主机或者网络设备,IP地址工作在网络层,实际上的数据传输需要经过数据链路层,将数据封装成数据帧,在数据帧首部插入源MAC地址和目标MAC地址,通过MAC地址来确保数据的准确传输。

在数据包从源主机到达目标主机的过程中,需要使用物理层(OSI模型的第一层)的MAC地址来实际传输数据帧。MAC地址是一个全球唯一的硬件地址,它是由网络适配器(网卡)厂商分配的。每个网络适配器都有一个唯一的MAC地址,用于在局域网中识别设备。
因此,尽管IP地址提供了逻辑上的唯一标识,但在实际的数据传输中,需要使用MAC地址来确保数据帧能够正确地在局域网中传输到目标设备。知道目标设备的MAC地址可以准确地将数据帧发送到目标设备,从而实现数据的传输。

IPv4数据报首部:
在这里插入图片描述

    标识:当IP数据报的长度大于MTU时,就需要进行分片传输,传输之后,相同标识符的数据片会被重新组装成一个数据报。此标识并非排序标识。标志:占三位,一般有用的是前两位,最低位叫做MF,MF=1表示后面还有若干个数据报,MF=0表示这已经是最后一个数据报了;中间位叫做DF,DF表示不能进行分片,DF=0才可以进行分片。ttl:跳数,也就是IP数据报生存周期,最多只能有255跳,经过一个路由器此值就减一,超过255就丢弃。

在这里插入图片描述

特殊IP地址:

  1. 广播地址: 一个子网内所有网络接口都能收到此广播消息。 直接广播:带目标网络号,主机地址二进制全1的地址。(使用的范围在当前网段下) 有限广播:网络号和主机地址二进制全为1的地址(即255.255.255.255)。(使用范围限于当前网段下 ,通常用于 DHCP
    客户端向DHCP服务器请求时设置的报文目的地 IP 地址,且目标 MAC 为 FF:FF:FF:FF:FF:FF)
  2. 组播地址
  3. 环回地址
  4. 私有地址
    在这里插入图片描述

子网技术

划分子网的步骤:

  1. 根据所需的网络数确定需要多少二进制位子网号标识网络上的每一个子网
  2. 根据子网中的主机数确定需要多少主机号来标识每个子网上的每一条主机。
  3. 根据网络好和子网号的位数,计算符合网络要求的子网掩码
  4. 确定标识每个子网的网络地址。
  5. 确定每一个子网所使用的主机地址范围。

IPV6

ipv6的地址表示方法:

  • IPv6 地址采用十六进制的表示方法,共 128 位,分 8 组表示,每组 16 位,每组表示 4 个十六进制数。
  • 各组之间用 “ : ”号隔开,例如:1080:0:0:0:8:800:200C:417A
  • 在 IPv6 地址段中有时会出现连续的机组0,为了简化书写,这些 0 可以用“ : : ”代替,但一个地址中只能出现一次“ : : ”。 在这里插入图片描述
    IPv6 包含 IPv4 地址:在某些情况下,IPv4 地址需要包含在 IPv6 地址中,这时,IPv6 的最后两组用现在习惯使用的 IPv4 地址的十进制表示法,前6组用 IPv6表示。例如:IPv4地址 61.1.133.1 包含在 IPv6地址中表示为 0:0:0:0:0:0:61.1.133.1 或者 ::61.1.133.1

IPv6的地址结构:
128位的IPv6地址由64位网络地址64位主机地址组成。其中,64位的网络地址又分为48位的全球网络标识符和16位的本地子网标识符:
在这里插入图片描述
网际控制报文协议ICMP
icmp是为了更有效的转发IP数据报和提高交付成功的机会。
在这里插入图片描述
在这里插入图片描述

ping主要用来测试两台主机之间的连通性。

    原理:通过向目的主机发送ICMP Echo请求报文,目的主机收到后会发送Echo回答报文。ping会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

ping过程中都经历了什么设备,会发送什么数据包?
在这个过程中,数据包会经过交换机、路由器等网络设备,根据目标主机的IP地址进行转发。ARP请求和响应消息在局域网中进行广播,以获取目标主机的MAC地址。一旦获取到目标主机的MAC地址,ICMP消息会直接发送到目标主机。整个过程中,源主机和目标主机之间的连通性和路由路径都会被测试和确定。

在Ping的过程中,通常会发送以下几个包,并经历以下设备和流程:

1.     发送ICMP回显请求消息(Echo Request):源主机(发送方)向目标主机(接收方)发送一个ICMP回显请求消息,该消息包含一个唯一的标识符和序列号,以及其他必要的字段。
2.     ARP请求:如果源主机和目标主机之间没有建立过通信,源主机会发送一个ARP请求广播,询问局域网中的其他主机,以获取目标主机的MAC地址。
3.     ARP响应:目标主机收到ARP请求后,会发送一个ARP响应,将自己的MAC地址告诉源主机。
4.     获取目标主机的MAC地址:源主机收到ARP响应后,将目标主机的MAC地址添加到ARP缓存表中,并使用该MAC地址发送ICMP回显请求消息。
5.     目标主机接收ICMP回显请求消息:目标主机接收到ICMP回显请求消息后,会检查目标IP地址是否与自己匹配。
6.     目标主机发送ICMP回显应答消息(Echo Reply):如果目标主机的IP地址与ICMP回显请求消息中的目标IP地址匹配,它会生成一个ICMP回显应答消息,并将该消息发送回源主机。
7.     源主机接收ICMP回显应答消息:源主机接收到ICMP回显应答消息后,会检查标识符和序列号是否与之前发送的ICMP回显请求消息匹配。
8.     分析结果:根据接收到的ICMP回显应答消息,源主机可以判断目标主机是否可达。如果接收到回答消息,说明主机之间连通;如果没有接收到回答消息,说明主机之间不可达。

通俗来讲ping命令(将DNS域名解析,ARP地址解析,ICMP连通性测试综合叙述):

    假设有主机A和主机B,现在哪个都不知道有彼此的存在,但是现在有一条业务线,需要主机A给主机B发送消息,主机A现在只知道主机B的IP的域名,那么再发送消息之前主机A就需要确认与主机B的连通性啊?他此时就会发送一条ping命令, ping主机B。那么A主机在收到ping命令的时候,首先A主机会判断ping的是域名还是IP,如果目标地址是一个域名,那么主机会向本地的域名解析器发送一条DNS查询请求,请求解析该域名对应的IP地址。域名解析器会先查询本地的DNS缓存,如果找到对应的IP地址,就将这个IP地址返回给主机,如果在高速缓存中没有找到对应的IP地址,DNS解析器会向根域名服务器发送查询请求,根域名服务器会返回一个顶级域名服务器的IP地址,域名解析器会在向顶级域名服务器发从查询请求,顶级域名服务器在返回下一级域名服务器的IP,域名解析器继续发送查询请求,以此步骤不断迭代,知道查询到域名对应的IP地址,域名解析器将查询到的IP地址返回给主机。主机知道IP地址之后,就会向该IP发送一个ICMP回显请求数据包,确认网络通路。此时ARP协议就要登场了,因为此时我们只知道目标主机B的IP地址,并不知道其MAC地址。此时主机就会在本地的ARP高速缓存进行查询,如果查到目标地址的IP-MAC记录,就可以直接向目标主机发送ICMP数据包;但我们当前的前提下,A的ARP高速缓存中肯定是没有B的记录的,此时A会将ARP请求进行广播,所有的主机对照自己的IP地址,目的主机会将自己的MAC地址放在ARP响应包中,发送给源主机A。此时万事具备,只欠东风!源主机A已经知道目标主机B的MAC地址和IP地址,以此为基础,对目标主机B发送ICMP回显请求数据包,当目标主机B收到请求后,目标主机会检查目标IP地址是否与自己匹配,如果ICMP回显请求消息中的IP地址与目标主机B自己的IP地址匹配,目标主机会生成一个ICMP回显应答消息,并将此应答消息发送给源主机。源主机接收到ICMP回显应答消息后,会检查标识符与序列号是否与之前发送的ICMP请求消息匹配。根据分析结果,源主机A判断与目标主机B是否可达。如果接收到回答消息,说明主机可通,如果没有收到,说明主机之间不可达。

traceroute用来跟踪一个分组从源点到终点的路径。
原理:
1. traceroute发送的IP数据报封装的是无法交付的UDP用户数据报,并由目的主机发送终点不可达差错报告报文。
2. 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;
3. 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。
4. 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
5. 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

因特网采用的设计思路:网络层向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

与IP协议配套的四个协议:
1. 地址解析协议ARP
2. 逆地址解析协议RARP
3. 网际控制报文协议ICMP
在这里插入图片描述

ping 命令都做了那些事情?

    在进行ping操作时,通常会发送一系列的数据包,并且会经历以下过程:
  1. 发送请求数据包:发送方(通常是ping命令所在的主机)向目标主机发送一个ICMP Echo Request(请求回显)数据包。
  2. 路由选择:发送方的操作系统将数据包发送到默认网关(路由器),或者根据路由表选择合适的下一跳路由器。数据包将通过网络传输到达目标主机。
  3. 目标主机接收数据包:目标主机接收到ICMP Echo Request数据包。
  4. 目标主机生成回复数据包:目标主机收到请求后,会生成一个ICMP Echo Reply(回复回显)数据包作为响应。
  5. 回复数据包返回:回复数据包通过网络返回到发送方。
  6. 发送方接收回复数据包:发送方接收到ICMP Echo Reply数据包。
  7. 统计信息显示:发送方的ping命令会显示接收到的回复数据包的数量、往返时间(RTT)以及丢包率等统计信息。
    在这个过程中,数据包通过网络传输,经过多个路由器和网络设备,最终到达目标主机,并返回到发送方。每个数据包都包含源IP地址、目标IP地址、ICMP协议头部和数据部分。路由器根据目标IP地址将数据包转发到下一个跳点,直到到达目标主机。目标主机接收到数据包后,根据协议头部的信息进行处理,并生成回复数据包发送回发送方。
    在传输过程中,数据包可能会经历延迟、丢包、重新排序等情况。这些情况可能由网络拥塞、路由器故障、链路质量等原因引起。ping命令通过发送多个数据包并统计回复数据包的情况,可以评估网络的可达性和性能。

路由器的结构:
在这里插入图片描述

路由表和转发表的区别:

路由器的结构结构可划分为两大部分:路由选择部分和分组转发部分

  •     路由选择部分也叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由协议构造出路由表,同时经常或定期地和相邻的路由器交换路由信息而不断地更新和维护路由表。
    
  •     分组转发部分由三部分组成:交换结构、输入端口和输出端口。交换结构的作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输入端口转发出去。
    

路由表和转发表是两种不同的表,他们共享相同的信息,但是用于不同的目的。

路由表是根据路由选择算法得出的,而转发表是从路由表得出的;转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化;路由表总是由软件实现的,而转发表可由硬件实现。

转发表(交换机根据转发表来转发数据帧)
又称MAC表。内部存储的是MAC-port的对应关系。
交换机本质上也是一个计算机,他会维护一张记录着局域网主机端口MAC地址与交换机端口对应的表, 交换机就是根据这张表负责将数据帧传输到指定的主机端口上的。
交换机的存储转发功能:
* 交换机接收到数据帧之后,首先会记录数据帧中的源MAC地址和对应的到达端口到转发表中,这一过程称作自学习,不需要任何的人工干预;
* 接着交换机检查自己的MAC表是否有数据帧中目的MAC地址的匹配条目,如果有,则会根据MAC表中记录的对应端口将数据帧转发出去,这一转发方式称为“单播”。而如果没有,则会将该数据帧从非达到端口的其他全部端口发送出去,这一转发方式成为“广播”
在这里插入图片描述

交换机转发的步骤如下:
1. 主机A会将一个源MAC地址为本机网卡物理地址,目的MAC地址为主机B网卡物理地址的数据帧发送给交换机1;
2. 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的输入端口0记录到交换机维护的MAC地址表中;
3. 然后交换机会检查自己的MAC地址表中是否有数据帧中的目的MAC地址的信息,如果有,则从MAC地址表中记录的对应端口发送出去,如果没有,则会将此数据帧从非接收端口的所有端口发送出去,这里仅从端口1发出;
4. 这时,局域网的所有主机(通过交换机相连的全部主机)都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播帧,并回应一个数据帧(这个回应由什么机制确定的,需要再查资料确定一下~TCP的ACK包?),此数据帧中包括主机B网络设备的MAC地址;
5. 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址,即主机B网络设备的MAC地址,这时,再当主机A和主机B相互通信时,交换机就根据MAC地址表中的记录,实现单播了,一趟转发流程实际交换机就“学习”到了两个转发表条目。
那么当局域网内存在多个交换机互联时,交换机的MAC地址表应该如何记录呢?
在这里插入图片描述

  1. 主机A将一个源MAC地址为本机网卡物理地址,目的MAC地址为主机C网卡物理地址的数据帧发送给交换机1;

  2. 交换机1收到此数据帧后,会学习源MAC地址,并检查MAC地址表,发现没有目的MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧;

  3. 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的端口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目的MAC地址的记录,则会广播此数据帧,主机C和主机D都会收到此数据帧;

  4. 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为本机网卡物理地址的数据帧,该帧最终会送往主机A,这时交换机1和交换机2都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A;

  5. 这时,主机A和主机C通信就可以以单播的形式传输数据帧了,A与D、B与C及B与D的通信与上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应其端口3。
    总结: 交换机具有动态自学习源MAC地址与物理端口映射的功能,并且交换机的一个端口可以对应对各MAC地址,但是一个MAC地址只能对应一个端口。
    交换机动态学习的MAC地址默认只有300s的有效期,如果300s内记录的MAC地址没有对应的通信过程来更新对应条目,则会自动删除此记录,这是由交换机中的一个计时器所维护的
    ARP表
    在以太网环境下,同一个网段的主机之间需要知道对方的MAC地址,才能进行通信。
    在构造数据包准备发送时,源主机究竟要如何获得目的主机网络设备MAC地址?
    这时就需要使用到ARP协议。在网络拓扑中的每个节点或说主机上,实际都维护有一张ARP表,他记录这主机的IP地址到MAC地址的映射关系。
    ARP地址解析协议: 工作在网络层,运行在各网络节点上,负责完成主机IP地址到MAC地址的映射。
    ARP协议的工作原理:
    在这里插入图片描述

     1. 如果主机A想发送数据包给同一网段内的另一台主机B(通过交换机相连的节点处于同一网段),很明显,A的用户应用程序要么已经知道B的IP地址,或者说域名(Domain Name,DNS协议会完成主机名到IP地址的映射,这里不是重点),那么主机A首先会检查自己的ARP缓存表(ARP Cache),查看是否有主机B的IP地址与其MAC地址的对应关系,如果有,则直接将主机B网络设备的MAC地址作为目的MAC地址封装到数据帧中,无需进一步操作即获取到数据帧封装所需的全部信息,此后完成封装并发送数据帧到目的MAC地址。如果没有,主机A则会发送一个ARP请求信息(ARP Request),请求的目的IP地址是主机B的IP地址,目的MAC地址是MAC层的广播地址(即ff:ff:ff:ff:ff:ff),源IP地址和MAC地址是主机A的IP地址及其MAC地址;2. 当交换机接收到此数据帧之后,发现此帧是广播帧,因此,会将此数据帧从非接收的所有端口发送出去;3. 同一网段中的所有节点都会接收到该ARP请求数据包,目的IP不匹配的节点会直接忽略该请求,而当主机B接收到此数据帧后,解析到IP地址与自己的IP地址一致,先将主机A的IP地址及其MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答(ARP Response),应答数据包源MAC地址即主机B自身网络设备的MAC地址,该应答通过交换机转发至主机A;4. 主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时主机A已经可以继续封装准备发往主机B的数据帧,而交换机也已经学习到了主机A和主机B的MAC地址与其端口的对应关系,之后主机A发送的数据帧通过交换机转发至主机B。
    

这里有一点值得注意的是传输过程中IP地址与MAC的地址的变化问题:
* MAC地址在同一个广播域中传播时始终不变,但在跨越广播域(即经过路由器)时,会由于重新封装而改变,源MAC地址将变为路由器的输出端口的MAC地址,目的MAC地址随网络拓扑实际情况而定,若路由器与目的主机所在网段直连,此时目的MAC地址就是目的主机的MAC地址;而不管是源IP地址还是目的IP地址,在数据包传输过程中都始终不会改变。、

路由器之间是如何进行数据传输的?

路由器之间的数据传输是通过路由协议和转发表来实现的。当一个路由器接收到一个数据包时,它会根据目标IP地址查找转发表,确定下一跳路由器,并将数据包发送给下一跳路由器。路由器之间数据传输的基本过程:

  1. 路由协议选择:路由器使用路由协议(如RIP、OSPF、BGP等)来学习和交换路由信息。这些协议允许路由器之间互相通信,交换关于网络拓扑和可达性的信息。

  2. 转发表构建:路由器通过路由协议学习到的路由信息被存储在转发表中。转发表中包含目标网络的IP地址范围和对应的下一跳路由器的信息。路由器根据转发表来决定将数据包发送到哪个下一跳路由器。

  3. 数据包转发:当路由器收到一个数据包时,它会检查数据包的目标IP地址,并与转发表进行匹配。如果找到匹配的目标网络,路由器会将数据包发送给转发表中指定的下一跳路由器。如果找不到匹配的目标网络,路由器会根据默认路由进行转发,或者丢弃数据包。

  4. 下一跳选择:路由器根据转发表中的下一跳路由器信息,选择合适的出接口将数据包发送出去。这通常涉及到路由选择算法,如距离矢量算法、链路状态算法等。

  5. 数据包传输:路由器将数据包发送到下一跳路由器,通过物理链路进行传输。下一跳路由器接收到数据包后,会进行类似的处理过程,根据转发表决定下一个跳点,直到数据包到达目标主机。

     整个过程中,路由器之间通过交换路由信息和更新转发表来实现数据的转发。路由器根据目标IP地址和转发表中的路由信息,选择合适的路径将数据包转发到下一跳路由器,最终到达目标主机。这样,数据就能在不同的路由器之间进行传输和转发。
    

确认下一跳的路由的过程:

  1. 路由选择算法:路由选择算法是用来确定数据包的转发路径的算法。常见的路由选择算法包括距离矢量算法(Distance Vector)、链路状态算法(Link State)和路径矢量算法(Path
    Vector)等。这些算法使用不同的指标和策略来选择最佳路径,其中包括考虑距离、开销、带宽、负载均衡等因素。
  2. 路由表的使用:路由表是存储在路由器或主机上的一张表格,记录了网络的拓扑结构和路由信息。路由表中的每一条路由条目都包含了目的网络地址、下一跳、出接口等信息。当数据包到达路由器或主机时,根据数据包的目的网络地址,通过查找路由表中的匹配条目,确定下一跳路由。
    具体的确认下一跳路由的过程如下:
  3. 数据包到达路由器或主机时,根据数据包的目的IP地址,查找路由表中匹配的路由条目。
  4. 路由表中的路由条目包含了目的网络地址、下一跳、出接口等信息。根据路由选择算法,选择最佳的路由条目。
  5. 如果路由条目中的下一跳是一个具体的IP地址,那么将数据包发送到该IP地址。如果下一跳是一个出接口,那么将数据包发送到该接口。
  6. 数据包继续按照下一跳路由进行转发,直到到达目的网络。
    需要注意的是,路由表中的路由条目是动态更新的,路由器会根据网络拓扑的变化、链路状态的变化等信息进行路由表的更新。所以,在确认下一跳路由时,需要及时查看和更新路由表的信息。

默认路由的作用?

默认路由是一种特殊的路由,用于处理目标网络无法匹配的情况。当一个路由器收到一个数据包时,如果目标IP地址在转发表中找不到匹配的路由信息,路由器将使用默认路由来决定下一跳路由器。

默认路由的作用如下:

  1. 处理未知目标网络:当路由器收到一个数据包,目标IP地址在转发表中找不到匹配的路由信息时,路由器会使用默认路由来决定下一跳路由器。这样,即使目标网络是未知的,数据包也不会被丢弃,而是被转发到默认路由指定的下一跳路由器。

  2. 连接到其他网络:默认路由可以用于连接到其他网络。当一个路由器连接到多个网络时,它可以使用默认路由将数据包转发到另一个网络。这样,路由器就可以将数据包传递给其他网络中的路由器,实现网络间的通信。

  3. 简化路由表:默认路由可以帮助简化路由表。如果一个路由器只需要将数据包转发到一个默认网关,而不需要为每个目标网络都配置具体的路由信息,那么路由表会更加简洁和易于管理。

     总之,默认路由在处理未知目标网络和连接到其他网络时起到了关键作用。它允许路由器将数据包转发到一个默认网关,确保数据包不会被丢弃,并且简化了路由表的配置和管理。
    

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

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

相关文章

变动的Python爬虫实现

在电商时代,了解商品价格的变动对于购物者和卖家来说都非常重要。本文将分享一种基于Python的实时监控电商平台商品价格变动的爬虫实现方法。通过本文的解决方案和代码示例,您将能够轻松监控商品价格,并及时做出决策。 一、了解需求和目标 在…

EasyCode代码生成MybatisPlus

先安装插件 导入 { "author" : "wangyujie", "version" : "1.2.8", "userSecure" : "", "currTypeMapperGroupName" : "Default", "currTemplateGroupName" : "01-Mybatis-Pl…

如何将PDF文件转换为PPT文件?

如何将pdf转换成ppt?PDF文件作为常用的文件格式,不仅可以在教学过程中使用,还可以在营销展会、培训讲座等过程中使用。欧迪芬文件的使用,能够在一定程度上提升我们的办公效率。对于PDF文件来说,其中包含的元素非常多&a…

电商数据采集和数据分析

不管是做渠道价格的治理,还是做窜货、假货的打击,都需要品牌对线上数据尽数掌握,准确的数据是驱动服务的关键,所以做好电商数据的采集和分析非常重要。 当线上链接较多,品牌又需要监测线上数据时,单靠人工肯…

卷积神经网络——下篇【深度学习】【PyTorch】

文章目录 5、卷积神经网络5.10、⭐批量归一化5.10.1、理论部分5.10.2、代码部分 5.11、⭐残差网络(ResNet)5.11.1、理论部分5.11.2、代码部分 话题闲谈 5、卷积神经网络 5.10、⭐批量归一化 5.10.1、理论部分 批量归一化可以解决深层网络中梯度消失和…

K8s学习笔记2

Kubernetes: K8s由来: 希腊语:舵手、飞行员 来自于谷歌的Borg系统开源(2014年) 简称K8s 现归属于CNCF(2016年) 云原生基金会 是一个开源软件基金会,致力于使云计算普遍性和持…

【从零开始学爬虫】采集中国国际招标网招标数据

l 采集网站 【场景描述】采集中国国际招标网招标数据。 【源网站介绍】中国国际招标网致力于为企业提供招标、采购、拟在建项目信息及网上招标采购等一系列商务服务。 【使用工具】前嗅ForeSpider数据采集系统 http://www.forenose.com/view/forespider/view/download.html 【…

spring异步框架使用教程

背景 在需求开发过程中,为了提升效率,很容易就会遇到需要使用多线程的场景。这个时候一般都会选择建一个线程池去专门用来进行某一类动作,这种任务到来的时候往往伴随着大量的线程被创建调用。而还有另外一种场景是整个任务的执行耗时比较长…

Obsidian 入门使用手册

文章目录 一、Obsidian 入门1.1 什么是 Obsidian1.2 安装 Obsidian 二、Obsidian 配置2.1 创建第一个笔记2.2 设置界面语言使用中文2.3 主题 三、小结 一、Obsidian 入门 1.1 什么是 Obsidian Obsidian 是一款基于 Markdown 语法编辑的笔记软件。与传统的 Markdown 软件不同的…

图神经网络与分子表征:1. 分子图和图神经网络基础

CSDN的朋友们大家好,好久没写系列文章了。 近期读了很多图神经网络(GNN)和分子表征(molecular representation)的论文,正好最近不是很忙,所以我决定把自己的学习过程记录下来,与大家…

有没有免费格式转换工具推荐?PDF转化为PPT的方法

在当今职场生活中,掌握文件格式转换技能变得异常重要。将PDF文档转换为PPT格式可以在演讲、报告等场合更好地展示和传达信息,为我们的专业形象增添亮点,接下来我们可以一起来看一下“有没有免费格式转换工具推荐?PDF转化为PPT的方法”相关的…

使用vscode编写插件-php语言

https://blog.csdn.net/qq_45701130/article/details/125206645 一、环境搭建 1、安装 Visual Studio Code 2、安装 Node.js 3、安装 Git 4、安装生产插件代码的工具:npm install -g yo generator-code 二、创建工程 yo code 选择项解释: 选择编写扩…

认识容器,走进Docker

文章目录 容器技术简介容器的核心技术容器平台技术容器的支持技术 Docker理念Docker安装配置阿里云镜像加速器 容器技术简介 一切在云端,万物皆容器,说到容器,大家都会想到Docker,Docker现在几乎是容器的代名词,什么是Docker&…

时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 时序预测 | MATLAB实现SO-CNN-LSTM蛇群…

Unity之用Transform 数组加多个空物体-->简单地控制物体按照指定路线自动行驶

文章目录 **原理解释**:**带注释的代码**:实际运用 当你需要实现物体按照指定路线行驶时,你可以通过以下步骤来实现: 原理解释: 路径点:你需要定义一系列路径点,这些点将构成物体行驶的路线。每…

十、flume的安装

1.解压 2.改名 3.修改权限 4.编辑环境变量并source export FLUME_HOME/usr/local/flume export PATH$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$PIG_HOME/bin:$FLUME_HOME/bin 5.配置 6.查看版本 7.启动Hadoo…

axios 各种方式的请求 示例

GET请求 示例一&#xff1a; 服务端代码 GetMapping("/f11") public String f11(Integer pageNum, Integer pageSize) {return pageNum " : " pageSize; }前端代码 <template><div class"home"><button click"getFun1…

【算法C++实现】5、二叉树

二叉树节点结构体 class Node { public:int val;Node* left;Node* right;Node(int a) : val(a), left(nullptr), right(nullptr) {}Node(int a, Node* l, Node* r): val(a), left(l), right(r) {}}1、递归遍历 递归遍历二叉树&#xff0c;每个节点的遍历顺序叫递归序&#xf…

python绘制谷歌地图

谷歌地图 更多好看的图片见pyecharts官网 import pyecharts.options as opts from pyecharts.charts import MapGlobe from pyecharts.faker import POPULATIONdata [x for _, x in POPULATION[1:]] low, high min(data), max(data)c (MapGlobe().add_schema().add(mapty…

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(三)(属性填充之循环依赖底层原理解析)

目录 前置知识循环依赖的产生Spring里面的3个Map 课程内容一、只有一级缓存的推理演进1.1 直接将实例化后生成的对象放入到单例池里面1.1 引入一个中间Map存实例化后的早期对象&#xff08;疑似二级缓存&#xff09;1.3 解决1.2需要被代理的问题&#xff08;疑似二级缓存&#…