一文看懂 SIM 卡

说到 sim 卡,大家都不陌生。

现在是移动互联时代,几乎每个人都有手机。而在手机里,就有 SIM 卡。

一文看懂 SIM 卡

这个指甲盖大小的玩意,已经成为我们生活中不可或缺的一部分。

手机再牛逼,如果没有 SIM 卡,也是个废柴。既不能打电话,也不能发短信,更不能移动上网。

因为手机必须有“合法身份”,才能使用运营商的通讯网络,享受通信服务。

而你从营业厅买回来的 SIM 卡里面,“写入”了手机号,代表了你的“合法身份”。

一文看懂 SIM 卡

那么,SIM 卡就只是一个存储了“手机号”的小金属片吗?

并不是!

SIM 卡的内部构造

SIM 卡,全名是 Subscriber Identity Module(用户识别模块)。因为它一直以卡片形式存在,所以我们都习惯叫它 SIM 卡。

但实际上,SIM 卡是一个装有 CPU(微处理器)的芯片卡

除了 CPU 之外,SIM 卡上面还有程序存储器 ROM工作存储器 RAM数据存储器 EEPROM以及串行通信单元

所以说,SIM 卡,其实就是一台微型计算机

我们使用手机和 SIM 卡时,手机会向 SIM 卡发出命令,SIM 卡根据标准规范来执行并反馈结果。SIM 卡并不是一张单纯的信息存储卡。

一文看懂 SIM 卡

如果各位仔细观察 SIM 卡,会发现这个小金属片上面会被划分成不同的区域,有点像“图腾”。

一文看懂 SIM 卡

这些不同的区域,实际上是 SIM 卡和手机连接时,不同的触点连接。

一文看懂 SIM 卡

SIM 卡槽

不同的触点,有着不同的用处。有的是给 SIM 卡供电,有的是为了手机和 SIM 卡交换数据。

一文看懂 SIM 卡

电源 (Vcc) 、复位 (RESET) 、时钟 (CLK) 、接地端 (GND)、编程电压 (VPP)、数据 I/O 口 (Data)

在 SIM 卡上,究竟有哪些信息呢?

1、由 SIM 卡生产厂商存入的系统原始数据

2、由移动运营商在将卡发放给用户时注入的网络参数用户数据。包括鉴权和加密信息、算法、参数。

3、由用户自己存入的数据。比如,短消息、通讯录、话费记数等。

4、用户在用卡过程中自动存入和更新的网络接续和用户信息类数据。包括最近一次位置登记时的位置信息,临时移动用户号(TMSI)等。

这些数据信息中,第 1 类是写死无法修改的,第 2 类是只有专业部门才能查阅和更新的,第 3、4 类才是手机可以读写更新的。

所以说,SIM 绝不只是存了一个「手机号码」那么简单。

一文看懂 SIM 卡

SIM 卡的发展史

说完 SIM 卡的构造,我们再来看看它的历史。

SIM 卡作为通信史上的一个伟大发明,其实诞生超过 30 年了。

上世纪 90 年代,GSM 在欧洲诞生,并在全球迅速普及。

一文看懂 SIM 卡

1991 年,德国捷德公司开发了世界上第一张 SIM 卡,随后卖了 300 张给芬兰运营商 Radiolinja。

一文看懂 SIM 卡

沃达丰的 Orbitel 901,发出了第一条短信的 GSM 移动电话,也是第一部插入了 SIM 卡的移动电话。

问一个问题,大家知道为什么现在新办的 SIM 卡,都会嵌入在一张名片大小的卡片上吗?

一文看懂 SIM 卡

除了这样更方便携带之外,还有一个很重要的原因 —— 因为最开始的 SIM 卡,就是名片那么大的(也就是和银行卡一样大)。使用时,必须整张卡,塞进手机里。

一文看懂 SIM 卡

标准卡(原卡) VS 银行卡

上面这个才是真正的「标准 SIM 卡」,也叫“原卡”。

我们国家移动通信起步晚,大部分人最早接触的 SIM 卡,是这样的 ——

一文看懂 SIM 卡

17个新手常见Python运行时错误 中文WORD版 17个新手常见Python运行时错误 中文WORD版

本文档主要讲述的是17个新手常见Python运行时错误;当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。感兴趣的朋友可以过来看看

17个新手常见Python运行时错误 中文WORD版 0 查看详情 17个新手常见Python运行时错误 中文WORD版

