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

网络层重要协议

  • 参考模型和协议栈
  • 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.mzph.cn/news/79956.shtml

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

相关文章

基于Java+SpringBoot+Vue+uniapp点餐小程序(包含协同过滤算法和会员系统,强烈推荐!)

校园点餐小程序 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 系统功能结构设计4.2 主要功能描述 五…

【初阶数据结构】栈和队列——C语言(详解)

目录 一、栈 1.1栈的概念及结构 1.2栈的实现 1.2.1静态栈的实现 1.3动态栈的实现 1.3.1栈的创建 1.3.2栈的初始化 1.3.3栈的清空销毁 1.3.4栈的元素插入 1.3.5栈顶元素的删除 1.3.6返回栈顶数据 1.3.7求栈的大小 1.3.8判断栈是否为空 二、栈的实现完整代码 三、队…

Unity 动画系统

动画系统包含: 动画片段 Animation Clip,记录物体变化的信息,可以是角色的闪转腾挪,也可以是一扇门的开闭动画状态机 Animator Controller,根据设置切换动画片段动画组件 Animator,Animation替身 Avatar&a…

数据结构基础8:二叉树oj+层序遍历。

二叉树oj层序遍历 题目一:二叉树的销毁:方法一:前序遍历:方法二:后序遍历: 题目二:二叉树查找值为x的节点方法一:方法二:方法三: 题目三:层序遍历…

透视俄乌网络战之二:Conti勒索软件集团(下)

透视俄乌网络战之一:数据擦除软件 透视俄乌网络战之二:Conti勒索软件集团(上) Conti勒索软件集团(下) 1. 管理面板源代码2. Pony凭证窃取恶意软件3. TTPs4. Conti Locker v2源代码5. Conti团伙培训材料6. T…

【Linux从入门到精通】多线程 | 线程互斥(互斥锁)

上篇文章我们对线程 | 线程介绍&线程控制介绍后,本篇文章将会对多线程中的线程互斥与互斥锁的概念进行详解。同时结合实际例子解释了可重入与不被重入函数、临界资源与临界区和原子性的概念。希望本篇文章会对你有所帮助。 文章目录 引入 一、重入与临界 1、1 可…

多线程|多进程|高并发网络编程

一.多进程并发服务器 多进程并发服务器是一种经典的服务器架构,它通过创建多个子进程来处理客户端连接,从而实现并发处理多个客户端请求的能力。 概念: 服务器启动时,创建主进程,并绑定监听端口。当有客户端连接请求…

GitLab使用的最简便方式

GitLab介绍 GitLab是一个基于Git版本控制系统的开源平台,用于代码托管,持续集成,以及协作开发。它提供了一套完整的工具,以帮助开发团队协同工作、管理和部署代码。 往往在企业内部使用gitlab管理代码,记录一下将本地代…

VR航天航空巡展VR科技馆航天主题科普设备沉浸遨游太空

每当飞机飞过头顶,我们总是忍不住抬头去仰望。从嫦娥奔月的神话传说,到莱特兄弟实现了上天翱翔的梦想,人类一直在不断探索更辽阔的天空和浩瀚的宇宙。 航空科普 寻梦而行 普乐蛙VR航天航空巡展,正在湖南郴州如火如荼的进行中&…

arm day2(9.15)数据操作指令,跳转指令,特殊功能寄存器指令,

作业 1.求最大公约数&#xff1a; .text .global _start _start:mov r0,#0x9mov r1,#0x15bl Loop Loop:cmp r0,r1 比较r0寄存器和r1寄存器的中的值beq stop 当两数相同时,退出程序subhi r0,r0,r1 r0>r1 r0 r0 - r1subcc r1,r1,r0 r0<r1 r1 r1 - r0mov pc,lr 恢复现…

【算法与数据结构】108、LeetCode将有序数组转换为二叉搜索树

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;这道题给我们的是一个有序数组&#xff0c;并要求构成一个平衡二叉搜索树&#xff0c;二叉搜索树的很容…

CSS 之 grid 网格布局

一、简介 ​ display: grid;用于设置元素内部的布局类型为网格布局&#xff0c;其外显类型为块级元素。该类型的元素将内部分为行和列&#xff0c;划分成一个个单元格&#xff0c;并通过一系列相关属性控制单元格及其内容的布局和大小。 ​ 该属性值的主要应用场景为&#xf…

这个锂电池保护方案来自TIDA-010030

本篇博客只是作为个人记录&#xff0c;拆锂电池有危险&#xff0c;撬棒刺穿外壳可能爆炸&#xff0c;请勿模仿&#xff0c;误操作电池数据可能失效&#xff0c;请勿模仿。 1、简介 1.1、目的 得到该电池的电量计芯片型号、IIC从机地址、通信的实际波形&#xff1b; 1.2、步…

百度飞浆OCR识别表格入门python实践

1. 百度飞桨&#xff08;PaddlePaddle&#xff09; 百度飞桨&#xff08;PaddlePaddle&#xff09;是百度推出的一款深度学习平台&#xff0c;旨在为开发者提供强大的深度学习框架和工具。飞桨提供了包括OCR&#xff08;光学字符识别&#xff09;在内的多种功能&#xff0c;可…

Linux驱动IO篇——异步通知

文章目录 什么是异步通知异步通知和异步IO的区别信号含义应用层使用信号驱动如何实现异步信号驱动实例 什么是异步通知 异步通知在Linux的实现中是通过信号&#xff0c;而信号是在软件层次上对中断机制的一种模拟。这种机制和中断非常类似&#xff0c;所以可以以中断的思想来理…

重新认识交叉编译

1. 我以前对交叉编译的认知 引用正点原子的话来讲就是: 说得对&#xff0c;但是不全面&#xff0c;直到最近项目中遇到了一个例子我才重新认识什么是交叉编译。 2. build/host/target的概念 参考: Cross-Compilation (automake) 参考: Specifying Target Triplets (Autocon…

Python二级 每周练习题18

练习一: 从键盘输入任意字符串&#xff0c;按照下面要求分离字符串中的字符: 1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置) 2、并依次存储到一个列表中; 3、输出这个列表。 答案: ninput(请输入任意字符串:) #创建变量n存放用户…

数据结构入门 — 树的概念与结构

本文属于数据结构专栏文章&#xff0c;适合数据结构入门者学习&#xff0c;涵盖数据结构基础的知识和内容体系&#xff0c;文章在介绍数据结构时会配合上动图演示&#xff0c;方便初学者在学习数据结构时理解和学习&#xff0c;了解数据结构系列专栏点击下方链接。 博客主页&am…

外包干了2个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【多线程】Thread 类 详解

Thread 类 详解 一. 创建线程1. 继承 Thread 类2. 实现 Runnable 接口3. 其他变形4. 多线程的优势-增加运行速度 二. Thread 类1. 构造方法2. 常见属性3. 启动线程-start()4. 中断线程-interrupt()5. 线程等待-join()6. 线程休眠-sleep()7. 获取当前线程引用 三. 线程的状态1. …