计算机网络--知识点总结2(网络层)

一、概述

功能:
主要解决不同局域网之间的数据传输
内容:
网络层IP协议:IP协议、子网划分、简单路由过程
网络层其他协议:ARP协议与RARP协议、ICMP协议
IP路由算法:路由的概述、内部网关路由协议、外部网关路由协议

二、IP协议

1、虚拟互连网络

  • 物理设备通过使用IP协议,屏蔽了物理网络之间的差异
  • 当网络中的主机使用IP协议连接时,则无需关注细节
  • IP协议使复杂的实际网络变为一个虚拟互连的网络
  • IP协议使网络层可以屏蔽底层细节而专注网络层的数据转发
  • IP协议解决了在虚拟网络中数据报传播路径的问题

2、IP协议

  • IP地址长度为32位,分为4个8位
  • IP地址常使用点分十进制来表示
  • 用这种方法最多可以表示2^32=42亿个不同IP地址
  • IP地址在根据所处的网域不同而不同

1)IP数据报头部

计算机网络--知识点总结2(网络层)

这里每一行都占32位4个字节,必须有的为5行,所以IP地址首部最少为20个字节;
版本:占4位,指IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6;
首部位长度: 占4位,最大数值为15(16进制,所以首部最大数值为15X4=60),表示IP首部长度,单位是32位字,即4个字节;
总长度: 占16位,最大数值位65535,表示IP数据报总长度(IP首部+IP数据),但是数据链路层中的MTU(最大传输单位)是1500,65535远远超过1500,所以在实际传输过程中,如果IP数据报长度超过1500,数据链路层会将IP数据报分片传送;
标识: 是协议内部具体使用,无需了解
标志: 占3位,只用2位是有意义的,标志IP报文是否要分段;
片偏移: 如果IP报文超过1500,需要分段传送时,片偏移表示当前传送的是报文的第几个片段;
TTL: 占8位,表示IP数据报文在网络中的寿命,没经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文;为了防止报文在网络中找不到目的地址而无限传输,占用网络带宽
协议: 占8位,表示IP数据报所携带的具体数据是什么协议(如:TCP、UDP);

协议名 ICMP IGMP IP TCP UDP OSPF
字段值 1 2 4 6 17 89

以上为可使用的不同协议,为每个协议赋不同的值来表示
首部校验和: 占16位,校验IP首部是否有出错,如果有错误,直接丢弃;
源IP地址: 占32位,发送端的IP地址;
目的IP地址: 占32位,接收端的IP地址;

2)IP协议的转发流程

计算机A—路由器A–网络1—路由器B–网络2—计算机B 通过逐跳的形式到达

i、路由表简介

类似于MAC地址表(计算机/路由器都拥有路由表)

目的IP地址 吓一跳IP地址
IP1 IP2
IP3 IP4
ii、IP协议的转发流程

实例说明:
计算机A—>路由器E—>计算机D,路由器F—>计算机C,计算机B
这里计算机A向计算机C发送数据报文
第一步:

  • A发出目的地址为C的IP数据报,查询路由表发现下一跳为E
  • A将IP数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址是E(通过ARP协议转化)
  • 数据链路层填充源MAC地址A和目的MAC地址E
  • 数据链路层通过物理层将数据发送给E

第二步:

  • E的数据链路层接收到数据帧,把帧数据交给网络层
  • E ** 查询路由表,发现下一跳为F**
  • E ** 把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为F**
  • E的数据链路层封装数据帧并发送

第三步:

  • F的数据链路层接收到数据帧,把数据帧交给网络层
  • F查询路由表,发现下一跳为C
  • F把数据报交给数据链路层,通过ARP缓存表获得MAC地址,并告知目的MAC地址为C
  • F的数据链路层封装数据帧发送

数据帧每一跳的MAC地址都在变化
IP数据报每一跳的IP地址始终不变

3、ARP协议与RARP协议

1)ARP协议

ARP(Address Resolution Protocol)地址解析协议

