这张图在今后每章的学习都要用到 要熟记于心!!


思维导图:https://blog.csdn.net/qq_39086150/article/details/78916668

四、网络层 (已经不是端到端的层次了 )

4.1 网络层概述

  • 网络层功能:

    • 网络互连
    • 路由选择: 确定分组从源到目的地的路径
    • 拥塞控制 :方法:开环和闭环
  • 网络层所做的工作

    • 从发送主机向接收主机传输报文段(主机到主机)
    • 在发送端封装为数据报
    • 在接收端,交付报文段到传输层
    • 每台主机和路由器上都网络层协议
    • 路由器检查所有经它的分组的的IP数据报的头部字段
  • 路由器的功能:

    • 运行路由选择算法/协议 (RIP, OSPF, BGP)
    • 从输入链路到输出链路转发数据报
  • 网络层向传输层提供的主机到主机的数据传输的服务,主机到主机的传输服务依靠的是通信子网的各个节点的传输服务来实现的。

    这里注意网络层向传输层提供的服务与通信子网提供服务的操作方式。

    • 网络层提供的服务:

      • 面向连接的服务 :虚电路
      • 无连接的服务:数据报
    • 通信子网操作方式:
      • 虚电路操作
        像电话线

    • 数据报操作
      端系统顺序发送要传输的内容,网络层给这些内容分组,加上一些地址信息啊,序号啊等,然后作为数据报乱序发送给网路结点。目的端就把收到的这些内容进行处理再交至上层。

4.2 路由选择

  • 路由算法的两大类:

  • 静态路由选择算法:不会根据当前测量或估计的流量和拓扑结构,来调整它们的路由决策;

    • 最短路由选择算法

      • Dijskstra,1959:
    • 扩散法(Flooding)也称泛洪
      将每个入境数据包除了该数据包发送到除到达的那条线路以外的所有线路。

      • 为抑制泛洪,两项措施:

        • 数据包头设置跳计数器
        • 每个源路由器在接受来自主机的数据包时填上一个序号
          重复分组就扔掉!平常不太好用,在军事抗毁系统很有用
    • 基于流量的路由选择
  • 动态路由选择算法:依靠网络的当前状态进行路由选择;

    • 孤立路由选择算法

      • 对热土豆(Hot Potato)算法进行改进,把它和固定路由算法结合起来
        孤立路由选择算法是一种逆向学习(Backward Learning)方法。
    • 集中路由
      • 路由控制中心RCC生成路由表,分发给各个路由器。
      • RCC的计算量大,易成为系统瓶颈。
    • 分布路由选择
      • 距离矢量路由算法

        • 实例是:RIP协议
          ***RIP 协议***适用于小型网络

          • RIP 是一种分布式的基于距离矢量的路由选择协议
          • 距离的度量基于跳数,每经过一个路由器,跳数就加 1
          • 协议的三个要素
            • 和哪些路由器交换信息?
              仅和相邻路由器交换信息。
            • 交换哪些信息?
              当前本路由器所知道的全部信息,即自己的路由表。
            • 什么时间交换?
              按固定的时间间隔交换路由信息,例如,每隔 30 秒。
        • 每个节点保存一张路由表:目的地,下一结点标识,到该目的地的距离
        • 存在的问题:
          慢收敛或者无穷计数:就是好消息反应快 坏消息反应慢
        • 解决措施:
          • 水平分裂算法
          • 毒性反转水平分割
          • 触发更新
          • 抑制规则
      • 链路状态路由算法,又称链路状态最短路径优先算法SPF算法

        • SPF算法:

          • 发现它的邻居结点,并了解其网络地址
          • 设置到每个邻居节点的延迟或者开销
          • 组装链路状态分组
          • 发布链路状态分组 用扩散法
          • 计算路由 Dijkstra算法计算
        • 实例是:OSPF协议,IS-IS协议
          • OSPF 协议的基本特点

            • “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
            • “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
            • OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
            • 是分布式的链路状态协议。
          • OSPF三个要点

            • 通过扩散法向本自治系统中所有路由器发送信息。
            • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
            • 只有当链路状态发生变化时,路由器才向所有路由器发送此信息。

        OSPF下4类路由器
        ◇内部路由器
        ◇区域边界路由器
        ◇主干路由器
        ◇自治系统边界路由器
        OSPF 直接用 IP 数据报传送

  • BGP协议

    • 外部网关协议的一种
    • 自治系统之间的路由选择必须考虑有关策略。
    • 力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
    • 工作过程
    • 邻居获取
      由一个路由器给他的邻居发送邻居获取请求消息
    • 邻居可达性
      在建立BGP连接的两个路由器间通过keepalive消息维持邻居关系;
    • 网络可达性
      每个路由器维护一个它能到达的子网的数据库以及到达那个子网的最佳路由当数据库发生变化时,路由器会广播一个Update 消息给其他所有实现BGP 的路由器通过这些Update 消息的广播,所有的BGP 路由器可以建立和维护路由信息。

