网络原理3 IP地址

news2024/11/15 18:42:11

网络原理3 IP地址

文章目录

  • 网络原理3 IP地址
    • IP协议的报文格式
    • IP地址的具体规则
      • IP地址的组成
      • 子网掩码
      • 特殊的IP地址
    • IP地址短缺的解决方法
      • 动态分配IP地址
      • NAT机制[主流机制]
      • IPv6
    • 路由选择

网络层中主要做的事情是在两点之间规划出一个合理的路径,同时也要对主机所处的位置进行定义

其实网络层主要就是做两件事:

  1. 地址管理
  2. 路由选择

在网络层中最重要的是IP协议

IP协议的报文格式

此处只是对IP协议的简单了解

4位版本: 其实取值只有两种,也就是4和6

IPv4 IPv6,现在一般来说指的都是IPv4

4位首部长度: 和TCP类似,首部是变长的,也是报头中带有选项

8位服务类型: 说是8位,其实只有4位,这4位表达的是当前IP协议的不同的工作模式,这4位中只有一位可以是1,不能同时多位是1,这4种状态是最小超时 最大吞吐量 最高可靠性 最小成本

16位总长度: 描述的是IP数据报的报文长度是多少,IP总长度 - IP报头长苏 = TCP报文长度

image-20221215110951895

8位生存时间(TTL)

TTL的单位是“次数”,是一个整数,初始值一般是32 64 128这样的数字

数据报传输的时候,每经过一个路由器转发,TTL就会-1, 要是TTL减到0了,此时就会把数据报丢弃了,正常情况下,数据报能在很短的次数内,传输到世界上的任何一台主机上

image-20221215111321375

ping 一下百度,就会发现TTL是50,说明一开始的TTL初始值很可能是64,中间转发过14次,最后到达的时候TTL变成了50

为什么只要转发十几次就能传输到呢?

这里是基于一个社会科学上的理论–六度空间理论

解释: 最多通过6个中间人你就能够认识任何一个陌生人

在计算机中,每个路由器也有与之相邻的路由器,这样子延展开来,就能访问到很远的路由器,所以传输的次数很少就能到达

8位协议: 主要做的就是将收到的IP数据报,进行分用,也就是决定数据报该由传输层的哪个协议来解析

image-20221215112459938

Ip地址本质上是一个32位的整数,4个字节,由于有32位,不方便看,所以常常将写作“点分十进制”的方式

所谓的点分十进制就是使用3个点,将IP地址分为4个部分,每个部分1个字节,每个字节的取值范围是0-255

IP地址的具体规则

IP地址的组成

IP地址可以分为2个部分,网络号和主机号

网络号:标识网络,保证相互连接的两个网段具有不同的标识

主机号: 标识主机,同一个局域网中,主机之间具有相同的网络号,但是主机号一定是不一样的

在两个相邻的局域网中,网络号是不一样的

子网掩码

但是怎么知道在一个IP地址中到哪里是网络号,哪里是主机号呢?

此时就有了子网掩码用来划分出哪里是网络号,哪里是主机号

子网掩码也是32位,左半边都是1,右半边都是0,不会01混合

左半边有多少个1就表示IP地址左侧的多少位是网络号,后面就是主机号

image-20221215162905419

首先看子网掩码,255–>0xFF–>11111111(八个1)

一共有3个255,说明一共有24个1,也就是说IP地址的前24位都是网络号,也就是说192.168.0是网络号,102是主机号

要是IP地址是255.255.254.0

此时就是11111111 11111111 11111110 00000000,此时就是后面9位是主机号

特殊的IP地址

如果一个IP地址的主机号为0,表示这个IP地址是网络号

如果一个IP地址的主机号为1,此时这个IP地址往往表示这个局域网的网关,常常是路由器的IP(并不是强制要求,只是习惯用法,可以手动改)

网关一般就是路由器,把守着当前局域网与其他的局域网之间的出入口

如果一个IP地址的主机号全是1,表示这个IP是广播IP

如果IP地址的开头是127,说明了该IP是环回IP

IP地址短缺的解决方法

IP地址是用来区分网络上的唯一主机

一个IP地址是4个字节,32个bit位,能表示的范围是0 – 2^32,也就是0–42亿9千万

一个IP地址就是一个主机设备,也就是说最多只能有42亿9千万多台电子设备,很明显,这是严重不够用的

所以必须要想办法应对越来越多的电子设备对IP地址的需求

现在主要有3种方法

动态分配IP地址

当有设备上网的时候才分配IP地址,不上网的时候就回收IP地址,给别人用

这种方案只能说是提高了IP地址的利用率,但是治标不治本

NAT机制[主流机制]

不响动态分配IP地址那样,NAT机制保证每个设备都有独立的IP地址

