对IP协议概念以及IP地址的概念进行简单整理

news2024/9/23 1:41:34

网络层重要协议

  • 参考模型和协议栈
  • IP协议
    • IPv4数据报
    • IP数据报格式
    • IPv4地址
    • 特殊IP地址
    • 私有IP地址和公有IP地址
    • 子网划分

参考模型和协议栈

在这里插入图片描述

在这里插入图片描述

IP协议

IP协议定义了网络层数据传送的基本单元,也制定了一系列关于网络层的规则。

IPv4数据报

网络层的协议数据单元PDU 叫做分组;网络层的传输单位 叫做数据报
协议数据单元PDU是对等实体之间传输的单元,传输层是某一层能够通过的数据包大小。
用一个例子:由于安排,需要把一整个班级的人发送到安全通道2-A,路径只能1-A->1-B->2-B->2-A,那么1-A的协议数据单元就是“整个班级”。1-A层每次只能传送2个人,那么“2个人”就是1-A的传输单元。
在这里插入图片描述
IP协议定义网络层传输的基本单元,IP协议有IPv4和IPv6,IPv4依然是现在比较常用的IP协议。

IP数据报格式

IP数据报格式如下
在这里插入图片描述

IP数据报格式很重要,我的记忆口号:“六块肌肉,四块腊肉”。描述了IP数据报的大致格式,只要有大致格式我们就可以比较熟练的记忆。“六块肌肉”上面一部分就像六块肌肉一样,而下面4个横格子我把它记作“腊肉”,因为腊肉在我这个地方是类似于长方形的(实际上是长长的刀把形)。
在这里插入图片描述
在这里插入图片描述
(1)4位版本:指出IP协议使用的版本,如果用的是IPv4,那么版本号就是4
(2)4位首部长度:指出这个数据报的首部有多大,如果没有选项,首部长度为20字节
(3)16位总长度:指出这个数据报整体有多大,首部+数据的大小,不能超过数据链路层规定的最大传输单元MTU。以太网帧的MTU是1500B
(4)16位标识:是一个计数器,每产生一个数据报就+1,但它不是序号,用来标识主机发送的报文。如果在数据链路层被分片了,每一个片里的这个标识都一样,方便重装。
(5)3位标志:第一位保留(现在不用);第二位是DF,DF=0表示允许分片;第三位是MF,MF=1表示后面还有分片;
(6)16位片偏移:相对于原IP数据报的偏移量,以8字节位为偏移单位,除了最后一个分片,每个分片的长度必须是8B的整数倍,否则报文就不连续了。
(7)8位生存时间:这个数据报最多可以经过几个路由器,用来确保它不会永远在网络中循环。分组转发前,生存时间-1。生存时间为0,丢弃。
(8)8位协议。指出交给网络层的数据使用的是什么协议,方便拆包时清楚知道用什么协议。
(9)16位首部校验和:使用循环冗余码CRC进行差错校验。

IPv4地址

连接到因特网的每一台主机或路由器都会分配一个32位的唯一标识符,叫做IP地址。IP地址由机构ICANN进行分配。早期的IP地址被分成5类。
加粗样式

  • 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地址,都由网络号和主机号组成,{网络号.主机号}
网络号标识主机或路由器连接的网络,所以网络号必须唯一。
主机号标识主机或路由器,IP地址中,同一个网络号的主机号需要不同。

注意
(1)一个网络的网络号是唯一的,如果一个主机同时连接到两个网络,那么这个主机必须要有2个IP地址。路由器是常见的连接多个网络的设备,所以路由器至少拥有2个IP地址。
(2)使用转发器或网桥连接的若干LAN仍然处于同一个网络,它们使用相同的网络号。
(3)分配到网络号的网络都是平等的

特殊IP地址

  • 主机号全为0,IP地址是一个是网络号,表示这个网络本身。如202.98.174.0
  • 主机号全为1,IP地址是这个网络的广播地址。如202.98.174.255
  • 127.X.X.X,叫做环回自检地址。这个IP地址表示任意主机本身,目的IP地址为环回自检地址的数据报不会出现在网络上。通常是127.0.0.1
  • 32位全为0,表示本网络上的本主机
  • 32位全为1,即255.255.255.255是TCP/IP网络的广播地址。路由器会隔离广播域,所以我们在使用这个IP地址的时候,它等效于本网络的广播地址。

