IP 协议的相关特性

1.IP协议的特性

  • 无连接性。IP协议是一种无连接协议,这意味着数据包在传输过程中不需要保留连接状态信息。每个数据包都是独立发送和处理的,每个包都可以按不同的路径传输到目的地。
  • 不可靠性。IP协议不提供任何可靠性保证,数据包在传输过程中可能会丢失、重复或乱序。这需要应用层协议自行处理数据的可靠性。
  • 分组交换。IP协议采用分组交换技术,将数据分成较小的数据包进行传输,以适应不同网络速度的环境并降低网络拥塞的风险。
  • 路由选择。IP协议可以根据网络拓扑和路由信息,动态选择最佳的传输路径,具有较高的网络扩展性。
  • 分类服务和差错检测。IP协议支持不同的服务质量,可以对数据包进行分类和处理,还支持差错检测机制,确保数据包传输过程中的完整性和正确性。
  • 地址的唯一性和层次性。每个连接到网络的设备都必须具有唯一的IP地址,以便能够与其他设备区分和通信。地址还具有层次性,有助于在地址总数较多时更高效地定位通信主体。

1.1 报文格式

4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4.
4位头部⻓度(header length):IP头部的⻓度是多少个32bit,也就是length*4的字节数.4bit表⽰最⼤的数字是15,因此IP头部最⼤⻓度是60字节.
8位服务类型(Type Of Service):3位优先权字段(已经弃⽤),4位TOS字段,和1位保留字段(必须置为0).4位TOS分别表⽰:最⼩延时,最⼤吞吐量,最⾼可靠性,最⼩成本.这四者相互冲突,只能选择⼀个.对于ssh/telnet这样的应⽤程序,最⼩延时⽐较重要;对于ftp这样的程序,最⼤吞吐量⽐较重要

16位总⻓度(total length):IP数据报整体占多少个字节.
16位标识(id):唯⼀的标识主机发送的报⽂.如果IP报⽂在数据链路层被分⽚了,那么每⼀个⽚⾥⾯的这个id都是相同的.
3位标志字段:第⼀位保留(保留的意思是现在不⽤,但是还没想好说不定以后要⽤到).第⼆位置为1表⽰禁⽌分⽚,这时候如果报⽂⻓度超过MTU,IP模块就会丢弃报⽂.第三位表⽰"更多分⽚",如果分⽚了的话,最后⼀个分⽚置为1,其他是0.类似于⼀个结束标记.

13位分⽚偏移(framegament offset):是分⽚相对于原始IP报⽂开始处的偏移.其实就是在表⽰当前分⽚在原报⽂中处在哪个位置.实际偏移的字节数是这个值*8得到的.因此,除了最后⼀个报⽂之外,其他报⽂的⻓度必须是8的整数倍(否则报⽂就不连续了).
8位⽣存时间(Time To Live,TTL):数据报到达⽬的地的最⼤报⽂跳数.⼀般是64.每次经过⼀个路由,TTL-=1,⼀直减到0还没到达,那么就丢弃了.这个字段主要是⽤来防⽌出现路由循环
8位协议:表⽰上层协议的类型

16位头部校验和:使⽤CRC进⾏校验,来鉴别头部是否损坏.
32位源地址和32位⽬标地址:表⽰发送端和接收端.
• 选项字段(不定⻓,最多40字节)

1.2 IP协议如何管理地址

IP地址本质是一个32位整数,为了方便,就会把IP表示成点分十进制

IP地址的存在,目的是为了区分网络上的不同的设备,希望每个网络都有唯一的一个IP地址

32位整数表示的数据范围42亿9千万   

这个数据看起来很大,但在网络飞速发展的今天,其实并不算很大

1.3 如何解决IP地址不够用

1) 动态分配IP地址

2)NAT机制(网络地址映射)

        先把地址分分为两大类,

a.私网IP/局域网

        IP地址是以10.*   172.16--172.31.*   192.168.*

b.公网IP/广域网

        除了私网IP 剩下的都是公网IP

要求公网上设备,对应的公网IP,都必须唯一

但私网上的设备,使用私网IP,只要保证和私网内部的IP不重复即可,不同的局域网之间的IP允许重复

由于上述设定,就有了一个限制 

