网际协议IP
IP协议配套使用的协议有三个:
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
虚拟互联网
网络中的中间设备: 物理层--转发器
数据链路层--网桥/桥接器
网络层--路由器(很多文献将路由器也称为网关)
网络层以上--网关
分类的IP地址
IP地址及其表示方法:
发展阶段:分类的IP地址->子网的划分->构成超网
IP地址组成: IP地址 :: = {<网络号>,<主机号>}
"::="表示“定义为”,A类,B类,C类地址都是单播地址
A类、B类、C类的网络号字段分别为1个、2个、3个字节长;主机号分别为3个、2个、1个字节长。D类地址用于多播
IP地址不仅指明一台主机,还指明其连接的网络。
IP地址对于主机/路由器来说都是32位的二进制代码,为了提高可读性,通常将32位的IP地址中的每8位插入一个空格并将其转换为10进制,这种方法叫点分十进制记法。
IP地址的指派范围
IP地址的特点:
1.IP地址是一种分等级的地址结构(IP地址管理机构仅分配网络号,主机号由获得网络号的单位自行分配;路由器仅根据目的主机所连接的网络号来分组转发<减小内存开销>)
2.一台主机可以同时连接到两个网络上(不同IP且并不冲突),这种主机被成为多归属主机
3.用转发器和网桥连接起来的若干个局域网仍是一个网络
4.所有分配网络号的网络都是平等的
IP地址与硬件地址
物理地址是数据链路层和物理层使用的地址
IP地址是网络层和以上各层使用道德地址(逻辑地址)
1.在IP层抽象的互联网只能看到IP数据报
2.路由器只根据目的IP地址的网络号进行路由器选择
3.在局域网的链路层只能看到MAC帧
4.IP层抽象的互联网屏蔽了下层的复杂结构
地址解析协议ARP
每台主机都设有ARP高速缓存,里面有本局域网上各主机和路由器的IP地址到硬件地址的映射表,处理步骤如下:
1.ARP进程在局域网上广播一个ARP请求分组(内容见图)
2.局域网上所有主机的ARP进程都接收刀此ARP请求分组
3.主机B的IP地址与请求查询一致,其会收下在这个请求并向A发送响应分组
4.A收到B的响应分组后将其写入ARP高速缓存中
IP数据报的格式
版本:占4位,双方通信的版本必须一致(IPV4和IPV6)
首部长度:占4位(可表示最大十进制15)
区分服务:只有在使用区分服务时这个字段才起作用,一般情况下不会使用该字段
总长度:首部和数据之和的长度,总长度字段最常16位-->数据报的最大长度为65535字节;总长度不能超过数据链路层的MTU值,超过长度的话就要进行分片处理
标识:16位,IP软件在存储器中维持一个计数器,每产生一个数据报,计数器+1,并将其赋值给标识字段,用来标记数据报的先后
标志:占3位,但目前仅有两位有意义
标志字段中的最低位标记为MF,MF=1表示后米还有分片,MF=0表示这是最后一个分片
标志位中间一段标记为DF,意为“不能分片”,当DF=0时才允许分片
片偏移:占13位,某分片在原分组中的相对位置。
生存时间:占8位,缩写为TLL,表明数据报在网络中的寿命,每经过一个路由器就会将TTL减去此路由器消耗的时间,当TLL值为0时即丢掉这个数据报
协议:占8位,指出此数据报携带的数据使用何种协议
首部检验和:占16位,这个字段只检验数据部的首部(不包含数据部分)
源地址:占32位
目的地址:占32位
IP数据报首部的可变部分:一个选项字段,用来支持排错、测量以及安全等措施,长度从1-40个字节不等(取决于选择的项目)IPV6将此字段长度设为固定值
IP层转发分组的流程
1.从数据报首部提取目的主机的IP地址D,得出目标的网络地址N
2.若N与此路由器直连,则直接交付;否则执行步骤3,间接交付
3.若路由表中有目的地址为D的特定主机路由,则将数据报转给表中指明的下一跳转路由器,否则执行4
4.若路由表中没有到达网络N的路由,则把数据报传送给路由表上指明的下一跳转路由,否则执行5
5.肉表中有一个默认路由,则将数据报传送给路由表中指明的默认路由,否则执行6
6.报告转发分组错误
划分子网和构造超网
划分子网
从两级IP地址到三级IP地址
早期IP设计的不合理:①:IP地址空间的利用率有时很低。②给每个物理网络分配一个网络号会使得路由表变得太大。③两级路由表地址不够灵活
解决:在IP地址中添加一个“子网号字段”,这种做法叫划分子网/子网寻址/路由自由选择。
划分子网的基本思路
将一个单位所属的物理网络划分为若干个子网(单位内部行为,对外仍是一个网络)
从主机号中借用若干位作为子网号,处理完成后,IP地址::={<网络号>,<子网号>,<主机号>}
凡是发送给该单位的IP数据报,由该单位路由器接收后再按照网络号和子网号分配给目标主机
子网掩码
子网掩码用于携带子网划分信息,一般默认使用和网络号同位的1来作为掩码,只要将IP地址和子网掩码逐位取与(AND)即可得出网络
子网掩码是一个网络或一个子网的重要属性,路由器与相邻路由器交换信息时必须将自己所在的网络的子网掩码告诉相邻网络。
划分子网增加了灵活性,但减少了能够连在网络上的主机子总数
由IP地址计算网络地址(为255的段不进行处理)
无分类编制CIDR(构成超网)
CIDR的特点
1.消除了传统的A类、B类、C类地址以及划分子网的概念,可以更加有效的分配IPv4的地址空间(CIDR将32位的IP地址划分为前后两个部分、前面部分是网络前缀<用来指明网络>、后面部分用来指明主机->无分类的二极编址)
IP地址::={<网络前缀>,<主机号>}
2.CIDR将网络前缀都相同的连续IP地址组成一个CIDR地址块,我们只要知道CIDR地址块中的任意一个地址,即可知道该块中的起始地址和最大地址
CIDR还使用斜线记法,即在IP地址后面加入斜线 / ,然后协商网络前缀所占的位数
例如/20地址块的地址掩码为:11111111 11111111 11110000 00000000(20个1)
一个CIDR地址块中含有多个C类地址,这就是构成超网
最常前缀匹配
应当从匹配结果中选择具有最常网络前缀的路由;因为路由网络前缀越长,其地址块就越小,所以最常前缀匹配又称最长匹配或最佳匹配
网际控制报文协议ICMP
终点不可达:当路由器或主机不能交付数据报时就向源点发送此报文
时间超过:当路由器收到生存时间为0的数据报时,除了丢弃此数据报外,还需向源点发送此报文
参数问题:接收到数据报的首部中有字段值不正确时
改变路由(重定向):路由器发送此报文给主机,让主机知道下次应将数据报发送给其他路由器
以下情况不应发送ICMP错误报文
1.对ICMP差错报告报文
2.对第一个分片的错误的数据报的后续数据包
3.对具有多播地址的数据报
4.对具有特殊地址(如127.0.0.0或0.0.0.0)
常见的ICMP询问报文有两种
1.送回请求和回答
2.时间戳请求和回答
互联网路由选择协议
理想的路由算法
1.算法必须是正确和完整的
2.算法在计算上应简答
3.算法应能适应通信量和网络拓扑的变化(自适应)
4.算法应具有稳定性
5.算法应是公平的
6.算法应是最佳的
分层次的路由选择协议
1.内部网关协议:在一个自治系统内部选择路由的协议(域内路由选择)
2.外部网关协议:在不同自治系统之间选择路由的协议(域间路由选择)
内部网关协议RIP
是一种分布式的基于距离向量的路由选择协议(距离为跳数,每经过一个路由器跳数+1)
特点: 1.仅与相邻路由器交换信息
2.交换的信息是当前本路由器知道的全部信息(路由表)
3.按固定的时间间隔交换信息
距离向量算法
略
RIP协议的报文格式
RIP存在一个缺点:当网络出现故障时,要经过较长的时间才能将此信息送达所有路由器
内部网关协议OSPF(开放最短路径优先)
OSPF是分布式链路转台协议,有以下特点:
1.向本自治系统中所有路由器发送信息
2.发送的信息就是本路由器相邻的所有路由器的链路状态
3.只有当链路状态发生变化时才会发送
OSPF的五中分组类型
类型1,问候分组,用来发现和维持邻站的可达性
类型2,数据库描述分组,向邻站发送自己的链路状态数据库
类型3,链路状态请求分组,向对方请求发送某些链路状态项目的详细信息
类型4,链路状态更新分组,用洪泛法对全网更新链路状态
类型5,链路状态确认分组,对链路更新分组的确认
外部网关协议BGP
BGP协议只能找到一条较好的路由,而非找到一条最佳路线,其采用了路径向量路由选择协议。
配置BGP时,至少要选择一个路由器作为BGP发言人,往往是BGP边界路由器
路由器的构成
路由器结构
IPv6协议
IPv6的变化:
1.更大的地址空间
2.扩展的地址层次结构
3.灵活的首部结构
4.改进的选项
5.允许协议继续扩展
6.支持自动配置
7.IPv6首部改为8字节对其
IPv6数据报分为两个部分:基本首部+有效载荷(有效载荷允许零个或多个扩展首部)
版本:占4位,此字段应该为6
通信量类:占8位,区分不同类型或优先级
流标号:占20位,新的机制,支持资源预分配。允许路由器把每一个数据报与一个给定的资源分配相联系
有效载荷长度:占16位,最大值为64KB(65535)
下一个首部:占8位,相当于IPv4的协议字段
跳转限制:占8位,防止数据报在网络中无限期的存在下去
源地址、目的地址
IPv6的地址:
单播
多播
任播:任播的终点是一组计算机,但是数据报只会交付给其中一个(通常为距离最近的一个)
IPv6的表示
冒号十六进制记法
此方法还允许零压缩