网络协议——IP协议

一、IPv4

1、IPv4:TCP/IP协议规定,IPv4地址使用32位的二进制表示,也就是4个字节,为了方便使用,IPv4地址被写成十进制形式,中间用”.”分开。 【点分十进制表示法】

2、IPv4地址分类

2.1 私有地址在互联网上不使用,只在局域网内使用的地址。

2.2 127.X.X.X,环回(Loopback)地址(常用127.0.0.1),向自己发送,不会离开设备。主要用于本地回环测试(测试和调试网络应用程序,诊断网络连接问题‌)。

2.3 169.254.X.X,APIPA(Automatic Private IP Addressing)地址,当设备无法通过DHCP(动态主机配置协议)服务器获得有效的IP地址时,操作系统会自动分配169.254.X.X地址,确保基本的计算机网络连接性。‌

3、子网掩码:用于区分网络地址、主机地址、广播地址。网络号部分全1,主机号部分全0。

网关:转发不同网段之间的数据包。

4、可变长子网掩码(VariableLength Subnet Masking,VLSM):对子网再次进行子网划分。(大网分解成小网)

4.1节约IP地址,IP地址利用率更高,寻址效率更高。

5、无类别域间路由(Classless Inter-Domain Routing,CIDR):对IP地址进行归类。(小网合并成大网)

5.1提高了IPv4的可扩展性和效率,减小路由表的大小,提高路由器的查找效率。

6、IPv4报文格式

6.1版本号:4位,标识数据报的IP版本号,值为二进制0100,则表示IPv4。

6.2头部长度(Internet Header Length,IHL):4位,常用的值是5,也是可取的最小值,表示报头为20字节;可取的最大值是15,表示报头为60字节。

6.3服务类型(Type of Service,ToS):8位,指定特殊数据处理方式。该字段分为两部分:优先权和ToS。

【后来该字段被IETF改名为区分服务(Differentiated Services,DS)。前6位构成了区分代码点(DiffServ Code Point,DSCP):定义64个不同服务类别;后2位为显式拥塞通知(Explicit Congestion Notification,ECN):通知拥塞。】

6.4总长度(Total Length):16位,首部加上据之和,数据报最长为216-1=65535字节,超过1500字节需要分段。

【最大传输单元(Maximum Transmission Unit,MTU)限制:以太网单个IP数据报不能超过1500字节。】

6.5标识符(Identifier):16位,同一数据报分段后,标识符一致,便于重装。

6.6标记字段(Flag):3位,第1位不使用;第2位不分段(DF)位(1不能分片,0允许分片);第3位更多分片(MF)位(1还有分片,0最后分片)

6.7段偏置值(Fragment Offset):13位,标识所分片的分组(分片后再原数据报中的位置)。单位8字节,每个分片长度是8字节的整数倍。

6.8生存期(Time to Live,TTL):8位,最多可以经过的路由器数,每经过一个路由器减1,为0丢弃。

6.9协议(Protocol):8位,IP层所封装的上层协议。【ICMP(1),IGMP(2),TCP(6),UDP(17)】

6.10头部校验和(Header Checksum):16位,根据IP头部计算得到校验和码。【不对IP报头后面数据校验。】

6.11源地址(Source Address):32位,发送IP数据报的源主机地址

6.12目的地址(Destination Address):32位,接收IP数据报的目的主机地址

6.13任选数据(Options):长度可变,长度必须是32位(4字节)的整数倍,不够填充0。

二、IPv6

1、IPv6:互联网工程任务组(IETF)设计替代现行IPv4的下一代IP协议,IPv6地址使用128位二进制,通常分8组,每组4个十六进制数的形式,中间用“:”分开。

2、IPv6书写规则

2.1起始的0可以忽略不写【末尾不能忽略】

2.2全0组成的1个或多个段可以用“::”表示【只能使用一次】

如:2024:0000:0000:0000:0000:0000:0020:0000 可以简写成:2024::20:0

