以太网基础学习(四)——IP协议

news2024/11/17 9:33:15

一 、IP协议概述

        IP(Internet Protocol,互联网协议)是互联网通信的基础协议,它负责将数据包从源地址传输到目的地址。IP协议定义了如何封装数据包,如何寻址数据包以及如何路由数据包,它是随着互联网的出现而诞生的。IP地址就是唯一标识一个主机的地址,通常表示为4个十进制数,每个数的范围是0-255,用点分十进制的格式表示,如192.168.1.1。IP协议是一个无状态的协议,每个数据包都独立处理,不依赖于之前或之后的数据包。此外,IP协议还提供了数据包的差错检测功能。

        IP是整个TCP/IP协议族的核心,也是构成互联网的基础。IP位于TCP/IP模型的网络层(相当于OSI模型的网络层),它可以向传输层提供各种协议的信息,例如TCP、UDP等;对下可将IP信息包放到链路层,通过以太网、令牌环网络等各种技术来传送。 为了能适应异构网络,IP强调适应性、简洁性和可操作性,并在可靠性做了一定的牺牲。IP不保证分组的交付时限和可靠性,所传送分组有可能出现丢失、重复、延迟或乱序等问题。

二、IP地址

        IP地址是用来识别网络上的设备,因此,IP地址是由网络地址与主机地址两部分所组成。

1、网络地址

        网络地址可用来识别设备所在的网络,网络地址位于IP地址的前段。当组织或企业申请IP地址时,所获得的并非IP地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。IP路由的功能是根据IP地址中的网络地址,决定要将IP信息包送至所指明的那个网络。

2、主机地址

        主机地址位于IP地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。

        由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;反之,较小的网络则应该使用较长的网络地址。为了符合不同网络规模的需求,IP在设计时便根据网络地址的长度,设计与划分IP地址。

三、协议版本

1、​IPv4协议

        网际协议第4版(Internet Protocol version4,IPv4)是TCP/IP协议使用的数据报传输机制。数据报是一个可变长分组,有两部分组成:头部和数据。头部长度可由20~60个字节组成,该部分包含有与路由选择和传输有关的重要信息。头部各字段意义按顺序如下:

(1)版本(4位):该字段定义IP协议版本,负责向处理机所运行的IP软件指明此IP数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报。

(2)头部长度(4位):该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15。

