对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.hqwc.cn/news/110060.html

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

相关文章

Webserver项目解析

一.webserver的组成部分 Buffer类 用于存储需要读写的数据 Channel类 存储文件描述符和相应的事件,当发生事件时,调用对应的回调函数 ChannelMap类 Channel数组,用于保存一系列的Channel Dispatcher 监听器,可以设置为epo…

庚顿新一代实时数据库太快了,得用对数坐标轴放大看

不可否认,实时数据处理已经成为企业数据平台的核心能力之一。如何高效处理海量而复杂的实时数据,则取决于数据库系统的架构设计和处理性能。最近,应广大用户的要求,基于飞腾开放实验室Phytium Open Laboratory(POL&…

Golang反射相关知识总结

1. Golang反射概述 Go语言的反射(reflection)是指在运行时动态地获取类型信息和操作对象的能力。在Go语言中,每个值都是一个接口类型,这个接口类型包含了这个值的类型信息和值的数据,因此,通过反射&#x…

JAVA高级技术入门(单元测试,反射,注解,动态代理)

JAVA高级技术入门(单元测试,反射,注解,动态代理) 一、Junit单元测试二、反射1.认识反射,获取类概念:快速入门:获取Class对象的三种方式 2.1获取类的构造器2.2获取类的构造器的作用&a…

【算法专题突破】滑动窗口 - 找到字符串中所有字母异位词(14)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:438. 找到字符串中所有字母异位词 - 力扣(Leetcode) 这道题很好理解,就是找出从不同位置开始的所有异位词。 2. 算法原理 那我们该如…

Android笔记(二十九):利用python自动生成多语言

背景 项目需要支持十几种多语言,而且每个版本的新功能ui都有很多地方需要多语言,如果手动添加非常耗时,于是设计了一个python脚本,通过excel表格转化多语言到项目values/strings文件内 步骤 android工程项目结构 脚本位于langu…

MAUI android连接sqlserver

PDA是android系统,调用金蝶云星空webapi实现仓库收发料,使用读取webapi有些功能无法实现,需要直接读写数据库,读取报错,如图: 用控制台程序测试正常读取 google搜索了一圈, 都需要使用ssl证书才…

pdf添加水印

给pdf文件添加水印 引入依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency>添加水印 package com.it2.pdfdemo02.util;import com.itextpdf.tex…

MySql安装包配置

电脑重配过多次&#xff0c;此为mysql安装记录贴&#xff0c;方便查阅 从官网下载的安装包进行本地配置 下载地址 解压下载下来的zip压缩包 解压出来的文件中新增配置my.ini文件 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\software\\package\\M…

知识图谱实战导论:从什么是KG到LLM与KG/DB的结合实战

前言 本文侧重讲解&#xff1a; 什么是知识图谱LLM与langchain/数据库/知识图谱的结合应用 比如&#xff0c;虽说基于知识图谱的问答 早在2019年之前就有很多研究了&#xff0c;但谁会想到今年KBQA因为LLM如此突飞猛进呢 第一部分 知识图谱入门导论 //待更.. 第二部分 LLM与…

ipad手写笔有必要买吗?好用的平板触控笔

众所周知&#xff0c;随着Apple pencil的出现&#xff0c;市面上出现越来越多平替电容笔的出现&#xff0c;无论是价格和功能&#xff0c;几乎都很接近。很多小伙伴不知如何下手&#xff0c;不知道如何从众多品牌中挑选出适合自己的电容笔&#xff0c;今天我为大家总结一下网上…

LeetCode 428. Serialize and Deserialize N-ary Tree【树,BFS,DFS】困难

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…