IP 协议的相关特性(部分)

news2024/11/20 0:22:25

IP 协议的报文格式

4位版本号

        用来表示IP协议的版本,现有的IP协议只有两个版本,IPv4,IPv6。

4位首部长度:

        设定和TCP的首部长度一样

8位服务类型:

        (真正只有4位才有效果),类似于模式/形态 切换。3位优先权字段(已经弃用),4TOS字段,和1位保留字段(必须置为0)。4TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。

16位总长度

        IP数据报整体占多少个字节。16位总长度为64kb,但是IP协议,自身支持“拆包组包”机制,如果需要携带比较长的数据的时候,IP协议会自动的把一个数据报拆成多个数据报,接收方在进行分用时,也会把多个数据报合并成一个数据报。

16位标识:

        唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。

13位分片偏移
        是分片相对于原始IP 报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。因此当一个数据报被分片后,数字小的为前面的数据报,数字大的为后面的数据报。
3位标志字段:
        第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTUIP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为0,其他是1。类似于一个结束标记。
8位生存时间(TTL
        数据报到达目的地的最大报文跳数。一般是64 。每次经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。
8位协议:
        表示上层(传输层)协议的类型。
16位头部校验和:
        使用CRC 进行校验,来鉴别头部是否损坏,只需要校验首部。
        要想知道什么是源IP,就得知道什么是IP。 IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说, IP 地址用于定位主机的网络地址(设备所在) 。就像发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。 IP 格式: IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:01100100.00000100.00000101.00000110。通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。 特殊 IP:

127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1

本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于

开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。IP协议有两个版本,IPv4IPv6。我们整个的课程,凡是提到IP协议,没有特殊说明的,默认都是指IPv4。 IPv4数量=2^32,大约43亿左右,而TCP/IP协议规定,每个主机都需要有一个IP地址。对于全世界 计算机来说,这个数量是不够的,所以后来推出了IPv6(长度128)。但因为目前IPv4还广泛的使用,且可以使用其他技术来解决IP地址不足的问题,所以IPv6也就没有普及。

        那么IPv4的地址不够用怎么办?有这几种方法。

1)动态分配IP(DHCP):你这个设备不会一直需要上网,等需要上网时,就分配IP,不需要时就不先分配。不过这种方法只能缓解,但不能根治。
2)NAT机制(网络地址转换):把IP地址分成两大类,1.内网IP:不同的局域网的IP地址可以相同,同一个局域网的内网IP地址不可以相同。此时,大量的设配可以使用同样的IP了(在不同的局域网),IP不够用的问题就得到了很大的改善。2.外网IP:外网IP不能重复。
        如果是同一个局域网内部之间的设备进行通信,那肯定可以,但是如果A局域网的设备想和B局域网中的设备通信,这两个设备的IP地址可能相同,哪怎么办?这种情况是禁止的,如果想通信,就需要有一个带有外网IP的设备进行中转。那么局域网中的设备如何访问带有外网IP的设备呢?当局域网中的设备访问带有外网IP的设备时,如向一个服务器发送信息,这个信息经过层层中转,到达电信路由器(带有外网IP),然后触发NAT机制,此时这个外网IP就会将信息中的源IP替换成这个外网IP,替换后会维护一张映射表,描述着替换前的IP和替换后的IP,然后在发送给该服务器,当服务器返回响应后给这个外网IP,然后这个外网IP就根据这个映射表将目的IP给替换成原来得IP,这样就完成了交互。上述过程是简化的,其实在到达电信客户端时就可能经历过多次NAT机制。不过NAT的缺点也很明显,如效率不高,非常繁琐,不方便直接访问局域网内的设备,也不能真正解决IP地址不够用的情况等。而IPv6因为数量够大,它才真正解决了IP地址不够用的情况,不过IPv6和IPv4不兼容。那么为什么IPv6没有大规模普及呢?可能是因为要想升级IPv6,就需要更换路由器等设备,而IPv4则只需要路由器厂商开发出新版本的软件,升级软件,即可直接支持,这也是NAT的最大优势,“纯软件实现”。
        IP地址分为两个部分,网络号和主机号