(3)服务(8位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。 

(4)总长度(16位):该字段定义整个IP数据报的字节长度,包括协议头部和数据。其最大值为65535字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制(46~1500个字节)。

(5)标识(16位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。 

(6)标记(3位):该字段由3位字段构成,其中最低位(MF)控制分段,存在下一个分段置为1,否则置0代表该分段是最后一个分段。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。

(7)分段偏移(13位):该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。

(8)生存时间(8位):该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。

(9)协议(8位):该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。

(10)头部校验和(16位):该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中。

(11)源地址(32位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。

(12)目的地址(32位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。

(13)可选字段:0-40字节,一些可选项,主要用于测试,不足32bit用0补充。

2、IPv6协议

        自从1970年代IPv4问世以来,数据通信技术日新月异有了很大发展。虽然IPv4设计得很好,但其缺点也逐渐显露出来:①虽说借助子网化、无类寻址和NAT技术可以提高IP地址使用效率,因特网中IP地址的耗尽仍然是一个没有彻底解决的问题;②IPv4没有提供对实时音频和视频传输这种要求传输最小时延的策略和预留资源支持;③IPv4不能对某些有数据加密和鉴别要求的应用提供支持。为了克服这些缺点,IPv6(Internet working Protocol version6)被提了出来。在IPv6中,IP地址格式和分组长度以及分组的格式都改变了。IPv6每个分组由必须的基本头部和其后的有效载荷组成。有效载荷由可选的扩展头部和来自上层的数据组成。基本头部占用40字节,有效载荷可以包含65535字节数据。IPv6头部各字段意义按顺序如下: 

(1)版本(4位):该字段定义IPv6协议版本,其值为6,负责向处理机所运行的IP软件指明此IP数据报是IPv6版本。

(2)优先级(4位):该字段定义当发生通信拥塞时的分组的优先级。

(3)流标号(24位):该字段用来对特殊的数据流提供专门处理。

(4)有效载荷长度(16位):该字段定义整个IPv6数据报的字节长度,包括基本头部和有效载荷。其最大值为65,535字节。 

(5)下一个头部(8位):该字段定义了数据报中跟随在基本头部之后的头部。下一个头部可以是IP所使用的可选扩展头部,也可以是上层协议的头部。

(6)条数限制(8位):该字段与IPv4中生存时间(TTL)字段一样是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。 

(7)源地址(128位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。

(8)目的地址(128位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。

(9)扩展头部:该字段包含6个可选类型,包括逐跳选项、源路由选择、分段、鉴别、加密的安全有效载荷、目的端选项。 

3、IPv4到IPv6的过渡

        考虑到因特网上的系统和设备非常之多,想要一次性从IPv4升级到IPv6是无法做到的。而要实现IP版本的升级,需要花费相当多的时间,且升级过程必须是相当平滑的,防止升级过程中出现任何问题。IETF(Internet Engineering Task Force,国际互联网工程任务组)设计了三种策略来实现平滑的IP版本升级。

  • (1)双协议栈策略,就是一个站同时运行IPv4和IPv6,直到整个因特网使用IPv6。当一个分组被发送到目的端时,主机向DNS进行查询。如果DNS返回一个IPv4地址,那么源主机就发送一个IPv4分组,如果返回一个IPv6地址,就发送一个IPv6分组。
  • (2)隧道技术策略,当两台使用IPv6的计算机要进行相互通信,但其分组数据要通过使用IPv4的网络时,该分组要封装成IPv4分组,而当分组离开时该网络时再去掉这个封装。 
  • (3)头部转换策略,当因特网中绝大多数系统设备已经过渡到IPv6,但一些系统仍然使用IPv4时,发送方想使用IPv6,但接收方不能识别IPv6,这时将IPv6头部格式转换成IPv4头部格式,IPv6地址按照一定规则映射转换为IPv4地址。

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

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

相关文章

[VIM]spcaevim

Home | SpaceVim SpaceVim - 知乎 关于Vim/Neovim/SpaceVim的一些思考 - 知乎 vim高配版(1) – SpaceVim 简介 SpaceVim 是国内的一个大佬将一些NB的插件整合到一起的一个插件包. 一键式安装, 功能强大. 官网参见 Home | SpaceVim vim高配版(2) – vimplus 简介 vimplu…

小谈设计模式(16)—抽象工厂模式

小谈设计模式(16)—抽象工厂模式 专栏介绍专栏地址专栏介绍 抽象工厂模式结构抽象工厂(AbstractFactory)具体工厂(ConcreteFactory)抽象产品(AbstractProduct)具体产品(C…

解决每次重启ganache虚拟环境,十个账号秘钥都会改变问题

很多时候 我们启动一个 ganache 环境 然后 通过私钥 在 MetaMask 中 导入用户 但是 当我们因为 电脑要关机呀 或者 ETH 消耗没了呀 那我们就不得不重启一个ganache虚拟环境 然后 你在切一下网络 让它刷新一下 你就会发现 上一次导入的用户就没有了 这是因为 你每次 ganache…

Ae 效果:CC Power Pin

扭曲/CC Power Pin Distort/CC Power Pin CC Power Pin (CC 强力边角定位)与同组内的边角定位 Corner Pin效果非常类似,常用于对源图像的透视扭曲变形和四点跟踪合成。使用 CC Power Pin 会有更多的调整属性和更直观的操作。 ◆ ◆ ◆ 效果…

RobotFramework流程控制(最新版本)

文章目录 一 分支流程1. 关键字:Run Keyword If2. 关键字:IF/ELSE3. 嵌套IF/ELSE4. 关键字:Set Variable If 二 循环流程1. 普通FOR循环2. 嵌套FOR循环3. 退出循环4. 其它常用循环 一 分支流程 1. 关键字:Run Keyword If Run Key…

2023年10月4日

服务器 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);//此时,服务器已经成功进入监听状态&…

Docker通过Dockerfile创建Redis、Nginx--详细过程

创建Nginx镜像 我们先创建一个目录,在目录里创建Dockerfile [rootdocker-3 ~]# mkdir mynginx [rootdocker-3 ~]# cd mynginx [rootdocker-3 ~]# vim Dockerfile Dockerfile的内容 FROM daocloud.io/library/centos:7 RUN buildDepsreadline-devel pcre-devel o…

Ventoy万能U盘安装系统,支持任何的操作系统安装

Ventoy万能U盘安装系统,支持任何的操作系统安装: Download . VentoyVentoy is an open source tool to create bootable USB drive for ISO files. With ventoy, you dont need to format the disk again and again, you just need to copy the iso fil…

【网络安全---ICMP报文分析】Wireshark教程----Wireshark 分析ICMP报文数据试验

一,试验环境搭建 1-1 试验环境示例图 1-2 环境准备 两台kali主机(虚拟机) kali2022 192.168.220.129/24 kali2022 192.168.220.3/27 1-2-1 网关配置: 编辑-------- 虚拟网路编辑器 更改设置进来以后 ,先选择N…

基于SSM的宿舍管理系统

基于SSM的学生宿舍管理系统的设计与实现,前后端分离 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 系统主要分学生和管理员两个角色,功能有…

RSA攻击:模数分解

目录 一、模数分解总览 1.1直接分解法 1.2费马分解与Pollard_rho分解 1.3公约数分解 1.4其他模数分解 二、实战特训 2.1[黑盾杯 2020]Factor 2.2[GWCTF 2019]babyRSA 2.3[LitCTF 2023]yafu (中级) 2.4[RoarCTF 2019]RSA 2.5[CISCN 2022 西南]rsa 三、总结 一、模数分解总览 …

进程调度的时机,切换与过程以及方式

1.进程调度的时机 进程调度(低级调度〉,就是按照某种算法从就绪队列中选择一个进程为其分配处理机。 1.需要进行进程调度与切换的情况 1.当前运行的进程主动放弃处理机 进程正常终止运行过程中发生异常而终止进程主动请求阻塞(如等待l/O)…

(粗糙的笔记)动态规划

动态规划算法框架: 问题结构分析递推关系建立自底向上计算最优方案追踪 背包问题 输入: n n n个商品组成的集合 O O O,每个商品有两个属性 v i v_i vi​和 p i p_i pi​,分别表示体积和价格背包容量 C C C 输出: …

【C语言】函数的定义、传参与调用(二)

💗个人主页💗 ⭐个人专栏——C语言初步学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读: 1. 函数的嵌套调用 1.1 什么是嵌套调用 1.2 基础实现 1.3 调用流程解析 2. 函数的链式访问 2.1 …

算法通过村第十二关-字符串|青铜笔记|隐形的王者

文章目录 前言转换成小写字母字符串转换整数总结 前言 提示:为别人而活着,其实是最简单的一种活法。 --蔡崇达《命运》 字符串本身并不是一种数据结构,但是由于其本身的特殊性,额可以产生很多特殊的算法问题。另外,字符…

Java之并发工具类的详细解析

3. 并发工具类 3.1 并发工具类-Hashtable Hashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hashtable,但是Hashtable的效率低下。 代码实现 …

数据源报表

1.新建报表 2.新建数据集 3.维护数据源 支持的数据库还是蛮多哈 4.选择数据源表 5.编写sql 编码:SQL数据集的标识 注:避免特殊字符和_名称:SQL数据集的名称是否集合:否为单数据;是为多数据列表,如果多条数据…

MapStruct初窥门径

一、介绍 MapStruct相比于BeanUtils性能更高&#xff0c;能够实现DO&#xff0c;DTO&#xff0c;VO之间的转换&#xff0c;达到解耦合的目的 二、使用前提 添加依赖 <dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifa…

第八章 Linux文件系统权限

目录 8.1 文件的一般权限 1.修改文件或目录的权限---chmod命令 2.对于文件和目录&#xff0c;r&#xff0c;w&#xff0c;x有不同的作用&#xff1a; 3.修改文件或目录的所属主和组---chown,chgrp 8.2 文件和目录的特殊权限 三种通过字符描述文件权限 8.3 ACL 权限 1.A…

基于Java的药店管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…