当前位置: 首页 > news >正文

HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)

系列文章目录

在这里插入图片描述


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、IPV4、IPv6包头对比
    • 1. IPV4包头
    • 2.IPv6包头
    • 3.IPV6扩展包头
  • 二、IPV6基础知识地址结构、地址分类
  • 三、ICMPV4、ICMPV6
    • 1、 lnternet控制消息协议
    • 2、ICMP差错检测
    • 3、ICMP错误报告
  • 四、 ICMPv6的应用
    • 1、差错报文
      • 1.1、ICMPV6信息报文应用-Ping (ICMPv6 type:128-129)
      • 1.2、ICMPv6差错报文应用-Path MTU发现(ICMPv6 type:2)
    • 2、信息报文(NDP使用133-137的ICMP报文)
      • 2.1、ICMPv6消息报文应用:NDP包括 (ICMPv6 type:133-137)
      • 2.2、NDP邻居发现协议的功能
        • 1、路由器发现: (使用ICMP的RS+RA报文)发现链路上的路由器,获得路由器通告的信息。
          • 1 .1路由器发现流程-主机请求触发
          • 1.2、路由器发现流程-路由器周期性发送
        • 2、地址解析:请求目的网络地址对应的数据链路层地址,类似IPv4的ARP。(使用ICMP的NS+NA报文)
        • 3、无状态自动配置:通过路由器通告的地址前缀,终端自动生成IPv6地址。
        • 4、重定向:告知其他设备,到达目标网络的更优下一跳。
  • 五、 IPv6单播地址业务流程
    • 1、邻居发现协议NDP
    • 2、地址配置
    • 3、DAD Duplicate Address Detection | 重复地址检测】
    • 4、地址解析
  • 总结


前言

一、IPV4、IPv6包头对比

1. IPV4包头


IHL:首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位
Type of Service:服务类型。只有在有QoS差分服务要求时这个字段才起作用。
Total Length(16bit):,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
**Identification (16bit):**标识,主机每发一个报文,加1,分片重组时会用到该字段。
Flags(3bit):

Bit 0: 保留位,必须为0。
Bit 1: DF(Don’t Fragment),能否分片位,0表示可以分片,1表示不能分片。
Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。

Fragment Offset(12bit)片偏移: 分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
Time to Live(8bit)生存时间: 可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
Protocol(8bit)协议: 下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值:0: 保留Reserved
1: ICMP, Internet Control Message [RFC792]
2: IGMP, Internet Group Management [RFC1112]
3: GGP, Gateway-to-Gateway [RFC823]
47: GRE (General Routing Encapsulation)
50: ESP Encap Security Payload [RFC2406]
51: AH (Authentication Header) [RFC2402] *
Header Checksum 16比特 首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
Source Address 32比特 源IP地址。
Destination Address 32比特 目的IP地址。
Options 可变 选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
Padding 可变 填充字段,全填0。

2.IPv6包头

在这里插入图片描述

Version 4比特 4:表示为IPV4;6:表示为IPV6。
Traffic class 8比特 :流量类别。该字段及其功能类似于IPv4的业务类型字段。该字段以区分业务编码点(DSCP)标记一个IPv6数据包,以此指明数据包应当如何处理。
Flow Label 20比特 :流标签。该字段用来标记IP数据包的一个流,当前的标准中没有定义如何管理和处理流标签的细节。
Payload length 16比特 :该字段表示有效载荷的长度,有效载荷是指紧跟IPv6基本报头的数据包,包含IPv6扩展报头。
Next header 8比特 :下一报头,该字段指明了跟随在IPv6基本报头后的扩展报头的信息类型。
Hop limit 8比特 :跳数限制,该字段定义了IPv6数据包所能经过的最大跳数,这个字段和IPv4中的TTL字段非常相似。
Source Address 128比特: 该字段表示该报文的源地址。
Destination Address 128比特 :该字段表示该报文的目的地址。
Extension Headers 可变 扩展报头。IPv6取消了IPv4报头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

3.IPV6扩展包头

在这里插入图片描述

二、IPV6基础知识地址结构、地址分类

1、 lpv6;128bit 包含2的128次方个lp地
2、 lpv6使用【:分十六进行】的形式进行表示
3、与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址。
在这里插入图片描述

优点
lpv6的中间转发路由器不再作分片和重组的工作,整条链路采用路径MTU发现机制,整个链路使用最小MTU发送数据

4、IPv6单播地址接口标

  • 手工配置
  • 系统自动生成 通过IEEE
  • EUI-64规范生成