1)网络号:标识网段,相互连接的两个网段具有不同的标识
2)标识主机,同一个网段内,主机之间具有相同的网络号,但是必须具有不同的主机号。
同一个局域网中设备的网络号必须相同,主机号必须不同,不同的局域网的网络号必须不同。那么如何分辨哪个部分是网络号?哪个部分是主机号呢?这就要通过子网掩码来识别,子网掩码和IP地址一样,也是4字节,32位整数,左侧必须是连续的1,右侧必须是连续的0,0和1不能穿插,n个比特位为1的是网络号,m个比特位为0的为主机号。如有20个比特位为1,12个比特位为0,那么IP地址前20个比特位为网络号,后12个比特位为主机号。
        
        上述说的是IP协议如何管理地址,IP协议还有另一个重要功能:路由选择。当传输信息时,由于路由器无法了解全貌,只能认识部分网络情况(和它相邻的设备情况),在这个前提下,进行路由转发,就只能“摸着石头过河”,因此路由器转发数据的过程相当于问路,每个路由器内部有一个数据结构路由表,数据报到达路由器的时候,就需要查询路由表(问路),如果查到了,就可以直接按照这个方向继续转发,数据就能到达。如果没查到,路由器会给一个默认的方向(下一跳地址),沿着默认方向走(往往是走到上一级路由器)。

 

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

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

相关文章

教你快速解决unity无法添加脚本bug

原因一 就是报错的字面意思,文件名与类名不一致! 原因二 与版本不兼容的汉化导致系统出错! 解决办法一 使用原版本自带的英文显示 解决办法二 更换汉化包 我其实更加推荐使用英文版本的Unity!

Rust闭包 - Fn/FnMut/FnOnce traits,捕获和传参

Rust闭包: 是一类能够 捕获周围作用域中变量 的 函数 |参数| {函数体} 参数及返回值类型可推导,无需显示标注类型唯一性,确定后不可更改函数体为单个表达式时,{}可省略 文章目录 引言1 分类 Fn / FnMut / FnOnce2 关键词 move3 闭包作为参数…

MySQL8安装步骤

本次安装所需版本为MySQL8.0.24,客户端工具选用的是Navicat11. 大家可以进入官网下载其它版本, 1.双击安装文件 2.等待一段时间进入以下界面 3.选择Custom,点击Next 4.进入以下界面,需要C2019的环境,选中此行然后Execute执行。 5.点击Exe…

论文解析——一种多核处理器直连接口QoS的设计与验证

作者 罗莉,周宏伟,周理,潘国腾,周海亮( 国防科技大学) 刘彬 ( 武警贵州省总队) 摘要 多核处理器直接互连构建多路并行系统,一直是提高高性能计算机并行性的主要方式。…

【Hello Algorithm】暴力递归到动态规划(三)

暴力递归到动态规划(三) 最长公共子序列递归版本动态规划 最长回文串子序列方法一方法二递归版本动态规划 象棋问题递归版本动态规划 咖啡机问题递归版本动态规划 最长公共子序列 这是leetcode上的一道原题 题目连接如下 最长公共子序列 题目描述如下…

三种对象注入的区别以及@Autowired和@Resource的区别

文章目录 1. 对象注入1.2 属性注入1.2.1 属性注入的优缺点 1.3 Setter方法注入1.3.1 Setter注入的优缺点 1.4 构造方法注入(官方推荐)1.4.1 构造方法的优缺点 1.5 Resource与Autowired区别 1. 对象注入 获取Bean对象也称为对象注入/对象装配&#xff0c…

Linux:Termius连接本地虚拟机与虚拟机快照

Termius连接本地虚拟机与虚拟机快照 1. Termius连接本地虚拟机2. 虚拟机快照与还原2.1 设置快照以及恢复 附录 1. Termius连接本地虚拟机 ifconfig -a 查看配置 连接成功 2. 虚拟机快照与还原 在学习阶段我们无法避免的可能损坏Linux操作系统。 如果损坏的话,重新…

FPGA复习(功耗)

减小功耗 就得减小电流 电流和CF有关( C: 电容(被门数目和布线长度影响) F:时钟频率) 方法大纲 减小功耗:1 时钟控制 2输入控制 3减小供电电压 4双沿触发器 5修改终端 同步数字电路降低动态功耗:动态禁止…

零食百货经营商城小程序的作用是什么

零食可以只指某款单品,也可以是一堆各品牌食品,其行业涵盖人群广泛,主要以零售和批发为主,不受限制,各地从业商家也非常多,但随着线上电商崛起,零食经营痛点也逐渐凸显。 通过【雨科】平台搭建零…

Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo

