(学习笔记-IP)IP基础知识

news2024/11/25 7:01:39

基本认识

IP在TCP/IP参考模型中处于第三层,也就是网络层。

网络层的主要作用是:实现主机与主机之间的通信,也叫点对点的通信。

 网络层与数据链路层的关系:

MAC的作用是实现直连的两个设备之间通信,而IP负责没有直连的两个网络之间进行通信传输

 因此计算机网络中需要数据链路层网络层这个分层才能实现向最终目标地址的通信

在TCP/IP网络通信时,为了保证能够正常通信,每个设备都需要配置IP地址,否则无法实现正常的通信。

IP地址(IPV4)有32位正整数表示,IP地址在计算机中是以二进制方式处理的。

为了方便记忆人们采用了点分十进制的标记方式,也就是将32位IP地址以每8位为一组,共分为4组,每组以 . 隔开,再将每组转换为十进制。

 所以,IP地址的最大值也就是:

 即最大允许约43亿台计算机连接到网络。

 实际上,IP地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有2个以上的网卡,也就是它们会有2个以上的IP地址。

因此,让43亿台计算机全部连网其实是不可能的,更何况IP地址是由 [网络标识] 和 [主机标识] 这两个部分组成的,所以实际能够连接到网络的计算机个数更是少了很多。

但是现在不仅电脑配备了IP,手机等电子设备都配备了IP,早就超过了43亿,是如何支持这么多IP的呢? 

根据一种可以更换IP地址的技术:NAT


IP地址的分类

IP地址分类主要有五种类型,分别是A类、B类、C类、D类、E类。

 图中的黄色为分类号,用以区分IP地址类别。其中A,B,C类主要分为两个部分:网络号主机号

A、B、C分类对应的地址范围、最大主机个数如下表:

A、B、C分类地址最大主机个数是如何计算的?

最大主机个数。就是要看主机号的位数,如C类地址的主机号占8位,那么C类地址的最大主机个数:

 为什么要减2呢?

因为在IP地址中,有两个IP是特殊的,分别是主机号为全1和全0的地址。

  • 主机号全为1指定某个网络下的所有主机,用于广播
  • 主机号全为0指定某个网络

广播地址用于什么?

广播地址用于在同一个链路中相互连接的主机之间发送数据包

