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

Linux--网络层IP

IP协议

IP协议,全称Internet Protocol(互联网协议),是TCP/IP协议族中的核心协议之一,用于在互联网络上进行数据的传输。IP协议的主要功能是确保数据从一个网络节点(如计算机、服务器、路由器等)传输到另一个网络节点,并且能够在各种不同的物理网络上工作。

IP协议为每个网络上的设备分配一个唯一的地址,即IP地址。这个地址用于标识设备在网络中的位置,使得数据能够准确地发送到目标设备。

IP协议允许数据包(即IP数据包)在互联网络中从一个网络节点传递到另一个网络节点,直到到达目标地址。这一过程中,数据包可能会经过多个路由器,每个路由器都根据IP地址和网络拓扑来决定数据包的下一跳位置。

IP协议提供的是一种无连接的服务,这意味着发送数据之前不需要在发送方和接收方之间建立连接。这种特性使得IP协议非常灵活,但同时也要求上层协议(如TCP或UDP)来处理数据的可靠传输和顺序问题。
在这里插入图片描述

主机: 配有 IP 地址, 但是不进行路由控制的设备;
路由器: 即配有 IP 地址, 又能进行路由控制;
节点: 主机和路由器的统称

IP地址(IPV4)

在TCP/IP网络中,每台计算机除了本身固有的被称为MAC地址的硬件地址,还有一个所谓的”逻
辑地址”(IP地址),该地址通常由管理员设置(静态IP地址),亦可由所使用的网络协议(如
DHCP,动态主机配置协议)自动设置(动态IP地址)。该地址在该网络中具有唯一性。

在这里插入图片描述

这是IP地址的形式,是一个32位的数,分4组,每组8位;
通过点分十进制的方法来进行表示;

IP地址的网段划分

像我们身份证一样,IP地址的规定也是有一定规律形式的。
要找到对应的主机,就要先确定所在的网络地址,然后在网络地址上找到对应的主机地址

故:
在这里插入图片描述
网络号用来标识主机所连接的网络
主机号用来标识连接在这个网络中的不同主机

像下面的例子一样:
在这里插入图片描述
主机A和主机B网络号均为202.113.27,在路由器可以找到这个对应的网络号,然后再这片区域内找到所要的主机号(这片区域也被称为局域网);

IP地址的类别

在这里插入图片描述

在这里插入图片描述

  • A 类 0.0.0.0 到 127.255.255.255
  • B 类 128.0.0.0 到 191.255.255.255
  • C 类 192.0.0.0 到 223.255.255.255
  • D 类 224.0.0.0 到 239.255.255.255
  • E 类 240.0.0.0 到 247.255.255.255

这样分类是为了更加容易管理和寻址,容易确定网络的大小和范围,也就是能够区分IP地址中网络号和主机号的划分;

子网掩码

后来,随着互联网的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请 B 类
网络地址, 导致 B 类地址很快就分配完了, 而 A 类却浪费了大量地址;

于是,就有了子网掩码,让它来对主机号来进一步细致的划分;
在这里插入图片描述

子网掩码也是一个 32 位的正整数. 通常用一串 “0” 来结尾;
作用是告诉TCP/IP主机,IP地址的哪些位对应于网络地址,哪些位对应于主机地址
子网中的所有主机必须配置相同的子网掩码。
在这里插入图片描述

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

例如
在这里插入图片描述

网络地址的运算

将 IP 地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;


在这里插入图片描述
像B类,默认子网掩码255.255.0.0 就是没有划分子网,C类的255.255.255.0都说默认的子网掩码;表示当前网络没有进行子网划分;

特殊的IP地址

  • 在网络中,主机号为0,就表示当前IP地址就是网络号了,代表了这个局域网的网络地址;
    在这里插入图片描述

  • 如果将主机号设为1,就变为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
    例如我们家中所用路由器,所用IP地址主机号都是1;

  • 127.*的 IP 地址用于本机环回(loop back)测试,通常是 127.0.0.1

局域网

局域网(Local Area Network,LAN)是一种覆盖有限地理范围(如办公室、学校、工厂等)的计算机网络,它允许该范围内的多台计算机、打印机、服务器等设备相互连接,实现资源共享和通信

由于设备间距离较近,局域网通常能够提供较高的数据传输速率(带宽)和较低的数据传输延迟(延迟时间),这使得局域网内的设备能够快速地交换大量数据。

局域网中的设备通常属于同一组织或机构,因此更容易进行统一的管理和控制。

IPv6

由于当今时代的飞速发展,网络中的IP(IPV4)地址最多也就2*32(大约43亿)而已;这对于全球网络中的主机来说,是远远不够的;
为了解决这种问题,就有了IPv6;

IPv6地址有2*128的地址数量,这是一个极其庞大的数字;
每个IPv6地址由8个16位的字段组成,每个字段由4个十六进制数表示,字段由冒号隔开
在这里插入图片描述
但在实际分配和管理过程中,会存在地址的囤积和不合理分配的问题,这可能导致资源浪费和分配不均;并且这是一个和IPv4不兼容的协议,要想普及还是有些难度的;

