当前位置: 首页 > web >正文

IP协议深入理解

一、什么是ip协议?

1.1、ip协议是网络层协议,ip协议的本质工作是提供一种能力,把数据可靠的跨网络从主机A送到主机B;
1.2、什么是ip?

ip=目标网络+目标主机;

画图图解:

如图,当主机A想要把数据发给主机B时,需经过主机A所在的网络的路由器进入到网络x,再由网络x经过路由器进入网络2,再从网络2中找到主机B;

1.3 认识ip协议报头

①4位版本

ip协议的版本号,对于ipv4来说就是4;

②4位首部长度:

4个bit位能表示的最大范围是:[0000,1111]即[0 , 15] ,计算单位为4字节,即4个bit位能表示的字节范围是0~60字节,因为ip的报头总长度=固定长度为20字节+选项长度,所以整个报头的长度范围为:20~60字节,也就是选项的最大长度为40字节!

③8为服务类型:

4位 TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个!

④16位总长度:

ip数据报整体占多少字节!!也是就是报头+选项+数据整体长度!!通过整体长度-选项-固定报头长度=数据长度!!通过首部长度和总长度可以实现报头跟有效载荷的分离!!!

⑤8位生存时间:

TTL,数据报文到达目的地的最大报文跳数,一般是64,每经过一个路由,TTL -1,当减到0还没到达,丢弃这个报文!!

⑥8位协议:

用来决定ip的有载荷向上交个哪一个协议!

⑦32位源IP地址:

自己的IP地址,数据发送的出发地!

⑧32位目的IP地址:

对发方的ip地址,数据到达的目的地!

二、认识路由器

2.1、报文的中转站

假设知道了目标ip但是进入不到对方所在的网络,那么数据一样发送不了给对方!

因此必须要有一个中转站,这个中转站就是连接内网跟外网的路由器!!

ip报文通过路由器进行不断的转发,就能实现跨网络将数据从主机A送达至主机B!!

2.2、路由器的结构

路由器本质上也是内网里的一台主机!!只是这台主机同时存在于至少两个子网内!!也就是说路由器可以同时存在两个ip地址!!我们可以认为它存在多张网卡就行!

2.3、路由器的功能

路由器一般是子网中的第一台设备,一般他的ip地址都是网络号!

路由器除了有转发ip的功能外,还有一个重要的作用就是构建子网!

DHCP:路由器自动给新增的主机分配ip地址,路由器相当于一台DHCP服务器!!

2.4 所以其实我们数据传输是这样的

三、网段划分

3.1、IP地址划分为网络号+主机号

网络号:保证相互连接的两个网段具有不同的标识;
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号

图解:

3.2、这些ip地址是怎么来的?

由一开始进行网络基站建设的运营商联合规定出来的ip地址划分:

上图是曾经的五种IP地址分类,这种分类方法会导致大多数的ip被浪费掉:

例如:

申请了一个B类地址, 理论上一个子网内能允许6万5千多个主机. A类地址的子网内的主机数更多. 
然而实际网络架设中, 不会存在一个子网内有这么多的情况. 因此大量的IP地址都被浪费掉了!

新的方案CIDR:

①、引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;

②、子网掩码是一个32位的正整数;

③、将ip地址和子网掩码进行按位与操作得到的就是网络号;

④、网络号和主机号的划分和这个IP地址是A、B、C。。类无关;

例1:

例2:

可见,IP地址与子网掩码做与运算可以得到网络号, 主机号从全0到全1就是子网的地址范围;

IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68, 子网掩码的高 24位是1,也就是255.255.255.0 

3.3、特殊的ip地址

网络号:子网地址范围中首个地址

广播号:子网地址范围中最后一个地址

本地环回测试地址:127.0.0.1

3.4、面对ip地址不足的解决方法

① 动态分配IP地址,只给入网设备分配IP地址,退网回收ip;

②NAT技术

③IPV6,16字节128位表示一个ip地址

四、公有IP地址和私有IP地址

4.1、一般我们平时使用的都是私有ip,只有向云服务器、运营商用到的才是公网ip地址;

如图:

①、一个路由器可以配置两个IP地址,一个为WAN口,一个为LAN口ip(子网ip);

②、连接LAN口的主机从属于这个路由器的子网中;

③、同一子网不可能出现相同IP地址,不同子网的ip地址可能出现相同;

④、一个内网的ip地址是不可能出现在公网中,所以子网内的主机想要访问公网时,路由器会将ip地址进行替换,目标地址保持不变,源ip地址替换为路由器的WAN口ip地址,,这样逐级替换就能访问到公网了,这种技术称为NAT技术

好了今天分享到这里,如果对你有所帮助记得点赞收藏+关注哦!!谢谢!!!

咱下期见!!!

http://www.xdnf.cn/news/15822.html

相关文章:

  • C语言实战:超级玛丽游戏
  • 组件-多行文本省略-展开收起
  • 百炼MCP与IoT实战(三):手搓自定义MCP Server与阿里云FC配置
  • 40+个常用的Linux指令——上
  • halcon模版匹配方向的研究
  • ts学习2
  • 飞算科技:以创新科技引领数字化变革,旗下飞算 JavaAI 成开发利器
  • 人脸检测算法——SCRFD
  • 可靠消息最终一致性分布式事务解决方案
  • 基础密码协议
  • Xilinx Zynq:一款适用于软件定义无线电的现代片上系统
  • 代理模式及优化
  • 手撕Spring底层系列之:Bean的生命周期
  • C++进阶-红黑树(难度较高)
  • Docker报错:No address associated with hostname
  • 广东省省考备考(第四十九天7.18)——判断推理:位置规律(听课后强化训练)
  • 深度学习×第10卷:她用一块小滤镜,在图像中找到你
  • 基于 WinForm 与虹软实现人脸识别功能:从理论到实践
  • 洛谷 P1395 会议
  • 周志华《机器学习导论》第9章 聚类
  • Linux基本操作
  • Linux内核设计与实现 - 第3章:Linux的进程
  • 使用python读取json数据,简单的处理成元组数组
  • 2026python实战——如何利用海外代理ip爬取海外数据
  • 【机器学习】AdamW可调参数介绍及使用说明
  • Ubuntu查看Docker容器
  • 双向广搜算法详解
  • 数据结构——单调栈
  • 服务管理智能化:R²AIN SUITE 升级带来的两大功能更新哪些值得关注?
  • SQLite / LiteDB 单文件数据库为何“清空表后仍占几 GB”?——原理解析与空间回收实战