2.3IPv4兼容地址::192.168.10.1

【IPv6没有广播地址,组播地址代替。

任播地址是IPv6协议特有的地址类型,适合于一对一组中的一个(One to One of Many)的通信需求。
任意播地址不能作为源地址,只能作为目的地址,不能指定给IPv6主机,只能指定给IPv6路由器。】

3、IPv6报文格式

3.1版本:4位,标识数据报的IP版本号,值为二进制0110,则表示IPv6。

3.2通信类型:8位,区分不同的IP分组。

3.3流标记:20位,标识某些需要特别处理的分组。

3.4负载长度:16位,表示除了IPv6固定头部40个字节之外的负载长度,扩展头包含在负载长度之中。

3.5下一头部:8位,指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,IPv6各种功能的核心实现方法。

3.6跳数限制:8位,用于检测路由循环,类似TTL。

3.7源地址:128位,发送IP数据报的源主机地址。

3.8目标地址:128位,接收IP数据报的目的主机地址。

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

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

相关文章

基于DSP+ARM+FPGA的电能质量分析仪的软件设计

软件设计是电能质量设备的核心内容,上述章节详细介绍了电能质量参数的 算法,并且通过仿真实验进行了验证,本章将结合现代电能质量监测设备需求实 现算法在实际电网中应用。根据设计的电能质量分析仪的需求分析,进行总体的 软件…

英特尔新旗舰 CPU 将运行更凉爽、更高效,适合 PC 游戏

