计算机网络复习4

网络层——点到点

文章目录

      • 网络层——点到点
        • 功能
        • 路由算法
        • IPV4
        • NAT 网络地址转换
        • 子网划分与子网掩码、CIDR
        • 地址解析协议ARP:根据IP地址找到MAC地址
        • 动态主机配置协议DHCP
        • 网际控制报文协议ICMP
        • IPV6
        • 内部网关协议(IGP)
        • 外部网关协议(EGP)

功能
  • 异构虚拟网络
  • 路由与转发
  • 拥塞控制
路由算法
  1. 静态路由算法(又称非自适应路由算法)
    1. 指网络管理员手工配置的路由信息,当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。
    2. 不能及时适应网络状态的变化,对于简单小型网络,可以采用静态路由。
  2. 动态路由算法(又称自适应路由算法)
    1. 指路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的。
    2. 这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果。
  3. 动态路由主要算法
    1. 距离-向量路由算法
      1. 所有结点都定期地将它们的整个路由选择表传送给所有与之真接相连的结点
      2. 这种路由选择表包含【每条路径的目的地(另一结点),路径的代价(也称距离)】
      3. 在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
        1. 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由【增加】
        2. 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离【更新最优】
    2. 链路状态路由算法
      1. 要求每个参与该算法的结点都具有完全的网络拓扑信息,它们执行下述两项任务:
        1. 主动测试所有邻接结点的状态。两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络
        2. 定期地将链路状态传播给所有其他结点(或称路由结点)
      2. 算法特征
        1. 向本自治系统中所有路由器发送信息,路由器通过所有端口向所有相邻的路由器发送信息。而每个相邻路由器又将此信息发往其所有相邻路由器(但不再发送给刚刚发来信息的那个路由器
        2. 发送的信息是与路由器相邻的所有路由器链路状态,但这只是路由器所知道的部分信息
        3. 所谓"链路状态",是指说明本路由器与哪些路由器相邻及该链路的**“度量”**
    3. 层次路由
      1. 因特网将整个互联网划分为许多较小的自治系统(注意一个自治系统中包含很多局域网),每个自治系统有权自主地决定本系统内应采用何种路由选择协议。【可以使用不同的路由选择路由】如果两个自治系统需要通信,那么就需要一种协议屏蔽两个自治系统之间的差异
      2. 因特网把路由选择协议划分为两大类
        1. 一个自治系统内部所使用的路由选择协议称为内部网关协议(IGP) 协议, 也称域内路由选择,具体的协议有RIP和OSPF
        2. 自治系统之间所使用的路由选择协议称为外部网关协议(EGP), 也称路由选择,用在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径,具体的协议有BGP
IPV4
  1. 格式

image.png

  1. 总长度:总长度,占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535(2^16-1)B。以太网帧的最大传送单元(MTU) 为1500B,因此当一个IP数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的MTU值
  2. 标识:标识,每产生一个数据报就加1,当一个数据报的长度超过网络的MTU时,必须分片,此时每个数
    据报片都复制一次标识号,以便能正确重装成原来的数据报
  3. 标志:占3位。标志字段的最低位为MF,MF=1表示后面还有分片;中间的一位是DF,只有当DF=0时才允许分片
  4. 片偏移:它指较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8B的整数倍。受到前面的有效数据大小的影响(除了最后一片,其他的所有片中的有效数据载荷都是8的倍数)

注:数据链路层数据报能承载的最大数据量称为最大传送单元(MTU),因为IP数据报被封装在数据链路层数据报中,因此数据链路层的MTU严格地限制着ip数据报的长度,而且在IP数据报的源与目的地路径上的各段链路可能使用不同的数据链路层协议,有不同的MTUimage.png

  1. IP数据报分片
    1. 网络层转发分组流程
      1. 从数据报的首部提取目的主机IP地址D,得出目的网络地址(MAC地址)N
      2. 网络N与此路由器****直接相连,则把数据报直接交付给目的主机D,这称为路由器的直接交付;否则是间接交付(借助路由器),执行步骤3
      3. 若路由表中有目的地址为D的特定主机路由(对特定的目的主机指明一个特定的路由,通常是为了控制或测试网络,或出于安全考虑才采用的),则把数据报传送给路由表中所指明的下一跳路由器;否则,执行步骤4
      4. 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器:否则,执行步骤5
      5. 路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器。否则,执行步骤6
      6. 报告转发分组出错
    2. IP 的分类image.png
      1. 主机号全为0表示该网络本身
      2. 主机号全为1表示本网络的广播地址,又称直接广播地址
      3. 127.0.0.0保留为环回自检(loopbacktest)地址,此地址表示任意主机本身,目的地址为环回地址的IP数据报永远不会出现在任何网络上
      4. 32位全为0,即0.0.0.0表示网络上的本主机;
      5. 32位全为1,即255.255.255.255,表示整个TCP/IP网络的广播地址,又称受限广播地址。实际使用时,由于路由器对广播域的隔离,255.55255.255等效为本网络的广播地址
NAT 网络地址转换
  1. 网络地址转换(NAT)是指通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址。私有IP地址网段如下:
    a类:1个a类网段,即10.0.0.0-~10.255.255.255.
    b类:16个b类网段,即172.16.0.0~172.31.255.255.
    c类:256个c类网段,即192.168,0.0~192.168.255.255.
  2. 用NAT时需要在专用网连接到因特网的路由器上安装NAT软件,NAT路由器至少有一个有效的外部全球地址
  3. 使用本地地址的主机和外界通信时,NAT路由器使用NAT转换表将本地地址转换成全球地址,或将全球地址转换成本地地址
  4. NAT转换表中存放着 {本地IP地址:端口} 到 {全球IP地址:端口} 的映射,通过 {IP地址:端口} 这样的映射方式,可让多个私有IP地址映射到同一个全球IP地址
子网划分与子网掩码、CIDR
  1. 子网划分基本思路

    1. 子网划分纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络
    2. 从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特
    3. 三级IP地址的结构如下:IP地址={<网络号>,<子网号>,<主机号>}
    4. 凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的的网络号,先找到连接到本单位网络上的路由器。然后该路由器在收到IP数据报后,按目的网络号和子网号找到目的子网。最后把IP数据报直接交付给目的主机
  2. 子网掩码

    1. 子网掩码是一个与IP地址相对应的,长32bi的二进制串,它由一串1和跟随的一串0组成,其中,1对应于IP地址中的网络号及子网号,而0对应于主机号
    2. 计算机只需将IP地址和其对应的子网掩码逐位"与"(逻辑and运算),就可得出相应子网的网络地址
  3. 无分类域间路由选择:CIDR**【可以理解为以一种更便捷的网络地址记录方式,不需要子网掩码,用“/+数字”,数字为多少就表示前多少位是网络地址】**

    1. 消除了传统A,B,C类地址及划分子网的概念,因而可以更有效地分配IPV4的地址空间
    2. CIDR使用"网络前缀"的概念代替子网络的概念。因此,IP地址的无分类两级编址为IP={<网络前缀>,<主机号>}
    3. 使用CIDR时,路由表中的每个项目由"网络前缀"和下一跳地址"组成。在查找路由表时可能会得到不止一个匹配结果。此时,应当从匹配结果中选择具有最长网络前缀的路由因为网络前缀越长,其地址块就越小,因而路由就越具体
地址解析协议ARP:根据IP地址找到MAC地址
  1. IP 工作在网络层,其工作原理如下:主机A欲向本局域网上的某台主机B发送数据报时,先在其ARP高速缓存中查看有无主机B的IP地址
  2. 如有,就可查出其对应的硬件地址(MAC地址),再将此硬件地址写入MAC帧,然后通过局域网将该MAC帧发往此硬件地址
  3. 如果没有,就通过使用目的MAC地址为FF-FF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,使同一个局域网里的所有主机收到ARP请求
  4. 主机B收到该ARP请求之后,向主机A发出响应ARP分组,分组中包含主机B的IP与MAC地址的映射关系,主机A在收到后将此映射写入ARP缓存,然后按查询到的硬件地址发送MAC帧
动态主机配置协议DHCP
  1. 用于给主机动态地分配IP地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与
  2. DHCP是应用层协议,它是基于UDP
  3. 协议工作流程
    1. DHCP**客户机广播"DHCP发现"**消息,试图找到网络中的DHCP服务器,以便从DHCP服务器获得一个IP地址
    2. DHCP服务器收到"DHCP发现"消息后,向网络中**广播"DHCP提供"**消息,其中包括提供DHCP客户机的IP地址和相关配置信息
    3. DHCP客户机收到"DHCP提供"消息,如果接收DHCP服务器所提供的相关参数,那么通过广播**“DHCP请求”**消息向DHCP服务器请求提供IP地址
    4. DHCP服务器广播**“DHCP确认”**消息,将IP地址分配给DHCP客户机
网际控制报文协议ICMP
  1. ICMP报文的种类有两种,即ICMP差错报告报文ICMP询问报文
  2. ICMP差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况
  3. 差错和异常情况
    1. 终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文
    2. 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文
    3. 时间超过。当路由器收到生存时间为零的数据报时,除丢弃该数据报外还要向源点发送时间超过报文
  4. 不发送ICMP差错报告报文的情况:
    1. 对ICMP差错报告报文不再发送ICMP差错报告报文(即:当ICMP报文自身发送出错时,不再发送ICMP差错报告报文
    2. 第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文(即:第一个数据报片已经发送了ICMP差错报告报文,后续的报片就不再发送了
    3. 具有组播地址的数据报都不发送ICMP差错报告报文
IPV6
  1. 特点
    1. 更大地址空间(IPV6将地址从IPV4的32位增大到了128位)
    2. 即插即用(自动配置)
    3. 只有在包的源结点才能分片,是端到端的,传输路径中的路由器不能分片
    4. 首部长度是8B的整数倍,V4是4B的整数倍
    5. 从根本上解决了IP地址的耗尽问题
  2. 路由协议(前面提到过,内部网关协议(IGP)和外部网关协议(EGP)
内部网关协议(IGP)
  1. 路由信息协议RIP ——应用层协议,传输层使用UDP
    1. RIP规定:
      1. 网络中的每个路由器都要维护从它自身到其他每个目的网络距离记录
      2. 距离也称跳数(hop count),规定从一个路由器到直接连接网络的距离(跳数)为1,而每经过一个路由器,距离(跳数)加1
      3. RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径
      4. RIP允许一条路径最多只能包含15个路由器(即最多允许15跳),因此距离等于16时,它表示网络不可达
      5. RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表**(动态维护)**
    2. RIP特点
      1. 仅和相邻路由器交换信息
      2. 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
      3. 按固定的时间间隔(如每隔30秒)交换路由信息(即自己的路由表)
    3. 路由算法:距离向量算法
      1. 工作流程
        1. 当原来的路由表中没有目的网络N时,把该项目添加到路由表中
        2. 当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目
        3. 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离D小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做
      2. 缺点
        网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称**“坏消息传得慢”**,使更新过程的收敛时间长
  2. 开放最短路径优先协议OSPF——网络层协议,不使用UDP或TCP,直接使用IP数据报传送
    1. 基本特点
      1. 向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法
      2. 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
      3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并目更新过程收敛得快
    2. OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89);而RIP是应用层协议,它在传输层使用UDP
    3. 由于各路由器之间频繁地交换链路状态信息,因此所有路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(称为链路状态数据库的同步)。然后,每个路由器根据这个全网拓扑结构图,使用Dijkstra最短路径算法计算从自己到各目的网络的最优路径,以此构造自己的路由表。
外部网关协议(EGP)
  1. 边界网关协议BGP——应用层协议,基于TCP
    1. 不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。路由表包含已知路由器的列表路由器能够达到的地址到达每个路由器的路径的跳数
    2. BGP只能力求寻找一条能够到达目的网络比较好的路由(不能兜圈子),而非寻找一条最佳路由。采取的是路径向量路由选择协议,它与距离向量协议和链路状态协议有很大区别。
    3. 每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的BGP发言人,与另外的自治系统交涉。image.png
    4. 三种路由协议的比较image.png

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

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

相关文章

数字人直播系统——打破时空限制的新媒体时代

随着科技的不断进步&#xff0c;新媒体开始逐渐成为人们获取信息和娱乐的首选方式。其中&#xff0c;数字人直播系统作为一种创新的传媒形式&#xff0c;正以其独特的优势受到越来越多人的关注和喜爱。数字人直播系统通过将虚拟人物与现实世界紧密结合&#xff0c;打破了时间和…

SuperMap YashanDB联合解决方案发布,赋能更强大的地理智慧

近期&#xff0c;深圳计算科学研究院&#xff08;简称“深算院”&#xff09;携手超图软件集团&#xff08;简称“超图 ”&#xff09;重磅推出基于崖山数据库的空间数据管理解决方案&#xff0c;基于YashanDB空间数据库能力&#xff0c;与超图SuperMap GIS平台深度适配&#x…

【温故而知新】vue运用之探讨下单页面应用(SPA)与多页面应用(MPA)

一、概念 1.单页面应用SPA(Single page application) Vue单页面应用是一种采用Vue.js框架开发的Web应用程序,它仅有一个HTML文件,通过前端路由实现页面的切换和渲染。与传统的多页面应用相比,Vue单页面应用在用户体验和开发效率方面有着明显的优势。 在Vue单页面应用中…

计算机与人工智能:共创智能时代的新篇章

计算机与人工智能&#xff1a;共创智能时代的新篇章 在这个科技日新月异的时代&#xff0c;计算机与人工智能&#xff08;AI&#xff09;的结合正以前所未有的速度改变着世界。它们在各自的领域内飞速发展&#xff0c;而当这两者相遇时&#xff0c;它们产生了巨大的能量&#x…

C++ Qt开发:TableView与TreeView组件联动

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍TableView与TreeView组件联动的常用方法及灵活…

== 和 equals() 的区别

大家好&#xff0c;我是"java继父"伯约&#xff0c;这篇对大家有帮助的话求一个赞&#xff0c;另外文章末尾放了我从月入7k到现在3W的学习资料&#xff0c;大家可以去领一下&#xff08;无偿&#xff09;。 对于基本类型和引用类型的作用效果是不同的&#xff1a; …

再谈动态SQL

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 文章目录 专栏精选摘要引言正文动态sql标签ifchoose...when...otherwisewhere、…

【AI】阿里云免费GPU服务资源领取方法

首先&#xff0c;直接点击链接&#xff1a;阿里云免费试用 也可以复制链接到浏览器进行跳转&#xff1a;https://free.aliyun.com?userCodernbj0c1o 页面如下所示&#xff1a;这里的免费试用期限是3个月&#xff0c;给的资源点够我们试用V100 16G显存服务器300个小时&#xff…

作业--day38

1.定义一个Person类&#xff0c;包含私有成员&#xff0c;int *age&#xff0c;string &name&#xff0c;一个Stu类&#xff0c;包含私有成员double *score&#xff0c;Person p1&#xff0c;写出Person类和Stu类的特殊成员函数&#xff0c;并写一个Stu的show函数&#xff…

智慧工地云平台源码 支持二次开发、支持源码交付

智慧工地利用移动互联、物联网、云计算、大数据等新一代信息技术&#xff0c;彻底改变传统施工现场各参建方的交互方式、工作方式和管理模式&#xff0c;为建设集团、施工企业、监理单位、设计单位、政府监管部门等提供一揽子工地现场管理信息化解决方案。 通过人员管理、车辆管…

还在用Jekins?快来试试这款比Jekins简而轻的自动部署软件!

大家好&#xff0c;我是 Java陈序员。 在工作中&#xff0c;你是否遇到过团队中没有专业的运维&#xff0c;开发还要做运维的活&#xff0c;需要自己手动构建、部署项目&#xff1f; 不同的项目还有不同的部署命令&#xff0c;需要使用 SSH 工具连接远程服务器和使用 FTP 文件…

SpringBoot 项目中常用的注解

每一层对应每个包&#xff0c;包名中应全为小写。 一、Common 层&#xff08;实体类&#xff09; 前提&#xff1a;导入 Lombok 依赖 Data&#xff1a;生成 get 和 set 方法以及 toString 方法 Getter&#xff1a;只生成 get 方法&#xff0c;避免对类中的成员变量修改。 …

vmware虚拟机中Nat、桥接模式和仅主机的差别

NAT 在NAT模式下&#xff0c;主机3是Kali和Win两个操作系统的宿主机&#xff0c;那么Kali和Win可以连接到外网&#xff0c;也可以和主机3进行互联&#xff0c;但是主机1和主机2不能连接到Kali和Win。 桥接 在桥接模式下&#xff0c;主机3是Kali和Win两个操作系统的宿主机&…

elasticsearch系列六:索引重建

概述 我们再起初创建索引的时候由于数据量、业务增长量都并不大&#xff0c;常常不需要搞那么多分片或者说某些字段的类型随着业务的变化&#xff0c;已经不太满足未来需求了&#xff0c;再或者由于集群上面索引分布不均匀导致节点直接容量差异较大等等这些情况&#xff0c;此时…

ssm基于Java的小区物业管理系统论文

基于Java的小区物业管理系统 摘 要 进入21世纪网络和计算机得到了飞速发展&#xff0c;并和生活进行了紧密的结合。目前&#xff0c;网络的运行速度以达到了千兆&#xff0c;覆盖范围更是深入到生活中的角角落落。这就促使管理系统的发展。网上办公可以实现远程处理事务&#…

【MySQL】数据库并发控制:悲观锁与乐观锁的深入解析

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 数 据 库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 悲观锁&#xff08;Pessimistic Locking&#xff09;: 乐观锁&#xff08;Optimistic Locking&#xff09;: 总结&#x…

鸿蒙(HarmonyOS 3.1) DevEco Studio 3.1开发环境汉化

鸿蒙&#xff08;HarmonyOS 3.1&#xff09; DevEco Studio 3.1开发环境汉化 一、安装环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、设置过程 打开IDE&#xff0c;在第一个菜单File 中找到Settings...菜单 在Setting...中找到Plugins…

Python面向对象高级与Python的异常、模块以及包管理

Python面向对象高级与Python的异常、模块以及包管理 一、Python中的继承 1、什么是继承 我们接下来来聊聊Python代码中的“继承”:类是用来描述现实世界中同一组事务的共有特性的抽象模型,但是类也有上下级和范围之分,比如:生物 => 动物 => 哺乳动物 => 灵长型…

彭涛:2023年终复盘,工作,团队,个人!

眨眼2023即将结束&#xff0c;2024即将开启&#xff0c;每年这个时候&#xff0c;都会简单总结下自己这一年&#xff0c;既是对今年的一个复盘和回顾&#xff0c;也是对新一年的向往和期待。 我的2023年&#xff0c;大概分为 「个人」&#xff0c;「家庭」&#xff0c;「团队」…

大创项目推荐 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习OCR中文识别系统 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;…