将IP地址分为两大类

  1. 外网IP / 共网IP

  2. 内网IP/私网IP/局域网IP

约定10.* 、172.16-172.31.* 、192.168.* 都是局域网/内网IP

在一个局域网中,IP地址不能重复,但是在不同的局域网中,可以存在一样的IP地址

假设A在自己家的局域网中的IP地址是192.168.0.213,B在自己家中的局域网中的IP地址也可以是192.168.0.213

当我们想要将流量发送到公网(广域网)上时,目标IP地址必须是公网IP,一个局域网中有一个公网IP,所有在局域网中的电子设备都是通过这一个公网IP来与外界通信,这样子就大大减少了外网IP的数量

路由器本身也是一个NAT设备

现在最主流的方案就是NAT+动态地址分配

就算我告诉了别人我主机的IP地址,别人也不能访问到,因为NAT机制,我的IP只能在我现在的局域网中使用,我可以通过NAT设备访问到外网的IP,但是我无法访问到其他内网中的设备

总结来说,所谓的NAT机制就是将IP分成了内网和外网,只要求外网IP不能重复,内网IP在不同的局域网中是运行重复的,这样子只要用一个外网IP就能代表一大堆的内网IP了

IPv6

使用IPv6才能彻底解决IP地址不够用的问题

IPv4是4个字节,32个bit位, 所以IP地址的个数是2^32

IPv6是16个字节,128个bit位, 所以IP地址的个数是2^128,这是在是一个巨大是数字

既然IPv6这么好,为什么动态分配+ NAT才是现在的主流呢?

这里最主要的原因就是IPv6和IPv4不兼容

也就是说,原本的IPv4的路由器不支持IPv6,要想使用IPv6就要换路由器,就要花钱,所以IPv6的普及率并不是很好(但是很多的应用程序已经支持IPv6了)

路由选择

在IP数据报中,包含了目的IP,网络数据报到达路由器之后,路由器自身有一个路由表的数据结构(路由表就是这个路由器认识的路),一个路由器无法认识到网络的全貌,但是能认识附近的一部分网络

所谓的路由选择其实就相当于是问路

如果当前的目的IP 路由器认识,它就会给出一个明确的路线

要是当前的目的IP不认识,路由器就会把数据报转发给一个更“见多识广的”路由器,这在路由表中有一个默认的选项,叫做下一跳

要是问了一大圈,也没找到目的IP的路,就有可能是这个IP根本就不存在

路由选择不仅仅是找一条路,也是要筛选出一个更好的路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/132806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CleanMyMac X免费吗?怎么下载2023最新版

CleanMyMac X是一款专业的Mac清理软件,可智能清理mac磁盘垃圾和多余语言安装包,快速释放电脑内存,轻松管理和升级Mac上的应用。同时CleanMyMac X可以强力卸载恶意软件,修复系统漏洞,一键扫描和优化Mac系统!…

哈希问题详解

什么是哈希表 在引入哈希表之前,先谈一下为什么要了解哈希表。在学习Set集合时,发现Set集合可以实现无序存储,那么Set是如何实现的无序存储? 打开源码会发现Set集合的底层实际上是由一个map集合实现的。那么什么是哈希表呢&…

【人工智能原理自学】一元一次函数感知器:如何描述直觉

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔笔记来自B站UP主Ele实验室的《小白也能听懂的人工智能原理》。 🔔本文讲解一元一次函数感知器:如何描述直觉,一起卷起来叭! 目录…

基于Vue和SpringBoot的便利店仓库物资管理系统的设计与实现

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

jvm内存模型简介

