【计算机网络】细说IP

news2024/12/27 5:21:40

文章目录

    • 概述
      • IP地址的组成
      • IP地址的分类
      • IP地址的作用
    • 分类
      • 一、A类IP地址
      • 二、B类IP地址
      • 三、C类IP地址
      • 四、D类IP地址
      • 五、E类IP地址
    • 协议报文
    • 子网掩码
      • 一、定义与功能
      • 二、表示方法
      • 三、子网掩码与IP地址的关系
      • 四、子网掩码的设置与配置
      • 五、实例说明
    • IPv6
      • 一、定义与背景
      • 二、地址格式与特点
      • 三、优势与功能
      • 四、过渡与部署
      • 五、应用与发展
    • IPv6协议报文
    • 有了IPv6还需要子网掩码吗

概述

IP,全称Internet Protocol,即互联网协议,是计算机网络领域中的一个核心概念。它主要用于为网络中的每一台设备分配一个唯一的数字标识,这个标识就是IP地址。通过这个地址,设备可以在网络上被准确地定位和识别,从而实现数据的传输和共享。

IP地址的组成

IP地址由一组数字组成,对于IPv4(第四版互联网协议),它使用32位二进制数来表示,这通常被划分为四个8位(一个字节)的十进制数,各数之间用点号(.)分隔。例如,常见的IPv4地址格式如192.168.1.1。

而IPv6(第六版互联网协议)则使用128位二进制数来表示地址,其表示方式相较于IPv4更为复杂,通常使用冒号分隔的十六进制数来表示,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。

IP地址的分类

IP地址根据其用途和分配方式,可以分为多种类型:

  1. 公网IP:这是在全球互联网上唯一且可路由的地址。它允许设备在互联网上被直接访问和通信。

  2. 私网IP(也称为局域网IP):这些地址是在私有网络内部使用的,通常用于家庭、办公室或企业等局域网环境。私网IP地址在外部互联网上是不可见的,也无法直接访问。

  3. 动态IP:这种地址是由网络中的动态主机配置协议(DHCP)服务器在设备连接到网络时自动分配的。动态IP地址可能会随着设备的每次连接而改变。

  4. 静态IP:与动态IP不同,静态IP地址是手动分配给设备的,并且不会改变(除非手动更改)。静态IP地址通常用于需要稳定网络连接的设备,如服务器。

IP地址的作用

IP地址在计算机网络中起着至关重要的作用:

  1. 身份标识:它为网络中的每一台设备提供了一个唯一的身份标识,使得设备可以被准确地定位和识别。

  2. 路由和转发:路由器使用IP地址来确定数据包在网络中的传输路径,并将其转发到目标设备。

  3. 网络通信:IP地址是实现网络通信的基础,它允许设备之间发送和接收数据。

  4. 网络安全:通过IP地址,可以实现网络安全策略,如访问控制、防火墙规则等。

总之,IP地址是计算机网络中不可或缺的一部分,它使得设备能够在网络上相互通信和共享数据。随着互联网的不断发展,IP地址的重要性和作用也将越来越突出。

分类

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IPv4地址由4段数据构成,每段1字节,8位二进制数,根据网络号和主机号所占位数的不同,可以将IP地址分为以下几类:

一、A类IP地址

  • 组成:1字节的网络地址和3字节主机地址。
  • 最高位:网络地址的最高位必须是“0”。
  • 地址范围:从1.0.0.0到126.0.0.0。
  • 可用网络数:可用的A类网络有126(2^7-2)个。
  • 主机容纳量:每个网络能容纳1亿多(2^24-2)个主机。
  • 特殊地址:127.0.0.1是一个特殊的IP地址,表示主机本身,用于本地机器的测试。
  • 默认子网掩码:255.0.0.0。
  • 应用场景:一般用于大型网络。

二、B类IP地址

  • 组成:2个字节的网络地址和2个字节的主机地址。
  • 最高位:网络地址的最高位必须是“10”。
  • 地址范围:从128.0.0.0到191.255.255.255。
  • 可用网络数:可用的B类网络有16382(2^14-1)个。
  • 主机容纳量:每个网络能容纳(2^16-2)个主机。
  • 默认子网掩码:255.255.0.0。
  • 应用场景:一般用于中等规模网络,如大学、科研所等。

