计算机通信与网络---网络层

网络层概述

地位: 网络核心功能,运输层功能的实现依赖于网络层提供的服务,即运输层实现端到端 的,网络层实现主机到主机的通信

功能 :实现主机到主机的通信

选路:在全局范畴为主机之间的通信进行选路,选路的结果反映为分组交换机上的转发表

转发:分组交换机上的网络层根据转发表以及分组首部信息,将分组通过对应链路进行转发

状态报告:通过控制消息感知网络通不通、主机是否可达、路由是否可用等状态

虚电路和数据报网络

面向连接:虚电路

组成:源到目的路径、VC(Virtual Circuit)号、路径中路由器的转发表

过程:

建立连接:每当建立起一条虚电路,中间可能会有多个路由器,这些路由器都会建立一 个新项;

拆除连接:当数据传输完毕,A/B想要结束连接,会发送一条拆除指令,该指令包含了指令含义、端口和入VC号,删除该表项后转到下一跳直至所有删除完毕

缺点:建立连接、维护、拆除造成开销;当VC中间出现故障可能会导致该条路径瘫痪

面向无连接:数据报

转发策略:根据目的IP地址

综上来看,互联网的应用环境下,数据报网络更加合适,因为互连更加简单 ,且启用新服务的速度快,不需要维护连接

路由器的工作原理

路由器的结构

输入端口:分散式交换 快速查找从哪个端口出。输入端口处理速率大于交换处理速率时,善生排队。HOL阻塞

内联网络

输出端口:缓存管理:当交换机构转交给输出端口的速率超过输出链路速率,调度原则:数据报传输 调度策略:FIFO、WFQ

IP数据报格式

格式(IPV4)

报文长度相关字段 链路帧最多只允许携带1500字节。超出时,进行IP分片和重组

分片相关字段

标识 :同一个IP分组的标识

标志 :3bit,前2bit有意义。最低位为MF,MF=1即表示后面还有分片的数据报,MF=0表示这已是若干数据报片的最后一个。第二位记为DF,当DF=0时才允许分片

片偏移:每个分片在整个报文(分组)中的位置

生存时间:TTL,每经过一台路由器,TTL-1。减为0时,分组被丢弃。反映从源到目的的跳数。

协议:8bit,指出此数据报携带的数据使用何种协议

源&目的地址:32bit

报文长度相关字段:

首部长度:4bit,单位4字节,取值5~15,表示20~60字节。

总长度:16bit,单位字节。实际报文长度 = 总长度 - 首部长度。

以太网链路帧最大1500byte,当ip包大小超过时,需要进行IP分片和重组。

分片相关字段。标识16bit,标志3bit(前两位:MF = 0 : 后面没分片了,1则还有;DF = 0 :允许分片)片偏移:每个分片在报文段中的位置,以8Byte为单位,要求除最后一片外均为8的倍数

eg: 4000Byte ,链路帧最大长度 1500Byte

IP地址

ip地址:32位主机或路由器的[接口]标识符 只与接口有关,与主机和路由器无关。一个接口一个IP,多接口设备多IP!

结构:高位网络号,低位主机号,点分十进制

分类:

A类:0.... ,7位网络号 B类:128.... C类:192. 。。。

互联网中的ip地址:

1.每一个路由器的端口对应一个子网

2.同一个子网下的所有接口 的网络号相同

3.路由器总是有多个IP地址,因为它有多个端口,每个端口对应一个接口

ipv4&IPV6:ipv4消耗地址空间,且首部长度不定,中间节点需要消耗很多资源用于分组处理

ipv6 扩大地址空间,首部长度固定,实现QoS,不支持分割,分割由端节点负责,需要提前确定所有节点中的最小的最大传输单元(MTU),以此进行划分

IPV6:

数据报格式:

子网划分

背景:ABC类网络等大中小型网络,网络号位数少,主机号位数大,数万台机器难以配置和管理。

目的优化网络性能 提高地址利用率 增强安全性 支持多区域部署

做法:从主机号中借用位数,来组成子网号。

如何决定借多少位? -->根据你需要的子网数来决定。比如,需要32个子网,对应2的五次方,需要5位。需要33个,则6位。这样就从一个路由器接口的2级IP的主机号中,划分出去了n位子网。

管理员划分好子网后,主机用户如何知道主机号被子网借了多少位? -->子网掩码。

子网掩码

作用:对外隐藏子网存在,对内指示网络号和子网号的位置

计算方法:网络号和子网号全置1,主机号置0.

现在,我们对数以万计的接口IP划分了子网,并且每个子网都进行了掩码处理,内部的IP地址对外不可见,外部只可以知道子网地址这个"街道"号,还无法知道内部的'门牌"号。 要想不同"门牌"号的接口进行数据交流,我们还需要做些事情。用一个例子说明:

划分子网后分组转发:

当H1向H2发送分组

首先判断目的地址是否和自己处于一个子网 方法:子网掩码和目的网络地址做与运算 ,和自身地址做相同运算后的结果比较。为什么可以这样做?若我们是一个子网,得到的结果肯定和我一样,是自家人。结果不一样说明不是街坊,但也无法判断是哪个街道的。即,同一个子网下,不同IP的设备,IP和子网掩码做与运算得到的结果相同!此时,H1便可以直接交付。

若不处于1个子网 ,和路由表逐项比对,将H1收到的目的地址和路由表中的子网掩码做与运算 ,看和R1路由表的哪一行匹配。结果若和路由表中的目的网络地址相同,则找到该目的地址

子网聚合:找最大前缀匹配,得到的就是单个网络前缀

无类域间路由

CIDR:

编址格式:

IP地址:= {<网络前缀>, <主机号>}