广播地址可以分为本地广播和直接广播两种:

  • 在本网络内广播的叫做本地广播。例如网络地址为192.168.0.0/24的情况下,广播地址是192.168.0.255.因为这个广播地址的IP包会被路由器屏蔽,所以不会到达192.168.0.0/24以外的其他链路上。
  • 在不同网络之间的广播叫做直接广播。例如网络地址为192.168.0.0/24的主机向192.168.1.255/24的目标地址发送IP包。收到这个包的路由器,将数据转发给192.168.1.0/24,从而使得所有的192.168.1.1-192.168.1.254的主机都能收到这个包(直接广播有一定的安全问题,多数情况下会在路由器上设置不转发

什么是D、E类地址?

D类和E类地址是没有主机号的,所以不可用于主机IP,D类常被用于多播,E类是预留的分类,暂时未使用。


多播地址由于什么?

多播用于将包发送给特定组内的所有主机。

由于广播无法穿透路由,若想给其他网段发送同样的包,就可以使用穿透路由的多播。

 多播使用的D类地址,前四位是1110表示多播地址,而剩下的28位是多播的组编号。

从 224.0.0.0 ~ 239.255.255.255 都是多播的可用范围,其划分为以下三类:

  • 224.0.0.0 ~ 224.0.0.255 为预留的组播地址,只能在局域网中,路由器是不会进行转发的。
  • 224.0.1.0 ~ 238.255.255.255 为用户可用的组播地址,可以用于 Internet 上。
  • 239.0.0.0 ~ 239.255.255.255 为本地管理组播地址,可供内部网在内部使用,仅在特定的本地范围内有效。

IP地址分类的优点

不管是路由器还是主机解析到一个IP地址的时候,我们判断其IP地址的首位是否为0,为0则为A类地址,那么就能很快的找出网络地址和主机地址

 所以,这种分类地址的优点就是简单明了、选路(基于网络地址)简单。


IP地址分类的缺点

缺点一:

同一网络下没有地址层次,比如一个公司用了B类地址,但是可能需要根据生产环境、测试环境、开发环境来划分地址层次,而这种IP分类是没有地址层次划分的功能,所以缺少地址的灵活性。

缺点二:

A、B、C类地址不能很好的与现实网络匹配。

  • C类地址能包含的主机数量实在是太少了,只有254个。
  • 而B类地址包含的最大主机量又太多了,6万多台机器放在一个网络下面,一般的企业基本达不到这个规模。

这两个缺点,都可以在CIDR无分类地址解决。


无分类地址CIDR

正因为IP分类存在许多缺点,所以后面提出了无分类地址的方案:CIDR

这种方式不再有分类地址的概念。32比特的IP地址被划分为两部分,前面是网络号,后面是主机号。

怎么划分网络号和主机号

表示形式:a.b.c.d/x,其中/x表示前x位属于网络号,x的范围是0~32,这就使得IP地址更加具有灵活性。

比如 10.100.122.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号。

 还有另一种划分网络号与主机号形式,就是子网掩码,掩码的意思就是掩盖掉主机号,剩余的就是网络号。

将子网掩码与IP地址按位计算AND,就可得到网络号.


为什么要分离网络号与主机号?

因为两台计算机要通讯,首先要判断是否处于一个广播域内,即网络地址是否相同。如果网络地址相同,表明接收方在本网络上,那么可以吧数据包直接发送到目标主机。

路由器寻址工作中,也是通过这样的方式来找到对应的网络号的,进而把数据包转发给对应的网络内。


怎么进行子网划分

子网掩码不仅可以划分出网络号和主机号,实际上子网掩码还有一个作用,就是划分子网

子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。

  •  未做子网划分的IP地址:网络地址+主机地址
  • 做子网划分后的IP地址:网络地址+(子网网络地址+子网主机地址)

假设对C类地址进行子网划分,网络地址192.168.1.0,使用子网掩码255.255.255.192对其进行子网划分。

C类地址中前24位是网络号,最后8位是主机号,根据子网掩码可知从8位主机号中借用2位作为子网号。

 由于子网网络地址被划分为2位,那么子网地址就有4个,分别是00,01,10,11,具体划分如下:

 划分后的4个子网如下表:


 公有IP地址与私有IP地址

在A、B、C类地址中,实际上分公有IP地址和私有IP地址。

平时办公室、家里、学校的IP,一般都是私有IP地址。因为这些地址允许组织内部的IT人员自己管理、自己分配,而且可以重复。因此,多个学校的私有IP地址可以是一样的。

就像是每个小区都有自己的楼编号和门牌号,可以一样。但一但出了小区,就需要带上中山路666号(公网IP地址),是国家统一分配的,不能两个公网IP地址相同。

所以,公共IP地址是有一个组织统一分配的,假设你要开一个博客网站,那么就需要申请购买一个公有IP,这样全世界的人才能访问。并且公有IP地址基本上要在整个互联网范围内保持唯一。


公有IP地址由谁管理?

私有IP地址通常是内部的IT人员管理,公有IP地址是由ICANN组织管理,中文叫[互联网名称与数字地址分配机构]。

IANA 是 ICANN 的其中一个机构,它负责分配互联网 IP 地址,是按洲的方式层层分配。

  • ARIN 北美地区
  • LACNIC 拉丁美洲和一些加勒比群岛
  • RIPE NCC 欧洲、中东和中亚
  • AfriNIC 非洲地区
  • APNIC 亚太地区

其中,在中国是由 CNNIC 的机构进行管理,它是中国国内唯一指定的全局 IP 地址管理的组织。


IP地址与路由控制

IP地址的网络地址这一部分是用于进行路由控制。

路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在主机和路由器上都会有各自的路由器控制表。

在发送IP包时,首先要确定IP包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将IP包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。

  1.  主机A要发送一个IP包,其源地址是10.1.1.30和目标地址是10.1.2.10,由于没有在主机A的路由表找到与目标地址10.1.2.10相同的网络地址,于是包被转发到默认路由(路由器1
  2. 路由器1收到IP包后,也在路由器1的路由表匹配与目标地址相同的网络地址记录,发现匹配到了,于是就把IP数据包转发到了10.1.0.2这台路由器2
  3. 路由器2收到后,同样对比自身的路由表,发现匹配到了,于是把IP包从路由器2的10.1.2.1这个接口发出去,最终经过交换机把IP数据包转发到了目标主机。

环回地址是不是会流向网络

环回地址是在同一台计算机上的程序之间进行网络通信时所使用的一个默认地址。

计算机在使用一个特殊的IP地址127.0.0.1作为环回地址。改地址具有相同意义的是一个叫做localhost的主机名。使用这个IP或主机名时,数据包不会流向网络


IP分片与重组

每种数据链路的最大传输单元MTU都是不相同的,如FDDI数据链路 MTU 4352、以太网的MTU是1500字节等。

每种数据链路的MTU之所以不同,是因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的MTU也就不同。

其中,最常见的数据链路就是以太网,其MTU是1500字节。

当IP数据包大于MTU时,IP数据包就会被分片

经过分片之后的IP数据包在被重组的时候,只能由目标主机进行,路由器是不会进行重组的

 在分片传输中,一旦某个分片丢失,则会造成整个IP数据包报废,所以TCP引入了MSS也就是在TCP层进行分片不由IP层分片(可参见),那么对于UDP尽量不要发送一个大于MTU的报文。


IPV6基本认识

IPV4的地址是32位的,大约可以提供42亿个地址,但是早在2011年IPV4地址就已经被分配完了。

但是IPv6的地址是128位的,这可分配的地址数量是巨大的,IPv6 可以保证地球上的每粒沙子都能被分配到一个 IP 地址。

但IPv6除了有更多的地址之外,还有更好的安全性和扩展性,简单点就是IPv6相比于IPv4能带来更好的网络体验。

但是因为IPv4和IPv6不能互相兼容,所以我们不但要我们电脑、手机之类的设别支持,还需要网络运营商对现有的设备进行升级,这也是IPv6普及较慢的一个原因。

IPv6的亮点

IPv6不仅仅只是可分配地址变多了,它还有非常多的亮点:

  • IPv6可自动配置,即使没有DHCP服务器也可以实现自动分配IP地址,即插即用
  • IPv6包头包首部长度采用固定的值40字节,去掉了包头校验和,简化了首部结构,减轻了路由器负荷,大大提高了传输的性能
  • IPv6有应对伪造IP地址的网络安全功能以及防止线路窃听的功能,大大提升了安全性

IPv6地址的标识方法

IPv4地址长度共32位,是以每8位作为一组,并用点分十进制的表示方式。

IPv6地址长度是128位,是以每16位作为一组,每组用[ : ]隔开

 如果出现连续的0时还可以将这些0省略,并用两个冒号[ :: ]隔开。但是,一个IP地址中只允许出现一次两个连续的冒号。


IPv6地址结构

IPv6类似IPv4,也是通过IP地址的前几位标识IP地址的种类。

IPv6地址主要有以下类型的地址:

  • 单播地址,用于一对一的通信
  • 组播地址,用于一对多的通信
  • 任播地址,用于通信最近的节点,最近的节点是由路由协议决定的
  • 没有广播地址。


IPv6单播地址类型

对于一对一通信的IPv6地址,主要划分了三类单播地址,每类地址的有效范围都不同。

  • 在同一链路单播通信,不经过路由器,可以使用链路本地单播地址,IPv4无此类型
  • 在内网里单播通信,可以使用唯一本地地址,相当于IPv4的私有IP
  • 在互联网通信,可以使用全局单播地址,相当于IPv4的公有IP


IPv4首部与IPv6首部

IPv4 首部与 IPv6 首部的差异如下图:

 IPv6相比IPv4的改进:

  • 取消了首部校验和字段。因为在数据链路层和传输层都会校验,因此IPv6直接取消了IP的校验
  • 取消了分片/重新组装相关字段。分片和重组是耗时的过程,IPv6不允许在中间路由器进行分片和重组,这种操作只能在源与目标主机,大大提高了路由器的转发速度。
  • 取消选项字段。选项字段不再是标准IP首部的一部分了,但它并没有消失,而是可能出现在IPv6首部中的[下一个首部]指出的位置上。删除该字段IPv6的首部成为固定的40字节。

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

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

相关文章

dbeaver下载及安装

dbeaver下载及安装 dbeaver下载安装执行 【近期收到公司通知,需要卸载navicat,找其他免费开源数据库管理工具】 dbeaver下载 地址: https://dbeaver.io/download/迅雷下载会快很多 安装 一步一步安装就行了: 启动 执行

IDE /完整分析C4819编译错误的本质原因

文章目录 概述基本概念代码页标识符字符集和字符编码方案源字符集和执行字符集 编译器使用的字符集VS字符集配置 有何作用编译器 - 源字符集编译器 -执行字符集 Qt Creator下配置MSVC编译器参数动态库DLL字符集配置不同于可执行程序EXE总结 概述 本文将从根本原因上来分析和解…

安全是最珍贵的 ,不要让自己的自己的秘密成为“梨润”的来源!!!

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…

顺序表(增删改查)

目录 1.线性表 2.顺序表 2.1静态顺序表 2.2动态顺序表 3.顺序表接口 4.顺序表实现 4.1初始化 4.2销毁 4.3打印 4.4尾插 4.5尾删 4.5.1尾删改进 4.6检查是否存满 4.7头插 4.8头删 4.9 1.线性表 线性表 (inear ist)是n个具有相同特性的数据元素的有限序列。线…

【JavaEE】基于Servlet与MySQL实现一个简易网站

目录 前言 一、实现表白墙的前期准备工作 1、约定前后端交互的接口 1.1、接口一:页面获取当前所有的留言消息 1.2、接口二:提交新消息给服务器 二、前端和后端代码的实现 1、数据的永久化保存 2、小结 前言 之前小编在写前端页面的时候&#x…

大模型入坑指南 大厂vs初创公司

大模型竞争激烈,创业公司随时可能倒掉,造成项目烂尾,EB3.5已经跟国内其他模型拉开了差距… 人工智能是当前时代的重要热点之一,它正在改变着我们的生活和工作。在人工智能领域,有一种技术尤其引人注目,那就…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

Centos报错:[Errno 12] Cannot allocate memory

执行一个脚本刚开始正常,后面就报[Errno 12] Cannot allocate memory 如果内存不足,可能需要增加交换内存。或者可能根本没有启用交换。可以通过以下方式检查您的交换: sudo swapon -s如果它为空,则表示您没有启用任何交换。添加 1GB 交换…

构建自己的ChatGPT:从零开始构建个性化语言模型

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

FPGA XDMA 中断模式实现 PCIE3.0 QT上位机视频传输 提供工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案图像产生、发送、缓存XDMA简介XDMA中断模式图像读取、输出、显示QT上位机及其源码 5、vivado工程详解6、上板调试验证7、福利:工程代码的获取 1、前言 PCIE(PCI Express)采…

【微服务系统设计】系统设计基础:速率限制器

什么是速率限制器? 速率限制是指防止操作的频率超过定义的限制。在大型系统中,速率限制通常用于保护底层服务和资源。速率限制一般在分布式系统中作为一种防御机制,使共享资源能够保持可用性。 速率限制通过限制在给定时间段内可以到达您的 A…

java学习路程之篇三、进阶知识、面向对象高级、接口新特性、代码块、内部类、Lambda表达式、窗体、组件、事件

文章目录 1、接口新特性2、代码块3、内部类4、Lambda表达式5、窗体、组件、事件 1、接口新特性 2、代码块 3、内部类 4、Lambda表达式 5、窗体、组件、事件

python 压测 +paramiko 远程监下载日志 +js 测试报告

目录 前言: 关于压测客户端 netty nio 压测端 python tornado 异步框架压测 python 协程压测端 远程监控 js 解析日志 前言: 在软件开发中,压测和测试是非常重要的一个环节,它可以帮助我们更加全面地检测软件中的安全漏洞…

SR04 超声波测距模块

文章目录 前言一、SR04 模块介绍二、设备树设置三、驱动程序四、测试程序五、上级测试及效果总结 前言 超声波测距模块 是利用超声波来测距。模块先发送超声波,然后接收反射回来的超声波,由反射经历的时间和声音的传播速度 340m/s,计算得出距…

剑指offer40.最小的k个数

简直不要太简单了这道题,先给数组排个序,然后输出前k个数就好了。我用的是快排,这是我的代码: class Solution {public int[] getLeastNumbers(int[] arr, int k) {int n arr.length;quickSort(arr, 0, n-1);int[] res new int…

Mysql 简介

Mysql 简介 学习目的 MySQL作为目前最流行的关系型数据库管理系统之一,因其开源免费的特性,成为小型Web应用的重点关注对象。几乎所有的动态Web应用基本都在使用MySQL作为数据管理系统。学习MySQL的目的也是为了更好地理解数据库相关的SQL注入漏洞&…

【性能优化】MySQL百万数据深度分页优化思路分析

业务场景 一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问…

关于脑电睡眠分期,你应该知道的还有这些

导读 基于电生理信号(EEG,EOG和EMG)对睡眠阶段进行识别的建议源自Rechtschaffen和Kales手册,由美国睡眠医学学会于2007年发布,并定期更新多年。这些建议对于评估不同类型的睡眠/觉醒主观评定中的客观标志物非常重要。凭借研究的简单、可重复…

windows/linux/mac上编译open3d 0.17.0

目录 写在前面准备编译windows:linux/mac:注: 参考完 写在前面 1、本文内容 windows/linux/mac上编译open3d 0.17.0 2、平台 通过cmake构建项目,跨平台通用 3、转载请注明出处: https://blog.csdn.net/qq_41102371/article/details/1318918…

基于C++的QT基础教程学习笔记

文章目录: 来源 教程社区 一:QT下载安装 二:注意事项 1.在哪里写程序 2.如何看手册 3.技巧 三:常用函数 1.窗口 2.相关 3.按钮 4.信号与槽函数 5.常用栏 菜单栏 工具栏 状态栏 6.铆接部件 7.文本编辑 8…