三、C类IP地址

  • 组成:3字节的网络地址和1字节的主机地址。
  • 最高位:网络地址的最高位必须是“110”。
  • 地址范围:从192.0.0.0到223.255.255.255。
  • 可用网络数:C类网络可达209万余(2^21-1)个。
  • 主机容纳量:每个网络能容纳254(2^8-2)个主机。
  • 默认子网掩码:255.255.255.0。
  • 应用场景:一般用于小型网络,如公司、家庭网络(wifi)。

四、D类IP地址

  • 组成:无网络号和主机号之分。
  • 最高位:IP地址最前面为“1110”(二进制)。
  • 地址范围:从224.0.0.0到239.255.255.255。
  • 应用:D类地址作为组播地址(一对多的通信),用于多点广播(Multicast)。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

五、E类IP地址

  • 组成:无网络号和主机号之分。
  • 最高位:IP地址最前面为“1111”(二进制)。
  • 地址范围:从240.0.0.0到255.255.255.255。
  • 应用:E类地址为保留地址,供以后使用,通常用于科学研究。

此外,还有一些特殊的IP地址需要注意:

  • 全零地址:“0.0.0.0”地址对应于当前主机。
  • 全1地址:“255.255.255.255”是当前子网的广播地址。
  • 回环地址:127.0.0.0/8被用作回环地址,表示本机的地址,常用于对本机的测试,其中127.0.0.1用的最多。
  • 私有地址(专用地址):不会在全球使用,只具有本地意义。包括A类私有地址10.0.0.0/8(范围是10.0.0.0~10.255.255.255),B类私有地址172.16.0.0/12(范围是172.16.0.0~172.31.255.255),C类私有地址192.168.0.0/16(范围是192.168.0.0~192.168.255.255)。

总的来说,IP地址的分类是基于其网络号和主机号的位数以及最高位的二进制数来确定的。不同类型的IP地址具有不同的地址范围和用途,适用于不同规模的网络和应用场景。

协议报文

以下是一个关于IP协议(以IPv4为例)的表格形式展示:

字段名称字段长度(bit)描述
版本号(Version)4指定IP协议的版本,IPv4为4
首部长度(Internet Header Length, IHL)4IP头部的长度,以4字节为单位,取值范围为5-15(即20-60字节)
服务类型(Type of Service, TOS)8包括优先权(已弃用)、延迟、吞吐量、可靠性和花费等子字段,声明数据报被网络系统传输时可以被怎样处理
总长度(Total Length)16整个IP报文的总长度(包括头部和数据),以字节为单位,最大长度为65535字节
标识(Identification)16用于标识一组属于同一数据包的分片,在组装时,相同标识的放到一起组装
标志(Flags)3包括是否分片、禁止分片、更多分片等子字段
片偏移(Fragment Offset)13描述分片相对于原始IP报文开始处的偏移,以8字节为单位
生存时间(Time to Live, TTL)8数据报到达目的地的最大报文跳数,每经过一个路由器转发,TTL值减1,减到0时数据报被丢弃
协议(Protocol)8表示上层协议的类型,如ICMP(1)、IGMP(2)、TCP(6)、UDP(17)等
头部校验和(Header Checksum)16使用CRC进行校验,鉴别头部是否损坏,只校验IP的首部,载荷中的TCP/UDP都自带校验
源地址(Source Address)32发送端IP地址
目标地址(Destination Address)32接收端IP地址
可选项(Options, 可变长度)32的整数倍定义一些任选项,如记录路径、时间戳等,长度可变,但必须是32比特的整数倍,不足时需填充0

这个表格展示了IPv4协议头的主要字段及其描述。请注意,IPv6协议头的结构与IPv4有所不同,并且不使用传统意义上的子网掩码。如果您需要IPv6的详细字段信息,请查阅相关IPv6协议文档或标准。

