zoukankan      html  css  js  c++  java
  • 计算机网络(谢希仁 第七版)网络层 个人笔记

                                      第四层 网络层

    1.网络层提供的服务

    虚电路服务(面向连接)和数据报服务(无连接)

    虚电路服务类似通话网服务,通信期间长期占用此链接(链路必须负责可靠性传输

    数据报服务通信期间不需要建立完整的长期链接(链路不负责可靠性传输,目的端和源端负责,比如差错性检验的循环冗余校验)

     

    2.虚电路服务相关介绍:

    1.网络上的报文一般都比较短,使用数据报服务的话即迅速又经济,使用虚电路的话又慢又贵(因为短报文需要多次连通虚电路,连通时间又不长)

    2.使用数据报时,每个分组必须携带完整的地址信息,而虚电路只需要编号标志

    3.虚电路服务时,虚电路负责差错控制和流量控制,而使用数据报时,主机承担端到端的差错控制和流量控制

    4.虚电路时,某个结点发生故障,后续分组可以另选路由,而使用虚电路时,某个结点发生故障,则需要重新建立另一条虚电路

    虚电路服务代表:X25网

    链路编号:虚电路号

    X25规定经常通信的两端,该虚电路永久建立

    特点:贵,兼容性不好

     

    3.数据报服务相关介绍:

    数据报服务代表协议:IP协议族

    1.ARP地址解析协议(向下兼容)

    2.RARP逆向地址解析协议(已废,向下兼容)

    3.ICMP网际控制报文协议(向上提供服务

    4.IGMP网际组管理协议(向上提供服务

    虚拟的互联网需要解决的问题:

    1. 不同的寻址方案

    2. 不同的最大分组长度

    3. 不同的网络接入机制(10M,100M,1G,带宽)

    4. 不同超时控制

    5. 不同的差错恢复方法

    6. 不同的状态报告方法(收到确认信号)

    7. 不同的路由选择技术(选择质量高的,还是速度快的,还是兼具的)

    8. 不同的用户接入控制(WIFI接入,拨号接入)

    9. 不同的服务(仍有部分虚电路服务在提供)

    中间设备的分类:

    1. 物理层使用的中间设备:转发器

    2. 数据链路层使用的中间设备:网桥

    3. 网络层使用的中间设备:路由器

    4. 网络层以上使用的中间设备:网关(链接两个不兼容的系统,需要在高层进行协议的转换)

    转发器、集线器、网桥、交换机、路由器和网关简介

     

    4.IP地址的相关介绍

    IP地址大小:32位,局域网和广域网IP可以重叠

    IP地址的编址方式:

    第一种:分类IP地址:网络号+主机号

    A类:前8位为网络号(为A类的标志:开始第一位为:0)

    B类:前16位为网络号(为B类的标志,前2位为:10)

    C类:前24位为网络号为C类地址的标志,前3位为:110)

    D类:D类地址的标志:前4位为:1110

    E类:E类地址的标志:前5位为:11110(E类还没有用过)

    ps:路由转发的时候先查找网络号,这样直接发到一个网络中,然后由网络中的路由器转发到对应的机器,这样路由的转发表会比较小

    分类IP地址的具体分析:

    A:(1/2)

    网络号全0:表示我整个内网

    网络号全1:广播网(回旋报文)

    B,C类不具体分析

    特殊的IP地址:

    wps5420.tmp

     

    IP地址的一些重要特点:

    1. 分等级的结构地址:好处有两点:1.IP管理机构只用管理网络号,主机号有该网络号单位自己分配,减轻了IP管理机构的压力,2。路由器只根据网络号来转发数据,不考虑主机号,这样就减轻了路由表的储存查找压力(先找到网络号对应的网络,然后又该网络号的单位查找对应的主机号然后发送)

    2. 路由至少又两个IP地址(因为路由就是来链接不同的以太网的,所以至少有两个网络号,网络号的单位又给它各自分配了一个主机号,所以路由器至少两个IP地址)

    3. 用转法器或者网桥链接起来的局域网具有相同的网络号,所以他们是同一个以太网

    MAC地址是在某个以太网内部来找主机的,而IP地址中的网络号是找网络的!!

     

    5.地址解析协议:

    每一个主机都又一个APR,里面又所在以太网上的各主机和路由器的IP地址到硬件地址的映射表
    APR是解决同一个以太网上的主机或路由器的IP地址和硬件地址的映射问题

    比如A发送数据给B,就要知道B的IP地址和MAC地址,先在A的以太网上查找有没有B对应的IP地址和MAC地址对应的映射,没有的话,路由器会做响应,从而在其他以太网内查

    每个路由管一部分IP地址的主机,所以找的是以太网内特定的路由器

     

    6.IP数据报的格式:

    首部和数据

    首部中保存一些固定部分

    我们主要了解固定部分

    IP数据报首部分析:(20个字节,20*8位)

    1. 版本(4位):IPV4,IPV6

    2. 首部长度(4位):单位4字节,比如首部长度为3,表示首部有3*4个字节

    3. 服务类型(8位):现在没有使用

    4. 总长度(16位):头部加数据部分形成的数据报的总长度

    5. 标识(16位):一个数据,分成好几个报文,然后一个报文继续分组(同一个报文在发送的时候被分成好几个分组,不然发送不了,太大了),同一个报文的不同分组标识的相同的,标识属于哪个报文(往上的,对应传输层)

    6. 标志(3位,只有后两位有用):中间一位表示允不允许分MAC帧,最后一位标识我是不是最后一个MAC帧,标识该帧是不是结束帧

    7. 片偏移:一个报文要分成好几个MAC帧发送。该帧属于第几帧

    8. 生成时间:单位是跳,经过一个路由转发是一跳

    9. 协议:向上兼容传输层的协议,该数据报是来自于传输层那个协议的报文

    10. 首部检验和:校正首部的准确性(采用反码和的方式)

    11. 源地址:来自哪里

    12. 目的地址:去哪里

     

    7.MAC帧部分及其介绍:

    一个IP报文分成好几个MAC帧

    wps5421.tmp

    一个数据报组成:首部+数据

    一个数据报分成好几个MAC帧

    MAC帧组成:首部+数据

    所以多个首部,注意理解

    ps:反码校验和算法:

    wps5422.tmp

    8.路由和交换机的区别:

    1. 路由用来链接不同的以太网,而交换机只负责一个特定网络中的工作

    2. 路由用来转发分组,而交换机可链接主机(路由面向以太网,交换机面向主机)

    3. 路由使用同一的IP协议,而交换机使用所在以太网的特定协议

     

    9.第二种IP地址的编址方式:划分子网

    原因:为了弥补分类地址的缺陷

    分类地址的缺陷:

    1. IP地址空间的利用率有时很低(小型的独占一个网络,利用率低,学校网利用率高(pc机多)

    2. 给每个网络分配一个网络号使路由表性能变坏(虽然路由只储存网络号,不存储主机号,但是架不住网络号多啊)

    3. 两级IP地址不够灵活(待思考)

    划分子网的操作:两级IP地址变成3级IP地址

    3级:网络号+子网号+主机号

    2级:网络号+主机号

    从2级主机号借用一段用做子网号

    Ps:划分子网纯属一个网络内部的事情!!!

    一个以太网内,把该以太网内部的主机分成一组一组,一组就是一个子网,所以划分子网是我这个以太网内部的事情

    划分子网后网络发送数据的具体流程:

    1. 根据IP数据报的目的网络号找到连接该网络的路由器

    2. 路由收到该IP数据报

    3. 路由先按照子网号找到对应的子网

    4. 路由再按照子网内的主机号找到对应主机

    特殊点:路由会按照子网号先找到对应的子网,找到对应子网之后再在子网内部按照主机号找到对应主机,没有子网号的时候,该网络的路由是直接甩锅,按照主机号找对应主机的工作是交给集线器和交换机的

    子网划分示意图

    wps5433.tmp

    局域网是数据链路层概念

    子网是网络层概念

    子网由单位内部自己决定

    子网掩码:帮助路由找出IP数据报中的子网号

    先根据三级IP地址找到子网掩码,然后根据子网掩码找到目的子网,然后更加子网找到子网地址,最后找到的就是IP地址对应的主机

    wps5434.tmp

    网络地址:划分成一个个子网的地址,通过三级IP地址和子网掩码做and操作得到

    A类地址的子网掩码:255.0.0.0

    B类地址的子网掩码:255.255.0.0

    C类地址的子网掩码:255.255.255.0

    因为划分了子网,所以路由记录的是网络号和子网号

     

    第三种IP地址的编址方式:无分类编址(CIDR):构成超网

    IP编址问题改进的演变:

    第一次:划分子网,子网号不同,IP不同

    第二次:无分类编址(IP构成部分长度不固定,灵活)

    第三次:CIDR:使用各种长度的网络前缀来代替分类地址中的网络号和子网号,不同以前的是网络号和子网号的长度不是固定的

     

    采用CIDR的IP地址构成:网络前缀+主机号

    CIDR将网络前缀相同的连续IP地址构成CIDR地址块,叫做一个超网

    比如:128.12.32.0/20表示地址块共有2的12次方个地址(20表示网络前缀占前面的20位,IP地址总长规定是32位,所以32-20=12,所以该地址块有2的12次方个IP地址)

     

    路由聚合:一个CIDR地址块可以表示很多地址,这种地址的聚合通常称为路由聚合,它使得路由表一行可以表示很多个原来传统分类的地址路由

    路由聚合页叫做构成超网

    CIDR虽然不使用子网,但仍然使用掩码这个概念(前缀全1,主机号全0)

    用转法器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有相同的网络号

     

    最长网络前缀匹配:在路由表中匹配的时候,可能有多个匹配结果,虽然都能到达目的地,但是网络前缀越长,主机数量越少,查起来就越方便

     

    路由表的储存查找:使用二叉树,对路由表中的每一条ip地址转换为二进制表示,得到每一个ip地址的唯一前缀(路由表中的每一个唯一前缀都是不相同的)利用唯一前缀构造二叉树,查到二叉树的叶子结点就代表查找完成了(线索二叉树)

     

    网际控制协议ICMP:为了提高IP数据报交付成功的机会

    ICMP允许主机或者路由器报告差错情况,ICMP的报文作为IP层数据报的数据部分进行传输,ICMP属于IP协议族的一部分

    ICMP的具体构成:

    wps5435.tmp

    1.类型:什么类型的ICMP报文

    2.代码:某种错误或者异常对应的代码

    3.校验和:校验

    4.ICMP的数据部分

    注意ICMP报文作为IP报文分组的一部分在网络中传输

    ICMP报文的种类:ICMP差错报告报文和ICMP询问报文

    ICMP差错报文的5种:

    1. 终点不可达

    2. 源站抑制:源点不允许你向某终点发送数据

    3. 时间超过

    4. 参数问题:校验和不对

    5. 改变路由(重定向):可 以走一条新的路径

    wps5436.tmp

    出问题的数据报文中取出首部和随后的8个字节组成ICMP差错报文的首部和随后的8个字节,然后ICMP差错报文作为一个新的IP数据报的数据部分重新在网络中传输

    一个是出错的报文,一个是报告为什么出错的报文

     

    不发送ICMP差错报文的四种情况:

    1. 对ICMP差错报告报文不再发送ICMP差错报告报文:ICMP差错报告报文就算出错了也不再发送该ICMP差错报告报文的ICMP差错报告报文

    2. 对第一个分片的数据报片的所有后续分片都不发送ICMP差错报告报文:多给码片只发送一个ICMP差错报告报文

    3. 对具有多播地址的数据报不发生ICMP差错报告报文

    4. 对具有特殊地址的IP报文不发送ICMP差错报告报文

     

    路由的选择策略问题:

    静态路由选择策略:即非自适应性的路由选择,其特定是简单和开销小,但不能及时感知网络状态的变化

    动态路由选择策略:即自适应路由选择,其特定是能较好的适应网络状态的变化,但较为复杂,其开销也比较大

     

    分层次的路由选择策略:划分自治域

    原因:因为英特网的规模非常大,如果不划分的话,每个路由器需要存储的路由表实在太多了,划分自治域,一个自治域其实就是一个小的互联网,很多个自治域就构成了我们整个的以太网

    自治系统有权自主的选择本系统内选择何种路由选择协议

    自治域有两种路由选择协议:

    1. 内部网关协议IGP:自治系统内部间的通信(RIP协议和OSPF协议)

    2. 外部网关协议EGP:自治系统和自治系统间的通信(BGP协议)

    内部网关协议RIP协议:分布式的基于距离向量的路由选择协议

    距离定义:路由跳数(直接连接距离为1)

    一条路径最多有15个路由(限制了自治系统的大小)

    RIP协议的三要素:

    1. 仅和相邻的路由器交换信息

    2. 交换的信息是当前路由器知道的全部信息(即自己的整个路由表)

    3. 按固定时间间隔交换路由信息

    路由表构成:目的网络+掩码+下一条路由+距离向量

    RIP的距离向量算法:

    y收到相邻路由器x的一个RIP报文

    1. 先修改此RIP报文中的所有项目,下一跳都改成x,所有距离向量都加1

    2. 若RIP中的目的网络不在y自己的路由表中,则将此RIP中的该网络这一行都加入y的路由表中

    3. 若RIP中的目的网络在y的路由表中的话,如果下一跳给出的路由地址和y的该网络给出的下一跳路由地址是同样的话,则将收到的项目替换y中的项目,否则的话,如果x中该项目的距离小于y中该项目的距离,则进行距离向量的更新

    4. 如果3分钟还没有收到向量路由器的路由表,则将该路由器记为不可达(距离16)

    RIP协议的位置:使用运输层的UDP用户数据报进行传输,RIP位置是在应用层,但IP数据报的过程是在网络层完成的,具体看下图:

    wps5437.tmp

    路由表的构成:路由标记+网络地址+掩码+下一跳路由器地址+距离

    RIP报文=首部+路由部分

    UDP用户数据报=UDP首部+RIP报文

    IP报文=IP报文首部+UDP用户数据报

    RIP路由选择协议的优点:

    1. 实现简单,开销小

    RIP路由选择协议的缺点:

    1. 有可能跳数少的路径拥堵,跳数多的路径虽然条数多,但是不拥挤带宽高,速度反而快

    2. 某个网络出现故障的话,需要很长的时间才能将信息传送到该自治系统的所有路由器(好消息传播得快,坏消息传播得慢!!!!)

    3. 网络规模扩大,传送的路由表信息的开销也加大(不能算是很大的缺点吧)

     

    内部网关协议OSPF

    交换的不是整个路由表,而是相邻的链路的状态

    链路状态就是说明本路由器和哪些路由器相邻,以及该链路的度量

    只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此消息

    就是说链路状态变化时间,相邻路由器向所有路由器发送所有链路状态改变的消息

    度量是根据自己的需求去确定的

    由于各路由器之间频繁的交换链路状态信息,因此所有的路由器最终都能建立一共链路状态数据库

    对自制系统继续进行划分,划分为区域,因为网络过大的话,链路状态数据库需要存储的信息太多了(存的是边),32位的区域标识符

     

    内部网关协议OSPF的特点:

    1. OSPF不用封装城UDP数据报,而是直接用IP数据报传送,可见OSPF的位置在网络层

    2. OSPF的数据报很短(只有在链路状态发生变化的时候发送自己的路由信息,洪泛法)

    3. 度量可以多样化,可以根据业务需求自己设置

    4. OSPF路由器之间交换的分组有鉴别功能(每个链路的状态都有一个32位的序号,序号越大状态就越新)

    5. 每隔一段数据刷新一次数据库中的链路状态

    6. 当互联网规模大时OSPF协议比RIP距离向量协议号很多(因为一个路由器的链路状态只和相邻的路由器有关,而RIP记录了全自治系统路由器的链路信息,所以OSPF没有限制自治系统的大小)

    7. 没有坏消息传播得慢的问题

    内部网关协议OSPF的组成图:

    wps5448.tmp

    版本:协议版本

    类型:(5种类型,见下文)

    分组长度:数据的长度(因为数据量小,所有不分片)

    路由器标识符:记录链接在路由器我的哪个端口上

    区域标识符:在自治系统的哪个区域

    检验和:校验首部对错

    鉴别类型:相当于加密操作,要鉴别的话有鉴别码(扩展知识)

    鉴别:鉴别码

    OSPF分组:OSPF分组首部+数据部分(之所以不叫报文叫分组是因为数据量小,一次可以全部发过去,不用分片)

    OSPF分组封装在IP数据报的数据部分

    IP数据报=IP数据报首部+IP数据报的数据部分

    OSPF:可靠洪泛法

     

    OSPF的5种分组类型:

    1. 问候分组:确定我们之间的链路有没有问题

    2. 数据库描述分组:和我相邻的路由器的链路的一些状态(路由表)

    3. 链路状态请求分组:请求你的路由表

    4. 链路状态更新分组:链路状态请求的返回分组(用洪泛法对全网更新链路状态)

    5. 链路状态确认分组:成功接收与否的状态,可靠算法的保证

     

    OSPF使用的可靠洪泛法:我收到这条链路状态更新分组之后,给发送方发一个确认分组(保证可靠),然后向与我相连的路由器发送收到的链路更新分组

     

    指定路由:管理该区域的路由,外面区域的信息传进来的时候,传给指定路由,由指定路由去完成接下来的工作

     

    OSPF内部网关协议支持的三种网络连接:

    1. 两个路由器之间的点对点连接

    2. 具有广播功能的局域网

    3. 无广播功能的广域网(一个自治系统是一个广域网)

     

    网络拓扑的表现形式:有向图形式,树形式

     

    外部网关协议之BGP协议(BGP4版)

    使用背景:因特网规模太大,在自治系统之间选择一条最佳的路径是不现实的,因为边界网关协议BGP只是力求寻找一条可以到达目的网络且比较好的路由,而不是要寻找一条最佳路由

    一个自治系统内部有一个BGP发言人,辅助交自治系统和自治系统之间的路由信息

     

    BGP交换路由信息的过程:先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换BGP发言人间的路由信息(因为TCP的可靠的)

     

    一个BGP发言人只和自己相邻的BGP发言人交换路由信息

    其实BGP外部网关协议类似RIP内部网关协议

     

    主干网自治系统管理地区自治系统,地区自治系统管理本地自治系统(看图):

    wps5449.tmp

    层次网络管理,主干网管理地区ISP,地区ISP管理本地ISP

    (就是你到达你的目的地,可以经过X,X,X.....)

    一个自治系统一般1个或者2个发言人

    BGP协议要记录整个路径(不仅记录下一跳,还要记录下一跳的下一跳)

    BGP协议的4种报文:

    1. 打开报文:用来与相邻的另一发言人建立关系(类似OSPF的问候分组)

    2. 更新报文:更新交互链路信息报文

    3. 保活报文:证实和邻站的关系(断了吗)

    4. 通知报文:保活报文的回复,告诉你我之间的状态

    IP多播(目的地址有多个,不是多个单播):明显减少网络资源的消耗

     

  • 相关阅读:
    Jni如何传递并且修改两个基础参数
    【转】对于JNI方法名,数据类型和方法签名的一些认识
    Android应用程序开机开机启动
    Android程序中Acticity间传递数据
    2014-7-6 学期总结
    程序员的美:极致与疯狂
    《重构:改善既有代码的设计》——关于代码注释的唠叨
    2014-5-5 近期小结和计划
    Android:RelativeLayout 内容居中
    图像处理:图像灰度化
  • 原文地址:https://www.cnblogs.com/yinbiao/p/10140104.html
Copyright © 2011-2022 走看看