IP协议理解

本文介绍了IP协议在网络传输中的关键作用,包括子网掩码用于划分网段,路由控制表指导数据包传输,以及分片重组确保数据包在不同MTU环境下传递。通过IP地址和子网掩码确定主机位置,路由控制表实现跨网段通信,并探讨了路径MTU发现优化传输效率。同时提到了路由追踪命令traceroute的工作原理。
摘要由CSDN通过智能技术生成

简介

最近惰性有点大,导致经常拖更,希望有小伙伴来鞭策一下。闲话不多说,接着上一篇TCP协议,接下来就轮到IP协议发挥作用了,下面我们来看看IP协议在互联网中都起到什么作用。

正文

上篇TCP协议中我们说到了发送端和接收端互相发送数据包进行通信,那么具体双方的数据包是如何传递的呢?又是通过什么路线走到的呢?这时候就到了IP协议出场了:

IP协议在网络传输中的作用主要可以分为以下几点:

  1. 子网掩码
  2. 路由控制
  3. 分片重组(路径MTU发现)

上一篇TCP协议理解中,我们看到TCP报文中只有端口号信息, 事实上光凭借这个是无法完成两个主机通信的。真正能确定两个主机位置的是IP地址

ps:IP协议是面向无连接型的,TCP协议是面向连接型的。

IP地址是通过IP协议封装在IP报文首部中的,如下图所示:

当tcp协议在传输层将数据包上tcp首部之后,传到网络层,经过IP协议再一次包装IP首部,才会传到数据链路层也就是网卡发送出去。

知道了数据包在网络中是通过IP地址进行通信的,那么IP地址是什么呢?

打开电脑的命令行模式(win+r,输入cmd)输入ipconfig,我们就能看到一串串数字:

192.168.X.X,172.X.X.X,10.X.X.X.

这些数字就是我们的IP地址。任意一串数字都是由四个数字组成,每个数字都是用八位二进制数转化来的。合起来就是32位的IPv4地址。

然而32位的IP地址是远远不够用的,所以聪明的人们就想出了一个办法,让有限的IP地址可以最大限度的复用,那就是子网掩码。

那么什么是子网掩码呢?

大家比较常见的192.168.X.X/24,后面的24就表示子网掩码的位数,表示由24位的1组成相应的子网掩码,后八位补0,既255.255.255.0.

知道子网掩码是什么后,那么子网掩码具体起到什么作用呢?

例如下面有两个IP地址

192.168.3.10

192.168.3.11

如果这两个IP地址的子网掩码都是255.255.255.0,那么这两个IP的主机就属于同一个网段就可以互相通信了。假如两个IP地址的子网掩码不相同的话,则二者无法相互通信,需要让其中一个IP地址的路由再进行转发,直到二者子网掩码相同,才能进行相互通信。

子网掩码的作用很明显就是划分网段,让同处于同一网段下的IP可以相互通信。


问题来了,同一网段下的IP地址可以相互通信,那么不同网段下的IP地址又是如何找到对方的呢?

因此,IP协议会根据一张表格查找我们需要访问的主机应该通过什么路径访问。这张表就叫路由控制表

ps:路由控制表并不是由IP协议生成或者维护的,IP协议只是使用这张表进行查询,真正维护这张表的功能是由路由协议提供的。

每次主机发送信息是,会根据目的IP和子网掩码在路由控制表中找到下一个需要到达的位置,然后一步步转发,直到到达目的地。

下面举例说明:

  1. 首先要发往10.1.2.10这个目的地址。先到路由器1查看,发现10.1.2.0/24最符合要求。
  2. 然后就转发到对应的下一个路由器10.1.0.2(路由器2)
  3. 到了路由器2后,继续查表,发现10.1.2.0/24的下一跳是10.1.2.1
  4. 于是就跳转到10.1.2.1,这个网段就是属于10.1.2.10所在区域。

这样,两台主机在不同网段就完成通信。


以前,因为数据链路层的最大传输单元(MTU)不同,导致每次发包都需要进行分片,然后在路由器上进行重组

看到这里,小伙伴们应该有些疑惑,上一篇TCP协议中不是算出了最大消息长度MSS了吗,为什么还要分片?

那是因为在TCP通信中有计算MSS,所以在TCP传输中可以不需要进行分片操作,但是在网络传输中并不是只有TCP传输(可以回看HTTP协议理解)。UDP传输也是网络传输的重要途径之一。

所以IP协议为了其他传输方式,提供了分片重组的操作。但是这样做明显增大了路由器的工作量以及耗时。

因此,人们想在不需要分片的情况下发送最大量的数据,最后提出了路径MTU发现这个方法。

路径MTU方法原理如下:

  1. 发送IP首部的分片标志设置为不分片。
  2. 路由器收到超过MTU的数据包就会丢包
  3. 丢包后通过ICMP协议将当前MTU值返回
  4. 下次发送按照返回的MTU值大小发送,以最后收到的MTU值为准,即为最大MTU

ps:MTU值最大缓存10分钟

UDP

 TCP

分片标志

分片标志
比特含义
0未使用,默认0
1

0 - 可以分片

1 - 不能分片

2

包在分片情况下,是否为最后一个包

0 - 是

1 - 不是


上面I大概就是P协议在网络传输中的基本作用 ,下面记录一个针对IP协议的应用。

路由追踪命令:tracerount实现原理:

设置IP首部的生存时间TTL为1,然后发包,记录丢包ICMP协议返回的信息

设置IP首部的生存时间TTL为2,然后发包,记录丢包ICMP协议返回的信息

……

设置IP首部的生存时间TTL为可以抵达目的地跳转次数,然后发包,记录丢包ICMP协议返回的信息

通过不断地增加生存时间,可以依次获得丢包的路由IP,从而达到路由追踪的目的。

 

总结

以上就是IP协议在网络传输中发挥的主要作用,当然还有一些知识点没有涵盖,

  1. 比如IP首部还有很多字段没有讲解。
  2. 还有关于IPv6和IPv4也没有进行比较。
  3. 以及特殊的IP地址也没有提及,例如广播地址

这些如果各位感兴趣,可以另开一篇进行讲解。

以上就是对IP协议的理解,如果有不对的地方,欢迎各位进行指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值