网络层——IP协议详细解读

IP协议

之前介绍了传输层的重点协议,TCP和UDP协议,以下将介绍网络层的重点协议IP协议。

1. IP协议的报文格式

IP地址 本质上是一个32位整数,在机器中按4个字节存储。现实中通常将其用点分十进制表示,比如:192.168.1.1三个点将32位整数分为四部分,每部分一个字节,取值为0-255。
IP协议的报文格式如图所示:
在这里插入图片描述

  1. 4位版本号:IP协议的版本号,目前有IPv4和IPv6两个版本。

  2. 4位首部长度:IP的报头和TCP类似,都是长度可变的,带有选项。4位的取值范围为0-15,它的单位为4字节。

  3. 8位TOS:其中4位有效,分别表示最小延时,最大吞吐量,最高可靠性,最小成本。表示某一时刻的状态,同一时刻只能取一种状态。

  4. 16位总长度:表示最大长度64k,单个IP数据报最大长度不能超过64k。如果超过长度可以采用 分包组包 的方法。

  5. 以下三个字段就是用来分包组包的,多个被拆分的IP数据报的16位标识相同,13位偏移确定拆分的数据报顺序,三位标志位有一位有效,为0时表示不是最后一个数据报,1时表示为最后一个数据报。
    在这里插入图片描述
    注意: IP协议数据报的分包只针对接收到的数据拆分,举例如果是一个TCP数据那么我们只针对数据部分拆分不拆分TCP报头。

  6. 8位生存空间:表示一个IP数据报在网络上还能存在多久,单位为转发次数,也就是最多能转发多少次。 如果出现数据包中的IP地址是永远到达不了的,此时不断转发会占用过多的硬件资源,所以设置了一个最大的转发次数。

  7. 8位协议:用于标识传输层使用的协议。

  8. 16位首部校验和:用来校验传输的数据是否正确。

  9. 32位源IP地址:表示发件人地址。

  10. 32位目的IP地址:表示收件人地址。

2. IP协议的地址管理

上述了解到IP地址实际是32位整数,那么表示的地址就是有限的,如果出现地址不够用,如何解决呢?

在IP协议中有三种处理方式:动态分配IP地址NAT机制IPv6协议

  1. 动态分配地址:设备上网就分配ip地址,不上网就不分配,但是这种方式并没有增加ip的数量,只是暂时缓解,如果同时上网个数达到一定量也会不够用。

  2. NAT机制:将ip地址分为两类,内网IP外网IP,此时规定外网IP必须是唯一的,内网IP可以重复出现(在不同局域网中)。如果内网设备要访问外网,就会给他分配一个外网IP,但是这个外网IP并不是该设备独有,而是该内网中所有设备公用。
    内网IP主要为:(1)10.开头 (2)172.16. 到 172.31.* (3)192.168.开头。
    外网IP为: 剩下的IP地址。
    举例说明
    如果我的主机连接了宿舍的路由器,当我想要访问百度时,我的 IP协议数据包 传输到路由器时,路由器会将我们的IP地址(源ip地址)替换成自己的 IP地址(外网IP地址),此时再传输给百度服务器,百度认为该数据包来自于路由器。得出结论外网设备无法直接访问内网设备。
    如果此时有连接路由器的两个主机都访问百度, 返回两个数据报到路由器时。此时路由器会根据自己替换了谁的ip地址进行区分,就能将数据转发回对应的主机。
    这种方法也只是提高了ip地址的利用率,并没有增加ip地址

  3. IPv6协议:它是使用16个字节,128位来表示IP地址,此时增加了大量的IP地址解决IP不够用问题。但是目前并没有开始启用,只是某些路由器等设备支持了IPv6协议,一般默认关闭IPv6。

3. IP地址的组成

ip地址分为两部分:

  1. 网络号:表示网段(局域网),保证相互连接的两个网段具有不同标识。
  2. 主机号:表示主机,同一局域网这主机之间具有相同的网络号,不同的主机号。