英特尔终于解决了台式机 CPU 发热和耗电的问题。英特尔的新旗舰 Core Ultra 200S 系列处理器将于 10 月 24 日上市,该系列专注于每瓦性能,比之前的第 14 代芯片运行更凉爽、更高效。这些代号为 Arrow Lake S 的处理器也是英特尔首款内置 NPU(…

【笔记】自动驾驶预测与决策规划_Part5_决策过程(上)

决策过程 0. 前言1.决策过程的引入1.1有了planning,为什么还需要decision-making?1.2 决策规划的一些思考 2.马尔可夫决策过程及其关键要素2.1 马尔可夫过程2.1.1 什么是随机过程?2.1.2 什么是马尔科夫性?2.1.3 马尔可夫决策过程 …

从commit校验失效问题探究husky原理

一、背景 之前创建的项目,发现代码 commit 提交的时候没有了任何校验,具体表现: 一是 feat fix 等主题格式校验没有了二是代码 lint 不通过也能提交 尝试解决这个问题,并深入了解husky的实现原理,将相关的一些知识点…

PMP--冲刺题--解题--161-170

文章目录 4.整合管理--1.制定项目章程--当各方的认知、理解、掌握的信息不一致的时候,相对最好的方法就是共同确认项目相关文件/计划中的具体内容(是否项目真的存在这个交付物)。161、 [单选] 在一个与高级经理的项目状态会议中,项…

动态规划-路径问题——931.下降路径最小和

1.题目解析 题目来源:931.下降路径最小和——力扣 测试用例 2.算法原理 1.状态表示 我们可以开辟一个dp表,多开辟一行两列用来存储虚拟位置,dp[i][j]表示从第一行到该位置的最小路径和 2.状态转移方程 由于要找到最小路径和,并且由…

springboot将logback替换成log4j2

一 为何要替换成log4j2 1.1 log4j2的优点 log4j2使用了两种方式记录日志:AsyncAppender和AsyncLogger。 1.AsyncAppender使用队列异步记录日志,但是一旦队列已满,appender线程需要等待。2.AsyncLogger是采用Disruptor,通过环形…

Android Framework AMS(05)startActivity分析-2(ActivityThread启动到Activity拉起)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读AMS通过startActivity启动Activity的整个流程的整个流程的第二阶段:从ActivityThread启动到Activity拉起。 第一阶段文…

【Unity精品源码】打造甜蜜的三消游戏:Candy Match 3 Kit

最近总熬夜,肝不好,大家都叫我小心肝。 📂 Unity 开发资源汇总 | 插件 | 模型 | 源码 💓 欢迎访问 Unity 打怪升级大本营 在游戏开发的世界中,三消游戏以其简单易上手、趣味性强的特点,一直深受玩家喜爱。…

【HTTPS】深入解析 https

我的主页:2的n次方_ 1. 背景介绍 在使用 http 协议的时候是不安全的,可能会出现运营商劫持等安全问题,运营商通过劫持 http 流量,篡改返回的网页内容,例如广告业务,可能会通过 Referer 字段 来统计是…

第十一章 缓存之更新/穿透/雪崩/击穿

目录 一、什么是缓存 二、缓存更新策略 2.1. 缓存主动更新策略 2.1.1. Cache Aside模式(主流)‌ 2.1.2. Read/Write Through模式‌ 2.1‌.3. Write Behind模式‌ 2.1.4. 总结 三、缓存穿透 四、缓存雪崩 五、缓存击穿 5.1. 互斥锁实现 5.1.1…

Elasticsearch学习笔记(五)Elastic stack安全配置二

一、手动配置http层SSL 通过前面的配置,我们为集群传输层手动配置了TLS,集群内部节点之间的通信使用手动配置的证书进行加密,但是集群与外部客户端的http层目前还是使用的自动配置,集群中HTTP的通信目前仍然使用自动生成的证书ht…

SQL Injection | MySQL 数据库概述

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客 0x01:MySQL 数据库简介 MySQL 是一个流行的关系型数据库管理系统(RDBMS),它基于 SQL (Structured Query Language)进行操作。My…

Python库matplotlib之六

Python库matplotlib之六 动画FuncAnimation构造器成员函数应用例子 动画 Matplotlib基于其绘图功能,还提供了一个使用动画模块,生成动画的接口。动画是一系列帧,其中每个帧对应于图形上的一个图。 Matplotlib使用两个类来实现动画&#xff…

Backend - MySQL Server、HeidiSQL

目录 一、MySQL Server (一)官网下载 (二)安装与配置 二、HeidiSQL软件 (一)安装 1. 官网下载 2. 打开 3. 使用 (1)打开服务 (2)新增数据库 ​&#xff…

python networkx 计算路径A*

import matplotlib.pyplot as plt # 导入 Matplotlib 工具包 import networkx as nx # 导入 NetworkX 工具包 from typing import List# 初始化空的无向图 graph nx.Graph() # 向图中添加多条赋权边: (node1,node2,weight) graph.add_weighted_edges_from([(1, 2, 50),(1, 3…

集合框架05:List接口使用、List实现类、ArrayList使用

视频链接:13.11 ArrayList使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1zD4y1Q7Fw?p11&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.List接口使用代码举例 package com.yundait.Demo01;import java.util.ArrayList; import java.util.List;pu…

dowhy中反驳实验怎么做?

首先,我们打开最新的dowhy版本网站。 https://www.pywhy.org/dowhy/v0.11.1/index.html 我们主要看标题栏的User Guide和Examples就可以了,如果在User Guide 里找不到使用方法,就去Examples里找例子,里面的数据读取修改为自己的数…

Copilot Coaching新功能铸就Word更强

Copilot 的意思是副驾驶。 现在,您的副驾驶教练来了:Copilot Coaching Copilot Coaching 是 Word 中的一项新 Copilot 功能,可在您查看内容时为您提供支持,以实现语法和拼写之外的改进 - 帮助您澄清想法,并为您提供有…

前端反馈弹框组件封装

一、需求背景 需要针对某个功能进行用户调查反馈&#xff0c;设计一个弹框&#xff0c;进行后端入表记录&#xff0c;以便后期进行数据分析。 二、实现UI 三、代码留存 以vue为例 <template><div class"advice-container"><van-dialogv-model"…