三、ICMPV4、ICMPV6

NDP协议中一共有五种ICMPv6报文类型,分别是RS,RA,NS,NA和Redirect报文

1、 lnternet控制消息协议

ICMP【lnternet control Message protocol】是lp协议的辅助协议
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

ICMPv6报文需要封装成IPv6数据报进行发送:在这里插入图片描述

Type 1字节 定义了报文的类型,该字段决定了其它部分的报文格式。
Code 1字节 该字段依赖TYPE字段,在TYPE字段的基础上,它被用来在基本类型上创建更详细的报文等级。
Checksum 2字节用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。

2、ICMP差错检测

ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。
ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。

用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试

3、ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。

四、 ICMPv6的应用

报文分为两类:
ICMPv6报文可以被分为2大类:差错报文与消息报文。
当TYPE取值范围在0~127范围时,被标识为差错报文,
当TYPE取值范围在128~255范围时,则标识为消息报文。

1、差错报文

1、差错报文【Error Messages】I也称为差错消息I Type字段最高bit为0I也就是ICMPv6 Type=[0 I127]
2、差错消息用于报告在转发lpv6数据包过程中出现的错误I如常见的目的不可达、超时等等

1.1、ICMPV6信息报文应用-Ping (ICMPv6 type:128-129)

Ping基于ICMPV6信息报文实现
Echo Request:用于发送到目标节点,以使目标节点立即发回一个Echo Reply应答报文。
Echo Reply:当收到一个Echo Request报文时,ICMPV6会用Echo Reply报文响应
在这里插入图片描述

1.2、ICMPv6差错报文应用-Path MTU发现(ICMPv6 type:2)

• 在IPv6中,中间转发设备不对IPv6报文进行分片报文的分片将在源节点进行。
• 依赖PMTUD,数据的发送方可以使用所发现到的最优PMTU与目的地节点进行通信,
可以避免数据包在从源传输到目的的过程之中,被中途的路由器分片而导致性能的下降。1.首先PC1用1500字节作为MTU向PC2发送IPv6数据包。2.R1意识到数据包过大,出站接口MTU为1400字节,于是回复一个ICMPv6(Type=2)报文给PC1,指定MTU值为1400字节。3.然后,PC1开始使用1400作为MTU发送IPv6数据4.数据包到达R2后,R2意识到出站接口MTU为1300字节,于是发送一个ICMPv6(Type=2)报文给PC1,指定MTU值为1300字节5.PC1开始使用1300作为MTU发送IPv6数据

在这里插入图片描述

2、信息报文(NDP使用133-137的ICMP报文)

1、信息报文【lnformation Messages】 I也称为信息消息IType字段最高bit为1I也就是ICMPv6 Type=[128 I255]
2、信息报文可以用来实现同—链路上节点间的通信和子网内的组播成员管理等

2.1、ICMPv6消息报文应用:NDP包括 (ICMPv6 type:133-137)

在这里插入图片描述
在这里插入图片描述

2.2、NDP邻居发现协议的功能

1、路由器发现: (使用ICMP的RS+RA报文)发现链路上的路由器,获得路由器通告的信息。
• 路由器发现可以同时实现以下三个功能:○ 路由器发现(Router Discovery):主机定位邻居路由器以及选择哪一个路由器作为缺省网关的过程。○ 前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀的过程,用于主机的地址自动配置。○ 参数发现(Parameter Discovery):主机发现相关操作参数的过程,如输出报文的缺省跳数限制、地址配置方式等信息。
1 .1路由器发现流程-主机请求触发

当主机启动时,主机会向本地链路范围内所有的路由器发送RS报文,触发路由器响应RA报文。主机发现本地链路上的路由器后,自动配置缺省路由器,建立缺省路由表、前缀列表和设置其它的配置参数。
在这里插入图片描述

1.2、路由器发现流程-路由器周期性发送
• 对于定期发送的RA报文,其地址有如下要求:○ Source Address:必须是发送接口的链路本地地址。○ Destination Address : FF02..1

在这里插入图片描述

2、地址解析:请求目的网络地址对应的数据链路层地址,类似IPv4的ARP。(使用ICMP的NS+NA报文)
• 在三层完成地址解析,主要带来以下几个好处○ 地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。○ 可以使用三层的安全机制避免地址解析攻击。○ 使用组播方式发送请求报文,减少了二层网络的性能压力。

在这里插入图片描述

