首页 > 其他分享 >期末复习——网络层

期末复习——网络层

时间:2023-02-14 21:33:56浏览次数:42  
标签:复习 IP 网络层 地址 算法 期末 路由 路由器

网络层

最后一遍复习的时候再回头整理细节

关注如何将数据包一路发送到接收方,主机之间的逻辑通信。中间可能要经过许多跳hop中间路由器。
网络层是处理端到端通信的最底层
so网络层需要知道网络拓扑结构(所有路由器和链路的集合),然后

  1. 选择适合的路径;
  2. 选择合适的路由器!(避免某些通信线路和路由器负载过重,而有的空闲-->更加雨露均沾嘛);;
    and收发双方在不同网络时,也会出现新的问题,网络层也要解决。

可以抽象将网络层分成①数据层面(转发层面):转发 ②控制层面:路由选择
数据链路层只是把帧的从线路一边传到另外一边,只是小范围的事情。不像网络层稍显宏大。

功能

异构网络互联

把不同的网络相互连接起来,构成更大的网络系统。
网络互联:把多个计算机按一定的方法、通过中继系统连接-->构成更大的网络系统。

  • 中继系统:物理层or数据链路层扩大网络;
    • 物理层:转发器、集线器
    • 数据链路层:网桥or交换机——直接交换、存储转发交换
    • 网络层:路由器 router (一台专用计算机)
    • 网络层以上:网关

网络层,仍处于同一个网络,用路由器进行网络互联and路由选择。
这种成为实际互联网络。虚拟互联网络(IP网络、互联网):通过IP协议使得这些网络在网络层看上去像是一个统一的网络。

路由与转发 main主要功能

路由器负责:

  1. 路由选择 :根据路由选择协议构造路由表,持续更新维护路由表。
  2. 分组转发:处理路由器数据流——转发表查询、转发、相关队列管理、任务调度。

注意:路由器互联多个网络,so有多个IP地址、多个MAC地址

SDN 软件定义网络

拥塞控制

  • 拥塞:通信子网中(网络层、数据链路层、网络层) 出现过量分组-->网络性能下降。可以通过观察吞吐量--网络负载的关系。轻度拥塞、拥塞、死锁。
  • 拥塞控制 or 流量控制:
    • 流量控制:发送端、接收端之间点对点通信量的控制。抑制发送方发送速率,使接收方来得及接收。
    • 拥塞控制:保证通信子网能够传送待传送的数据全局性,涉及网络中所有主机、路由器等等。
  • 拥塞控制两种方法
    • 开环控制:事先,静态。系统启动后不再修改
    • 闭环控制:反馈环路,动态。事先,而是及时检测调整解决。

路由算法

两个最短路径算法
bellman-Ford算法:距离矢量路由算法的别称。单源最短路径算法
Dijkstra算法:用于链路状态层次路由算法中

静态路由 自适应算法

网络管理员手工配置
小型网络

动态路由 非自适应算法

根据一定算法优化出来,不断更新适应。

  • 距离-向量路由算法

    距离矢量路由算法 distance vector routing
    RIP算法、最初ARPANET使用的路由算法。
    迭代计算

    每个路由器维护一张路由选择表(一个矢量),定期传送给所有与自己直接相邻的结点。
    路由选择表:包括①每条路径的目的地(另一结点) ② 路径距离(代价 e.g.RIP算法-->跳数hop)

    所有结点都要参与距离向量交换,保证路由有效且一致。有新路由or有更加路由时更新路由选择表。
    面临无穷计算问题

  • 链路状态路由算法

    典型链路算法:OSPF算法 开放最短路径优先
    每个结点都具有完整的网络拓扑信息1对all
    一个结点①主动测试所有邻接结点状态 在链路状态发生变化时②将链路状态传播给其他所有结点。(这里用到了泛洪算法)
    链路状态报文到达时,路由节点更新,然后利用Dijkstra最短路径算法SPF shortest path first 重新计算路由。(从单一源出发到所有结点的最短路径)

    泛洪算法:路由器通过所有端口 向 所有相邻路由器发送信息,每个相邻的路由器又发送给自己所有相邻路由器(不包括刚刚发给它的那一个)。

    运用广泛,用于大型网络and Internet,代替了距离-向量路由算法

  • 层次路由

    因特网将互联网划分成 许多较小的自制系统(一个自制系统包含多个局域网LAN),每个自制系统有权自主决定系统内使用的路由协议。
    so两个自制系统之间的通信需要屏蔽掉协议之间的差异,选择协议就分成了
    IGP 内部网关协议——RIP、OSPF
    EGP 外部网关协议——BGP边界网关协议
    最优层数:对于一个包含N个路由器的网络,最优的层数是ln(N),每个路由器所需的路由器表项 = e ln(N) 个

    • IGP 内部网关协议

    • EGP 外部网关协议

      域间路由选择