地址格式:a.b.c.d/x x表示地址中网络部分的位数 #

写法:192.168.0.1/24

寻址:

最长前缀匹配 确定数据包转发的最优路径。其目标是在路由表中找到与目的地址最长匹配的前缀条目

NAT:私有网络和公共网络之间的转换技术

设计动机:减少本地网络和外部网络相连所需要的IP地址成本,以及安全性

网络地址转换NAT:

实现: 发送:外出报文的IP ,端口替换为NAT IP地址和端口

接收:根据NAT转换表进入报文的NAT & IP 替换为相应的IP和端口

原理:

Q:内网如何访问?

A:端口映射、通用即插即用UPnP、中继

ICMP协议:是TCP/IP协议族 的核心协议之一,主要用于在IP主机、路由器之间传递控制消息 ,如网络通断、主机是否可达、路由是否可用等。它通常被认为是IP层的组成部分,但严格来说属于网络层协议封装在IP数据报中传输

选路算法:

目的:给定一组路由器以及连接路由器的链路,从中找到一条从源路由器到目标路由器"好的"路径

分类:全局&分散、静态&动态、负载敏感&迟钝

代表:

链路状态选路算法(OSPF协议)

算法流程:

代码如下:

运行结果:

算法复杂度:

潜在问题:可能产生震荡,因为链路的费用等于链路上的承载的负载,一次运行的结果会影响负载

解决方案:

距离向量选路算法(RIP协议)

概述:距离向量选路算法(Distance Vector Routing Protocol, DVR)是一种分布式路由算法,通过相邻节点间交换路由信息动态更新路径。其核心思想是每个节点维护到其他节点的最短距离及下一跳信息,通过迭代更新优化路由表。

步骤:

初始化

每个节点维护一个距离向量表,记录到所有已知目标节点的最短距离及下一跳节点。初始时,节点仅知道直接相连邻居的链路成本,其他目标距离设为无穷大(∞)。

周期性更新

节点定期向邻居发送自身的距离向量表。接收方节点根据以下规则更新路由表:

  • 对于目标节点 j ,当前节点 i 计算通过邻居 k 的新距离:

    D_i(j) = \\min \[D_i(j), c(i,k) + D_k(j)\]

    其中 ( c(i,k) ) 为节点 i 到邻居 k 的直接链路成本,( D_k(j) ) 为邻居 k 报告的距离。

收敛与稳定性

当所有节点的距离向量表不再变化时,算法收敛。为应对网络变化(如链路故障),节点会重新计算并广播更新,但可能因环路问题导致收敛延迟

特点:"好消息"(找到更短路径)传的快,"坏消息" 传的慢

BGP4

一、BGP是什么?

BGP 是互联网核心的路由协议 ,用于不同自治系统(AS,Autonomous System)之间的路由选择和交换,是一种路径向量协议

通俗点说:

  • 互联网由成千上万个网络(ISP、企业网络、学校等)组成;

  • 每个网络称为一个 自治系统 AS

  • BGP 负责在这些 AS 之间通告、选择、维护最佳网络路径

如果没有 BGP,全球互联网无法互连。

二、BGP的特点

特点 说明
路径向量协议 每一条路由要带上经过的 AS 列表
面向连接(TCP port 179) BGP 会建立 TCP 连接来传递路由
策略优先 路由选择不是最短路径,而是根据策略(Policy)
稳定性强 有路由抖动抑制机制(Route Flap Dampening)

三、BGP与OSPF/ISIS区别

协议 范围 类型 路由依据 场景
OSPF / IS-IS AS 内部 链路状态协议 最短路径(开销) 企业/内部网络
BGP AS 之间 路径向量协议 策略、商业关系 互联网路由、运营商网络

总结:内部用 OSPF,外部用 BGP。

BGP 发言人 = 运行 BGP 并负责代表自己的自治系统与外部交换路由信息的路由器

子网划分

子网聚合

把多个前缀合并成1个前缀,如何寻找? 将子网IP划成32位,寻找最大前缀匹配

目的:减少路由表规模,提高路由效率。

BGP路由通告:BGP 发言人(运行 BGP 的路由器)通过 BGP UPDATE 报文向邻居传播路由信息的过程

BGP 路由通告方向(重点)

类型 场景 特点
eBGP 不同 AS 之间 默认 会传播学到的路由
iBGP 同一 AS 内 不会再传播从 iBGP 学到的路由(iBGP Split-Horizon Rule)

iBGP 学到的路由不能再传给另一个 iBGP。

相关推荐
音视频牛哥1 小时前
GB/T 28181-2022深度技术解读:编码、传输、安全的全栈升级
网络·smartgbd·gb28181-2022·gb/t28181-2022·对接gb28181-2022·gb28181-2022升级·安卓gb28181对接
多多*1 小时前
Threadlocal深度解析 为什么key是弱引用 value是强引用
java·开发语言·网络·jvm·网络协议·tcp/ip·mybatis
w***95491 小时前
linux 网卡配置
linux·网络·php
盛满暮色 风止何安2 小时前
WAF的安全策略
linux·运维·服务器·网络·网络协议·安全·网络安全
极客BIM工作室2 小时前
ZFNet反卷积网络(Deconvnet):让CNN“黑盒”变透明的核心技术
网络·人工智能·cnn
m***66732 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
@YDWLCloud2 小时前
做独立站,用阿里云国际版还是 Cloudflare?答案出乎意料
服务器·网络·阿里云·云计算
执笔论英雄3 小时前
【RL】async_engine 远离
java·开发语言·网络
jinxinyuuuus3 小时前
TikTok Watermark Remover:用户行为模拟、动态Token认证与视频流的去噪
网络·人工智能·计算机视觉·架构