计算机网络——第四章 网络层


title: 计算机网络——第四章 网络层
tag: 计算机网络
category: 计算机网络
date: 2018-06-08


计算机网络——第四章 网络层

网络层提供的两种服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QG9Vr0Gf-1586740440291)(https://upload-images.jianshu.io/upload_images/4061843-7941af59033f70b5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]



网际协议IP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xnOBW9Wf-1586740440292)(https://upload-images.jianshu.io/upload_images/4061843-2e5169076ee137cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
ARP:地址解析协议
RARP:逆地址解析协议,与ARP配合使用
ICMP:网际控制报文协议
IGMP:网际组管理协议

分类的IP地址

唯一的标识,32位,点分十进制表示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG2eAwAe-1586740440293)(https://upload-images.jianshu.io/upload_images/4061843-40c8c11ff88955f4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  • A类地址:
    1、单播地址,前8位为网络id,第一位0固定,后24位为主机id,
    2、可指派网络数为126(2^7-2)个,全0表示本网络,是保留地址,全1(127)是本地环回地址,作为本地软件环回测试,即127不是一个网络地址
    3、主机号占3个字节(24位),最大主机数2^24-2,除去主机号为全0和全1的两个,全0的主机号表示本主机所连接的单个网络地址,全1表示该网络上的所有主机
    4、地址空间有2^31个,占所有的50%

  • B类地址:
    1、单播地址,前16位为网络id,前两位10固定,后16位为主机id
    2、只剩14位,所以不会出现全1或全0的情况,
    3、B类最小的地址是128.1.0.0,可指派网络数为2^14-1个,但是128.0.0.0不指派
    4、主机号占2个字节(16位),最大主机数是2^16-2,除去主机号为全0和全1的两个
    5、地址空间有2^30个,占所有的25%

  • C类地址:
    1、单播地址,前24位为网络id,前三位110固定,后8位为主机id
    2、可指派网络数为2^21-1,其中192.0.0.0不指派,最小网络地址为192.0.1.0
    3、主机号占一个字节(8位),最大主机数是2^8-2,除去主机号为全0和全1的两个
    4、地址空间2^29个,占所有的12.5%

  • D类地址:
    多播地址,前四位1110固定

  • E类地址:
    保留地址,前四位1111固定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hjOQFcnG-1586740440296)(https://upload-images.jianshu.io/upload_images/4061843-20aa4aff1db9ced2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  • IP的特点
    (1)IP地址由网络号和主机号两部分组成,路由器仅根据目的主机所连的网络号来转发分组
    (2)IP地址是标志一台主机(或路由器)和一条链路的接口,当处于不同的网络时,应该有不同的网络号,一个主机可以同时具备多个网络号(多归属主机)
    (3)一个网络是指具有相同的网络号net-id的主机的集合,因此用转发器或网桥连接起来的若干个局域网仍为一个网络,不同网络号的网络或局域网必须使用路由器连接,也就是说网络的划分根据网络号,而且必须是使用路由器进行连接

IP地址和硬件地址

IP地址:网络层和以上各层使用的地址,是逻辑地址,放在IP数据报的首部
硬件地址:数据链路层和物理层使用的地址,放在MAC帧的首部

地址解析协议ARP

在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,每一个映射地址有一定的生存时间,定期更新

ARP是解决同一个局域网上的主机或路由器的IP到硬件地址映射的问题,

(1)ARP进程在本局域网上广播一个ARP请求分组,请求分组中包含自己的硬件地址和IP地址
(2)本局域网上的所有主机运行的ARP进程都会收到
(3)如果某个主机的IP地址和ARP请求分组中要查询的IP一致,就会收下这个ARP,在自己的ARP高速缓存中写入源主机的IP到硬件地址的映射,并向源主机发送ARP响应分组(单播),同时在这个响应分组中写入自己的硬件地址
(4)源主机收到ARP响应分组后,在ARP高速缓存中写入该主机的IP到硬件地址的映射

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pSuL7uJP-1586740440299)(https://upload-images.jianshu.io/upload_images/4061843-1a6d0b557b8789ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

ARP的四种典型情况
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfGg9ns8-1586740440300)(https://upload-images.jianshu.io/upload_images/4061843-a7273b1467cf7f87.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
(1)发送方是主机(H1),要把IP数据报发送到同一个网络上的另一个主机(H2)。这时H1发送ARP请求分组(在网1上广播),找到H2的硬件地址
(2)发送方是主机(H1),要把IP数据报发送到另一个网络的主机(H3或H4)。这时H1发送ARP请求分组(在网1上广播),找到网1上的路由器R1的硬件地址。剩下的工作交由R1完成(3)、(4)
(3)发送方是路由器(R1),要把IP数据报发送给同一网络(网2)上的主机(H3)。这时R1发送ARP请求分组(在网2上广播),找到H3的硬件地址
(4)发送方是路由器(R1),要把IP数据报转发到网3的一个主机(H4)。这时R1发送ARP请求分组(在网2上广播),找到R2的硬件地址,剩下的由R2完成

IP数据报的格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v7nD0lbx-1586740440301)(https://upload-images.jianshu.io/upload_images/4061843-ad708055fcdc594e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  1. 版本:占4位,IP协议的版本,通信双方版本必须一致,IPv4或IPv6
  2. 首部长度:4位,可表示的最大十进制数是15,首部长度所表示数的单位是32位字,IP首部的固定长度为20字节,所以首部长度字段的最小值为5(0101)。当首部长度为最大值15(1111)时,表明首部长度达到最大值15个32位字长,即60字节。当首部长度不是4字节的整数倍时开始,必须使用最后的字段加以填充。因此IP数据报的数据部分永远在4字节的整数倍开始
  3. 区分服务:8位,用来获得更好的服务
  4. 总长度:16位,首部和数据之和的长度,单位为字节。因此数据报的最大长度为2^16-1=65535字节
  5. 标识:16位,计数器,用于分片后组装成原来的数据报
  6. 标致:3位,目前只有2位有意义
    1、MF:最低位,为1时表示后面还有分片,为0时表示最后一个
    2、DF:不能分片,DF=0时才允许分片
  7. 片偏移:13位,较长的分组在分片后,某片在原分组中的相对位置,以8个字节为偏移单位,也就是说每个分片的长度一定是8字节的整数倍
  8. 生存时间:8位,TTL,数据报在网络中的寿命
  9. 协议:8位,使用何种协议
  10. 首部检验和:16位,只检验数据报的首部,不检验数据部分
  11. 源地址:32位
  12. 目的地址:32位

分组转发

算法:
(1)从数据报的首部提取目的主机的IP地址D,得到目的网络地址N
(2)若N是与此路由器直接相连的某个网络地址,则直接交付,不需要经过其他的路由器,直接给目的主机。否则间接交付,执行(3)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中指明的下一跳路由器,否则执行(4)
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中指明的下一跳路由器,否则执行(5)
(5)若路由表中有一个默认路由,则把数据报传送给路由表中指明的默认路由,否则执行(6)
(6)报告转发分组出错


划分子网和构造超网

划分子网

  • 划分
    从网络的主机号借用若干位作为子网号(subnet-id),不改变原来的网络号,将两级IP地址在本单位内部变为三级IP地址:网络号、子网号、主机号
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SPK0XHIP-1586740440303)(https://upload-images.jianshu.io/upload_images/4061843-9a079a664b749fc2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  • 子网掩码
    image.png

把子网掩码和IP地址进行逐位的“与运算”就能得出网络地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H77tTUTd-1586740440305)(https://upload-images.jianshu.io/upload_images/4061843-94a875a0edeb1a60.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

默认子网掩码:
1、A类:255.0.0.0或0xFF000000
2、B类:255.255.0.0或0xFFFF0000
3、C类:255.255.255.0或0xFFFFFF00
常见划分(B类)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nKp1Q6TY-1586740440307)(https://upload-images.jianshu.io/upload_images/4061843-6610fa6f6232f1ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
image.png

  • 使用子网时的分组转发
    (1)获取目的IP地址D
    (2)判断是否为直接交付。对路由器直接相连的网络进行逐个检查:用个网络的子网掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付,否则间接交付,执行(3)
    (3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表指明的下一跳路由器,否则执行(4)
    (4)对路由表中的每一行(目的网络地址、子网掩码、下一跳地址),用其中的子网掩码和D逐位相“与”,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给指明的下一跳路由器,否则执行(5)
    (5)若路由表中有一个默认路由,则把数据报传送给指明的默认路由器,否则执行(6)
    (6)报告转发分组出错

无分类编址CIDR(构造超网)

特点:
(1)CIDR消除了传统的A类、B类、C类地址及划分子网的概念
IP地址={<网络前缀>,<主机号>},还可以用斜线记法,“\”后面的数字就是地址掩码中1的个数
(2)CIDR把网络前缀都相同的连续IP地址组成一个CIDR地址块
image.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wlAzaTGW-1586740440311)(https://upload-images.jianshu.io/upload_images/4061843-b5095ecb1c5ec9ca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GbsSxE4Q-1586740440311)(https://upload-images.jianshu.io/upload_images/4061843-8c656afe34a7645e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

最长前缀匹配:
匹配结果中选取网络前缀最长的路由

二叉线索查找路由表


网际控制报文协议ICMP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7byZ21gQ-1586740440313)(https://upload-images.jianshu.io/upload_images/4061843-8b7ce032e26ddd01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pfBCbVvb-1586740440314)(https://upload-images.jianshu.io/upload_images/4061843-e59aac4bc6d804cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

  • ICMP差错报告报文
    (1)终点不可达:当路由器或主机不能交付数据报时就像源点发送终点不可达报文
    (2)时间超时:当路由器收到生存时间为0的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片丢弃,并向源点发送时间超过报文
    (3)参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
    (4)改变路由(重定向):路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器

不应发送ICMP差错报文的情况:
1、对ICMP差错报告报文,不再发送ICMP差错报告报文(不对自身发送)
2、对第一个分片的数据报片的所有后续数据报片,都不发送ICMP差错报告报文(对一个IP数据报只发一次ICMP差错报告报文)
3、对具有多播地址的数据报,都不发送
4、对具有特殊地址的数据报,不发送

  • ICMP询问报文
    (1)回送请求和回答:ICMP回送请求报文是主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。用来测试是否可达及了解其有关状态
    (2)时间戳请求和回答:ICMP时间戳请求报文是请某台主机或路由器回答当前的日期和时间。可用于时钟同步和时间测量

  • ICMP应用举例
    1、PING:从应用层直接到ICMP,没有通过TCP或UDP,使用了ICMP回送请求与回送回答报文
    2、traceroute


路由选择协议

内部网关协议IGP

即在一个自治系统内部使用的路由选择协议

  • RIP
    分布式的基于距离向量的路由选择协议,距离也叫“跳数”,每经过一个路由器,跳数+1,距离+1,RIP允许一条路径最多经过15个路由器,距离=16为不可达
    特点:
    1、仅和相邻路由器交换信息
    2、交换的信息是当前路由器的路由表
    3、固定时间间隔交换信息
    距离向量算法:
    (1)对地址为X的相邻路由发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”的值都+1(解释1),每一个项目都有三个关键数据:到目的网络,距离是d,下一跳路由器是X
    (2)对修改后的RIP报文中的每一个项目,进行以下步骤:
    若原来的路由表中没有目的网络N,则把该项目添加到路由表中(解释2);否则(没有N,查看下一跳的路由器)若下一跳路由器地址是X,则把收到的项目替换原路由表中的项目(解释3),否则(这个项目是到目的网络N,但下一跳不是X)若受到的项目中的距离d小于路由表中的距离,则进行更新(解释4),否则什么也不做
    (3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器(距离设置为16)
    (4)返回
    image.png
    查看目的网络,比较下一跳,再决定是否更新距离
    报文格式:
    image.png
  1. 首部:4个字节,1表示请求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由更新报文,后面的必为0是为了4字节的对齐
  2. 路由部分由若干路由信息,每个路由信息需要用20个字节
  3. 路由信息:
    1、地址标识符(地址类别):使用的地址协议,2表示IP地址
    2、路由标记:填入自治系统好ASN
    3、网络地址:
    4、子网掩码:
    5、下一跳路由器地址:
    7、到此网络的距离
  4. 一个RIP报文最多包括25个路由,最大长度4+20*5=504字节
  5. RIP2具有简单的鉴别功能
  • OSPF
    开放最短路径优先,分布式的链路状态协议
    特点:
    (1)向本自治系统中所有路由器发送信息,洪泛法
    (2)发送的信息就是与本路由器相邻的所有路由器的链路状态
    (3)只有当链路状态发生变化时,才再次洪泛更新
    (4)允许管理员给每条路由指派不同的代价
    (5)如果同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路由(负载平衡)
    (6)所有OSPF交换的分组都具有鉴别功能
    (7)支持可变长度的子网划分和无类的编址CIDR
    (8)OSPF让每一个链路状态带上一个32位序号,表示链路状态的新旧程度,序号越大越新
    OSPF分组:
    不用UDP而是直接用IP数据报发送(IP协议字段89)
    image.png
    (1)版本:当前2
    (2)类型:可以是5中类型分组中的一种
    (3)分组长度:包含首部在内的分组长度,字节为单位
    (4)路由标识符:标志发送该分组的路由器的接口的IP地址
    (5)区域标识符:分组属于的区域的标识符
    (6)检验和:检验分组的差错
    (7)鉴别类型:0不用口令,1口令
    (8)鉴别:
    五种分组类型:
    (1)类型1:问候分组(Hello),用来发现和维持邻站的可达性
    (2)类型2:数据库描述分组(Database Description),向邻站给出自己的链路状态数据库中所有链路状态项目的摘要信息
    (3)类型3:链路状态请求分组(Link State Request),向对方请求发送某些链路状态项目的详细信息
    (4)类型4:链路状态更新分组(Link State Update),用洪泛法对全网更新链路状态
    (5)类型5:链路状态确认分组(Link State Acknowledgement),对链路更新分组的确认
    支持的网络类型:
    (1)点对点,T1、SONET、DS-3
    (2)Broadcast
    (3)NBMA:ATM、X.25、FR
    (4)虚链路

外部网关协议EGP

源主机和目的主机处于不同的自治系统中,跨越自治系统

  • BGP
    边界网关协议,采用了路径向量路由选择协议,树形结构,TCP连接
    特点:
    (1)BGP协议交换路由信息的结点数量级是自治系统数的量级
    (2)每一个AS中BGP发言人很少
    (3)支持CIDR
    (4)刚运行,BGP的邻站是交换整个BGP路由表
    4种报文:
    (1)OPEN报文,用来与相邻的另一个BGP发言人建立关系,使通信初始化
    (2)UPDATE报文,用来通告某一路由信息,以及列出要撤销的多条路由
    (3)KEEPALIVE报文,用来周期性的证实邻站的连通性,19字节长
    (4)NOTIFICATION报文,用来发送检测到的差错
    报文格式:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcDMhi8u-1586740440318)(https://upload-images.jianshu.io/upload_images/4061843-bf28c98957b7c11e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
    通用首部:19字节
    1、标记:16字节,用来鉴别收到的BGP,不使用鉴别时,全1
    2、长度:包括首部在内的整个BGP报文以字节为单位的长度,最小值为19,最大值4096
    3、类型字段:1~4

路由器的构成

转发分组,具有多个输入端口和多个输出端口的专用计算机

  • 路由选择:按照分布式算法,动态的改变所选择的路由

  • 分组转发:根据转发表转发

  1. 交换结构:

  2. 输入端口:若助理分组的速率赶不上分组进入队列的速率,队列的存储空间会减小到0,当没有存储空间时,后面的分组就会被丢弃,同时告诉发送方减小发送速率

  3. 输出端口:

发布了43 篇原创文章 · 获赞 10 · 访问量 6998

猜你喜欢

转载自blog.csdn.net/baidu_36959886/article/details/105481387
今日推荐