子网掩码

子网掩码(Subnet Mask),也被称为网络掩码或地址掩码,是计算机网络中一个重要的概念。以下是对子网掩码的详细解释:

一、定义与功能

子网掩码是一个32位地址(对于IPv4),用于屏蔽IP地址的一部分,以区分网络标识(网络地址)和主机标识(主机地址)。它必须与IP地址一起使用,不能单独存在。子网掩码的主要功能包括:

  1. 区分网络地址和主机地址:通过子网掩码,可以将IP地址划分为网络部分和主机部分,从而确定设备所在的网络以及该网络中的具体位置。
  2. 提高IP地址分配效率:子网掩码允许将一个大的网络划分为多个小的子网,从而更有效地利用IP地址资源,减少浪费。
  3. 支持路由决策:路由器使用子网掩码来确定数据包的目标网络,并根据路由表进行转发,从而确保数据包能够正确地到达目的地。

二、表示方法

子网掩码通常有两种表示方法:

  1. 点分十进制表示法:将32位的子网掩码划分为四个8位(一个字节)的十进制数,并用点号(.)分隔。例如,255.255.255.0。
  2. CIDR表示法:使用斜杠(/)后跟一个数字来表示子网掩码中网络位的长度(即二进制数字“1”的个数)。例如,/24表示子网掩码为255.255.255.0。

三、子网掩码与IP地址的关系

子网掩码与IP地址一起使用,通过按位与运算来确定网络地址。具体过程如下:

  1. 将32位的子网掩码与32位的IP地址进行按位与运算。
  2. 运算结果即为网络地址,它表示了设备所在的网络。

四、子网掩码的设置与配置

子网掩码的设置通常根据网络的规模和需求来确定。以下是一些设置子网掩码的注意事项:

  1. 确定网络需求:根据网络的规模和需求,选择合适的子网掩码。
  2. 计算子网地址和广播地址:根据选定的子网掩码,计算每个子网的子网地址和广播地址。
  3. 配置网络设备:将计算出的子网地址和子网掩码配置到网络设备(如路由器、交换机等)中,确保网络设备能够正确识别和处理子网。

五、实例说明

假设有一个IP地址为192.168.1.10,子网掩码为255.255.255.0的网络。通过子网掩码与IP地址的按位与运算,可以得到网络地址为192.168.1.0。这意味着该IP地址属于192.168.1.0这个网络。

综上所述,子网掩码是计算机网络中一个重要的组成部分,它通过与IP地址一起使用,实现了网络地址和主机地址的区分、IP地址的高效分配以及路由决策的支持。

IPv6

IPv6(Internet Protocol Version 6)是互联网工程任务组(IETF)设计的用于替代IPv4(Internet Protocol Version 4)的下一代IP协议。以下是关于IPv6的详细解释:

一、定义与背景

IPv6是互联网协议的第6版,旨在解决IPv4地址耗尽的问题,并提供更多的地址空间以及增强的安全性和功能。随着互联网的快速发展,IPv4的32位地址空间已经无法满足日益增长的设备连接需求,因此IPv6应运而生。

二、地址格式与特点

  1. 地址长度:IPv6地址长度为128位,相比IPv4的32位地址空间,IPv6的地址空间要大得多,理论上可以为地球上的每一粒沙子分配一个唯一的IP地址。
  2. 地址表示:IPv6地址通常使用16进制数表示,由8组4个16进制数组成,各组之间用冒号(:)分隔。例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334。
  3. 简化表示:在实际应用中,IPv6地址的某些部分可以省略,以简化表示。例如,连续的零块可以用双冒号(::)表示,但双冒号在地址中只能出现一次。
  4. 地址类型:IPv6地址分为单播地址、任播地址和组播地址三种类型,分别用于标识单个设备、一组设备中的任意一个以及一组设备。