Mini SIM 卡(红框内)

上图这种卡,我们通常以为是标准 SIM 卡,其实不是。它叫「Mini SIM 卡」,是手机小型化之后,在原卡基础上发展出来的。

2010 年,欧洲电信标准协会(ETSI)再从 Mini SIM 发展出Micro SIM 卡。Micro SIM 卡首次使用在苹果公司所推出的 iPad 及 iPhone 4,后续 iPhone 4S、iPad 2 等众多智能手机都有采用。

一文看懂 SIM 卡

Micro SIM 和 iphone4

2011 年,又是苹果公司,提出「Nano SIM 卡」标准,经过 2012 年的一番竞争(战胜了诺基亚、RIM、摩托罗拉联合提交的方案),该标准被 ETSI 采纳为 4FF 标准。Nano SIM 卡最早被应用在 iPhone 5 与 iPad mini。

一文看懂 SIM 卡

Mini SIM、Micro SIM、Nano SIM(从左到右)

所以,独立实体形态的 SIM 卡,一共有四个标准。

一文看懂 SIM 卡

连 SIM 卡都减肥成功了,你还有什么理由不努力?

关于 SIM 卡的变化,大家其实都看得出来了,并不是什么技术的重大进步,说白了,就是剪塑料(剪卡)。

一文看懂 SIM 卡

剪卡

剪卡如今也是一件很常见的事情,淘宝买个剪卡器,自己就能剪。

一文看懂 SIM 卡

小卡也可以通过卡托,变成大卡。

一文看懂 SIM 卡

其实,关于 SIM 卡,大家还有一个误解。

一直以来,我们把手机卡都叫做 SIM 卡,这并不严谨。

SIM 卡是属于 GSM 技术的,对于 GSM 的死敌 ——CDMA 来说,它的手机卡,并不叫 SIM。

那早期的 CDMA 手机,用的是什么卡?

答案是 —— 没有卡。

嗯,你没听错,早期的 CDMA 手机是不插卡的。而且,目前国际上的 CDMA 运营商(为数不多了),它们的手机也基本上是不插卡的。

一文看懂 SIM 卡

小枣君是搞 CDMA 出身的,对这个再清楚不过了。当年我所参与的海外 CDMA 项目,那些运营商的 C 网手机都是不插卡的。

那 CDMA 手机靠什么来拥有手机号码等信息呢?

有的是运营商直接在手机中写入号码,然后一起卖给用户。

有的是通过 OTA,也就是 Over The Air,空中放号。例如,买了全新的 CDMA 手机之后,第一次开机,按指定格式发一些消息,即可实现手机号码信息的写入,变成一部正常的手机,这就是一次 OTA 空中放号的过程。

一文看懂 SIM 卡

如果大家有点印象,很多年前 iPhone 刚火起来的时候,很多人去买国外的水货 iPhone 4S,就会买到美国 CDMA 运营商 Verizon 的 iPhone 4S,当时被称为“V 版”iPhone,都是不能插手机卡的。

如果你要在中国用它,必须“找关系”,对手机进行“烧号”,才能使用。其实,就是把你的电信号码“烧进”手机里面,实现机卡一体。

一文看懂 SIM 卡

话说,当年中国加入 WTO 时,建了一张 CDMA 网络,后来辗转归了中国联通,再后来,又卖给中国电信。而我们也对这张 C 网做了一点“小改动”,就是必须有“卡槽”。

于是,中国这张 CDMA 网络,成了世界上唯一一张要插手机卡的 CDMA 网络。

CDMA 制式的手机卡,叫 UIM 卡,全名是 User Identify Module,很巧,中文名也叫用户识别模块

一文看懂 SIM 卡

SubscriberUser,都有“用户”的意思。通信行业里,通常用 subscriber 指代手机用户。

现在,UIM 是由中国电信倡导,CDMA 的大旗,也是中国电信勉强在扛(接近退网)。

UIM 和 SIM 除了技术制式上的区别之外,在外型尺寸、作用功能方面几乎没有什么不同,所以大家通常也把 UIM 称为 SIM。

进入最近十年,因为设备小型化的需求,加上可穿戴设备以及物联网应用的蓬勃发展,nano SIM 也无法满足需求,需要进一步减小模块的体积,甚至消灭实体模块。

于是,就有 eSIM、soft SIM 等虚拟 SIM 技术。

关于 eSIM,可以看这篇文章:关于 eSIM,看这一篇就够啦!