私有IP地址和公有IP地址

有一些组织会自己组建一个局域网,并不需要连接上因特网。但是它们内部的每台主机也都需要IP地址,鉴于这种情况,将IP地址划分成了私有IP地址和公有IP地址。私有IP地址用于局域网LAN,公有IP地址用于广域网WAN。如果这个网络现在需要连接因特网,就需要通过网络地址转化NAT将私有IP地址转换成因特网中合法的全球IP地址。私有IP地址可以被局域网LAN重复使用,所以私有IP地址又叫可重用地址。这种机制有效解决了IP地址不足的问题。

私有IP地址网段:
A类:20个A类网段。10.0.0.0~10.255.255.255
B类:24个B类网段。172.16.0.0~172.31.255.255
C类:28个C类网段。192.168.0.0~192.168.255.255

采用私有IP地址的互联网络,叫做专用互联网或本地互联网。专用互联网如果要和因特网连接,它们之间的路由器必须安装网络地址转换NAT软件,这个路由器至少需要有一个有效的外部全球IP地址。
在这里插入图片描述
NAT路由器里有一张表,表里保存着{本地IP地址:端口}–>{全球IP地址:端口}的映射关系。

子网划分

使用{网络号.主机号}2级IP地址的网络中,空间利用率比较低,并且不够灵活。1985年起,提出了三级IP地址的概念。三级IP地址就是在二级IP地址的基础上,把主机号靠近网络号那部分归为子网号字段。这种做法叫做子网划分

  • 子网划分属于一个组织内部的事情,对外没有子网的概念。
  • 其他网络发给这个组织的数据报,先根据网络号,把IP数据报发到这个组织网络上的路由器。然后再根据网络号和子网号找到目的子网,最后把数据报发送到目的主机上。
  • 根据IP数据报的首部,没有办法判断对应的网络是否进行了网络划分
  • 路由器所选用的路由选择软件,有一些不支持全1或全0的子网号
  • 子网中主机号全为0的地址 是 子网的网络号;主机号全为1的地址 是 子网的广播地址

由于根据IP数据报没有办法判断对应的网络是否进行了子网划分,所以引入了子网掩码的概念。子网掩码是一个32位的二进制串,和IP地址对应。1对应网络号和子网号,0对应主机号。将IP地址和子网掩码按位与 就得到了子网的网络号
在这里插入图片描述
路由器不仅要包含目的网络地址达到目的网络 路径上 的下一个路由器的IP地址,还要包含目的网络子网掩码

事实上,随着Internet的飞速发展,像这种分类划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址。针对这种情况提出了新的划分方案, 称为无分类编址CIDR(Classless Interdomain Routing)

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

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

相关文章

GeoSOS-FLUS未来土地利用变化情景模拟模型

软件简介 适用场景 GeoSOS-FLUS软件能较好的应用于土地利用变化模拟与未来土地利用情景 的预测和分析中,是进行地理空间模拟、参与空间优化、辅助决策制定的有效工 具。FLUS 模型可直接用于: 城市发展模拟及城市增长边界划定;城市内 部高分…

分布式事务解决方案之TCC

分布式事务解决方案之TCC 什么是TCC事务 TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认 Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个…

Golang代码漏洞扫描工具介绍——govulncheck

Golang Golang作为一款近年来最火热的服务端语言之一,深受广大程序员的喜爱,笔者最近也在用,特别是高并发的场景下,golang易用性的优势十分明显,但笔者这次想要介绍的并不是golang本身,而且golang代码的漏洞…

微信小程序+echart实现点亮旅游地图

背景 最近看抖音有个很火的特效就是点亮地图,去过哪些地方,于是乎自己也想做一个,结合自己之前做的以家庭为单位的小程序,可以考虑做一个家庭一起点亮地图的功能。 效果图 过程 1,首先就是得去下微信小程序适配的ec…

react 实现拖动元素

demo使用create-react-app脚手架创建 删除一些文件,创建一些文件后 结构目录如下截图com/index import Movable from ./move import { useMove } from ./move.hook import * as Operations from ./move.opMovable.useMove useMove Movable.Operations Operationse…

ABB 1TGE120010R... Rev控制模块

ABB 1TGE120010R... Rev 控制器模块是一种高性能控制器,可用于工业自动化和过程控制应用。它具有以下主要特点: 多功能性:该控制器模块可用于多种应用,包括机器控制、过程控制和自动化系统等。 高性能:该控制器模块具…

