IP协议的地址划分和路由选择

Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
[email protected]
☺️

❓ ❤️ ☕️ ❗️
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章

文章目录

  • IP协议简介
  • 主要功能
    • IP分组规则
    • IP转发规则
  • IP协议格式(初步了解即可)
    • 4位版本号
    • 4位首部长度
    • 8位服务类型
    • 16位总长度
    • 16位标识
    • 3位标志字段
    • 13位片偏移
    • 8位生存时间
    • 8位协议
    • 16位头部校验和
    • 32位源地址和32位目标地址
    • 选项字段
  • 地址管理(网段划分)
    • IP地址的数量限制
      • NAT技术
      • NAPT
  • 私有IP地址和公网IP地址
  • 路由选择(了解)

知识点

IP协议简介

  • IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),对上可载送传输层各种协议的信息,例如TCP,UDP等;对下可将IP信息包放到链路层,通过以太网,使用各种技术来传送

主要功能

IP分组规则

一个IP包从源主机传输到目标主机可能需要经过多个不同的网络。由于各种网络的数据帧都有一个最大传输单元(MTU)的限制,如以太网帧的MTU是1500;因此,当路由器在转发IP数据包时,如果数据包的大小超过了出口链路的最大传输单元时,则会将该IP分组分解成很多个足够小的片段,以便能够在目标链路上进行传输。这些IP分片重新封装一个IP包独立传输,并在到达目标主机时才会被重新组起来。所以网络层的IP可以自动分包组包,而传输层的UDP就不行

IP转发规则

路由器仅根据网络地址进行转发。当IP数据包经过由路由器转发的时候,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付。否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一个路由器,这称为间接交付。路由器在间接交付中,若路由表中由到达目标网络的路由,则把数据包传送给路由表指明的下一个路由器。如果没有路由,但路由表中有一个默认的路由,则把数据报传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。

IP协议格式(初步了解即可)

IP协议的地址划分和路由选择_第1张图片

4位版本号

指定IP协议的版本,对于IPv4来说,就是4,对于IPv
6来说,就是6

4位首部长度

4bit相当于0-15,IP头部最大长度为60字节,根据可选字段来变化

8位服务类型

3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置位0),4位TOS分别表示 最小延时,最大吞吐量,最高可靠性,最小成本,这四者相互冲突,只能选择一个服务类型

16位总长度

IP数据包整体占多少个字节
例如TCP数据包的长度,在TCP协议头本身中没有,要搭配IP协议来确定,IP的总长度-IP报头 = TCP包长度
再减去TCP报头就是应用层数据长度

16位标识

唯一的标识主机发送的报文,如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的(用来区分那些个小包属于同一个大包)

3位标志字段

第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用)第二位是1表示禁止分片;这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示“更多分片“,如果分片了的话,最后一个分片置为1,其他是0,类似于链表中的尾节点null

13位片偏移

是分片相对于原始IP报文开始处的偏移,其实就是在表示当前分片在原报文中处于在哪个位置,实际偏移的字节数就是这个值*8而得。因此,除了最后一个报文之外,其他报文得长度必须是8得整数倍

8位生存时间

数据报到达目的地得最大报文跳数,一般是64,每次经过一个路由,TTL-1,一直减到0还没有到达,那么就丢弃了,这个字段只要是用来防止出现路由循环问题

8位协议

表示上层得协议类型

16位头部校验和

使用CRC进行校验,来鉴别头部是否损坏

32位源地址和32位目标地址

表示发送端和接收端
4个字节
32位比特
点分十进制,8个为一组,2的八次方,0-255

选项字段

不定长,最多40字节

地址管理(网段划分)

  • IP地址分为两个部分,网络号和主机号

网络号:保证相互连接的两个网段具有不同的标识
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号
IP协议的地址划分和路由选择_第2张图片
不同的子网其实就是把网络号相同的主机放在一起
如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复

  • 通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同
  • 有一种技术叫做DHCP,能够自动的给子网内新增主机结点分配IP地址,避免了手动管理IP的不便,一般的路由器都带有DHCP功能,因此路由器也可以看作一个DHCP服务器
  • 在实际的网络架设中,引入了子网掩码来区分网络号和主机号

子网掩码是一个32位的正整数,通常用一串0来结尾
在这里插入图片描述
网关就是路由地址
将IP地址和子网掩码进行”按位与“(一假则假)操作,得到的结果就是网络号
网络号和主机号的划分与这个IP地址是A类,B类,C类无关