IP私有地址

如果IP 地址只用于局域网内的通信,而不直接连到 互联网 上(范围缩小), 理论上 使用任意的 IP 地址都可以,但是 RFC 1918 规定了用于组建局域网的私有 IP 地址:

  • 10.*,前 8 位是网络号,共 16,777,216 个地址(A类常用私有IP)
  • 172.16.到 172.31.,前 12 位是网络号,共 1,048,576 个地址(B类常用私有IP)
  • 192.168.*,前 16 位是网络号,共 65,536 个地址(C类常用私有IP)

所以,像现在的公司或者家里路由器,在局域网范围内,都说建立自己的私有IP来进行通信;

NAT技术

NAT(Network Address Translation,网络地址转换)技术是一种将私有网络地址(如局域网内部地址)转换成公共网络地址(如互联网地址)的技术。它主要用于连接私有网络与公共网络之间的路由器上,以实现多台计算机共用一个公网IP地址上网。

基本原理

NAT技术通过在网络出口设备(如路由器或防火墙)上部署,对IP数据报文中的IP地址进行转换。对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址);而对于“从外到内”的流量,则对数据包的目的地址进行转换。这种转换机制使得内部网络的主机能够访问外部网络,同时外部网络无法直接访问内部网络的私有地址,从而增强了内部网络的安全性

实现方式

  • 静态NAT:内部本地地址一对一转换成内部全局地址,即内部网络的每一台设备都绑定一个全局地址。这种方式适用于内部网络中只有少量设备需要对外进行通信的情况。
  • 动态NAT:将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的。所有被授权访问Internet的私有IP地址可随机转换为任何指定的合法IP地址。这种方式适用于内部网络中有大量设备需要对外进行通信,但公有IP地址数量有限的情况。
  • 端口多路复用(PAT/NAPT):内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问。该模式同时对IP地址和传输层端口进行转换,实现不同私有地址(不同的私有地址,不同的源端口)映射到同一个公有地址(相同的公有地址,不同的源端口)。这种方式可以最大限度地节约IP地址资源,并隐藏网络内部的所有主机。

优势

  • 节省公有合法IP地址:通过NAT技术,多台内部设备可以共享一个公有IP地址访问外部网络,从而有效缓解了IPv4地址短缺的问题(这也是当前缓解IPv4数量不足的主要手段)。
  • 处理地址重叠:在私有网络中,可能存在IP地址冲突的情况。通过NAT技术,可以将这些冲突的IP地址转换为不同的公有IP地址,从而解决地址重叠问题。
  • 增强灵活性:NAT技术提供了灵活的地址转换机制,可以根据实际需求选择不同的实现方式。
  • 提高安全性:NAT技术隐藏了内部网络的IP地址,使得外部网络无法直接访问内部网络中的设备,从而提高了内部网络的安全性。

相关文章:

Linux--网络层IP