竞赛选题 基于机器视觉的火车票识别系统

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖,适合作为竞赛…

408强化(番外)文件管理

有点看不下去书,408,哎好久没看了,死磕数学时完全不想看其他科目,数学分数也尚未质变。 突然想到一个好点子,只看大纲尝试回忆一下这章的内容。 文件就是为了方便用户使用,按名访问而提出的,从…

Python进阶教学——多线程高级应用

目录 一、线程间的通讯机制 二、线程中的消息隔离机制 三、线程同步信号量 四、线程池和进程池 一、线程间的通讯机制 1、Queue消息队列 消息队列是在消息的传输过程中保存消息的容器,主要用于不同线程间任意类型数据的共享。消息队列最经典的用法就是消费者和…

【Linux】项目自动化构建工具 make/Makefile

1、背景原理 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功…

Day 01 web前端基础知识

首先我们要了解什么事前端? 先简单用文字介绍一下: 一、入门知识 Web前端是指网站或应用程序的用户界面部分。它包括HTML、CSS、JavaScript等语言和技术,用于创建用户可浏览和交互的网页。Web前端的特点在于其交互性和动态性,可…

富芮坤蓝牙FR801xH GPIO

通过规格书,可查看到芯片共有32个引脚,如图: 除如电源、晶振等固定用途的引脚外,开发板已引出其余引脚。 通常情况下,一个IO口除了可作普通输入输出口外,还有可能作其它用途,如作I2C接口的数据…

Linux static_key原理与应用

文章目录 背景1. static-key的使用方法1.1. static-key定义1.2 初始化1.3 条件判断1.4 修改判断条件 2、示例代码参考链接 背景 内核中有很多判断条件在正常情况下的结果都是固定的,除非极其罕见的场景才会改变,通常单个的这种判断的代价很低可以忽略&a…

18 自增长主键的实现 以及 记录的插入

前言 这里主要是 探索一下 mysql 的自增长主键 和 insert into tz_test (field1) values ("12111111111"); 的实现 这里 有一些地方 会有不求甚解的地方, 不然 篇幅 就有点太长了 测试表结构 mysql 主键自增长 读取自增长值的地方, 读取 table->autoinc 作…

激活函数总结(三十四):激活函数补充(FReLU、CReLU)

激活函数总结(三十四):激活函数补充 1 引言2 激活函数2.1 FReLU激活函数2.2 CReLU激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SELU、GELU、Softmax、Sof…

React 全栈体系(七)

第四章 React ajax 一、理解 1. 前置说明 React本身只关注于界面, 并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax库(或自己封装) 2. 常用的ajax请求库 jQuery: 比较重, 如果需要另外引入不建议使用axios: 轻…

AI无法提振台积电股价

来源:猛兽财经 作者:猛兽财经 总结: (1)台积电的股价已经从最高点下跌了18%,很多期权交易员正在押注台积电的股价会进一步下跌。 (2)华尔街分析师目前也下调了台积电的收入和盈利预期…

EasyUI combobox 实现搜索(模糊匹配)功能

很简单的一个下拉框搜索模糊匹配功能&#xff0c;在此记录&#xff1a; 1&#xff1a;页面实现&#xff1a; <select class"easyui-combobox" name"combobox" id"combobox" style"width:135px;height:25px;" headerValue"请选…

9.19-21,openEuler与您相约2023欧洲开源峰会

2023年9月19日-21日&#xff0c;openEuler将参加在西班牙毕尔巴鄂举办的 OSSUMMIT 2023&#xff08;Open Source Summit Europe 2023&#xff09;&#xff0c;这是openEuler继去年正式亮相后的第二次全面参加该峰会。 Open Source Summit Europe是由Linux基金会主办&#xff0…

来喽!!炒鸡详细的“数据在内存中的存储”真的来喽!

目录​​​​​​​ 1. 整数在内存中的存储 1.1 ⼆进制介绍 1.1.1 2进制转10进制 1.1.2 10进制转2进制 1.1.3 2进制转8进制 1.1.4 2进制转16进制 1.2 原码、反码、补码 2. ⼤⼩端字节序和字节序判断 2.1 什么是⼤⼩端&#xff1f; 2.2 为什么有⼤⼩端? 2.3 练习 …