IP 协议的相关特性

1. IP协议定义和特性

  IP(Internet Protocol)协议是互联网中使用的网络协议之一,它的特性包括:

1. 无连接性:IP协议是一种无连接协议,每个数据包都是独立发送和处理的。因此,每个数据包都需要包含完整的源和目的地址信息,以便被正确路由到目的地。
2. 不可靠性:IP协议不提供任何可靠性保证,数据包在传输过程中可能会在网络拥塞、链路故障等情况下丢失或重复,需要应用层自行处理数据的可靠性。
3. 分组交换:IP协议使用分组交换技术,将数据分成若干个固定大小的数据包进行传输,每个数据包都有其独立的路由路径和传输时间。
4. 网络层协议:IP协议在OSI模型中属于网络层,主要负责数据包的寻址和路由选择。
5. IPv4和IPv6:IP协议有两个版本,IPv4和IPv6,其中IPv4是现有网络中广泛使用的版本,而IPv6则是一种新的IP协议版本,主要为了解决IPv4枯竭的地址问题。
6. 头部格式:IP协议的数据包头部包括源地址、目的地址、协议类型、TTL等信息,具体数据包头部格式不同于IPv4和IPv6版本的不同而有所区别。

格式: 

 

4位版本号:指定IP协议的版本,对于IPv4来说,就是4。

4位头部长度:IP头部的长度是多少个32bit,也就是 length * 4 的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。

8位服务类型:3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。 这四者相互冲突,只能选择一个。(这个可以理解成选择一个作为IP协议的特点,类似一些角色的变换形态)

16位总长度:IP数据报整体占多少个字节。

16位标识:唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每 一个片里面的这个id都是相同的。(用于拆包合包时的身份标识,同一个包的标识是一致的)

3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。 第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位 表示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。

13位分片偏移:是分片相对于原始IP报文开始处的偏移。其实就是 在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此, 除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了,这个偏移量越小代表这个包的顺序越前)。

8位生存时间:数据报到达目的地的最大报文跳数。一般是64或者128。每次经过一个路由,TTL就会减一,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。

8位协议:表示上层协议的类型。

16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏(报文部分的完整性校验已经由传输层协议校验过了,所以不需要再次校验)。

32位源地址和32位目标地址:表示发送端和接收端。

选项字段(不定长,最多40字节):略。

2. IP协议的作用 

 2.1 地址管理

  IP地址本质上是一个32位整数,为了方便,就会把IP表示成点分十进制的方式,那32位整数,能表示多大的范围呢?大概为42亿9千万,这个数字看起来很大,大师其实并不算很大,发展太快了,人人都有手机,总的设备的数量达到百亿级别还是可能,如何解决IP地址不够用,就成了上个世纪90年代非常严峻的问题了。

  2.1.1 动态分配IP地址

  全世界的设备,也不是同一时刻都在上网,更充分的利用现有的IP地址(并没有从根本上解决问题)。

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

 NAT 机制的工作流-CSDN博客

 2.1.3 IPV6(从根本上解决问题的方案,增加IP地址个数)

  IPv6使用了16个字节表示IP地址。(2^128)但是IPv6的报头结构和IPv4 是不兼容的。引入IPv6就意味着当前网络设备(路由器,就不能支持)就需要更换支持IPv6的设备,那就需要多花钱!!

 2.2 路由选择

  简单来说就是规划出一条路,网路结构太复杂了,每个路由器都无法掌握全局的信息,只能掌握一部分局部信息,此时路由器出来规划出来的线路,只能是一个“较优解”。数据包中包含了“目的IP”字段就是要问路的目标,每个路由器对于网络环境(和他相邻的设备情况)有一定的了解,此时就可以,根据他了解告诉我们下一步往哪个方向走。

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

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

相关文章

AI在线写作软件推荐:5款不可错过的写作工具

现在人工智能(AI)技术已经渗透到了各个领域,包括写作。AI在线写作软件的出现,为我们提供了更加高效、准确的写作工具。在本文中,我将向大家推荐5款功能强大的AI在线写作软件,这些软件可以帮助我们提高写作效…

python nacos-sdk-python 连接 nacos2.x版本,鉴权403解决办法

看nacos-sdk-python 的git项目提交记录,应该是已经解决了nacos2.x权限问题,但为什么还连接不上呢?因为最新代码,居然把以前鉴权代码删除了,具体原因不得而知。 解决办法: 1.把nacos-sdk-python里面params.…

redis 6.x集群搭建

redis6集群搭建 安装文件下载 redis-6.2.6.tar.gz 编译 tar -zxvf redis-6.2.6.tar.gz cd redis-6.2.6/ make MALLOClibc make install PREFIX/opt/soft/redis复制可执行文件 cp /opt/soft/redis/redis-cli /usr/bin/redis-cli cp /opt/soft/redis/redis-server /usr/bi…

小鱼深度产品测评之:阿里云自研PolarDBMySQL 版 Serverless,真正达到100%兼容 MySQL,分析性能达到开源数据400倍。

