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

基本认识

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.mzph.cn/news/8258.shtml

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

相关文章

3ds Max图文教程: 使用动态工具Mass FX 创建风铃动画

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 简单的场景设置 步骤 1 打开 3ds Max。 打开 3ds Max 步骤 2 我将向您展示风铃背后的动态 通过简单的场景设置进行模拟。一旦你有了这个想法,你就可以应用这个 技术到复杂的风铃结构。 基…

深圳国际新能源及智能网联汽车全产业博览会今年10月举办

7月25日,深圳市工业和信息化局与励展博览集团共同在深圳举办Automotive World China 2023深圳国际新能源及智能网联汽车全产业博览会(简称“AWC 2023”)全球推介启动大会,该博览会将于2023年10月11日-13日在深圳国际会展中心盛大举…

SpringBoot自动装配原理

自动配置 pom.xml spring-boot-dependencies:核心依赖在父工程中&#xff01;我们在写或者引入一些springboot以来的时候&#xff0c;不需要指定版本&#xff0c;就因为有这些版本仓库 启动器 <!-- 启动器 --><dependency><groupId>org.springf…

激光雷达-相机联合标定

https://f.daixianiu.cn/csdn/9499401684344864.html ros usb相机内参标定 ROS系统-摄像头标定camera calibration_berry丶的博客-CSDN博客

详解CMakeLists.txt

在前一篇文章 esp32 初识 cmake 构建工具 中&#xff0c;已经用"hellow world"程序介绍了cmake最基本的用法&#xff0c;今天详细讲解CMakeLists.txt文件。 CMakeLists.txt CMakeLists.txt文件是CMake构建工具的核心配置文件。它包含了构建项目所需的一系列指令和参…

20230724----重返学习-vue3知乎日报项目实战

day-119-one-hundred-and-nineteen-20230724-vue3知乎日报项目实战 vue3项目实战-知乎日报 主要问题 pinia 和 vuex4 的区别 vue/cli和vite的区别 vue/cli脚手架的底层核心是webpack。vite脚手架&#xff1a; 开发环境&#xff1a;基于ESModule模块规范处理的生产环境&#…

PHPWord 实现合并多个word文件

PHPWord 本来想着当调包侠呢&#xff0c;结果翻了一遍文档&#xff0c;没有这种操作支持&#xff0c;阿这&#x1f602; GPT 不出意外的一顿胡扯&#xff0c;给&#x1f468;‍&#x1f9b3;气的要中风啦 思路 word 也就是docx结尾的文件本质上就是xml字符串&#xff0c; …

为什么很多程序员不用switch,而是大量 的if......else if?

不会吧还有人用if else和switch case&#xff1f;三目运算符&#xff1f; 不会吧&#xff1f; 不会吧&#xff1f;大佬都是全都不用的&#xff01;以JAVA为例 条件判断语句的四种写法&#xff0c;茴字的四种写法大家不会不知道吧 1.正常人写法&#xff1a; private static …

Linux中断(tasklet,工作队列,内核线程的使用)

文章目录 前言一、tasklet二、工作队列三、内核线程总结 前言 本篇文章来讲解在Linux中tasklet,工作队列,内核线程的使用。 一、tasklet tasklet在内核里面其实就是下面这样的一个结构体&#xff1a; struct tasklet_struct {struct tasklet_struct *next;unsigned long st…

使用的华为云RDS数据库不小心把数据删了

目录 前言恢复qp文件帮助文档表级时间点恢复删除数据的时候要注意 前言 华为云查数据的时候前面是有个序号的&#xff0c;删除数据的时候不小心把序号看成id了&#xff0c;导致误删数据。 注&#xff1a;图片如果看不清楚可以点击放大观看&#xff01; 恢复qp文件 华为云每天…

2023最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

机器学习之主成分分析(Principal Component Analysis)

1 主成分分析介绍 1.1 什么是主成分分析 主成分分析&#xff08;Principal Component Analysis&#xff09;简称PCA&#xff0c;是一个非监督学习的机器学习算法&#xff0c;主要用于数据的降维&#xff0c;对于高维数据&#xff0c;通过降维&#xff0c;可以发现更便于人类理…

CVPR2023新作:pix2pix3D

Title: 3D-Aware Conditional Image SynthesisAffiliation: Carnegie Mellon University (卡内基梅隆大学)Authors: Kangle Deng, Gengshan Yang, Deva Ramanan, Jun-Yan ZhuKeywords: Image Synthesis, 3D-aware, Neural Radiance Fields, Interactive Editing, Conditional G…

Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131931309 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

驱动开发 day3 (模块化驱动启动led,蜂鸣器,风扇,震动马达)

模块化驱动启动led,蜂鸣器,风扇,震动马达并加上Makefile 封装模块化驱动&#xff0c;可自由安装卸载驱动&#xff0c;便于驱动更新(附图) 1.安装模块驱动同时初始化各个设备并使能 2.该驱动会自动创建驱动节点. 3.通过c函数程序输入控制各个设备 4.卸载模块驱动 //编译驱动…

K8s卷存储详解(一)

K8s卷存储详解&#xff08;一&#xff09; K8s 存储K8s卷分类K8s目前支持的卷类型 临时卷类型EmptyDirCSI 临时卷通用临时卷 K8s 存储 什么是卷&#xff1f;为什么要用卷&#xff1f; 我们知道K8s是基于容器&#xff0c;对各个Pod进行管理的。Pod是由容器构成的&#xff0c;我…

开发中遇到的 cookie 问题

1. cookie 无法跨域携带问题 尽管已经登录&#xff0c;但是请求接口返回状态码&#xff1a;202&#xff0c;msg&#xff1a; 未登录&#xff0c;如下图所示&#xff1b; 1.1 XMLHttpRequest.withCredentials未设置 如果需要跨域 AJAX 请求发送 Cookie&#xff0c;需要withCre…

使用wxPython和pillow开发拼图小游戏(四)

上一篇介绍了使用本地图片来初始化游戏的方法&#xff0c;通过前边三篇&#xff0c;该小游戏的主要内容差不多介绍完了&#xff0c;最后这一篇来介绍下游戏用时的计算、重置游戏和关闭窗口事件处理 游戏用时的计算 对于游戏用时的记录&#xff0c;看过前几篇的小伙伴可能也发现…

MATLAB实现图像处理:图像识别、去雨、去雾、去噪、去模糊等等(附上20个完整仿真源码)

图像处理是计算机视觉领域的重要研究方向&#xff0c;MATLAB是一种功能强大的数学计算软件&#xff0c;可以用于图像处理和分析。下面是一些简单的MATLAB图像处理代码示例&#xff0c;包括图像增强、边缘检测、形态学处理、特征提取等。 文章目录 1. 图像增强2. 边缘检测3. 形态…

【雕爷学编程】Arduino动手做(88)---水流量传感器模块3

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…