广播路由??

拥塞控制算法

拥塞产生原因
多个输入对应一个输出
慢处理器,难以完成必要的维护
低带宽线路
处理拥塞
增加资源
流量感知路由:绕开拥塞路段,but可能出现摇摆问题
准入控制:拒绝新的连接的建立,除非能够带来流量而不变得拥塞。
流量调节:拥塞迫在眉睫时,返一个抑制包给源端从而抑制流量。抑制包对经过的每一个路由器都产生作用。
负载脱落:以上都无法解决时,路由器还未处理数据包而数据包已经被淹没,直接将数据包丢弃。
策略
文件传输:wine策略,优先丢弃新数据包。
多媒体服务:milk策略,优先丢弃旧数据包。

服务质量 QoS

流:从一个源到一个目标的数据包流
流的需求特征:可靠性、延迟、抖动、带宽——决定一个流要求的QoS服务质量。
流量整型
漏桶算法
令牌桶算法
md记不住的我不搞了
包调度:数据包调度算法,在同一个流的数据包之间and竞争流之间 分配路由器资源的算法。
不同数据流可预约的3种潜在资源:1. 带宽 2. 缓冲区 3. CPU周期
...不管了不管了什么准入控制

协议

IPv4

IP Internet Protocol,网络之间互联的协议。IP是无连接服务
IPv4 header头部字段
版本号4b:IPv4.version=4、IPv6.version=6
头部长度4b:单位4B-->实际长度 *= 4B(32b);
常用20B的IPv4 header;取值范围( 5 - 15) * 4B
总长度 16b:header+data总长度 <= MTU!!最大(216 - 1)B = 65535B
标识16b:计数器,以便分片后恢复成原数据报。(大于MTU就要分片
标志3b:X``DF``MF Don‘t Fragment; More Fragment;
DF = 0:允许分片
MF = 1后面还有分片;
MF = 0最后一个分片
片偏移13b:以8B为偏移单位(so除了最后一片,前几个片都是8B倍数
TTL生存时间:确保分组不会一直在网络中循环,表示可经过路由器数量最大值
路由器分组转发前TTL--;TTL为0时丢弃分组。
header checksum 16b:只校验IP header
源IP地址4B;目的IP地址4B
总长度在第2-3B,跳过前8B是TTL
网络层转发分组过程<目的网络,下一跳地址>
得到下一跳路由器的IP地址后,是将这个IP地址转换成MAC地址(通过ARP),把MAC地址放在MAC帧首部,根据MAC地址找到下一跳路由器。**不同网络中MAC帧源地址and目的地址会变,网桥转发帧不改变源地址。)
解决IP地址耗尽:1. 采用CIDP无类别编址 2. NAT节省全球IP地址 3. 采用IPv6更大的地址空间

  • IP数据报分片

    分片:在目的地网络层重新组装。
    e.g. IP数据报=4000B,IP header = 20B、MTU=1500B,分片?有效载荷偏移值单位8B
    so先判断1500B-20B = 1480B --> 1480B%8B == 0 √OK!!
    data = 4000B-20B = 3980B
    片0:20B+1480B = 1500B、偏移=0、剩2500B data
    片1:20B+1480B = 1500B、偏移=1480/8=185、剩1020B data
    片2:20B+1020B = 1040B、偏移=2*185=370、data 传输完成

    MTU 最大传送单元:MTU严格限制IP数据报长度。要求IP数据报总长度不能超过下面数据链路层的MTU。e.g.以太网帧最大传送单元1500B;不同协议MTU不同。

  • IPv4地址

    32bits xxx.xxx.xxx.xxx ,<网络号><主机号>
    网络号在因特网范围内唯一;
    主机号在指明的网络范围内唯一;
    so一个IP地址在因特网范围内唯一。
    198.16.16.0/21表示网络部分长度为21的一段地址,前21位为网络号。若剩余host部分全1则表示broadcast广播地址。
    主机号全0:网络本身
    主机号全1:本网络的广播地址
    五类
    A类:0网络号.主.机.号
    B类:10网络.号.主机.号
    C类:110网.络.号.主机号
    D类:多播地址1110多播地址
    E类:1111xxxx...保留

  • NAT 网络地址转换

    只发生在NAT路由器中,普通路由器转发IP数据报不改变IP地址。
    NAT路由器看到了端口-->工作在传输层
    节省IPv4地址的消耗。例一个全球IP可供宿舍4人一起用。
    专用网络地址-->公用地址,对外隐藏内部管理的IP地址。
    私有IP(可重用地址)只用于LAN,网关利用NAT将私有IP-->公有IP。

    NAT路由器需要查看and转换传输层端口号。普通路由器只工作在网络层。

  • CIDR 无类别域间路由选择

    缓解IPv4地址紧张问题,消除A/B/C类地址的规定,进行子网划分。
    前缀长度更加灵活。
    e.g. 198.16.16.0/21表示网络部分长度为21的一段地址,前21位为网络号。若剩余host部分全1则表示broadcast广播地址。

    使用CIDR时,路由表每一项(网络前缀+下一跳)so查表不止一个结果,就进行最长前缀匹配,匹配**具有最长前缀的路由 **
    最长前缀匹配(最佳匹配):e.g. 11100000 0xxx through 11100000 1xxx -->Prefix Matching = 11100000/8

IPv6

更长了 16B的地址。
解决IPv4地址短缺/安全问题/允许协议扩充/ 等等等等不想看了

在IPv4里是 2级,IPv6中 是3级

ARP 地址解析协议

完成IP地址-->MAC地址的映射。在网络层工作。
因为一台主机发送数据包时最终都必须用到MAC硬件地址,来确定目的接口。每台主机都有ARP高速缓存,存放本地LAN各主机和路由器的IP地址到MAC地址的映射表:ARP表
工作原理:A主机想发IP数据报给B主机,查看A的ARP高速缓存中有无B主机IP地址
有,查出对应MAC硬件地址,写入MAC帧,发送;
无,使用目的MAC地址FF-FF-FF-FF-FF-FF封装,广播ARP请求,B收到ARP请求分组后。单播给A主机ARP响应分组,其中包含B主机的IP与MAC地址映射关系。A收到后写入ARP高速缓存中

DHCP 动态主机配置协议

采用C/S 客户端/服务器模型的 基于UDP 的应用层协议
允许服务器动态分配IP地址and配置信息给客户端。(IP地址、子网掩码、默认网关

该计算机在自己的网络上广播一个DHCP DISCOVER包。
当DHCP服务器收到请求,它就为该主机分配一个空闲的IP地址,并通过DHCP OFFER包返回给主机

ICMP 网际控制报文协议

IP层协议(可以理解成网络层协议
两种类型报文:ICMP差错报告报文ICMP询问报文
ICMP报文作为数据部分+IP头部发出去。
应用:ping测试两台主机连通性
tracert跟踪分组经过的路由
功能:发生意外时,通过ICMP报告差错、错误异常

标签:复习,IP,网络层,地址,算法,期末,路由,路由器
From: https://www.cnblogs.com/sectumsempra/p/17120947.html

相关文章

  • Javase基础复习-day8常用API
    1.API1.1API概述什么是APIAPI(ApplicationProgrammingInterface):应用程序编程接口java中的API指的就是JDK中提供的各种功能的Java类,这些类将底层的实现......
  • 复习
    概念模型评测混淆矩阵预测:1预测:0真实:1TruePositive(TP)FalseNegative(FN)真实:0FalsePoisitive(FP)TrueNegative(TN)准确率:预测正确......
  • rxjava之复习
    1.rxjava之操作符1).转换类操作符(mapflatMapconcatMapflatMapIterableswitchMapscangroupBy...);map及flatMap以及concatMap区别?map和flatMap都可以对RxJava传入......
  • okhttp之复习
    一okhttp 1.简介:官方简介:OkHttp是一个默认高效的HTTP客户端1、HTTP2支持允许对同一主机的所有请求共享一个套接字。2、透明GZIP缩小了下载大小。3、连接池减少了请求......
  • 【C++复习】运算符重载中的特殊运算符
    无法被重载类属关系运算符 .成员指针运算符 .*作用域分辨符 ::三目运算符 ?:只能通过成员函数重载赋值运算符=方括号[]圆括号()指向结构体成员运算符->......
  • 【C++复习】同名函数判断条件(重载,隐藏,覆盖)
    1、重载以下条件要全部满足:函数名相同以下条件满足其1:函数形参数目不同函数形参类型不同注意:不看返回值调用形式要不同//下面两个函数不能重载fun(inta,......
  • ut之复习
    先简单了解一下单元测试,对软件中的最小可测试单元进行测试,一般是函数。接下来说说它的作用,(1)能够验证程序的准确性,为开发提供保障,能放心大胆的修改和重构。(2)能规范我们的设......
  • 【C++复习】运算符优先级(简)
    不同优先级的运算符混在一起,就根据优先级算相同优先级的运算符混在一起,就看它们的结合性(这里不谈)1、运算符有哪些?单目运算符*++自增,有前置和后置--自减,有前置和后置......
  • JavaScript的原型、原型链、异步与单线程复习回顾
     原型和原型链有对象的地方就有原型,每个对象都会在其内部初始化一个属性,就是prototype(原型),原型中存储共享的属性和方法。当我们访问一个对象的属性时,js引擎会先看当......
  • Java基础day6复习-Debug的学习
    1.Debug模式1.1什么是Debug模式是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。1.2Debug模式操作流程如何加断点......