IP协议

IP作为整个TCP/IP中至关重要的协议,主要复杂数据包发送给最终目标计算机。因此,IP能够让世界上任何两台计算机之间进行通信。

IP相当于OSI参考模型的第3层

网络层的主要作用是“实现终端节点之间的通信”,这种终端节点之间的通信也叫“点对点(end to end)通信”。

网络层的下一层–数据链路层的主要作用就是互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要借助网络层。

网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点的数据包传输。

主机与节点
那些配有IP地址的设备叫“主机”,既配有IP地址又具有路由控制能力的设备叫做路由器。

网络层与数据链路层的关系

IP基础知识

IP大致分为三大模块,分别是IP寻址、路由以及IP分包、组包

IP地址属于网络层地址

IP地址用于在“连接到网络中所有主机中识别出进行通信的目标地址。”, 因此,在TCP/ IP 通信中所有主机或路由器必须设定自己的IP地址。

路由控制

  • 发送数据至最终目标地址

  • 路由控制表

IP属于面向无连接

IP面向无连接,即在发包之前,不需要建立与对端目标地址之间的连接。而面向有连接的情况,需要事先建立连接,如果对端主机关机与不存在,也就不可能建立连接。

IP地址的基础知识

IP地址的定义

IP地址(IPv4地址)由32位正整数来表示。TCP/IP 通信要求将这样的IP地址分配给每个参与通信的主机。

IP地址由网络和主机两部分标识组成

IP地址由“网络标识(网络地址)”和“主机标志(主机地址)”两部分组成。

网络标志在数据链路中每个配置不同的值,网络标志必须保证相互连接的每个段的地址不重复。

IP地址的分类

IP地址分为四个级别,分别为A、B、C、D类,它根据IP地址中从第一位到第四位的比特列队其网络标识和主机标识区分。

A类地址

A类地址是以首位为“0”开头的地址。0.0.0.0~127.0.0.0是A类网络地址。

B类地址

B类IP地址是前两位为“10”的地址。128.0.0.1~191.255.0.0

C类地址

前两位为“110”的地址, 192.168.0.0~239.255.255.0

D类地址

前两位为“1110”的地址,224.0.0.0~239.255.255.255,
D类地址没有主机标识,常被用于多播

关于分配IP主机地址的注意事项

要用比特位标识主机地址时,不可用全部为0或者全部为1,全部为0的情况是表示对应的网络地址或IP地址不可获知的情况下才使用。全部为1的主机地址,通常作为广播地址。

广播地址

将IP地址中主机地址全部设置为1,如 172.20.255.255

  • 本地广播:在本网络内的广播
  • 直接广播:在不同网络之间的广播叫直接广播

IP多播

子网掩码

分类造成浪费?

随着互联网的覆盖范围逐渐增大,网络地址越来越不足应对需求,直接使用ABC类地址就显得很浪费。

子网与子网掩码

现在,一个IP地址的网络标志和主机标识已经不再受限于该地址的类别,而是由一个叫“子网掩码”的识别码通过子网网络地址细分出别ABC类更小粒度的网络。

路由控制

数据包需要路由器持有的控制表指明真正发送的目标地址。

这种控制表有两种获得途径:

  • 管理员手动录入(静态路由)
  • 路由器与其他路由器相互交互信息时自动刷新(动态路由)

IP地址与路由控制

IP地址的网络地址部分用于进行路由控制。

路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在发送IP包时,首先yaoquedingIP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。

  • 默认路由
    默认路由标记为0.0.0.0,标识一张路由表中包含所有的网络及其子网络信息。
  • 主机路由
    整个IP地址的所有位都参与路由,这意味着要基于主机在网卡上配置的IP地址本身。
  • 环回地址
    使用特殊的IP地址 127.0.0.1作为环回地址,此时,数据包不会流向网络

路由控制表的聚合

利用网络地址的比特分布可以有效地进行分层配置,对内即有多个子网掩码,对外呈现出同一个网络地址。这样可以更好的构建网络,通过路由信息的聚合可以有效地减小路由表的条目

IPv6

是为了根本解决IPv4地址耗尽的问题而被标准化的网际协议。

IPv4首部

通过IP进行通信时,需要在数据前面加上IP首部信息。IP首部中包含着用于IP协议进行发包控制时所有的必要信息。