• 当PC1要传送数据包到PC2时,如果不知道PC2的链路层地址,则需要完成以下协议交互过程:
○ PC1发送一个NS报文到网络上,目的地址为PC2对应的被请求节点组播地址(FFO2::1:FF84:EFDC),选项字段中带上PC1的链路层地址000D-88F8-03B0。
○ PC2侦听到该NS报文后,由于报文的目的地址FF02::1:FF84:EFDC,自己在该组播组,处理该报文;同时,根据NS报文的源地址和源链路层地址选项更新自己的邻居缓存表项。
○ PC2发送一个NA报文应答NS,同时在消息的目标链路层地址选项中带上自己的链路层地址0013-7284-EFDC。
○ PC1接收到NA报文后,获悉了PC2的链路层地址,创建一个目标节点的邻居缓存表项
○ 这样通过交互后,PC1和PC2就知道了对方的链路层地址,建立其对方的邻居缓存表项(类似于IPv4的ARP表),就可以相互通信了。

3、无状态自动配置:通过路由器通告的地址前缀,终端自动生成IPv6地址。

重复地址检测DAD:获得地址后,进行地址重复检测,确保地址不存在冲突。
• 重复地址检测(Duplicate Address Detect,DAD)是指接口在使用某个IPv6地址之前,需要先探测是否有其它的节点使用了该地址,从而确保网络中没有两个相同的单播地址。
• 接口在启用任何一个单播IPv6地址前都需要先进行DAD,包括Link-Local地址。
发送NS如果规定时间没没有NA应答,认为本地链路上唯一
在这里插入图片描述

4、重定向:告知其他设备,到达目标网络的更优下一跳。

重定向是指网关设备发现报文从其它网关设备转发更优,它就会发送重定向报文告知报文的发送者,让报文发送者选择另一个网关设备。
在这里插入图片描述

五、 IPv6单播地址业务流程

一个接口在发送IPv6报文之前要经历地址配置、DAD、地址解析这三个阶段,其中NDP【Neighbor Discovery Protocol | 邻居发现协议】在整个流程中扮演了重要角色

1、邻居发现协议NDP

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。
邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器发现(Router Discovery),它定义了使用ICMPv6报文实现地址解析,邻居不可达性检测,重复地址检测,路由器发现,重定向以及ND代理等功能。

2、地址配置

全球单播地址和链路本地地址是接口上最常见的IPv6单播地址,一个接口上可以配置多个IPv6地址

全球单播地址

  • 手工静态配置
    ▫ 采用EUI-64格式形成:接口的IPv6地址的前缀是所配置的前缀,而接口标识符
    则由接口自动生成
    ▫ 手工配置:用户手工配置IPv6全球单播地址
  • 有状态地址自动配置(不需要lpv6地址分配服务器)
    ▫ 有状态地址自动配置基于DHCPv6来实现
  • 无状态地址自动配置(需要lpv6地址分配服务器)
    ▫ 无状态地址自动配置方式基于NDP来实现

lpv6地址无状态自动配置过程
在这里插入图片描述

链路本地地址

  • 手工配置
  • 系统生成
  • 根据EUI-64规范动态生成

3、DAD Duplicate Address Detection | 重复地址检测】

类似于IPv4中的免费ARP检测,用于检测当前地址是否与其它接口冲突

4、地址解析

类似于IPv4中的ARP请求,通过ICMPv6报文形成IPv6地址与数据链路层地址【一般是MAC地址】的映射关系

总结

提示:这里对文章进行总结:

相关文章:

HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、IPV4、IPv6包头对比1. IPV4包头2.IPv6包头3.IPV6扩展包头 二、IPV6基础知识地址结构、地址分类三、ICMPV4、ICMPV61、 lnternet控…...

人工智能】Transformers之Pipeline(九):物体检测(object-detection)

目录​​​​​​​ 一、引言 二、物体检测(object-detection) 2.1 概述 2.2 技术原理 2.3 应用场景 2.4 pipeline参数 2.4.1 pipeline对象实例化参数 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pipel…...

[SWPUCTF 2021 新生赛]easy_md5

分析代码:1.包含flag2.php 2.GET传name,POST传password $name ! $password && md5($name) md5($password) 属于MD5绕过中的php 弱类型绕过 解题方法: 方法一 import requests# 网站的URL url "http://node7.anna.nssctf.cn:28026&q…...

Redis面试题大全

文章目录 Redis有哪几种基本类型Redis为什么快?为什么Redis6.0后改用多线程?什么是热key吗?热key问题怎么解决?什么是热Key?解决热Key问题的方法 什么是缓存击穿、缓存穿透、缓存雪崩?缓存击穿缓存穿透缓存雪崩 Redis…...