比如这个IP地址是192.168.10.2,子网掩码是28(28就是前面28个1),所以得到的网络号就是192.168.10.0
IP协议的地址划分和路由选择_第3张图片

  • 通过子网掩码也可以判断出主机的数目
  • 用255减去此时子网掩码的最后一个数字,得到的就是总数目,但是要再减去一个广播地址,才是主机数目
  • IP协议的地址划分和路由选择_第4张图片
    IP协议的地址划分和路由选择_第5张图片
    #子网地址范围
    IP协议的地址划分和路由选择_第6张图片
  • 特殊的IP地址

将IP地址中的主机地址全部设成0,就成为了网络号,代表这个局域网
将IP地址中的主机地址全部设位1,就成为了广播地址,用于给同一个局域网中的所有主机发送数据包
127.0.0.1是本机的环回地址

IP地址的数量限制

我们知道,IP地址是一个4字节32位的正整数,那么一共只有2的32次方个IP地址,大概是43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址
这意味着,一共只有43亿台主机能接入网络吗?
实际上,由于一些特殊的IP地址的存在,数量远数量远远超过43亿。另外IP地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址
CIDR在一定程度上缓解了IP地址不够用的问题,但仍然不是很够用,这时候有三种方式来解决

  1. 动态分配IP地址:只给接入网络的设备分配IP地址,因此同一个MAC地址的设备,每次接入互联网中,得到的IP地址不一定是相同的
  2. NAT技术,本质上用一个广域网的一组ip,代表一组局域网的设备
  3. IPv6.IPv6和IPv4是两个互不兼容的协议,IPv6使用16字节128位来表示一个IP地址,但目前还没有普及

NAT技术

  • NAT技术是解决当前IP地址不够用的主要手段,是路由器的一个重要功能

NAT能够将私有IP对外通信时转为局部IP(本质)
也就是说这是一种将私有IP和局部IP相互转化的技术方法。很多学校,家庭,公司内部次啊用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP
全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的

  • NAT IP转换过程
    IP协议的地址划分和路由选择_第7张图片

NAPT

  • 那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?这时候NAPT来解决这个问题。使用IP+port(端口号)来建立这个关联关系
    IP协议的地址划分和路由选择_第8张图片
    这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项
  • NAT技术缺陷

1.无法从NAT外部向内部服务器建立连接
2.转换表的生成和销毁都需要额外的开销
3.通信过程中一旦NAT设备异常,即使存在备用设备,所有的TCP连接也会断开

  • NAT和代理服务器
    路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。代理服务器看起来和NAT设备有点像,客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端

代理服务器是一种应用比较广的技术
:广域网中的代理
负载均衡:局域网中的代理

私有IP地址和公网IP地址

如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上,使用任意的IP地址都可以,但是RFC 1918规定了用于组件局域网的私有IP地址

10.前8位是网络号
172.16-172.31.前12位是网络号
192.168.前16位是网络号
这些都是私有IP,其余的则称为全局IP
IP协议的地址划分和路由选择_第9张图片
一个路由器可以配置两个IP地址,一个是WAN口IP,一个是LAN口IP
路由器LAN口连接的主机,都从属于当前这个路由器的子网中
不同的路由器,子网的IP可以一样,但同一子网内的IP不可以重复(xxx.1这种一般叫网关,就是当前局域网的路由器)
每一个家用路由器,其实又作为运营商路由器的子网中的一个节点
子网内的主机需要和外网进行通信时,路由器将IP首部中的IP地址替换成WAN口的IP,这样逐级替换,最终数据包中的IP地址成为一个公网IP,这种技术成为NAT

路由选择(了解)

  • 在复杂的网络结构中,找出一条通往终点的路线
    1.我的电脑发送一个IP数据包,目的IP是55.66.77.88
    2.这个包从我的电脑出发,看看我的电脑认不认识这个目的IP
    3.如果认识就直接发送过去(一般都是些相同局域网内的设备认识)
    4.如果不认识,就把数据再交给光猫
    5.如果光猫不认识就再交给运营商的路由器
    6.就这样如果不认识就一直向上传递,但是我们的IP报文里有一个生存时间默认64,如果超过64次传递还没有找到就宣告失败了(只要对方正常,64足够)

  • 访问百度的服务器
    IP协议的地址划分和路由选择_第10张图片

  • 此处TTL为56,说明传递了64-58=8次

  • 那么每一个路由器如何判断自己认不认识
    通过路由表来判断

目的IP 和子网掩码做按位与运算,找到其网络号,然后在路由表中查找是否匹配
如果找到匹配项,就从对应的路由端口中继续转发
如果没有找到,就从默认的“下一跳”表项继续转发
如果对方正常,转发到一定程度,总会由路由器认识这个IP,也就发送完成了

  • 路由表可以由网络管理员手动维护(静态路由),也可以通过一些算法自动生成(动态路由),例如距离向量算法,LS算法等

先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!

你可能感兴趣的:(网络,tcp/ip,网络,网络协议)