好了,以上就是对 SIM 的介绍。感谢大家的耐心阅读!

本文来自微信公众号:鲜枣课堂(ID:xzclasscom),作者:小枣君

以上就是一文看懂 SIM 卡的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/878056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
铁路12306的“预约”功能是抢票吗_铁路12306预约功能作用说明
上一篇 2025年11月28日 08:20:59
《THE REVENANTS》攻略——游戏官网地址介绍
下一篇 2025年11月28日 08:21:03

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    1000
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • 如何让动态追加元素的类事件生效?

    如何在追加元素后使其绑定类事件生效 在页面中引入三方 JavaScript 类并通过添加相应 class 来调用事件方法是一种常见的做法。然而,如果通过 JavaScript 追加标签元素,即使添加了对应的 class,事件也可能无法生效。 为了解决这个问题,可以尝试以下步骤: 检查追加的标签是否为…

    2026年5月10日
    000
  • Go语言mgo查询构建:深入理解bson.M与日期范围查询的正确实践

    本文旨在解决go语言mgo库中构建复杂查询时,特别是涉及嵌套`bson.m`和日期范围筛选的常见错误。我们将深入剖析`bson.m`的类型特性,解释为何直接索引`interface{}`会导致“invalid operation”错误,并提供一种推荐的、结构清晰的代码重构方案,以确保查询条件能够正确…

    2026年5月10日
    100
  • RichHandler与Rich Progress集成:解决显示冲突的教程

    在使用rich库的`richhandler`进行日志输出并同时使用`progress`组件时,可能会遇到显示错乱或溢出问题。这通常是由于为`richhandler`和`progress`分别创建了独立的`console`实例导致的。解决方案是确保日志处理器和进度条组件共享同一个`console`实例…

    2026年5月10日
    000
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    000
  • 创建指定大小并填充特定数据的Golang文件教程

    本文将介绍如何使用Golang创建一个指定大小的文件,并用特定数据填充它。我们将使用 `os` 包提供的函数来创建和截断文件,从而实现快速生成大文件的目的。示例代码展示了如何创建一个10MB的文件,并将其填充为全零数据。掌握这些方法,可以方便地在例如日志系统或磁盘队列等场景中,预先创建测试文件或初始…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 使用 WebCodecs VideoDecoder 实现精确逐帧回退

    本文档旨在解决在使用 WebCodecs VideoDecoder 进行视频解码时,实现精确逐帧回退的问题。通过比较帧的时间戳与目标帧的时间戳,可以避免渲染中间帧,从而提高用户体验。本文将提供详细的解决方案和示例代码,帮助开发者实现精确的视频帧控制。 在使用 WebCodecs VideoDecod…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • Discord.py 交互按钮超时与持久化解决方案

    本教程旨在解决Discord.py中交互按钮在一段时间后出现“This Interaction Failed”错误的问题。我们将深入探讨视图(View)的超时机制,并提供通过正确设置timeout参数以及利用bot.add_view()方法实现按钮持久化的具体方案,确保您的机器人交互功能稳定可靠,即…

    2026年5月10日
    000
  • Debian Copilot的社区活跃度如何

    debian copilot是codeberg社区维护的ai助手,旨在为debian用户提供服务。尽管搜索结果中没有直接提供关于debian copilot社区支持活跃度的具体数据,但我们可以通过debian社区的整体活跃度和特点来推断其活跃性。 Debian社区的一般情况: Debian拥有详尽的…

    2026年5月10日
    000
  • JavaScript 动态菜单点击高亮效果实现教程

    本教程详细介绍了如何使用 JavaScript 实现动态菜单的点击高亮功能。通过事件委托和状态管理,当用户点击菜单项时,被点击项会高亮显示(绿色),同时其他菜单项恢复默认样式(白色)。这种方法避免了不必要的DOM操作,提高了性能和代码可维护性,确保了无论点击方向如何,功能都能稳定运行。 动态菜单高亮…

    2026年5月10日
    200
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    000
  • JavaScript函数中插入加载动画(Spinner)的正确方法

    本文旨在解决在JavaScript函数中插入加载动画(Spinner)时遇到的异步问题。通过引入async/await和Promise.all,确保在数据处理完成前后正确显示和隐藏加载动画,提升用户体验。我们将提供两种实现方案,并详细解释其原理和优势。 在Web开发中,当执行耗时操作时,显示加载动画…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信