IP协议 IP协议,全称Internet Protocol(互联网协议),是TCP/IP协议族中的核心协议之一,用于在互联网络上进行数据的传输。IP协议的主要功能是确保数据从一个网络节点(如计算机、服务器、路由器等&#xff09…...

浅谈vite之import.meta

一. 解析 开发者使用一个模块时,有时需要知道模板本身的一些信息(比如模块的路径)。现在有一个提案,为 import 命令添加了一个元属性 import.meta,返回当前模块的元信息。 import.meta只能在模块内部使用,如…...

【Pytorch实用教程】Pytorch中nn.Sequential的用法

nn.Sequential 是 PyTorch 中用于构建神经网络的一种容器类,它可以按顺序封装多个子模块(层),并依次将输入数据传递给这些子模块。这样可以简化模型的定义,使得代码更加简洁和易读。 文章目录 基本用法方法一:直接传递子模块方法二:使用 `OrderedDict`动态构建模型优点注…...

Shopify被封?Shopify店铺开店到防封全面指南

Shopify,作为独立电商建站领域的佼佼者,其SaaS模式简化了建站流程,无需编程背景即可创建线上店铺,吸引了众多商家的目光。本文将详细讲解Shopify店铺从注册、运营到防封的每一个关键环节,为商家提供一站式指导&#xf…...

11. 盛最多水的容器

一题目&#xff1a; 二&#xff1a;代码&#xff1a; class Solution { public:int maxArea(vector<int>& height) {int l0;int rheight.size()-1;int ans0;while(l<r){int a(r-l)*min(height[l],height[r]);ansmax(ans,a);if(height[l]<height[r]) l;else r-…...

react如何父子组件传参

在React中&#xff0c;父子组件之间的传参主要通过props&#xff08;属性&#xff09;来实现。子组件通过props接收来自父组件的数据&#xff0c;而父组件则可以通过在子组件标签上设置属性&#xff08;即props&#xff09;来传递数据。下面是一个简单的例子来说明这个过程。 …...

【C++】二维数组 数组名

二维数组名用途 1、查看所占内存空间 2、查看二维数组首地址 针对第一种用途&#xff0c;还可以计算数组有多少行、多少列、多少元素 针对第二种用途&#xff0c;数组元素、行数、列数都是连续的&#xff0c;且相差地址是有规律的 下面是一个实例 #include<iostream&g…...

【蘑菇书EasyRL】强化学习,笔记整理

【蘑菇书EasyRL】强化学习&#xff0c;笔记整理 1.笔记整理1.1 学习和决策代码框架 2. 遇到的buggym 环境&#xff0c;新版本python无法使用env_specs envs.registry.all() 报错 蘑菇书的教程地址&#xff1a; https://datawhalechina.github.io/easy-rl/#/chapter1/chapter1?…...

尚硅谷谷粒商城项目笔记——三、安装docker【电脑CPU:AMD】

三、安装docker 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 首先关闭防火墙和安全策略 systemctl…...

【8-9月份唯一机械电气计算机主题的IEEE会议】第七届机电一体化与计算机技术工程国际学术会议(MCTE 2024,8月23-25)

由广东博士创新发展促进会、输变电装备技术全国重点实验室联合主办&#xff0c;重庆大学电气工程学院、AEIC学术交流中心协办的第七届机电一体化与计算机技术工程国际学术会议&#xff08;MCTE 2024&#xff09;将于2024年8月23-25日在中国广州隆重举行。 大会诚挚邀请您投递相…...

YOLOv8改进 | 主干网络 | 简单而优雅且有效的VanillaNet 【华为诺亚方舟】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有80+篇内容,内含各种Head检测头、损失函数Loss、…...

Tomcat高可用集群(实例详解)

一.环境准备 虚拟机的版本&#xff1a;VMware-workstation-full-15.5.6-16341506.exe系统镜像版本&#xff1a;CentOS-6.10-x86_64-bin-DVD1.iso&#xff0c;全新安装&#xff0c;桌面版&#xff0c;可上网系统内存大小&#xff1a;1GB系统硬盘大小&#xff1a;20GB连接工具版…...

搭建自己的金融数据源和量化分析平台(五):更新两市退市股票信息

在前面的股票列表设计中&#xff0c;我们有一个list_status字段&#xff0c;可能的值为L上市 D退市 P暂停上市。 由于股票可能会被退市&#xff0c;因此需要该字段来维护上市状态。 深市爬虫&#xff1a; # 读取深交所最新退市股票列表 def get_delisted_stock_list():cache_f…...

Redis复习总结

之前写的博客太杂,最近想把Redis的知识点再系统的过一遍,带着自己的理解使用简短的话把一些问题总结一下,尤其是开发中和面试中的高频问题,基础知识点参考–>Redis入门、Spring Cache,这篇不再赘述。 目录 基础简介;与Memcached的区别;为什么作为mysql缓存?如何保证R…...

基于JSP的医院挂号系统

你好&#xff0c;我是专注于医疗信息系统的计算机专业毕业生。如果您对医院挂号系统感兴趣或有相关需求&#xff0c;欢迎随时联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;MyEclipse 系统展示 首页 管理员功能模…...

Chainlit快速实现AI对话应用1 分钟内实现聊天数据的持久化保存

概述 默认情况下&#xff0c;Chainlit 应用不会保留其生成的聊天和元素。即网页一刷新&#xff0c;所有的聊天记录&#xff0c;页面上的所有聊天记录都会消失。但是&#xff0c;存储和利用这些数据的能力可能是您的项目或组织的重要组成部分。 一旦启用&#xff0c;数据持久性…...

STM32DMA数据传输

我估计大多数人学这么久连听说都没听说过DMA&#xff0c;更不用提知道它是干嘛的。其实DMA的本质就是一个数据的搬运工。平常的时候当我们没有配置的时候&#xff0c;一直都是CPU在搬运数据&#xff0c;但是这个活又累又没有技术含量&#xff0c;所以DMA的重要性还是有的。 目…...

Python学习笔记50:游戏篇之外星人入侵(十一)

前言 本篇文章接着之前的内容&#xff0c;继续对游戏功能进行优化&#xff0c;主要是优化游戏状态以及对应的处理。 状态 一个游戏包含多种状态&#xff0c;这个状态是一个可以很复杂也可以很简单的内容。条件所限&#xff0c;我们这个游戏的状态就比较简单&#xff1a; 未…...

vue3踩坑问题记录

//vue3element-plus //1、placeholder换行显示 const startTxt ref() const contentText ref<any>() startTxt.value "请描述问题内容、例如&#xff1a;" historyData.prompt.forEach((el:any)>{contentText.value \n${el.question}}) <ElInputv-mo…...

Python 爬虫实战:Scrapy 框架详解与应用

&#x1f6e0;️ Scrapy 框架基本使用 Scrapy 是一个强大的 Python 爬虫框架&#xff0c;提供了用于提取和处理网页数据的功能。以下是 Scrapy 的基本使用步骤&#xff1a; 安装 Scrapy pip install scrapy创建 Scrapy 项目 scrapy startproject myproject这将生成一个基础…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...