首页 > 其他分享 >网络层

网络层

时间:2024-06-14 22:00:38浏览次数:18  
标签:网络层 算法 分组 链路 路由 路由器

网络层的功能

网络层的运行环境是网络中的 ISP 设备,网络层的主要功能是实现主机之间的通信。网络层的主要功能包括:

  • 分组转发:网络层的主要功能是将分组源主机经过多个网络和多段链路传输到目的主机。在发送端,网络层将传输层的报文段封装成分组,并在每个分组中添加首部信息。在接收端,网络层将分组中的数据交付给接收方的传输层。
  • 路由选择:网络层的另一个重要功能是路由选择。路由选择是指在网络中选择合适的路径,使分组从源主机传输到目的主机。路由选择是网络层的核心功能,它决定了分组的传输路径,直接影响网络的性能和可靠性。

网络层向上层提供了

  • 面向连接的虚电路服务
  • 无连接的数据报服务

路由算法

路由算法特指管理路由器中的路由表并作出路由决策的算法

面对的是无连接的数据报服务,因为在这样的服务当中,每一个路由器与主机之间的通信都是独立的,没有连接的概念,路由器只会根据邻近的路由器的信息来决定下一跳的路由器进行点对点(PPP)的链路发送。

而整体的发送方向由网络层算法决定,而不是链路层的协议。

因此,确定路由表的算法是网络层的核心算法。

img

静态路由算法

静态路由算法是指路由表是由网络管理员手动配置的,不会根据网络的拓扑结构和流量情况进行调整。

但是当网络的拓扑结构发生变化时,网络的流量情况发生变化甚至数据不断发送导致网络中每一条链路状况发生改变时,静态路由算法就会出现问题。

泛洪算法

泛洪算法是一种简单的路由算法,它的基本思想是:当一个路由器收到一个分组时,它将这个分组发送到所有的邻居路由器,除了发送方之外。

而每一个路由器都会将这个分组发送到所有的邻居路由器,直到这个分组到达目的主机。

但是泛洪算法会导致分组在网络中不断传播,直到网络中的所有路由器都收到这个分组,这样会导致网络中的分组数量呈指数级增长,最终导致网络拥塞。

同时,泛洪算法也会导致分组在网络中不断循环,导致多次接收,因此需要记录已经接收过的分组,避免重复接收。

但是也有一些优点

  • 确保数据包能被送达目的地
  • 非常健壮,就算出现故障,只要能到达目的地,就能找到路径

动态路由算法

动态路由算法是指路由表是由路由器之间自动交换信息而得到的,根据网络的拓扑结构和流量情况进行调整。

但是算法的复杂度较高,需要大量的计算和存储资源,而且需要大量的带宽来传递路由信息。

链路状态路由算法和距离向量路由算法是两种常见的动态路由算法。分别使用 Dijkstra 算法和 Bellman-Ford 算法。

距离向量路由算法

主要思想是分布式 Bellman-Ford 算法,每个节点维护一个距离向量,周期性地向邻居节点发送距离向量,根据邻居节点的距离向量更新自己的距离向量。(想知道详细思想请看 Bellman-ford 算法)

import copy
n, m, k = map(int, input().split())
edge = []
for i in range(m):
    edge.append([int(x) for x in input().split(" ")])

dist = [float('inf')] * 555
dist[1] = 0

for i in range(k):
    # 拷贝dist 防止串联
    backup = copy.deepcopy(dist)
    for j in range(len(edge)):
        a,b,w = edge[j]
        if dist[b] > backup[a] + w:
            dist[b] = backup[a] + w

if dist[n] == float('inf'):
    print("impossible")
else:
    print(dist[n])

整个网络最佳路径的寻找过程叫做收敛

其实本身 bellman-ford 算法没有问题,但是在网络中,如果突然有一个路由器宕机(距离变为\(+\infin\)),那么整个网络的路由表的估计最优距离到达不了断开的稳定状态

就是对于每一个路由器,都是一个计算单源最短路径的过程

链路状态路由算法

使用了分布式的 Dijkstra 算法,每个节点维护一个链路状态数据库

  • 使用泛洪算法向所有路由器发送信息
  • 发送与本路由器相邻的所有路由器的链路状态信息(包括路由器编号、链路的距离度量)
  • 只有当链路状态发生变化时,才会发送链路状态信息

