Linux--网络层IP

news2024/11/26 16:37:11

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地址,使得外部网络无法直接访问内部网络中的设备,从而提高了内部网络的安全性。

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

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

相关文章

【C++第11章】Vector

【C第11章】Vector vector介绍🧐 vector是表示可变大小数组的序列容器,它类似于数组,但大小可以动态改变,并且大小会被容器自动处理。本质上说,vector使用动态分配数组来存储元素,为了减少扩容代价&#x…

音频剪辑软件哪个好用?音乐制作必备的6款音频剪辑工具

在这个充满声音的世界里,音乐和音频不仅仅是艺术表达的一种形式,更是情感的载体,是故事的讲述者。 你是否曾想过,那些令人动容的电影配乐、让人热血沸腾的电音节拍或是清晨唤醒你的温柔闹钟,是如何从一堆杂乱无章的声…

坐牢第二十三天 20240806(IO)

一.作业 1> 使用消息队列完成两个进程之间相互通信 A.c #include <myhead.h> // 要发送的消息类型 struct msgbuf {long mtype; /* message type, must be > 0 */char mtext[1024]; /* message data */ }; #define SIZE sizeof(struct msgbuf) - sizeof(l…

PEPM系统Cookie请求头远程代码执行漏洞复现 [附POC]

文章目录 PEPM系统Cookie请求头远程代码执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现PEPM系统Cookie请求头远程代码执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,…

mem0ai+ollama+qwen2搭建中文版运行环境

准备模型 支持function的qwen2模型 随便找了一个&#xff0c;也可以下载其他支持function的模型&#xff0c;或者自己下载模型文件搭建 ollama run sam4096/qwen2toolsembedder 模型 ollama run nomic-embed-text拉取mem0ai 源码&#xff0c;切换对应分支 git clone https…

【Foundation】(三)transformers之Model

文章目录 1、介绍1.1、 模型类型1.2、Model Head 2、模型加载3、模型调用3.1、不带Model Head的模型调用3.2、带Model Head的模型调用 4、模型微调实战4.1、导包4.2、加载数据4.3、创建数据集4.4、划分数据集4.5、创建加载器4.6、创建模型以及优化器4.7、模型训练4.8、模型评估…

Figma 替代品 Excalidraw 安装和使用教程

如今远程办公盛行&#xff0c;一个好用的在线白板工具对于团队协作至关重要。然而&#xff0c;市面上的大多数白板应用要么功能单一&#xff0c;要么操作复杂&#xff0c;难以满足用户的多样化需求。尤其是在进行头脑风暴、流程设计或产品原型绘制时&#xff0c;我们常常会遇到…

linux入门到精通-第二十章-bufferevent(开源高性能事件通知库)

目录 参考bufferevent简单介绍工作流程事件Api新建事件节点 bufferevent_socket_new设置事件节点回调bufferevent_setcb使事件势能bufferevent_enable发送数据bufferevent_write接收数据bufferevent_read evconnlistener的简介 参考 视频教程 libevent的基本使用 libevent–bu…

HslCommunicationDemo各品牌Plc通信测试软件工具

目录 1、HslCommunicationDemo程序包 2、ModbusTCP举例说明 (0)概述 &#xff08;1&#xff09;线圈写操作 &#xff08;2&#xff09;寄存器写操作 3、C#工程中DLL库文件使用 &#xff08;1&#xff09;创建Winform程序工程 &#xff08;2&#xff09;写寄存器 1、HslC…

【Linux】匿名管道|命名管道|pipe|mkfifo|管道原理|通信分类|管道的特征和情况

目录 ​编辑 进程间通信 为什么要有进程间通信 进程通信的目的 进程间通信分类 如何理解通信 管道 匿名管道 管道原理 半双工 通信两问 pipe 演示 管道情况 管道的特征 命名管道 mkfifo指令 mkfifo接口 命名管道提供的是流式服务 匿名管道与命名管道的…

day08 1.进程间通信

work1.c #include <myhead.h> //要发送的消息类型 struct msgbuf {long mtype;char mtext[1024]; };#define SIZE sizeof(struct msgbuf)-sizeof(long)int main(int argc, const char *argv[]) {pid_t pid fork();if(pid -1){perror("fork error");return -…

Webpack入门基础知识及案例

webpack相信大家都已经不陌生了&#xff0c;应用程序的静态模块打包工具。前面我们总结了vue&#xff0c;react入门基础知识&#xff0c;也分别做了vue3的实战小案例&#xff0c;react的实战案例&#xff0c;那么我们如何使用webpack对项目进行模块化打包呢&#xff1f; 话不多…

RPA与智慧政务的关系

自1992年国务院明确提出构建全国行政机关办公决策系统&#xff0c;我国政府信息化建设已走过三十余年历程&#xff0c;并取得了阶段性成果&#xff0c;随着社会需求的变化以及信息技术和数字化工具的不断完善&#xff0c;人们对政府的信息化建设也提出了新的要求&#xff0c;推…

【C#语音文字互转】C#语音转文字(方法一)

Whisper.NET开源项目&#xff1a;https://github.com/sandrohanea/whisper.net/tree/main 一. 环境准备 在VS中安装 Whisper.net&#xff0c;在NuGet包管理器控制台中运行以下命令&#xff1a; Install-Package Whisper.net Install-Package Whisper.net.Runtime其中运行时包…

uniapp 实现自定义缩略滚动条

<template><view class"container-scroll"><!-- 文字导航 --><scroll-view class"scroll-view-text" scroll-x"true" v-if"type 1"><navigator:url"item.url"class"scroll-view-item"…

LE-50821F/FA激光扫描传感器|360°避障雷达之功能与连接使用说明

LE-50821F/FA激光扫描传感器|360避障雷达广泛应用于工业自动化、移动机器人应用场景中的环境感知、高精度定位&#xff08;如建图、扫描、避障、防护等&#xff09; LE-50xxxF系列升级扫描频率最高可达600KHz​​​​。 本文重点介绍LE-50821F/FA激光扫描传感器|360避障雷达之…

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

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

FreeRTOS基础入门——FreeRTOS的系统配置(三)

个人名片&#xff1a; ​ &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir202…

基于大模型的Agent

2023年&#xff0c;对于所有的人工智能领域只有一个共同的主题——大模型。大模型的受关注程度与发展速度可谓前所未有。其中&#xff0c;基于大模型的Agent又是最近几个月大模型领域的热点。这不开始研究没有几个月&#xff0c;综述文章都出来了&#xff0c;你说快不快&#x…

FashionAI比赛-服饰属性标签识别比赛赛后总结(来自 Top14 Team)

关联比赛: FashionAI全球挑战赛—服饰属性标签识别 推荐大家看本篇博客之前&#xff0c;看一下数据集制作的方法&#xff0c;如何做一个实用的图像数据集 PS&#xff1a;我是参加完比赛之后才看的&#xff0c;看完之后&#xff0c;万马奔腾.....&#xff0c;因为发现比赛中还…