目录
IP(Internet Protocol,网际协议)主要负责将数据包发送给最终的目标计算机。
IP(IPv4、IPv6)相当于OSI中的网络层
网络层和数据链路层的区别:
在一次旅游中,从A到达D目的地,需要换乘飞机、火车经过B和C,A-B-C-D,此时从A到D就类似网络层,而之间的A-B、B-C、C-D这些区间内就类似于数据链路层
IP是实现多个数据链路之间通信的协议,数据链路的地址可以抽象为IP地址
基础介绍
IP地址
IP地址用于连接到网络中的所有主机中识别出进行通信的目标地址,所有主机和路由器都必须设定自己的IP地址
路由控制(Routing)
路由控制是将分子数据发送到最终目标地址的功能。
IP包在网络中一个个跳间(Hop,指网络中一个区间)转发,在每一个区间内指定IP包在下一跳被转发的路径
路由控制表
为了将数据包发给目标主机,所有主机都维护着一张路由控制表(Routing Table),数据包的移动需要路由控制表的指导
IP地址相关
由32位正整数表示,IP地址分配给每一个参与通信的设备,以8位为一组,分成四组,如172.25.254.1
IP地址由网络标识和主机标识组成,基本以子网掩码进行区分。
- A类地址
首位以0开头,第1到8位是网络标识,后24位是主机标识,0.0.0.0~127.0.0.0是A类网络地址
- B类地址
前两位是“10”,1到16位是网络标识,后十六位是主机标识,128.0.0.1~191.255.0.0
- C类地址
前三位是“110”,1到24位是网络标识,192.168.0.0~239.255.255.0
- D类地址
前四位“1110”,1到32位是网络标识,没有主机标识,常用于多播通信
广播地址
用于在同一个链路中相互连接的主机之间发送数据包,IP地址中主机部分全部设置为1就是广播地址。广播无法穿过路由
本地广播:在本网络内的广播叫本地广播,不会到达其他链路上
直接广播:在不同网络间的广播,发送给其他链接的广播数据包,该网段的设备都可以得到数据包
IP多播
多播用于将包发给特定组内所有主机,直接使用IP协议,不存在可靠传输
多播使用D类地址,从224.0.0.0到239.255.255.255都是多播地址范围
目前普遍使用设置私有地址,通过少数全局IP地址的代理服务器结合NET进行网络通信
路由控制
路由表
- 静态路由控制:管理员手动设置
- 动态路由控制:路由器与其他路由器相互交换信息时自动刷新
路由表记录着网络地址和下一步发送至路由器的地址。发送IP数据报时,应该确定IP包首部的目标地址,再从路由控制表中找到该地址相同的网络地址记录,将IP包转发给下一个路由器,再去寻找其他网段的目标主机设备
- 默认路由
默认路由是路由表中任何一个地址都能与之匹配的记录,一般是0.0.0.0/0或default
- 主机路由
“IP地址/32”称为主机路由,整个IP地址所有位都参与路由,多用于不希望通过网络地址路由的情况
- 环回路由
同一台计算机上的程序之间进行网络通信时所使用的一个默认地址,一般有一个特殊的IP地址127.0.0.1作为环回地址。
路由汇总(Aggregation)
路由汇总是利用网络地址的比特分布进行有效的分层配置。对内即使有多个子网掩码,对外呈现出的也是同一个网络地址,可以有效减少路由表的条目。
也可以将已知的路由信息传送给周围其他的路由器,以控制路由信息。
IP分割与再构成
MTU
每个不同类型的数据链路使用目的不同,所以他们的最大传输单元(MTU)不同
IP分片重组
当IP数据包超过MTU无法再一个帧中发送出去,就会对IP分片进行处理,而分片重组时,必须由目标主机进行
IP首部中的片偏移就是分片数据在原始数据报中的位置及之后是否还有分片
在分片处理中,某个分片的丢失会造成整个数据包的作废,采用“路径MTU发现”应对这个问题
路径MTU(Path MTU)是从发送端主机到接收端主机之间不需要分配的最大MTU大小,
路径MTU发现是从发送主机按照路径MTU大小将数据包分片进行发送,可以避免在中途路由器上进行分片处理。