对于路由器 :一个路由器有两个IP地址,WAN口IP和LAN口IP,分别在不同的局域网中,路由器的作用就是将两个局域网连接起来。我们上述讲到路由器替换IP地址,是将我们主机的IP地址(内网)替换成路由器的外网IP地址。

LAN口(Local Area Network):表示连接本地网络的端口,主要与家庭网络中的交换机、集线器或PC相连。
WAN口(Wide Area Network):表示连接广域网的端口,一般指互联网。

如图:我们的电脑连接路由器的LAN口,路由器WAN口连接另一个路由器的LAN口(连通另一个局域网),此时绿色部分为一个局域网,路由器与另一个路由器也处一个局域网,另一个路由器LAN口也可以连接其他设备同处一个局域网。
在这里插入图片描述

DHCP协议

实际手动管理IP地址是一个非常麻烦的事情,当子网中新增主机时需要给其分配一个IP地址,当子网当中有主机断开网络时又需要将其IP地址进行回收,便于分配给后续新增的主机使用。

  1. 因此对于IP地址的分配和回收一般不会手动进行,而是采用DHCP动态主机配置协议。
  2. DHCP通常被应用在大型的局域网环境中,其主要作用就是集中地址管理、分配IP地址,使网络环境中的主机动态获得IP地址Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
  3. DHCP是一个基于UDP的应用层协议,一般的路由器都带有DHCP功能,因此路由器也可以看作一个DHCP服务器。

当我们连接WiFi时,如果验证通过,路由器就会给你动态分配了一个IP地址,然后你就可以基于这个IP地址进行上网。

注意: 在IP地址中网络号与主机号的划分界限是不一定的。主要有两种分类方式:

  1. IP地址划分类:这种方式比较繁琐目前已经不使用了。
    划分方式如图所示:
    在这里插入图片描述
    各类IP地址的取值范围如下:
    A类:0.0.0.0到127.255.255.255。
    B类:128.0.0.0到191.255.255.255。
    C类:192.0.0.0到223.255.255.255。
    D类:224.0.0.0到239.255.255.255。
    E类:240.0.0.0到247.255.255.255。

  2. 子网掩码方式:子网掩码也是32位整数,我们可以通过ping查看电脑的子网掩码,表示形式与IP地址一样。

如图所示:站在二进制角度看左侧有几位1,对应的的IP地址的那些位就是网络号。
在这里插入图片描述

以上则表示IP地址前24位都为网络号,剩下的为主机号,一般家用网络子网掩码一般为:255.255.255.0

** 一些特殊的IP地址:**

  1. 将IP地址中的主机地址全部设为0,如:192.168.0.0;成为了网络号,代表这个局域网。
  2. 将IP地址中的主机地址全部设为1,如:192.168.0.255;就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包。通常适用于不知道对方IP地址需要探测的情况下
  3. 127.* 的IP地址用于本机环回(loop back)测试,通常是127.0.0.1。环回IP对应特殊的虚拟网卡,传输数据时没有IO操作,纯内存操作,所以比一般普通IP传输数据要快。
  4. 主机号为1,如192.168.0.1,一般作为网关IP(并不绝对),是局域网的出入口。

4. IP协议的路由选择

路由器是不能将整个网络环境都记录下来的,只能记录周围的情况。
所以我们在进行传数据时,就是一跳一跳(Hop by Hop)“问路”的过程。所谓“一跳”就是数据链路层中的一个区间,具体在以太网中指从源MAC地址到目的MAC地址之间的帧传输区间。

IP数据包的传输过程中会遇到很多路由器,这些路由器会帮助数据包进行路由转发,每当数据包遇到一个路由器后,对应路由器都会查看该数据的目的IP地址,并告知该数据下一跳应该往哪跳。

路由器的查找结果可能有以下三种

  1. 路由器经过路由表查询后,得知该数据下一跳应该跳到哪一个子网。
  2. 路由器经过路由表查询后,没有发现匹配的子网,此时路由器会将该数据转发给默认路由(更高一级的路由器记录着更多的数据可以查询)。
  3. 路由器经过路由表查询后,得知该数据的目标网络就是当前所在的网络,此时路由器就会将该数据转给当前网络中对应的主机。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值