三、优势与功能

  1. 更大的地址空间:IPv6提供了足够的地址空间,可以满足未来互联网设备连接的需求。
  2. 增强的安全性:IPv6内置了IPSec协议,提供了身份认证、数据完整性和加密等安全功能,增强了网络的安全性。
  3. 更好的头部格式:IPv6简化了报文头部格式,减少了处理开销,提高了网络性能。
  4. 支持自动配置:IPv6支持无状态地址自动配置(SLAAC),使得设备可以自动获取IP地址,简化了网络管理。
  5. 支持更多的服务类型:IPv6加入了对自动配置的支持,改进和扩展了DHCP协议,使得网络管理更加方便和快捷。

四、过渡与部署

由于IPv4和IPv6在地址格式、报文头部等方面存在显著差异,因此IPv4向IPv6的过渡是一个复杂的过程。目前,常见的过渡技术包括双栈技术、隧道技术和翻译技术等。双栈技术是指在设备上同时支持IPv4和IPv6协议栈;隧道技术是将IPv6数据包封装在IPv4数据包中传输;翻译技术则是将IPv4地址和IPv6地址之间进行转换。

五、应用与发展

随着IPv6的逐步部署和普及,越来越多的网络和应用开始支持IPv6。例如,许多操作系统、网络设备、网站和应用程序都已经或正在支持IPv6。此外,IPv6还促进了物联网、云计算等新兴技术的发展,为未来的互联网应用提供了更广阔的空间。

综上所述,IPv6是互联网协议的重要升级版本,它提供了更大的地址空间、增强的安全性和功能,为未来的互联网发展奠定了坚实的基础。

IPv6协议报文

以下是一个关于IPv6协议主要字段的表格形式展示:

字段名称字段长度(bit)描述
版本号(Version)4表明IP协议实现的版本号,IPv6中为6,用0110表示
通信类型/流量类别(Traffic Class)8类似于IPv4中的服务类型字段,用于区分不同的分组,可标识数据包的优先级或服务类型
流标记(Flow Label)20原发主机用该字段来标识某些需要特别处理的分组,如特定的服务质量或实时数据传输等
负载长度(Payload Length)16表示除了IPv6固定头部40个字节之外的负载长度,扩展头包含在负载长度之中
下一头部(Next Header)8指示下一个头部字段的类型,可能是IPv6协议的头部,也可能是上层协议头部
跳数限制(Hop Limit)8用于检测路由循环,每个转发路由器对这个字段减1,如果变成0,则分组被丢弃,类似于IPv4中的生存时间(TTL)字段
源地址(Source Address)128发送节点的地址,使用IPv6地址格式
目标地址(Destination Address)128接收节点的地址,使用IPv6地址格式

这个表格列出了IPv6协议报头中的主要字段及其描述。IPv6协议报头相对于IPv4来说更加简化,并且提供了更大的地址空间(128位)以支持更多的设备连接。此外,IPv6还内置了IPSec协议,提供了身份认证、数据完整性和加密等安全功能,增强了网络的安全性。

请注意,IPv6协议还可能包含扩展头部,这些扩展头部是任选的,用于提供额外的功能,如路由、分片、认证和加密等。然而,由于扩展头部是任选的,因此不是每个IPv6报文都会包含所有的扩展头部。在实际应用中,IPv6报文可能只包含基本报头和上层协议数据单元。

有了IPv6还需要子网掩码吗

在IPv6中,虽然子网划分和路由的概念仍然存在,但是传统意义上的子网掩码(如IPv4中使用的那种)并不直接应用于IPv6

IPv6采用了不同的机制来处理地址的层次结构和路由。

在IPv4中,子网掩码用于区分IP地址中的网络部分和主机部分。然而,IPv6地址的结构和长度(128位)使得这种简单的划分不再适用。IPv6地址的分配和路由更多地依赖于地址的前缀长度,而不是像IPv4那样依赖于一个固定的子网掩码。

IPv6地址通常表示为一系列8位的十六进制数,每组4个十六进制数之间用冒号分隔。例如,一个IPv6地址可能看起来像这样:2001:0db8:85a3:0000:0000:8a2e:0370:7334。在这个地址中,前缀(即网络部分)的长度是可变的,并且通常由网络管理员或路由协议来确定。