网络层IP32位地址—> 通过ARP协议转化—> 数据链链路层MAC48位地址

ARP缓存表

IP地址 MAC地址
192.168.83.254 00-50-56-e0-33-40
  • ARP缓存表是ARP协议和RARP协议运行的关键
  • ARP缓存表缓存了IP地址和MAC地址的映射关系
  • ARP缓存表的记录并不是永久有效的,有一定的期限
  • 命令行中通过arp -a查询ARP缓存表

ARP协议在数据报文中的位置:
数据报文:

目的地址 源地址 类型 帧数据 CRC
6 6 2 46~1500 4

其中,ARP协议存放在帧数据中:

类型0806 ARP请求/应答 PAD
2 28 18

其中,ARP请求/应答包括:

硬件类型 协议类型 标记 发送端以太网地址 发送端IP地址 目的端以太网地址 目的端IP地址
2 2 4 6 4 6 4

两种情况
1、ARP缓存表中有IP地址和MAC地址的映射关系,则网络层将数据报表交给数据链路层时,通过查询ARP缓存表,获得目的计算机的MAC地址
2、ARP缓存表中没有目的计算机的IP地址和MAC地址的映射关系,目的计算机的IP地址以广播的形式发送给除源计算机的端口,目的计算机收到后将自己的MAC地址发送给发送端口,并将此映射关系添加到ARP缓存表

2)RARP协议

  • RARP(Reverse Address Resolution Protocol)逆地址解析协议
  • 与ARP协议相反
  • 数据链路层MAC48位地址–> RARP协议转换 --> 网络层IP32位地址

RARP协议在报文中的位置与ARP协议相同:
都在帧数据中:

类型8035 RARP请求/应答 PAD
2 28 18

3)小结

  • ®ARP协议是TCP/IP协议栈里面基础的协议
  • ARP和RARP的操作对程序员是透明的,虽然存在但是就像不存在一样
  • 理解R(ARP)协议有助于理解网络分层的细节,辅助网络层和数据链路层对IP地址和MAC地址的转换

4、IP地址的子网划分

1)分类的IP地址

i、概念

为了更好的规划和分类IP地址
IP地址一共32位:

网络号 主机号

A类地址:

网络号(0开头) 主机号
8位 24位

B类地址:

网络号(10开始) 主机号
16 16

C类地址:

网络号(110开头) 主机号
24位 8位

D类地址:1110开头,用于特殊用途
E类地址:1111开头,用于特殊用途

ii、子网的运算
最小网络号 最大网络号 子网数量 最小主机号 最大主机号 主机数量
A 1 127(01111111) 2^7-2 0.0.1 255.255.254 2^24-2
B 128.1 191.255 2^14-1 0.1 255.254 2^16-2
C 192.0.1 223.255.255 2^21-1 1 254 2^8-2

需要排除的网络号和主机号
特殊的主机号:

  • 主机号全0表示当前网络段,不可分配给特定主机
  • 主机号为全1表示广播地址,向当前网络段所有主机发送消息

特殊的网络号:

  • A类地址**网络段全0(00000000)**表示特殊网络
  • A类地址**网络段后7位全1(011111111:127)**表示回环地址
  • B类地址**网络段(10000000.00000000:128.0)**是不可使用的
  • C类地址**网络段(192.0.0)**是不可使用的

其中,回环地址(127.0.0.1),通常称为本地回环地址,不属于一个有类别地址类,代表设备的本地虚拟接口,只要计算机开机,这个地址就是通的,永远不会宕掉;因此在安装网卡之间可以ping通这个本地回环地址,用来检查本地网络协议、基本数据接口是否正常。

运算举例举例:
125.125.3.60 ---->前8位:01111101 属于A类,因为首位为0
163.70.31.23 —>前8位: 10100011 属于B类,因为开头位10
210.36.127.11 -->前8位:11010010 属于C类,因为开头为110

2)划分子网

3)无分类编址CIDR