Elasticsearch实现检索词自动补全 自动补全定义映射字段建立索引测试自动补全 自动纠错查询语句查询结果 拼音补全与繁简转换安装 elasticsearch-analysis-pinyin 插件定义索引与映射建立拼音自动补全索引测试拼音自动补全测试繁简转换自动补全 代码实现demo结构demo获取 自动补…

C# 图解教程 第5版 —— 第5章 类的基本概念

文章目录 5.1 类的概述5.2 程序和类:一个简单的示例(*)5.3 声明类(*)5.4 类成员(*)5.4.1 字段(*)5.4.2 方法 5.5 创建变量和类的实例(*)5.6 为数据…

解析找不到msvcp140.dll的5个解决方法,快速修复dll丢失问题

​在使用计算机过程中,我们也会遇到各种各样的问题。其中,找不到msvcp140.dll修复方法是一个非常普遍的问题。msvcp140.dll是一个动态链接库文件,它是Microsoft Visual C 2015 Redistributable的一部分。这个文件包含了许多用于运行C程序的函…

计算机网络基础(三):IPv4编址方式、子网划分、IPv4通信的建立与验证及ICMP协议

**IPv4地址是一个32位长的二进制数。**而这个32位二进制数又通常会表示为4个用点隔开的十进制数。那么,这个32位二进制数要如何通过4个十进制数表示出来呢? 我们在配置IPv4地址时,同时配置的“掩码”又有何用途? 1.IPv4编址方式…

MySQL 约束,视图,索引及常见函数

​​​​​​ ​​​​​​​ 2-MySQL 约束,视图,索引及常见函 1 SQL约束 SQL 约束用于规定表中的数据规则。实际上就是表中数据的限制条件。是为了保证数据的完整性而实现的一套机制。 MySQL的约束种类如下: 非空约束:NOT NULL NOT NULL约束强制…

汉堡炸鸡快餐店商城小程序的作用是什么

汉堡炸鸡等快餐店是不少年轻人常去的餐饮店,市场中除了头部品牌外,还有不少中小品牌,消费者选择度高,然而在实际经营中,面对线下流量匮乏、互联网电商发展,快餐店经营痛点不少。 对炸鸡汉堡店来说&#xf…

全球产业链:脑机接口产业链

本心、输入输出、结果 文章目录 全球产业链:脑机接口产业链前言马斯克旗下的脑机接口公司`Neuralink`宣布概念:什么是脑机接口脑机接口技术有哪几种路线脑机接口未来在各行业的应用脑机接口产业链上游脑机接口芯片脑电采集设备系统软件手术耗材脑机接口产业链中游脑机接口产业…

扩散模型的系统性学习(一):DDPM的学习

文章目录 一、学习的资料1.1 对于扩散模型的发展过程的综述1.2对论文中涉及的公式以及公式对应的代码的解读1.3github中对于各模型实现的代码1.4相关基础知识的学习 二、DDPM的学习2.1 DDPM总体知识的梳理2.2相关代码的解读2.2.1unet 代码块2.2.2高斯扩散代码块2.2.3 实验流程代…

【环境搭建】linux docker-compose安装seata1.6.1,使用nacos注册、db模式

新建目录,挂载用 mkdir -p /data/docker/seata/resources mkdir -p /data/docker/seata/logs 给权限 chmod -R 777 /data/docker/seata 先在/data/docker/seata目录编写一个使用file启动的docker-compose.yml文件(seata包目录的script文件夹有&#…

常见的网络攻击手段

网络攻击对个人、组织和整个社会都带来了严重的威胁,因此必须采取有效的安全措施来保护网络系统和用户的信息安全。网站是攻击者经常瞄准的目标,以下是一些常见的攻击方式: 1. DDoS攻击(分布式拒绝服务攻击)&#xff1…

Unity引擎:收费模式和服务升级,为游戏开发带来更多可能性

Unity 引擎的收费模式和配套服务升级已经引起了广泛的关注和讨论。自 2024 年 1 月 1 日起,Unity 将根据游戏的安装量对开发者进行收费。这将会影响到很多游戏开发者和玩家。本文将探讨 Unity 引擎的收费模式和配套服务更新,以及对游戏开发者和玩家的影响…