在网络协议栈的第三层也就是网络层主要有三大组件,第一个组件是IP协议,包含着因特网中的编址和分组处理规则;第二个协议是选路组件,包含各种各样的选路协议;最后一个组件是ICMP协议,包含报告数据报中差错以及一些请求响应。首次可见IP协议在网络层中的重要性。
一、IP协议
IP是英文单词Internet Protocol的缩写,中文含义为网络中连接的协议,简称网际协议。网际协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。IP协议目前有两个版本,IPv4与IPv6.
二、IPv4数据报格式
三、IPv4分片
网络层的数据包最后还是要到链路层中进行下一步传输的,由于针对不同的协议,在链路层的MTU有不同的值,导致可能一个IP的数据报太大,不能一次性传输,所以就要根据MTU来执行分片算法,然后交给链路层进行发送,最终的接收方再对分片进行重组,然后上传给上层协议。但是分片可能会引发Dos攻击,IPv6允许在源和目的路由器进行分片,而不允许在中间路由器执行分片,哪怕是丢弃。
四、IPv4编址
每个IPv4的地址的长度是32比特,一共可以有2^32这么多的ip地址,ip地址一般以点分十进制的格式来表示,如192.168.1.1表示的IP地址二进制形式为11000000 10101000 00000001 00000001。IP地址在每个路由器的每个接口和每个主机上必须是全球唯一的,除非使用NAT技术。
子网掩码:比如1922.168.1.1/24的子网掩码就是255.255.255.0,因为这里的24表示的前面24位决定一个子网,所以子网掩码就是将前24位全部置位1,然后后8位全部
置0.。
为了解决IP不够用的问题,诞生了NAT技术,将ip地址分为公网地址和私网地址。公网地址是对全球开放,绝对不能出现两个相同的公网地址,而私网地址则是在一个局域网内使用,如果要个外网进行通信则必须通过NAT转换,经由路由器分配一个公网地址才能进行通信。
分类编址是将IP地址通过通过子网的大小划分为ABCDE五类地址,比较常见。
A类地址:
A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0.。所以A类地址网络号范围:1.0.0.0—126.0.0.0,私网地址范围为10.0.0.0-10.255.255.255,127.X.X.X是保留地址,用做循环测试用的。
B类地址:
B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10,B类地址网络号范围:128.0.0.0—191.255.0.0。私网地址范围为172.16.0.0—172.31.255.255。169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
C类地址:
C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。C类地址网络号范围:192.0.0.0—223.255.255.0。私网地址范围为:192.168.0.0-192.168.255.255。
D类地址:
D类地址不分网络地址和主机地址,它的第1个字节的前四位固定为1110。D类地址范围:224.0.0.0—239.255.255.255
E类地址: E类地址不分网络地址和主机地址,它的第1个字节的前五位固定为11110。 E类地址范围:240.0.0.0—255.255.255.254。
但是如果就用这几种子网划分方法,会造成大量的浪费,比如主机数刚好大于C类的主机数,那么不能用C类划分,只能用B类,但是B类的主机可用地址又太多,所以支持VLSM技术,可以在ABC类网络的基础上,进一步划分子网。
IP地址的分配:
每一次用主机接入网络的时候,DHCP协议都会自动为我们分配一个可用的ip,当然也可以自己手动设置,但是可能会ip冲突。
五、IPv6
IPv6是”Internet Protocol Version 6”的缩写,也被称作下一代互联网协议,它是由IETF小组(Internet工程任务组Internet Engineering Task Force)设计的用来替代现行的IPv4(现行的IP)协议的一种新的IP协议。他主要的特点是将IP地址由32位增加到了128位,这样可用的IP地址就有2^128之多,绝对够用了,其次对于分片的处理IPv6也和IPv4有所不同,最后就是数据报格式发生了很大的变化。