拥塞控制

拥塞控制通常出现在传输层、网络层中

从吞吐量的角度来看,输入的带宽大于输出的带宽,就会出现拥塞,这是理想的情况,但是实际上由于重传,小于带宽大小也会出现拥塞

标签:网络层,算法,分组,链路,路由,路由器
From: https://www.cnblogs.com/Blackteaxx/p/18248727

相关文章

  • 计网笔记-第四章:网络层
    第四章重点五类IP地址划分的表格(Ctrl+F查找wiki)例题1:子网划分(查找1111)例题2:子网划分与CIDR(查找2222)链路状态路由(全局路由):Dijkstra(查找Dijkstra)距离向量路由(分布式路由算法):DV(查找4.5.2)第四章复习大纲路由器的结构IP协议(重点)IP报文格式IPv4寻址ICMPDHCP......
  • 计算机网络之网络层知识总结
    网络层功能概述主要任务主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。分组和数据报的关系:把数据报进行切割之后,就是分组。主要功能:路由选择与分组转发路由器主要完成两个功能:是路由选择(确定哪一条路径),二是分组......
  • 计算机网络 —— 网络层(CIDR)
    计算机网络——网络层(CIDR)CIDR的提出背景什么是CIDR基本概念划分示例应用优势举个例子路由聚合常用数字我们今天来看IPv4地址划分的另一种方法——CIDR。CIDR的提出背景CIDR(无类域间路由,ClasslessInter-DomainRouting)的提出背景主要源自于两个关键问题:IP地......
  • 24. 计算机网络 - 网络层
    概述IP数据报格式IP地址编址方式1.分类2.子网划分3.无分类地址解析协议ARP网际控制报文协议ICMP1.Ping2.Traceroute虚拟专用网VPN网络地址转换NAT路由器的结构路由器分组转发流程路由选择协议1.内部网关协议RIP2.内部网关协议OSPF3.外部网关协议BGP......
  • 《计算机网络微课堂》第四章 网络层
    4-1网络层概述从本节课开始,我们进入第4章网络层的学习。本节课我们对网络层进行概述。网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输,如图所示。这些异构型网络,如果只是需要各自内部通信,他们只要实现各自的物理层和数据链入层即可,但是如果需要将这......
  • 网络层协议
    目录一、网络层的功能二、IP数据包格式三、ICMP协议         1.功能        2.类型        3.ICMP协议的应用        4.ping不通的几种情况        5.ping命令的用法        6.tracert命令:四、ARP协议        1.arp......
  • 《计算机网络微课堂》第四章 网络层
    4-1网络层概述从本节课开始,我们进入第4章网络层的学习。本节课我们对网络层进行概述。网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输,如图所示。这些异构型网络,如果只是需要各自内部通信,他们只要实现各自的物理层和数据链入层即可,但是如果需要将这些异构......
  • 《计算机网络微课堂》4-2 网络层提供的两种服务
    本节课我们介绍网络层提供的两种服务,一种是面向连接的虚电路服务,另一种是无连接的数据报服务。‍我们首先来看面向连接的蓄电路服务,如图所示,这是一个小型的互联网,这是主机中的五层原理体系结构。虚电路服务的核心思想是:可靠通信,应由网络自身来保证当两台计算机进行通信时,应......
  • 【Linux 网络】网络基础(三)(网络层协议:IP 协议)
    在复杂的网络环境中确定一个合适的路径。一、TCP与IP的关系IP层的核心作用是定位主机,具有将数据从主机A发送到主机B的能力,但是能力并不能保证一定能够做到,所以这时就需要TCP起作用了,TCP可以通过超时重传、拥塞控制等策略来保证数据能够发送到B主机。所以,TC......
  • 网络层总结比较4
    1.网络层的IP协议包含哪些内容(1)IP基础知识:IP作用:实现源主机与目标主机之间的通信,是点对点的通信IP和MAC的关系:IP属于网络层、MAC属于数据链路层,IP可以实现复杂网络里两个主机的通信,MAC只用于具有直接链路连接的两个设备之间的通信(2)IP地址相关知识:IP地址定义:表示每个主机或者......