当在IPv6网络中进行路由时,路由器会根据地址的前缀长度来做出决策。这意味着,对于给定的IPv6地址,路由器需要知道该地址的前缀长度才能正确地将其路由到目的地。这个前缀长度信息通常是通过路由协议(如OSPF、BGP等)在网络中传播的。

因此,虽然IPv6不使用传统意义上的子网掩码,但它仍然需要一种机制来指示地址的网络部分和主机部分。在IPv6中,这种机制是通过地址的前缀长度来实现的。前缀长度是一个数字,表示地址中网络部分的位数。例如,如果一个IPv6地址的前缀长度为64位,那么该地址的前64位就表示网络部分,而剩下的64位则表示主机部分(尽管在实际应用中,主机部分可能并不会完全用于标识单个主机,而是可能包含其他信息,如子网ID等)。

总的来说,虽然IPv6不直接使用子网掩码,但它仍然需要一种机制来处理地址的层次结构和路由。在IPv6中,这种机制是通过地址的前缀长度来实现的。

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

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

相关文章

Blender导入下载好的fbx模型像的骨骼像针戳/像刺猬

为什么我下载下来的骨骼模型和我自己绑定的模型骨骼朝向完全不一样 左边是下载的模型 右边是我自己绑定的模型 左边的模型刚刚感觉都是像针一样往外戳的,像刺猬一样那种。 解决方法勾选自动骨骼坐标系

Ubuntu22.04上kdump和crash的使用

0.前言 1.引用: 解决Linux内核问题实用技巧之 - Crash工具结合/dev/mem任意修改内存-腾讯云开发者社区-腾讯云 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 ubuntu内核转储分析——kdump和crash的下载和使用_ubuntu kdump-CSDN博客 U…

linux安全-firewalld防火墙-基础讲解

目录 一、 防火墙技术分类 二、 firewalld 三、 firewalld支持的类型的NAT 四、 富语言 五、 firewalld配置方式 六、 firewall-cmd命令 七、 小实验 这篇文章将对 firewalld 防火墙的基础知识进行介绍 firewalld简介:firewalld的作用是为包过滤机制提供匹配…

Android中使用NSD扫描,实现局域网内设备IP的发现

0. 前言 本文介绍了什么是NSD协议,并介绍了如何在Android中实现NSD的服务端和客户端,实现局域网内的设备发现功能。 1. NSD是什么 在Android开发中,NSD(Network Service Discovery)是一种用于在局域网内发现其他设备…

ROS2 系列学习教程(总目录)

ROS2Learning ROS1 系列学习教程(总目录) 一、ROS2 简介 1.1 ROS2简介及学习资源汇总 二、ROS2 基础 2.1 ROS2安装详细教程(以Humble为例) 2.2 ROS2 构建系统 colcon 介绍、安装与使用 2.3 ROS2 与 ROS1 编码方式对比 ROS2 与 ROS1 编码方式对比&am…

万字长文解读深度学习——VQ-VAE和VQ-VAE-2

🌺历史文章列表🌺 深度学习——优化算法、激活函数、归一化、正则化 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总 万字长…

Vue 组件通信全面解析

Vue 组件通信全面解析:方式、原理、优缺点及最佳实践 在 Vue 开发中,组件通信是一个重要的核心问题。随着应用复杂度的增加,如何在组件之间有效传递数据、触发事件,直接影响代码的可维护性和可扩展性。Vue 提供了多种组件通信方式…

对力扣77组合优化的剪枝操作的理解

77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…

SpringMVC其他扩展

一、全局异常处理机制: 1.异常处理两种方式: 开发过程中是不可避免地会出现各种异常情况的&#xff0c;例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题&#xff0c;甚至直接导致程序崩溃。因此&#xff0c;在开发过程中&#xff0c;…

运行 GreatSQL 时为什么要求关闭透明大页

在大部分运维规范中&#xff0c;一般都会要求在运行 GreatSQL/MySQL 的环境中要关闭透明大页&#xff0c;那么到底什么是透明大页&#xff0c;为什么要关闭&#xff0c;打开有什么风险吗&#xff1f; 在此之前&#xff0c;我也是有点懵的&#xff0c;本文试着回答这个疑问&…

