网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,网络层不提供服务质量的承诺
网际协议IP
IP协议与四个协议配套使用
- 地址解析协议ARP(Address Resolution Protocol)
- 逆地址解析协议RARP(Reverse Address Resolution Protocol)
- 网际控制报文协议ICMP(Internet Control Message Protocol)
- 网际组管理协议IGMP(Internet Group Management Protocol)
IP地址
- 分类的IP地址
- 子网的划分
- 构成超网
现在广泛使用无分类IP地址
A类地址能分配的网络号得减去全0(本网络00000000)和127(本地软件环回测试01111111)。主机发送一个环回地址的IP数据报,本主机的协议软件处理数据,不会发送到网络。主机数也得减去全0(本主机)和全1,全0代表本主机连接到的单个网络地址,全1表示所有网络上的所有主机
B类地址能分配的网络号得减去全0(10000000),主机数减去全0和全1C类地址能分配的网络号得减去全0(11000000),主机数减去全0和全1
地址解析协议ARP和逆地址解析协议RARP
知道IP地址,找到相应的物理地址----ARP地址解析协议
知道MAC地址,找到对应的IP地址----RARP逆地址解析协议,由于现在DHCP协议已经包含了RARP协议,单独用RARP协议很少了,所以不介绍ARP地址解析协议在主机的ARP高速缓存动态维护一个IP地址到硬件地址的映射表。注意这个映射表也只包含本局域网内的主机和路由器ip地址到硬件地址的映射表。发送ip数据报的时候,先查表,如果表中没有,就在本局域网内广播发起一个ARP请求分组,请求中写好本主机或者路由器IP到物理地址的映射和想要获取目的地物理地址的IP。收到这个请求的主机或路由器,如果IP和请求中描述一致,就将对方的映射信息记录下来,并且把自己的映射信息发送回去。这样的信息每一条都设置了生存时间,过期后就删除
IP数据报
版本号:现在是4(ipv4),以后可能会用6(ipv6)
首部长度:乘以4等于整个首部的字节数区分服务:基本没怎么用总长度:首部和数据之和的长度,虽然允许填写的最大长度为65535,但是数据链路层一般都有最大传输单元MTU(Maximum Transfer Unit)的限制,所以实际并不会填那么大。IP数据报长度不能小于576,不得大于1500标识:分片的时候,相同标识字段的值可以重装成原来的数据报标志:一共三位,最低为为1,表示还有分片,中间为为1时,表示不能分片,只有当中间位是0时,才允许分片片偏移:该字段乘以8,等于该片在原数据的起点。也就是说每个分片长度都是8的整数倍生存时间:数据报的源点设置数据报在网络的寿命协议:上层使用的协议类型首部校验和:首部16位一组,反码运算求和,得到校验和。接受到IP数据报后再反码运算求和,如果为0,则保留,否则丢弃。具体方法参考源地址:32位目的地址:32位
IP层转发分组的流程
注意:IP数据报的首部没有用来标明下一跳路由器的IP地址,IP数据报中始终标明的是源IP和目的IP,那么怎么找到下一跳路由器呢?路由器查找路由表,找到下一跳路由器的IP地址后,使用ARP协议将IP地址转换成硬件地址,将硬件地址放在MAC帧的首部,根据硬件地址找到下一跳路由器。
分组转发算法如下:
1.根据数据报目的主机IP地址D,取出网络地址N2.如果N是与路由器直接相连的网络,直接交付给目的主机3.如果路由表中有目的地址为D的特定主机路由,传递给这个路由器4.如果有到达网络N的路由,给下一跳路由5.若有默认路由,给默认路由6.报告转发分组出错
划分子网和超网
早期的分类IP地址设计不合理,原因如下
- IP地址利用率低,A类地址,主机数超过1000万,B类网络地址主机数超6万,然而很多网络并没有那么多主机
- 每个物理网络一个网络号,路由表需要维护的项目太多,网络性能会变坏
- 不灵活,不方便临时增加网络。
划分子网的基本思路:
- 拥有许多物理网络的单位,将所属的物理网络划分若干子网。本单位外的网络看不见子网,对外表现为一个网络
- 从网络的主机号借用若干位为子网号,IP地址=<网络号><子网号><主机号>
- 其它网络发给本单位的IP数据报,仍然是根据IP数据报网络号找到连接在本单位网络的路由器,但该路由器收到IP数据报之后,再按目的网络号和子网号找到子网,交付给目的主机
子网掩码
一个数据报并没有记录子网信息的地方。所以路由器要使用子网掩码,来计算网络号。现在路由器和相邻路由器交换路由信息时,需要把自己所在网络的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还要给出该网络子网掩码。
路由器分组转发算法在有子网掩码的情况下,步骤2和4更改为将地址D与路由表每一项与操作之后,再比较是否匹配无分类编址CIDR(Classless Inter-Domain Routing)(划分超网)
CIDR最主要的特点
- IP地址=<网络前缀><主机号>206.0.64.0/18
- 把网络前缀都相同的连续IP地址组成一个CIDR地址块
在应用了无分类编址后,查找路由表可能不止得到一个匹配结果,我们选择具有最长网络前缀的路由,叫作最长前缀匹配
路由选择协议
- 静态路由选择策略
- 动态路由选择策略
又分为
- 内部网关协议IGP,常用的RIP、OSPF
- 外部网管协议EGP,常用的EGP
RIP协议
- 仅和相邻路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息,自己的路由表
- 固定时间间隔交换路由信息
距离向量算法
- 对X发来的RIP报文,下一跳字段地址改为X,距离字段加1,每一项:目的网络N,距离是d,下一跳是X
- 原来没有的目的网络N,添加进去,否则看下一跳地址,如果是X,替换,否则判断距离d和当前地址的大小关系,如果小,就替换
- 如果3分钟还没收到,就不可达,距离设置为16(最大的跳数为15,超过15就表示不可达)