网络基础知识-IP协议
IP
IP作为整个TCP/IP中至关重要的协议,主要负 责将数据包发送给最终的目标计算机。因此,IP能够让世界上任何两台计算机之间进行通信。
路由控制
路由控制Routing是指将分组数据发送到最终目标地址的功能。即使网络非常复杂,也可以通过路由控制确定到达目标地址的通路。一旦这个路由控制的运行出现异常,分组数据极有可能“迷失”,无法到 达目标地址。因此,一个数据包之所以能够成功地到达最终的目标地址,全靠路由控制。
当某个IP包到达路由器时,路由器首先查找其目标地址,从而再决定下一步应该将这个包发往哪个路由器,然后将这个包发送出。当这个IP包到达那个路由器以后,会再经历查找下一个目标的过程,并由该路由转发给下一个被找到的路由器。这个过程可能会反复多次,直到找到最终的目标地址将数据包发送给这个节点。
路由控制表
为了将数据包发给目标主机,所有主机都维护着一张路由表。该表记录着IP数据在下一步应该发给哪个路由器,IP包将根据这个路由表各个数据链路上传输。
IP地址的基础知识
IP地址由网络和主机两部分标识组成
IP地址由“网络标识(网络地址)”和“主机标识(主机地址)”两部分组成。
【192.168.128.10/24中 的“/24”表示从第1位开始到多少位属于网络标识】
网络标识在数据链路的每个段配置不同的值。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP地址的“主机标识”则不允许在同一个网段内重复出现。 由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的IP地址都不会相互重叠。即IP地址具有了唯一性。
IP地址的分类
IP地址分为四个级别,分别为A类、B类、C类、D类(还有一个一直未使用的E类。)
它根据IP地址 中从第1位到第4位的比特列对其网络标识和主机标识进行区分。
- A类地址: A类地址是首位以“0”开头的地址,从第一位到第八位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0是A类的网络地址。A类地址的后24位相当于主机标识。因此,一个网段内可容纳的主机地址上限为1677724个
- B类地址: B类地址是前两位以‘10’开头的地址。从第一位到第八位是它的网络标识。用十进制表示的话,128.0.0.0~192.255.0.0是A类的网络地址,B类地址的后16位为主机地址。因此,一个网段内可容纳65535个主机
- C类地址: C类地址是前三位为‘110’的地址。从第一位到第第二十四位它的网络标识。用十进制表示的话,192.0.0.0~223.255.255.0是C类的网络地址。C类地址的后八位相当于主机标识。因此一个网段内可容纳的主机地址上限为254个。
- D类地址: D类地址表示前四位为“1110”的地址。从第1位到第32位是它的网络标识。用十进制表示的话,224.0.0.0~239.255.255.255是D类的网络地址。D类地址没有网络标识,常被用于多播。
广播地址
广播地址用于在同一个链路相互链接的主机之间发送数据包。将IP地址中的主机地址部分全部设置为1,就成了广播地址。例如把172.20.0.0/16用二进制表示如下:
10101100.00010100.00000000.0000000(二进制)
将这个地址的主机部分全部改为1,则形成广播地址:
10101100.00010100.11111111.11111111(二进制)
再将这个地址用十进制表示,则为172.20.255.255。
两种广播
广播分为直接广播和本地广播两种。
在本网络内的广播叫做本地广播。例如网络地址为192.168.0.0/24的情况下,广播地址是192.168.0.255。因为这个广播的IP包会被路由屏蔽,所以不会到达192.168.0.0/24以外的其他链路上。
在不同网络之间的广播叫做直接广播。例如地址为192.168.0.0/24的主机向192.168.1.255/24的目标地址发送IP包。收到这个包的路由器,将数据转发给192.168.1.0/24,从而使得所有192.168.1.1~192.168.1.254的主机都能收到这个包。
全局地址和私有地址
起初 ,互联网中的任何一台主机或路由器必须有一个唯一的IP地址,一旦出现IP地址重复的情况,就会使发送端无法判段究竟应该发给哪个地址。而接收端收到数据包以后发送回执时,由于地址重复,发送端也无从得知究竟是哪个主机返回的信息,影响通信的正常进行。然而,随着互联网的普及,IP地址不足的问题日趋严重。 于是就出现了这种技术。 私有IP地址是一段保留的IP地址。只使用在局域网中,无法在Internet上使用。有一组IP地址被拿出来专门用于私有IP网络,称为私有IP地址。
私有IP地址范围:
A: 10.0.0.0~10.255.255.255 即10.0.0.0/8
B:172.16.0.0~172.31.255.255即172.16.0.0/12
C:192.168.0.0~192.168.255.255 即192.168.0.0/16
这些地址是不会被Internet分配的,它们在Internet上也不会被路由,虽然它们不能直接和Internet网连接,但通过技术手段仍旧可以和 Internet通讯NAT技术。我们可以根据需要来选择适当的地址类,在内部局域网中将这些地址像公用IP地址一样地使用。在Internet上,有些不需要与 Internet通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源。
私有IP地址之外的IP地址成为全局IP地址,又称公网IP。
子网掩码
现在一个IP地址的网络标识已不再受限于该地址的类别,而是由一个叫做子网子网掩码的识别码通过子网网络地址细化分出比A类、B类、C类更小颗粒的网路。这种方式就是将原网络分为多个物理网路的一种机制。
作用
子网掩码只有一个作用,就是将一个IP地址划分成网络地址和主机地址两部分。(常见的掩码是由一连串1+一连串0构成的,不过看网上资料也说1和0交替也是可以的)默认分配的子网掩码每段只有255或0
- A类的默认子网掩码 255.0.0.0
- B类的默认子网掩码 255.255.0.0
- C类的默认子网掩码 255.255.255.0
原理
子网掩码与IP地址一样是32位地址,然后将IP地址与子网掩码进行与运算即可得到网络地址。 例:
IP地址为192.168.10.2,子网掩码为255.255.255.240。
先将十进制转换成二进制:
IP地址: 11000000 10101000 00001010 00000010
子网掩码: 11111111 11111111 11111111 11110000
进行与运算:--------------------------
11000000 10101000 00001010 00000000
则可得其网络标识为192.168.10.0,主机标识为2。
掩码的不同表示形式
已经说过了子网掩码也是32位的地址,那么开头的25怎么转化呢? 25的意思是网络号为25,就代表连续的25个1,然后剩下的用0补齐即11111111 11111111 11111111 10000000
包含的其他信息
还是以这个信息为例:XX.XX.XX.128/25,我们还可以拿到什么信息呢?
- 主机号:主机号+网络号=32,32-25=7
- 网络地址:当7位主机号全为0,也就是XX.XX.XX.128
- 广播地址:当7位主机号全为1,也就是XX.XX.XX.255
- 可用地址数量:7位主机号有2^7种结果,但是要去掉网络地址和广播地址,即:2^7-2=126(这个也就是运维所说的一百多个ip)
IP分割与再构成处理
IP报文的分片与重组
由于以太网的默认MTU(链路的最大传输单元)是1500字节,因此对于超过1500字节的数据报无法在一个帧当中发送完成。这时,路由器将此IP数据报划分成多个分片进行发送。
经过分片之后的IP数据在重组数据报的时候,只能由目标主机进行。路由器虽然做分片但是不会做重组。
路径MTU发现
分片机制也有它的不足。首先,路由器的处理负荷加重,随着人们对网络安全的要求提高,路由器需要做的其他处理也越来越多,如网络过滤等。因此是不希望路由器进行IP数据包的分片处理的。
为了解决上述的问题,产生了一种新的技术路径MTU发现。所谓的路径MTU(path MTU)是指从发送端主机到接收端主机之间不需要分片时最大MTU的大小,即路径中存在的存在的所有数据链路中最小的MTU的。而路径MTU发现从发送主机按照路径MTU的大小将数据报分片后进行发送。进行路径MTU发现就可以避免在中途的路由器上进行分片处理,也可以在TCP中发送更大的包。