本小节名词较多,总结一下
路由选择算法分为:静态路由选择算法、动态路由选择算法
静态路由选择算法:最短路由选择算法、扩散法也叫洪泛、基于流量的路由选择算法
动态路由选择算法:孤立路由选择算法、集中路由选择算法、分布路由选择算法
其中分布路由选择算法可分为:距离矢量路由选择算法(RIP协议)、链路状态路由选择又称SPF算法(OSPF协议)、
路由选择协议有:RIP 协议、OSPF协议、BGP协议

4.3 拥塞控制

  • 从控制论的角度看,网络拥塞控制方法分为两类:开环和闭环。

    • 开环(Open-Loop)

      • 致力于良好的设计来避免问题的出现,确保问题在一开始时就不会发生,一旦系统安装并运行起来,就不再做任何中间阶段的更正。
      • 开环控制要做的工作时,决定何时接受新的通信,何时丢弃分组,丢弃哪些分组,还包括在网络的不同点做出计划表。
      • 基于源端的算法和基于目的端的算法两种。预防为主,在做出决定时不考虑网络的当前状态。
    • 闭环(Closed-Loop)
      建立在反馈环路的概念上。包括三个部分:

      • 监视系统
      • 将拥塞的信息传送到可能采取行动的地方
      • 收到反馈信息的系统采取相应的措施进行调整以解决拥塞问题
        • 显式反馈和隐式反馈两类算法

          • 显示反馈,由拥塞点发送反馈给其他采取行动的地方。
          • 隐式反馈,源端通过本地的观察来判断是否存在拥塞
  • 拥塞控制的方法:
    • 1.通信量整形
      (1)漏桶算法
      (2)令牌桶算法
    • 2.缓冲区预分配
    • 3.分组丢弃
    • 4.定额控制

4.4 IP协议

