网络编程——IP协议


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

IP地址

网络标识与主机标识

IP地址由网络标识主机标识两部分组成。
IP地址分为A、B、C、D四类,是根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分,如下图所示。
A类地址是以0开头的地址,0-7位是它的网络标识,8-32位是它的主机标识
B类地址是以10开头的地址,0-14位是它的网络标识,15-32位是它的主机标识
C类地址是以110开头的地址,0-21位是它的网络标识,22-32位是它的主机标识
D类地址是以1110开头的地址。后面全部是它的网络标识,没有主机号,常用于多播
在这里插入图片描述
由图中我们可以看出这几类IP地址的范围,分别为:
A:首位 0,00000000-01111111 0.0.0.0-127.255.255
B:首位 10,10000000-10111111 128.0.0.0-191.255.255.255
C:首位 110,11000000-11011111 192.0.0.0-223.255.255.255
D:首位1110,11100000-11101111 224.0.0.0-239.255.255.255
广播地址
挂广播地址用于在同一链路中相互连接的主机之间发送数据包,将IP地址主机标识部分全部设置为1 就成了广播地址。
广播分为本地广播和直接广播两种。在本网络内的广播叫做本地广播;在不同网络之间的广播叫做直接广播。

子网掩码

子网掩码实际上也是一个32位的二进制数字,它对应的IP地址网络标识部分的位全为1,对应的主机标识部分的位全为0。
这样IP地址将不再受限于自己的类别,可以用子网掩码自由的定义自己的网络标识长度
子网掩码的优点

  • 将IP细分为比A、B、C、D类更细的粒度。
  • 将原网络分为多个物理网络。
    子网掩码的两种表示方式
  • 第一种方式
    将 IP 地址与子网掩码的地址分别用两行来表示。以 172.20.100.52 的前 26 位是网络地址的情况为例,如下:

IP 地址: 172. 20. 100. 52
子网掩码: 255. 255. 255. 192

网络地址 172. 20. 100. 0
子网掩码 255. 255. 255. 192

广播地址 172. 20. 100. 63
子网掩码 255. 255. 255. 192

  • 第二种方式
    在每个 IP 地址后面追加网络地址的位数用 “/ ” 隔开,如下:

IP 地址 172. 20. 100. 52 / 26
网络地址 172. 20. 100. 0 / 26
广播地址 172. 20. 100. 63 / 26

另外,在第二种方式下记述网络地址时可以省略后面的 “0” 。
例如:172.20.0.0/26 跟 172.20/26 其实是一个意思。

路由控制

IP 地址的网络地址部分用于进行路由控制。
路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。

在这里插入图片描述

在上图中就展示了一次数据传送过程中的路由控制
0.0.0.0/0 是默认的路由选择,当路由表中没有当前的网络地址,就转发至默认的路由器。

  • 在上图中首先IP包被发送给了默认的路由器1,。
  • 路由器1 的路由表里有目标地址的而网络标识,所以只要将IP包发送给10.1.0.2的路由器(路由器2)即可。
  • 路由器2 的路由表里也有记录,通过记录的值得到应该将IP包发送给10.1.2.1 (也就是主机B)
    至此,IP包正确到达目标地址。

参考资料
http://47.98.109.76:4000/wang-luo-bian-cheng/wang-luo-xie-yi-zhi-tcp-ip-zhi-er.html
https://www.cnblogs.com/red-code/p/7132023.html

猜你喜欢

转载自blog.csdn.net/Alyson_jm/article/details/83548747