1.公网设备访问公网设备,没有任何问题,直接访问即可

2.局域网设备访问局域网设备(同一个局域网中),也没有任何问题

3.局域网设备访问局域网设备(不同局域网中),不允许访问

4.局域网设备访问公网设备,就需要对局域网设备的IP进行地址转换

5.公网设备访问局域网设备,不允许主动访问

外网设备 ->外网设备,不需要任何 NAT,直接就能通信
内网设备 -> 其他内网设备, 不允许!!
外网设备 ->内网设备,不允许!!
内网设备 ->外网设备,对应的内网设备的路由器,触发NAT 机制进行 IP 替换,此时就会给这个网络数据报的源IP替换成路由器自己的 ip

3) IPv6 从根本上解决问题的方案

IPv6使用16字节表示ip地址 2^128 是一个天文数字

但ipv6报头结构和ipv4是不兼容的   

2.网段划分

IP地址分为两个部分,⽹络号和主机号

• ⽹络号:保证相互连接的两个⽹段具有不同的标识;
• 主机号:同⼀⽹段内,主机之间具有相同的⽹络号,但是必须有不同的主机号

不同的⼦⽹其实就是把⽹络号相同的主机放到⼀起.
如果在⼦⽹中新增⼀台主机,则这台主机的⽹络号和这个⼦⽹的⽹络号⼀致,但是主机号必须不能和⼦⽹中的其他主机重复.

 

• 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
 

随着Internet的⻜速发展,这种划分⽅案的局限性很快显现出来,⼤多数组织都申请B类⽹络地址,导致B类地址很快就分配完了,⽽A类却浪费了⼤量地址;

• 例如,申请了⼀个B类地址,理论上⼀个⼦⽹内能允许6万5千多个主机.A类地址的⼦⽹内的主机数更多.
• 然⽽实际⽹络架设中, 不会存在⼀个⼦⽹内有这么多的情况.因此⼤量的IP地址都被浪费掉了.

针对这种情况提出了新的划分⽅案,称为CIDR(Classless InterdomainRouting):

• 引⼊⼀个额外的⼦⽹掩码(subnet mask)来区分⽹络号和主机号;
• ⼦⽹掩码也是⼀个32位的正整数.通常⽤⼀串"0"来结尾;
• 将IP地址和⼦⽹掩码进⾏"按位与"操作,得到的结果就是⽹络号;
• ⽹络号和主机号的划分与这个IP地址是A类、B类还是C类⽆关;

3.路由选择

 从复杂的网络结构中,找到一条通往终点的路线

路由的过程,就是一跳一跳"问路"的过程

⼀跳":数据链路层中的⼀个区间.具体在以太⽹中指从源MAC地址到⽬的MAC地址之间的帧
传输区间.
 

IP数据包的传输过程也和问路⼀样.

• 当IP数据包,到达路由器时,路由器会先查看⽬的IP;
• 路由器决定这个数据包是能直接发送给⽬标主机,还是需要发送给下⼀个路由器;
• 依次反复,⼀直到达⽬标IP地址;

• 路由表可以使⽤route命令查看
• 如果⽬的IP命中了路由表,就直接转发即可;
• 路由表中的最后⼀⾏,主要由下⼀跳地址和发送接⼝两部分组成,当⽬的地址与路由表中其它⾏都不匹配时,就按缺省路由条⽬规定的接⼝发送到下⼀跳地址。
 

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

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

相关文章

设计模式 模板方法模式

