• 计算机网络第五节 网络层


    一,网络引入的目的

    1.网络层以下层次解决的问题,未解决的问题

    从7层结构上看,网络层下是数据链路层

    从4层结构上看,网络层下面是网络接口

    至少我们看到的网络层下面是以太网

    以太网解决了什么问题?

    答:以太网解决了具体网络上主机间数据传输的问题;主机之间可以以物理地址,以广播的传输方式进行数据的交换传输

    没有解决人心不足答的问题:

    我们需要更大的规模的网络,我们对网络扩展的需求越来越多;

    网络扩展可以借助于交换机完成一定范围的扩展,但也会产生一些问题,比如病毒扩散,效率变低

    交换机和集线器扩展之后的网络还是局域网:利用设备的物理地址进行数据的传输的MAC地址,本质上就是局域网----网络冲突和网络广播问题需要避免

    2.网络解决问题的基本方案

    1)强制要求采用一种新的统一的网络连接方式(强制的统一成一种物理地址)

    2)保留现有网络,重新定义一个虚拟的新的网络连接方式;求同存异

    二,网络扩展后可采用的数据传输方式

    1.面向连接的方式

    有的人建议采用传统电话数据传输方式进行,计算机网络数据传输方式;对传统电路交换技术做一个改进,引入一种虚电路的方式进行数据交换;虚电路的改进的主要内容是对通信线路资源采用逐段占用方式;

    核心思想:由通信子网负责通信可靠性保证

    2.无连接的方式

    有人创新的提出,分组交换技术,数据通信前不需要建立连接,数据通信分组在通信子网中独立的传输

    思想核心:由主机负责通信可靠性保证

    TCP/IP协议采用了这个方案:成为数据报

    三,TCP/IP协议网络解决问题的方案

    1.虚拟的IP互连协议

    该协议为了实现网络互连,要求对有互连需求的网络,必须在将原有的网络数据转换成IP数据报格式,然后在虚拟IP网络上进行数据的传输

    2.潜在的IP协议中要给出协议的转换功能(翻译功能)

    3.同样要求在虚拟的IP协议中要给出数据传输状态的报告信息

    上述三个内容最后都要转换为3个具体的协议,因此IP协议不是一个协议,是一族协议;只不过这一族中IP地位最强

    四,虚拟IP互连协议引入后数据的转发流程

    1.直接交付

    属于同一个虚拟逻辑网络和同一个现实物理网络上主机或主机接口之间数据的转发,只要解决目的地址IP地址对应的物理地址,就简单了,就利用物理地址直接在物理网络上进行传输了

    属于同一个广播域(局域网)内的交付,可以利用ARP协议协议直接找到目的主机IP地址对应的物理地址,从而完成数据的交付

    ARP怎么工作的,工作流程,解决的问题:IP->物理地址,数据链路层封装,

    A,B是一家的,属于直接交付范围,怎么界定,通俗的老说就是姓氏相同

    2.间接交付

    属于不同网络内的数据传输,因此无法直接找到目的地址主机的
    MAC地址,只能将数据交付到网络出口路由器,因此,此时ARP协议并不是去寻找目的地址的MAC地址,而是寻找本网络出口路由器物理地址

    A和C通信,隔着千山万水,借助第三方(邮筒),怎样把数据交付出去----中间路由器的接口和A属于同一个局域网,以广播的形式发给路由器,到网络层把真正的目的地提取出来了,在进行封装,交到C(MAC)

    A-》C通信,一跳一跳的,路由器的作用就是传送数据(跳到网络层---数据真实的传输方向)换一个包装,向目的地传递,网络中传递数据,是一跳一跳的进行传输数据(传输数据的物理地址改变)大体方向不变,朝着目的地址走

    ?如何

    3.ARP地址解析协议

    在虚拟网络上的主机也必须有唯一的标识

    虚拟统一网络的引入,为每一个在网络中的主机又提出了一个标识问题,在IP网络中就称为IP地址;也就是说在虚拟互连网络中每个接入主机必须有一个唯一的虚拟IP地址;这个是逻辑地址,与物理网络位置无关

    虚拟网络是在现实物理网络上进行抽象总结抽象形成的,而现实网络上每台接入网络的主机都有一个固有的物理地址

    两个地址之间的关系是什么,两个地址如何进行相互的转换

    在网络进程上看到的网络都是虚拟的网络:都是IP网络,怎么进行地址之间的转换问题,也就是和现实中的地址进行转换----------现实的物理地址是数据链路上的,在细一点说就是物理访问媒介,而虚拟

    1)协议作用

    应用进程看到的网络是统一的IP网络,因此它所描述的进程之间数据的传输是在统一一致的IP网络上进行传输;而这个统一的IP网络是在不同的现实物理网络上进行抽象的,所以虚拟网络间数据的传输必须要经过现实的物理地址才能完成真正的传输,就必须有个地址能完成两种地址之间的转换

    封装成以太数据帧

    2)协议工作原理

    A->B发送消息时,首先去查找自己的内存ARP表格,若找到对应的MAC地址则直接进行封装,转到介质上进行传输,否则,就封装一个数据链路层上的广播帧,去询问对应的IP的MAC地址

    根据发送的性质:该协议只能解决同一个广播域(局域网)内,逻辑IP地址到物理MAC地址的转换问题

    3)协议存在缺陷

    协议本身工作是开放性的工作方式,缺乏验证机制

    五,网络层IP协议

    1.IP协议作用:实现异构网络互连,互连的方案是形成以IP协议为核心的统一的虚拟IP网络

    2,ARP:配合IP协议,实现虚拟逻辑网络地址到现实物理地址;实现同一局域网内IP地址到物理地址的转换

    3.逻辑IP地址与现实物理地址的作用

    六,IP协议中IP地址的构成

    1.IP地址构成

    IP地址是一个整数,32位的整数  32bit整数,以点分十进制数表述方式表述

    IP地址看前进的大反向,路由器依据网络地址完成数据的转发

    32位整数默认分为2个层面

    网络地址主机地址的分配关系

    IP地址特征:任何IP地址都是平等的;路由器依据IP地址中的网络地址部分进行数据包转发;即便在虚拟网络中,任何一个主机或网络接口必须拥有至少一个合法的IP地址

    分出了传统意义上A B C D E类地址

    无论如何分配,各地址的地址都是平等的

    路由器是按IP地址中的网络地址进行数据转发的

    2.IP地址的再组织,再管理

    为了区分一个具体IP地址中,网络地址与主机地址的分配方式,我们引入了一个伴随参数;子网掩码;

    子网掩码构成:32bit整数,依然采用点分十进制描述方式

    默认情况下IP地址是32bit   网络地址+主机地址;

    给定一个具体的IP地址:例如201.145.12.63 哪一部分是网络地址?哪一部分是主机地址?

    1)子网掩码:用于快速的指明一个IP地址的分配情况,即网络地址与主机地址的构成关系

    子网掩码:也是由32bit的整数,其中要求,对应IP地址中网络地址用bit1对应,主机地址部分用bit 0对应

    将任何一个IP地址与子网掩码进行逻辑上的与操作,得到的就是一个IP地址形式上的网络地址

    把计算机划分为五个部门,用3个bit来区别五个不同的专业 

    2)子网划分

    对于一个给定的IP地址,我们又进行了内部的划分的重新分配,这样分配就称为内部子网的划分

    权利对主机地址部分进行重新的组合,来表示内部使用方式的分配

    定长掩码划分方式

    对于一个给定IP地址,我们有权对主机地址部分进行重新的组合,来表示内部使用方式的分配

    变长掩码划分方式

    3.网络的汇聚(构成超网)CIDR

    网络汇聚构成超级网络,就是将若干个网络地址,用一个更大的网络地址去包含

    目的是为了减少路由器(核心路由器)上路由表的条目,加快路由转发效率

    子网掩码的另一种描述形式:网络前缀

    对于一个具体的IP地址  201.145.12.34/24

    201.145.12.34/20  前20bit表示的网络地址

    用网络前缀方式去描述一个地址块

    网络汇聚:对于若干个地址块,若其网络地址部分包含有部分相同的bit位,则可以将这些地址块,用一个相同的网络地址去包含,那个地址就是这些地址的超网

    用一个地址代替四个,减少路由器转发

    4.子网划分和超网汇聚形成一个新问题

    对于具体IP地址的匹配问题:若有多个路由条目都能匹配成功,路由器按网络前缀(子网掩码)最长匹配的原则进行匹配转发数据

    一个地址,两个匹配成功了,网络前缀最长的路由条目转发数据包

    六,IP网络层引入IP协议后数据转发流程

    1.IP网络虚拟互连网络的互连设备-----路由器

    路由器的作用:

    1)工作在网络层上,意味着它能识别网络层上的数据传输格式

    2)路由器按网络层上数据传输地址,进行有目的的数据转发

    3)路由器有针对性的数据转发依赖于路由器中的路由表

    2.IP网络中路由器转发分组的算法

    特定 默认 一般的网络路由

    七,IP报文结构

    1.首部(固定,可变)

    1500个字节,分几车运走,一车的怎么还原,为了支持这个内容,IP协议拿出四个字节去标识

    以太网数据帧的结构需要知道:为什么是64?????????????

    13片偏移,每一个被切片的数据包在原始数据的地址   切出来的大小  8

    分片1)网络接口层最大传输数据的上线  最多1500个字节-----数据部分1480个字节

    2)1480必须是8的整数倍    你切出来   DF=1不允许传输,不允许拆成小的分次传输

    生存时间---向源地址报告就扔(没过一个路由器就减一)

    协议:高层的那个协议产生的-》交给同层次的

    语音数据比文本数据------区分服务字段

    版本:4

    首部长度:四个字节,四个bit--

    阴影---20个字节不可缺少,40个字节,可选项,

    IP协议为分组交换网络   ---以太网---网络接口层不一定以太网,具体问题集体分析,分片满足两个条件。才能对其进行切片。分组交换

    2.固定部分各字段的功能

        完整的支持IP协议的全部功能:数据转发说明,数据包分组,数据包效验

        各字段功能得出结论:IP协议是无连接不可靠的网络层协议(提供尽力而为的服务---像快递)

    以太网也不可靠-----逻辑物理都不可靠,错了怎么办?运输层解决---两个不可靠的网络上怎样实现数据的网络传输

    3.可变部分

    八,路由协议

    1.Internet的层次构成(多层次的网络结构)

    数据转发的转发不需要经过路由器这就是局域网  需要经过虚拟网络-IP网络(路由器)-----这个不是局域网

    2.自治系统AS

    在单一路由技术下组织的一组路由器完成一个单位内网络数据的传输

    3.自治系统内部路由形成协议----IGP 内部网关协议

    网络层(出口路由器)   高层(像隔开的墙)

    1)基于距离向量的路由选择协议(应用层是UDP)   RIP协议(路由信息协议)

    动态的形成路由器上路由表的内容,作为数据包转发的依据

    距离:是指去某一个网络所经过路由器的个数(跳数);一个路由器直接相连的网络距离为1;距离为16表示网络不可达1

    工作原理:

    1)通过与相邻路由器进行信息交互,完成AS内部路由的形成

    2)相邻路由器之间相互交换彼此的全部路由表信息

    3)固定时间进行一次交换20s-30s

    RIP算法的工作流程:

    基于最短距离来形成路由

    2)基于链路状态的路由选择协议(网络层 IP)  OSPF协议(开放最短路径优先算法形成的路由

    OSPF协议:基于链路状态的路由协议、

    链路状态:又只链路成本,就是数据在这条链路上传输所花费的时延,安全,费用等等信息所构成的

    链路状态就是综合参数来形成路由协议

    工作原理:(是网络层的协议)

    (1)每个路由器将自己的状态数据摘要以洪范的方式向所有路由器进行转发

    (2)所有路由器最终会获取到每个路由器的邻接关系和链路权重(即全网的网络拓扑结构)

    (3)每个路由器以自己为根节点,采用迪杰斯特拉算法计算一个最小生成树,到达每个路由器

    (4)路由稳定后,只有链路状态发生改变时,才将改变的路由状态发给所有路由器以便重新计算路由

    4.自治系统之间路由协议

    1)BGP协议    (应用层TCP)

    九,ICMP协议(一般称为哨兵协议)

    1.ICMP协议作用:汇报网络运行过程中遇到的各种问题

    (向数据的发起者报告----向原IP地址的主机进行汇报)

    PPT

    差错报告五功能;查询功能

    差错报告也是由IP协议来进行的

    表格:类型代码字段

    传输报文为什么加上IP首部:这次报文是哪次通信出现的错误----ICMP报文出错,你得知道是和谁传输出错了,引出了原始IP首部,错误产生时,你得知道这个报文是和谁进行通信的报文

    IP协议加上8个字节---不会产生差错报告,否则无限循环

    2.ICMP报文

  • 相关阅读:
    PGL图学习项目合集&数据集分享&技术归纳业务落地技巧[系列十]
    一文带你了解【抽象类和接口】
    jwt的使用概念工具类与切入spa项目
    Vue_双向数据绑定失效踩坑-使用$set
    iOS 17.0 UIGraphicsBeginImageContextWithOptions 崩溃处理
    小波去噪算法的简易实现及其扩展(小波锐化、高斯拉普拉斯金字塔去噪及锐化)之一。
    微信小程序复习题
    Mysql忘记密码后如何重置密码
    K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路
    IDEA 之 在不更改操作系统用户名的情况下更改 ${USER} 变量?
  • 原文地址:https://blog.csdn.net/zn2021220822/article/details/133121882