IP协议是TCP/IP协议族中的核心协议之一。TCP、UDP、ICMP、IGMP等都是以IP协议为基础的。

  • IP协议特点:

    • 无连接、不可靠
    • 点到点的网络层协议
    • 屏蔽了物理网络的差异
  • IP报文格式
    • 一个 IP 数据报由头部和数据两部分组成。
    • 头部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
      在头部的固定部分的后面是一些可选字段,其长度是可变的。
    • 头部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的头部长度的最大值是 60 字节。
    • 总长度——占 16 位,指头部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。
      总长度必须不超过最大传送单元 MTU。
    • 头部检验和(16 位)字段只检验数据报的头部
      不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
  • IP地址
    注意:IP地址并不真正指向一台主机,而是指向一个网络接口,如果一台主机在两个网络上,它必须有两个IP地址;

    • IP地址是32位的二进制数,通常采用点分十二进制表示法来书写。
    • 分类IP地址中,将IP地址划分为网络号(Network Number)高位和主机号(Host number)低位两部分
    • 网络号 net-id,它标志主机(或路由器)所连接到的网络
      主机号 host-id,它标志该主机(或路由器)
    • 两级的IP地址可以记为:
      IP 地址 ::= { <网络号>, <主机号>}


  • 特殊的IP地址

    • 网络地址 主机号部分为全0
    • 广播地址 主机号部分为全1
    • 特定主机的地址 网络号为0,主机号不为0
    • 环回测试地址 127.x.y.z
    • 专用地址 内网地址(本地地址)
  • 子网与子网划分
    子网掩码是一个重要属性

    • 子网掩码是一个网络或一个子网的重要属性。
    • 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
    • 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。
    • 若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。
  • CIDR 无类别域间路由:路由聚合(route aggregation)和子网划分协同工作
    • 最长匹配前缀(longest matching prefix)
  • ARP和RARP :解决IP地址与物理地址间的转换问题
    • ARP IP地址到MAC地址的转换

      • 工作过程:

        • 广播的方式发送ARP请求报文
        • 单播的方式发送ARP应答报文
      • ARP工作的几种情况:
        ① 源端主机和目的主机位于同一网络,这时用 ARP找到目的主机的 MAC地址。
        ② 源端主机和目的主机位于不同网络,这时用 ARP 找到与源端主机位于同一网络上的一个路由器的 MAC地址。
      • ARP攻击:互联网的一种常见的攻击方式
    • RARP MAC地址到IP地址的转换
      • 基本思想

        • 无盘工作站启动时,首先从其接口卡中读取系统的硬件地址,然后广播一个RARP请求报文, 其中的目标MAC地址字段中放入本系统的MAC地址。 网络中有一个RARP服务器, 它将网上所有的 MAC地址-IP地址对保存在一个磁盘文件中, 每当收到一个 RARP请求,服务器就检索该磁盘文件,找到匹配的 IP 地址,然后用一个 RARP 应答报文返回无盘工作站。RARP 应答报文通常封装在一个单地址帧中。RARP 服务器中的 MAC 地址-IP 地址映射关系必须由系统管理员提供。
  • ICMP协议 因特网控制报文协议
    • IP协议提供的 无连接的、不可靠的IP报文传输服务。ping命令的使用 就是用来这个协议 所以ping命令 直接调用网络层的协议
    • 允许主机或路由器报告差错情况和提供有关异常情况的报告。
  • IP地址分配方式
    • 手工设置
    • 自动分配
  • DHCP( Dynamic Host Configuration Protocol)动态主机配置协议
    • 网络管理员在DHCP服务器中预先定义一个IP地址池。DHCP协议是基于客户机服务器模式工作的

    • 分配过程:

      • 需要申请IP地址的主机在网络中广播 “DHCP discover” 报文
      • 网络中的DHCP服务器用 **“DHCP offer”**报文响应
      • 主机发送IP地址请求:“DHCP request” 报文
      • DHCP服务器从地址池中取出一个未分配的IP地址发送给请求者:“DHCP ack” 报文

        IP组播:这个概念很好用场景去理解
      • IGMP协议因特网组管理协议
        • 它负责建立并维护路由器直联网段的组成员关系信息,作用在主机-路由器之间的组成员关系协议(就是个管理组播成员的关系的一种协议
        • 路由器-路由器之间的组播路由协议
      • IPv6
        • 主要特点:
          ①更大的地址空间
          ②灵活的首部格式
          ③扩展的地址层次结构
          ④支持自动配置
          ⑤内置的安全机制
          ⑥更好的支持Qos,支持资源的预分配。
          ⑦可扩展性
        • 128位
        • 从IPv4到IPv6过渡的基本方法
          • (1)双协议栈
            在完全过渡到IPv6之前,使部分主机和路由器装有两个协议
          • ( 2)隧道技术
            IPv6分组进入IPv4网络时,将IPv6分组封装成为IPv4分组,整个IPv6分组变成IPv4分组的数据部分。
            当离开IPv4网络时,再将其数据部分交给主机的IPv6协议 。

《计算机网络》复习总结 四、网络层相关推荐

  1. 计算机网络复习——第四章网络层

    9月开始学习的一个月,I hope everthing be fine. 相关知识见,感觉比较容易入手 <计算机网络>(谢希仁)内容总结 | JavaGuide 重点知识: TCP/IP ...

  2. 计算机网络复习——第四章:网络层——数据平面

    一.概述 每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报:控制平面的主要作用是协调这些本地的每路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径最终进行端到端传送. 注意 ...

  3. 【计算机网络复习之路】网络层(谢希仁第八版)万字详解 主打基础

    专栏:计算机网络复习之路 目录: 一.网络层的几个重要概念 1.1 网络层提供的两种服务 1.2 网络层的两个层面 二.网际协议 IP 2.1 虚拟互连网络 2.2  IP地址 2.2.1 IP地址及 ...

  4. 计算机网络复习————网络层,数据链路层

    计算机网络复习----网络层,数据链路层 网络层 网络层功能与服务类型 路由器 IP数据包格式 分片和重装 IP地址 DHCP协议 NAT网络地址转换 IPv6 链路状态路由算法 距离路由向量算法 I ...

  5. 计算机网络自顶向下第四章:网络层

    网络层 一. 网络层概述 a) 转发和路由选择 b) 网络服务模型 二.虚电路和数据报网络 a) 虚电路网络 b) 数据报网络 c) 数据报网络与虚电路网络对比 三.路由器工作原理 a) 输入端口: ...

  6. 【计算机网络】第四部分 网络层(20) IP协议

    文章目录 20.1 网际互联 20.1.1 网络层需求 20.1.2 作为数据报网络的因特网 20.1.3 作为无连接网络的因特网 20.2 IPv4 20.2.1 数据报 1. 版本 `VER` . ...

  7. 952计算机网络是那本书,952计算机网络复习参考提纲.doc

    952"计算机网络"复习参考提纲 考察目标 1.掌握计算机网络的基本概念.基本原理和基本方法: 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网 ...

  8. 计算机网络西北大学,西北大学计算机网络复习资料 (拟).doc

    **** 计算机网络复习 TOC \o "1-3" \h \z \u 一.计算机网络概论 3 (一)计算机的形成与发展 3 (二)计算机网络定义与分类 3 (三)计算机网络结构 4 ...

  9. 零基础带你学习计算机网络复习—(五)

    零基础带你学习计算机网络复习-(五) 学习内容 一.数据链路层的概述 二.封装成帧 三.差错检测 四.可靠传输的基本概念 五.可靠传输的实现机制-停止等待协议 六.可靠传输的实现机制-回退N帧协议 七 ...

  10. 计算机网络复习资料(前六章谢希仁版)

    计算机网络复习 作者:why will kill it 第一章 概述 internet和Internet的区别 以小写字母"i"开始的internet(互联网)是一个通用名词,它泛 ...