【langchain学习】BM25Retriever和FaissRetriever组合 实现EnsembleRetriever混合检索器的实践

展示如何使用 LangChain 的 EnsembleRetriever 组合 BM25 和 FAISS 两种检索方法,从而在检索过程中结合关键词匹配和语义相似性搜索的优势。通过这种组合,我们能够在查询时获得更全面的结果。 1. 导入必要的库和模块 首先,我们需要导入所需…...

【C语言】预处理详解(上)

文章目录 前言1. 预定义符号2. #define 定义常量3. #define定义宏4. 带有副作用的宏参数5. 宏替换的规则 前言 在讲解编译和链接的知识点中,我提到过翻译环境中主要由编译和链接两大部分所组成。 其中,编译又包括了预处理、编译和汇编。当时&#xff0c…...

uni-app内置组件(基本内容,表单组件)()二

文章目录 一、 基础内容1.icon 图标2.text3.rich-text4.progress 二、表单组件1.button2.checkbox-group和checkbox3.editor 组件4.form5.input6.label7.picker8.picker-view 和 picker-view-column9.radio-group 和 radio10.slider11.switch12.textarea 一、 基础内容 1.icon…...

linux搭建redis超详细

1、下载redis包 链接: https://download.redis.io/releases/ 我以7.0.11为例 2、上传解压 mkdir /usr/local/redis tar -zxvf redis-7.0.11.tar.gz3、进入redis-7.0.11,依次执行 makemake install4、修改配置文件redis.conf vim redis.conf为了能够远程连接redis…...

Flink-DataWorks第二部分:数据集成(第58天)

系列文章目录 数据集成 2.1 概述 2.1.1 离线(批量)同步简介 2.1.2 实时同步简介 2.1.3 全增量同步任务简介 2.2 支持的数据源及同步方案 2.3 创建和管理数据源 文章目录 系列文章目录前言2. 数据集成2.1 概述2.1.1 离线(批量)同步…...

4个从阿里毕业的P7打工人,当起了包子铺的老板

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21#wechat_redirect 《网安面试指南》h…...

javaweb_07:分层解耦

一、三层架构 (一)基础 在请求响应中,将代码都写在controller中,看起来内容很复杂,但是复杂的代码总体可以分为:数据访问、逻辑处理、接受请求和响应数据三个部分。在程序中我们尽量让一个类或者一个方法…...

调用 Python 开源库,获取油管英文视频的手动或自动英文srt字幕,以及自动中文简体翻译srt字幕

前提条件 非常抱歉,这个程序就是个雏形,非常不完善,输入需要手动编辑,凑活着可以用,请自己完善吧。 开源声明:此文代码引用了一个开源MIT License的Python库,其他代码是本人自写自用。你可以随…...

UDP协议实现通信与数据传输(创建客户端和服务器)

目录 一、UDP (传输层,用户数据报协议) 二、服务器Server的创建 三、客户端Client的创建 四、效果实现(描述) 一、UDP (传输层,用户数据报协议) UDP(User Datagram Pr…...

【红黑树】

红黑树 小杨 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍&am…...

排序算法——简单选择排序

一、算法原理 简单选择排序是一种基本的排序算法,其原理是每次从未排序的元素中选择最小(或最大)的元素,然后与未排序部分的第一个元素交换位置,直到所有元素都被排序。 二、算法实现流程 简单选择排序法(Simple Se…...

OpenAI API推出结构化输出功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

Python 异步编程:Sqlalchemy 异步实现方式

SQLAlchemy 是 Python 中最流行的数据库工具之一,在新版本中引入了对异步操作的支持。这为使用异步框架(如 FastAPI)开发应用程序带来了极大的便利。在这篇文章中,简单介绍下 SQLAlchemy 是如何利用 Greenlet 实现异步操作的。 什…...

父类引用指向子类对象

在 Java 中,父类引用可以指向子类对象,这是多态的一种表现。这种特性允许你使用父类的引用来操作子类对象,从而实现更灵活和可扩展的代码设计。 基本概念 多态:父类引用可以指向子类对象。这使得你可以用统一的接口处理不同的对象…...

分享一个基于Spring Boot的面向社区的智能化健康管理系统的设计与实现(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…...

【扒代码】reduction参数是什么

model DensityMapRegressor(in_channels256, reduction8)reduction 参数在 DensityMapRegressor 类中用于决定模型在上采样过程中的层级配置。具体来说,它决定了上采样过程中使用多少个 UpsamplingLayer,从而影响输出的分辨率。 reduction 参数的作用 …...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...