日本IT|AWS技术方向都需要做哪些工作呢?

在日本IT行业中&#xff0c;AWS&#xff08;亚马逊网络服务&#xff09;技术方向的工作主要涉及利用AWS提供的各种服务和工具来构建、部署和管理云计算解决方案。具体来说&#xff0c;AWS技术方向的工作内容可能包括但不限于以下几个方面&#xff1a; 架构设计&#xff1a; 根据…

PostgreSQL实现透视表查询

PostgreSQL 8.3版本发布时&#xff0c;引入了一个名为tablefunc的新扩展。这个扩展提供了一组非常有趣的函数。其中之一是交叉表函数&#xff0c;用于创建数据透视表。这就是我们将在本文中讨论的内容。 需求说明 解释此函数如何工作的最简单方法是使用带有数据透视表的示例…

生信软件开发1 - 设计一个简单的Windwos风格的GUI报告软件

1. 安装基础库 使用Windows 11标题样式和主题自定义UI窗口库pywinstyles&#xff08;github: https://github.com/Akascape/py-window-styles&#xff09;&#xff0c;结合python自带tkinter库设计一个报告GUI软件。 pip install pywinstyles2. 设计一个简单的Windwos风格的G…

navicat连接mysql 8.0以上版本2059错误

安装了最新版本8.0.4的mysql之后&#xff0c;使用navicat链接提示以下错误。原因是因为mysql8.0 之前的版本中加密规则是 mysql_native_password&#xff0c;而 mysql8.0 之后的版本加密规则是caching_sha2_password 处理方案 解决方案1&#xff1a;下载安装最新版本navicat…

使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像

文章目录 应用快速部署NginxRedisMySQLTomcat 制作镜像镜像原理基于已有容器创建使用 Dockerfile 创建镜像指令说明构建应用创建 Dockerfile 文件创建镜像 应用快速部署 Nginx docker run -d -p 80:80 nginx使用浏览器访问虚拟机地址 Redis docker pull redis docker run --…

【PlantUML系列】类图(一)

目录 一、类 二、接口 三、抽象类 四、泛型类 五、类之间的关系 六、添加注释 七、包图 八、皮肤参数 一、类 使用class关键字定义类&#xff0c;类名后跟大括号&#xff0c;声明类的属性和方法。 属性&#xff1a;格式为{visibility} attributeName : AttributeType…

VR眼镜可视化编程:开启医疗信息系统新纪元

一、引言 随着科技的飞速发展&#xff0c;VR 可视化编程在医疗信息系统中的应用正逐渐成为医疗领域的新趋势。它不仅为医疗教育、手术培训、疼痛管理等方面带来了新的机遇&#xff0c;还在提升患者体验、推动医疗信息系统智能化等方面发挥着重要作用。 在当今医疗领域&#xf…

IS-IS的原理

IS-IS的基本概念&#xff1a; 概述&#xff1a; IS-IS&#xff0c;中间系统到中间系统&#xff0c;是ISO国际标准化组织为它的无连接网络协议设计的一种动态路由协议 IS-IS支持CLNP网络和IP网络&#xff0c;采用数据链路层封装&#xff0c;区别于ospf只支持IP网络&#xff0…

华为ACL应用笔记

1、基本ACL 2000-2999 基本ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种网络安全技术&#xff0c;它根据源IP地址、分片信息和生效时间段等信息来定义规则&#xff0c;对报文进行过滤。 规则&#xff1a; ACL由一系列规则组成&#xff0c;每…

点云标注软件SUSTechPOINTS的安装和使用,自测win10和ubuntu20.04下都可以用

点云标注软件SUSTechPOINTS的安装和使用 github项目源码&#xff1a;https://github.com/naurril/SUSTechPOINTS gitee源码以及使用教程&#xff1a;https://gitee.com/cuge1995/SUSTechPOINTS 首先拉取源码 git clone https://github.com/naurril/SUSTechPOINTS最好是在cond…