最新文章

  1. 2021年上海市高考成绩查询,2021上海市地区高考成绩排名查询,上海市高考各高中成绩喜报榜单...
  2. P2241 统计方形(数据加强版)
  3. IDC机房运行安全评测怎么做,自建IDC机房评测材料准备要点
  4. android新拟态实现方法,Android 新拟态UI (Neumorphism)
  5. mongo数据库插入数据_深入研究Mongo数据库
  6. UVa 129 - Krypton Factor(回溯法)
  7. 锤子科技回应天猫店商品全线下架:可去京东购买
  8. python编程输入,Python编程:输入变量返回nam
  9. eclipse没有(添加)Dynamic Web Project选项的方法
  10. 新浪云python开发_Python开发入门与实战17-新浪云部署
  11. 只有程序员才能读懂的三国演义(一)
  12. blackduck,黑鸦binary二进制模式扫描jenkins配置
  13. php 检测是否是微信浏览器,PHP判断设备是否为微信浏览器或QQ浏览器
  14. cannon的英文名_卡农的作者是谁啊 此曲的赏析 英文名cannon不是大炮吗
  15. Java微信公众平台开发之获取地理位置
  16. 如何进行文献检索和阅读(转)
  17. setResulttransformer过期NativeQueryImpl,cannot be cast to org.hibernate.query.internal.NativeQueryImpl
  18. Ubuntu18的bug导致系统启动后黑屏的问题
  19. Python正则表达式 re
  20. c语言 floyd优化,Floyd(弗洛伊德)算法(C语言)

热门文章

  1. TensorFlow Extend
  2. windows 删除docker
  3. 启用SQL2008外围管理器
  4. 《FFmpeg从入门到精通》读书笔记(一)
  5. Histogram Equalization in Matlab
  6. 【密码学原理】消息验证码MAC的构造方法:HMAC,DAA,CMAC
  7. 关于ps -aux进程状态stat的中Ss、S<l、Ssl、SLl、SNl、R、R+的解释
  8. jersey使用指南
  9. C. Strongly Composite - 数论
  10. Java 实现四则运算 附实现代码