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.mzph.cn/news/50241.shtml

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

相关文章

基于ssm校园快递代取系统源码和论文

基于ssm校园快递代取系统源码和论文056 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,…

matlab实现输出的几种方式(disp函数、fprintf函数、print函数)

matlab实现输出的几种方式(disp函数、fprintf函数、print函数) 输出为文本、文件、打印 1、disp函数 显示变量的值,如果变量包含空数组,则会返回 disp,但不显示任何内容。 矩阵 A [1 0]; disp(A)结果 字符串 S …

「UG/NX」Block UI 选择特征SelectFeature

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#

银河麒麟arm版服务器安装docker

安装 在线安装:输入下面命令,等待安装完成即可 #关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.serviceyum install -y docker# 修改docker拉取源为国内 rm -rf /etc/docker mkdir -p /etc/docker touch /etc/docker/da…

Jetpack Compose UI架构

Jetpack Compose UI架构 引言 Jetpack Compose是我职业生涯中最激动人心的事。它改变了我工作和问题思考的方式,引入了易用且灵活的工具,几乎可轻松实现各种功能。 早期在生产项目中尝试了Jetpack Compose后,我迅速着迷。尽管我已有使用Co…

tomcat 启动 java war 包

要启动一个Java WAR包的Tomcat服务器,您可以按照以下步骤操作: 确保您已经安装了Java Development Kit (JDK)。您可以在Oracle官方网站上下载并安装适合您操作系统的JDK版本。 下载和安装Tomcat服务器。您可以访问Apache Tomcat官方网站(htt…

小项目01:尿试纸条没有放到位问题检测

目录 一、完整代码1.1 返回值含义1.2 main1.3 bvdetector.h1.4 bvdetector.cpp 二、图例1. 原图scrImg2.灰度图img_gray3.二值图binImg4.反二值图invImg 一、完整代码 1.1 返回值含义 0:表示正常(有角度);1:表示没有图片&#x…

C语言实现:从RSA PEM文件中提取私钥n/e/d/p/q/dp/dq/qp因子

我们知道使用openssl命令行openssl rsa -in test_priv.pem -text 即可实现从私钥PEM文件中提取私钥因子&#xff1a;n/e/d/p/q/dp/dq/qp. 那么如何用C语言实现呢&#xff1f;如何在代码中实现呢&#xff1f; #include <stdio.h> #include <stdlib.h> #include &l…

el-button实现按钮,鼠标移入显示,移出隐藏

2023.8.18今天我学习了 如何实现鼠标移入显示按钮&#xff0c;鼠标移出隐藏按钮。 效果如图&#xff1a; 鼠标移入时&#xff1a; 鼠标移出时&#xff1a; mouseover //鼠标移入事件 mouseleave //鼠标移出事件 原本我是想直接在el-button写入这两个方法&#xff0c;但是elem…

sqlsugar 使用TNS连接oracle

在使用SqlSugar连接Oracle数据库时&#xff0c;可以通过TNS来实现连接。以下是一个示例代码&#xff0c;展示了如何使用TNS连接Oracle数据库&#xff1a; 首先&#xff0c;确保您已经安装了Oracle客户端&#xff0c;并正确配置了TNS的相关信息。 // 引入SqlSugar命名空间 usi…

Nuxt3环境变量配置

Nuxt3 正式发布还不到半年&#xff0c;在投入生产环境使用后&#xff0c;遇到了不少问题&#xff0c;很难找到合适的解决方案&#xff0c;其中环境变量配置就是其中一个&#xff0c;之前一直未能解决&#xff0c;最近要上持续集成&#xff0c;无法绕过这个问题&#xff0c;所以…

工厂方法模式介绍

韩敬海 设计模式&#xff08;Java版&#xff09; &#xff08;一&#xff09;定义 定义一个创建对象的接口&#xff0c;让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法涉及的角色有&#xff1a; 1 .抽象工厂角色&#xff1a;工厂方法模式的核心&am…

clion软件ide的安装和环境配置@ubuntu

1.官网&#xff1a; Download CLion 2.安装Clion 直接在官网下载并安装即可&#xff0c;过程很简单 https://www.jetbrains.com/clion/ https://www.jetbrains.com/clion/download/#sectionlinux 3.激活码 4.配置Clion 安装gcc、g、make Ubuntu中用到的编译工具是gcc©…

Redis 列表 | Navicat

在最近的博客 文章 中&#xff0c;我们已经了解了 Redis 的六种数据类型。其中&#xff0c;Redis 列表&#xff08;List&#xff09;包含一组字符串&#xff0c;他们按照被添加的顺序进行排序。本文将就列表数据类型进行展开介绍&#xff0c;并且重点介绍一些主要的命令来管理它…

RPC和HTTP协议

RPC 全称&#xff08;Remote Procedure Call&#xff09;&#xff0c;它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。 它的核心目标是&#xff0c;让开发人员在进行远程方法调用的时候&#xff0c;就像调用本地方法一样&#xff0c;不需要额外为了完成这个交…

HAProxy 高级功能与配置

HAProxy 高级功能与配置 配置和验证的环境看这篇文章:HAProxy 各种调度算法介绍 一.基于 cookie 的会话保持 使用cookie关键字来配置后端服务器基于 cookie 的会话持久连接。 配置格式 cookie <name> [ rewrite | insert | prefix ] [ indirect ] [ nocache ][ post…

探究代理服务器在网络安全与爬虫中的双重作用

在如今高度互联的世界中&#xff0c;代理服务器已经成为网络安全和爬虫开发的关键工具。本文将深入探讨Socks5代理、IP代理、网络安全、爬虫、HTTP等关键词&#xff0c;以揭示代理服务器在这两个领域中的双重作用&#xff0c;以及如何充分利用这些技术来保障安全和获取数据。 …

制作 Mikrotik CHR AWS AMI 镜像

文章目录 制作 Mikrotik RouterOS CHR AWS AMI 镜像前言前期准备配置 Access Key安装配置 AWS CLI创建 S3 bucket上传 Mikrotik CHR 镜像trust-policy配置role-policy 配置创建 AMI导入镜像查看导入进度导入进度查看注册镜像参考:制作 Mikrotik RouterOS CHR AWS AMI 镜像 前言…

MyBatis动态SQL、模糊查询与结果映射

目录 前言 一、MyBatis动态SQL 1.动态SQL是什么 2.动态SQL的作用 3.常用动态SQL元素 1. where if 元素 2. set if 元素 3. choose when otherwise 元素 4. 自定义 trim 元素 <1>. 自定义 trim 元素改写上面的 where if 语句 <2>. 自定义 trim 元素改…

将AI融入CG特效工作流;对谈Dify创始人张路宇;关于Llama 2的一切资源;普林斯顿LLM高阶课程;LLM当前的10大挑战 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 将AI融入CG特效工作流&#xff0c;体验极致的效率提升 BV1pP411r7HY 这是 B站UP主 特效小哥studio 和 拓星研究所 联合投稿的一个AI特…