阿里云自研PolarDBMySQL 版 Serverless测评 一、 开箱二、 试用教程三、 使用感受3.1 查看资源包信息3.2 列表3.2.1 列表展示3.2.2 集群名称 3.3创建账号3.4 实例配置3.5 Serverless弹性压测3.5.1 遇到问题3.5.2 实操 四、 总结 一、 开箱 又到了体验新产品的时候了。 话不多说…

基于Python的招聘网站爬虫及可视化的设计与实现

摘要:现在,随着互联网网络的飞速发展,人们获取信息的最重要来源也由报纸、电视转变为了互联网。互联网的广泛应用使网络的数据量呈指数增长,让人们得到了更新、更完整的海量信息的同时,也使得人们在提取自己最想要的信…

tcpdump在手机上的使用

首先手机得root才可以,主要分析手机与手机的通信协议 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)https://optool.daxiaamu.com/index.php tcpdump,要安装在/data/local/tmp下要arm6…

JProfiler for Mac/win:深度探索Java性能的终极工具

随着Java应用的日益普及,性能优化成为开发人员的重要任务。在众多性能分析工具中,JProfiler以其强大的功能和直观的界面脱颖而出。本文将深入探讨JProfiler的优势,以及如何利用它来提升Java应用的性能。 一、JProfiler的核心优势 全面性能监…

备战蓝桥杯---搜索(DFS基础2)

下面我主要介绍一下深搜的简单应用吧: 下面是分析: 我们对每行遍历一下,跟求排列差不多。在判断条件上,我们可以放一个存列的数组,对于对角线的判断,我们可以发现在主对角线上,列数-dep为恒定值…

Swift 入门之自定义类型的模式匹配(Pattern Matching)

概览 小伙伴们都知道 Swift 是一门简洁、类型安全、极富表现力以及“性感迷人”的编程语言。 和大多数语言一样,在 Swift 中也有一些隐藏着的、不为人知的宝藏特性。利用它们我们可以极大增加撸码的愉悦和成就感。 其中,模式匹配(Pattern …

Linux---动静态库

动静态库的相关概念 静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的…

2024 年 11 款值得收藏的 iPhone 数据恢复软件和应用

数据丢失是任何人都无法承受的,因为它对每个人都至关重要。但是数据丢失的原因有很多,一些常见的原因是数据意外删除、设备被盗、iOS 越狱、硬件损坏、病毒感染等。我们列出了 iOS 的顶级恢复工具,其中将帮助您方便地恢复数据。 这是 11 款最…

k8s之安装部署及kuboard发布应用

目录 环境准备 系统规划 配置免密 将桥接的IPv4流量传递到iptables的链 系统基础配置 安装docker 安装docker及基础依赖 配置docker的仓库下载地址 部署k8s 添加阿里云的k8s源 安装kubeadm,kubelet和kubectl 初始化masteer节点 部署node节点 部署flanne…

docker相关问题解决(file exists、not a directory

背景 以下环境为wsl file exists 缓存没删干净 docker-compose down -v not a directory flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? 明明我确定报错指示的位置就是文件而不是文件夹...相当神奇的错误 …

【C++初阶】--入门基础(二)

目录 一.C输出与输入 二.缺省参数 1.概念 2.缺省参数分类 (1) 全缺省参数 (2)半缺省参数 三.函数重载 1.概念 2.C支持函数重载的原理--名字修饰 四.引用 1.概念 2.语法 3.引用的特性 (1)引用在定义时必须初始化 (2)引用时不能改变指向 (3)一个变量…

UE 代码构建(BuildSystem)与源码编译相关

年底了,把之前的草稿文章整理一下,整理好的发出来 UnrealBuildTool简介 参考:https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ UE里的项目代码、包括UE本身的源码,都是划分成一个…

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用 需求(实现的效果)功能实现htmlcssjs 需求(实现的效果) 批量显示视频,后端若返回有imgUrl,则直接显示图1, 若无&#xf…

Socket套接字类编译测试

目录 类设计 类实现 测试 测试服务器 测试客户端 测试结果 这一节相当于整合了之前的一些东西,重新过了一遍,这个就显得相对之前的版本更加完善一点 类设计 // 套接字类 #define MAX_LISTEN 1024 class Socket {private:int _sockfd;public:Socke…

闲人闲谈PS之五十三——离散制造中的魔鬼--物料套裁

惯例闲话:最近和老婆大人商议买车事宜,闲人以为会陷入买油车还是电车的纠结,没想到老婆大人无比坚定,买电车。在买车这方面,老婆的想法居然比闲人超前。闲人对车定位在代步工具,2年前,对车还是印…

SAP下载word

事务代码:STRANS 启动转换器 步骤 1. 将参数填入模板,并另存为word 2003 xml文档 2.使用网页打开xml文档,并将xml拷贝到转换器tt:template中,添加参数 3.替换参数,部分xml可能存在错误或者跑偏根据实际情况检查修改 …

洛谷 P1980 [NOIP2013 普及组] 计数问题

题目背景 NOIP2013 普及组 T1 题目描述 试计算在区间 1 到 n 的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。 输入…