一、Jvm 的介绍 1、JVM体系结构 2、JVM运行时数据区 3、JVM内存模型 JVM运行时内存 共享内存区 线程内存区 3.1、共享内存区 共享内存区 持久带(方法区 其他) 堆(Old Space Young Space(den S0 S1)) 持久代: JVM用持久带(Permanent Space&…

Java -- 软件开发整体流程;项目环境dev,test,staging,prod

软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程, 以及软件开发过程中涉及到的岗位角色,角色的分工、职责, 并了解软件开发中涉及到的四种软件环境。我们将从 软件开发流程、角色分工、软件环境…

7-4 乘法口诀数列

本题要求你从任意给定的两个 1 位数字 a1​ 和 a2​ 开始,用乘法口诀生成一个数列 {an​},规则为从 a1​ 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为…

1015:计算并联电阻的阻值(信奥赛一本通)

题目跳转:点击这里 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 【输入】 两个电阻阻抗大小,浮点型,以一个空格分开。 【输出】 并联之后的阻抗大小,结果保留小数点后22位。 【输入样例】 1 2 【输出样例】 0.67 …

Windows下Cmake的简易工程构建

新建两个文件head,src,用于存放头文件和c文件。 再新建CMakeLists.txt文件,用于cmake配置。 当前文件结构: --->CMakeLists.txt | --->head | --->src新建一个头文件hello.h 内容如下: #ifndef HELLO_H #define HELLO_H #include "stdio…

Koxia and Number Theory(数论)

题目链接&#xff1a; Problem - C - Codeforces 题目大意&#xff1a; 给定一个数组a.问是否存在x,使得gcd(aix,ajx)1 对任意(1<x<j<n)成立 思路&#xff1a; 首先不难发现&#xff0c;数组不可以出现相同的数字 记biaix 要满足gcd(bi,bj)1 对任意(1<x<…

Python数据分析案例17——电影人气预测(特征工程构建)

案例背景 本次案例是中国人民大学“人工智能与机器学习&#xff08;2022年秋季&#xff09;”课程的课堂竞赛。 比赛是根据有关电影的各种信息来预测电影的受欢迎程度&#xff0c;包括演员、工作人员、情节关键字、预算、收入、海报、上映日期、语言、制作公司、国家、TMDB 投…

【概率论】期末复习笔记:参数估计

参数估计目录一、点估计1. 估计量的概念2. 估计量的求法矩估计法最大似然估计法二、估计量的评选标准1. 无偏性2. 有效性3. 相合性总结三、区间估计1. 双侧区间估计2. 单侧区间估计四、正态总体参数的区间估计σ2\sigma^2σ2已知&#xff0c;考察μ\muμ</font>σ2\sigma…

车载以太网 - DoIP报文类型 - 02

上次我们聊了什么是DoIP&#xff0c;以及DoIP在车载网络以及车载ECU中的作用&#xff0c;我们应该有大概的了解&#xff0c;以及它的极大地作用&#xff0c;今天我们开始全面的去了解它&#xff0c;毕竟只有等我们了解它以后&#xff0c;才能更好的应用。今天要聊的第一个内容呢…

沃太能源冲刺上市:亿纬锂能、高瓴均为股东,收入主要来自境外

12月30日&#xff0c;沃太能源股份有限公司&#xff08;下称“沃太能源”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺科创板上市&#xff0c;沃太能源计划募资10亿元&#xff0c;中信证券为其保荐机构。 按照计划&#xff0c;沃太能源将其中…

网络编程 udp/ip协议 c/s模型

目录 1.概念​编辑 2.代码解析 1.recvfrom函数 2.sendto函数 3.内核泄露问题 整体代码 1.概念 2.代码解析 1.recvfrom函数 该函数接收数据报&#xff0c;并存储源地址&#xff0c;即得到当前服务器接收到的消息&#xff0c;并且存储在参数2&#xff0c;该函数是阻塞的&#x…

c++构造和析构

1.构造函数 1.构造函数特性 构造函数名字和类名相同构造函数没有返回值(void有返回值&#xff0c;返回值为空)不写构造函数&#xff0c;每一个类中都存在默认的构造函数&#xff0c;默认的构造函数是没有参数的default显示使用默认的构造函数delete删掉默认函数当我们自己写了…

MM采购订单及发票相关后台表介绍(图解)

EKPO 采购凭证项目 EKKO 采购凭证抬头 EORD 采购货源清单 EINA 采购信息记录 - 一般数据 EINE 采购信息记录 - 采购组织数据 EKET 计划协议计划行 EKES 供应商确认 EKKN 采购凭证中的帐户设置 EKBE 采购凭证历史 EKBZ 每个采购凭证的历史&#xff1a;交货费用 RBKP 凭…

在wsl下开发T113的主线linux(2)-编译awboot

意外发现有awboot能够代替uboot直接引导内核&#xff0c;体验了一下果断选择awboot&#xff0c;因为足够简洁&#xff0c;编译大小只有32k&#xff0c;和uboot接近1M的体量相比&#xff0c;简直是小而美&#xff0c;启动速度也比uboot快上不少&#xff0c;也能同时支持sd卡&…

DoIP协议从入门到精通系列——车载网络拓扑

因特网协议(IP-Internet protocol)是互联网规范中的基本协议,它仅是支持互联网正常运转“TCP/IP”协议簇之一。UDP协议也是TCP/IP协议体系中的内容(因为名称中只含有TCP/IP名称,往往会忽略UDP)。以太网引入到车载网络后,汽车也会慢慢进入车联网时代(或者物联网,万物互…

aws codepipeline 在pipeline构建过程中使用变量

参考资料 Action structure reference codebuild构建环境中的环境变量 codepipeline中的变量 在codePipeline中使用变量 对于codepipeline来说&#xff0c;管道结构中的每个操作都有自身的结构和定义&#xff0c;本文主要讨论不同资源的输出变量。 基本概念 变量允许用户…