01.如果接到一个任务,要求设计不同型号的悍马车 02.设计一个悍马车的抽象类(模具,车模) public abstract class HummerModel {/** 首先,这个模型要能够被发动起来,别管是手摇发动,还是电力发动…

鸿蒙Harmony应用开发—ArkTS-全局UI方法(列表选择弹窗)

列表弹窗。 说明: 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见UIContext说明。 从API version 10开始&#xff0…

什么是VR应急预案演练虚拟化|VR体验馆加盟|元宇宙文旅

VR 应急预案演练虚拟化指的是利用虚拟现实(Virtual Reality,VR)技术进行应急预案演练的过程。在传统的应急预案演练中,人们通常需要在实际场地或模拟环境中进行演练,这可能存在一些限制,如成本高昂、场地受…

C语言每日一题06

一、题目 二、解析 void main () { char c1,c2; int a1,a2; c1 getchar ();//读取第一个输入,c11 scanf (“%3d”,&a1&#xff…

MNN createSession 之创建流水线后端(四)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session 之维度计算(五…

CSS学习(2)-盒子模型

1. CSS 长度单位 px :像素。em :相对元素 font-size 的倍数。rem :相对根字体大小,html标签就是根。% :相对父元素计算。 注意: CSS 中设置长度,必须加单位,否则样式无效&#xff…

19---时钟电路设计

视频链接 时钟硬件电路设计01_哔哩哔哩_bilibili 时钟电路设计 晶振是数字电路的心脏,数字电路需要一个稳定的工作时钟信号,时钟电路至关重要! 1、晶振概述 晶振一般指晶体振荡器。晶体振荡器是指从一块石英晶体上按一定方位角切下薄片&…

python课后习题一

题目: 1. 2. 解题过程: 1. """计算年数和天数""" minute int(input("请输入分钟数:")) hours minute // 60 days hours // 24 years days // 365 last_days days % 365 print(f"{minut…

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统,特点在于实时处理数据。集群由多个成员节点broker组成,每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成,真正的消息是value,key是标识路…

使用Pygame做一个乒乓球游戏

项目介绍 使用Pygame做一个乒乓球游戏。左侧为电脑,右侧为玩家。 视频地址-YT 视频搬运-B站 视频教程约90分钟。 代码地址 环境:需要pygame库,可用pip安装:pip install pygame 1. 基础版本 首先进行一些初始化,初始…

PHP全新美化广告横幅在线制作源码

源码简介 可以做网站的引流不需要安装上传就可以使用,在第一版基础上做了二次开发更加好用 注意:主机和服务器均可架设搭建,如果使用宝塔架设点击访问的时候提示找不到文件路径的时候,记得点击网站目录把防跨站攻击先关闭,这样就可以正常访问了,这款是…

海格里斯HEGERLS托盘搬运机器人四向车引领三维空间集群设备柔性运维

随着市场的不断迅猛发展变化,在物流仓储中,无论是国内还是海外,都对托盘式解决方案需求量很大。顾名思义,托盘式解决方案简单理解就是将产品放置在托盘上进行存储、搬运和拣选。 面对托盘式方案需求,行业中常见的方案是…

如何在CentOS搭建docker compose ui可视化工具并无公网IP远程管理容器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【C++ leetcode】双指针问题(续)

3. 202 .快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…

node.js快速入门-day03

个人名片: 😊作者简介:一名大二在校生 🤡 个人主页:坠入暮云间x 🐼座右铭:给自己一个梦想,给世界一个惊喜。 🎅**学习目标: 坚持每一次的学习打卡 文章目录 web服务器创建…

JavaScript高级(十三)---ES6中Set,map

ES6 Set 在ES6之前,我们存储数据的结构主要有两种:数组、对象。 在ES6中新增了另外两种数据结构:Set、Map,以及它们的另外形式WeakSet、WeakMap。 Set是一个新增的数据结构,可以用来保存数据,类似于数组&a…

[隐私计算实训营学习笔记] 第1讲 数据要素流通

信任四基石 数据的分级分类 技术信任:全链路审计、闭环完成的数据可信流通体系 技术信任:开启数据密态时代 数据可流通的基础设施:密态天空计算

供需平衡对电子元器件价格的影响

随着科技的迅猛发展和智能化产品的普及,电子元器件已经成为现代社会不可或缺的一部分。从手机到汽车,从家用电器到工业机械,无处不在的电子元器件都在支撑着我们的生活和工作。然而,电子元器件市场的供需平衡却经常面临挑战&#…

flask+ flask_socketio HTTP/1.1“ 400 公网IP 问题解决方案

很经典的一个跨域问题 在服务端改成socketio SocketIO(app, cors_allowed_origins"*")就可以了

杰发科技AC7801——Keil编译的Hex大小如何计算

编译结果是Keil里面前三个数据的总和: 即CodeRoDataRWData的总和。 通过ATCLinkTool工具查看内存,发现最后一个字节正好是5328 注意读内存数据时候需要强转成32位,加1000的 增加1024的地址只需要加256即可