任丘网站制作石家庄信息网官方网站
任丘网站制作,石家庄信息网官方网站,vultr建站wordpress,wordpress菜单显示用户1.1.背景1945 年#xff0c;二战结束#xff0c;世界恢复和平#xff0c;并出现了美国、苏联两个超级大国#xff1b;1947 年#xff0c;杜鲁门主义 出台#xff0c;标志着以两个超级大国为代表的 冷战 正式开始#xff1b;1957 年#xff0c;苏联 发射了人类第一颗人造…1.1.背景1945 年二战结束世界恢复和平并出现了美国、苏联两个超级大国1947 年杜鲁门主义 出台标志着以两个超级大国为代表的冷战正式开始1957 年苏联发射了人类第一颗人造地球卫星令美国大为震惊1958 年美国 组建高级研究计划局ARPA简称阿帕负责研发用于军事用途的高新科技在这里插入图片描述在阿帕中信息技术处 属于核心机构主要研究方向是计算机网络通讯等方面1968 年拉里·罗伯茨 提交了一份题为 《资源共享的电脑网络》 报告报告中提出 让阿帕的计算机相互连接以达到信息共享的目的而这就是最早的网络阿帕网1969 年 10 月 29 日进行第一次 阿帕网 的连接实验起点为 加州大学洛杉矶分校终点则是 500km 之外的 斯坦福研究所第一次连接实验想传输单词 login最终因连接中断只成功传输了字母 l 和 o但这次连接实验成功开启了网络世界的大门最初 阿帕网 的节点只有四个到了 1981 年节点增加至 213 个在这里插入图片描述1974 年温顿·瑟夫 和 罗伯特·卡恩 提出的 TCP/IP 协议 正式发表TCP/IP 协议 突破了不同硬件间的限制允许不同的计算机之间进行高效可靠的数据传输经过数十年的完善TCP/IP 协议 成为使用最广泛的网络协议这也为网络快速发展奠定了基础1986 年美国国家科学基金会网络NSFNET) 成立阿帕网 只能用于军事研究而 NSFNET 则是鼓励大学和研究机构加入到自己的互联网中服务于学术研究NSFNET 快速发展并逐渐替代了阿帕网在这里插入图片描述1993 年 1 月马克·安德森 开发了马赛克Mosaic浏览器支持显示图片并于第二年成立 网景公司推出了新一代网页浏览器1995 年 网景公司 在纽约上市一夜之间公司市值突破 20 亿美元1995 年 3 月斯坦福大学的两名电气工程系的研究生共同创建了 雅虎公司1995 年微软为了回应 网景浏览器推出了经典浏览器 Internet Explorer1997 年丁磊在广州创建了 网络公司并推出了强大且免费的 163 邮箱1998 年 2 月从美国麻省理工学院毕业回国的 张朝阳 创建了 搜狐1998 年 11 月马化腾 在深圳创建 腾讯公司腾讯目前正通过旗下腾讯微信抢占市场1998 年 12 月王志东 创建了 新浪网站才有后来的新浪微博1998 年 2 月谷歌 成立曾想将自己的网络项目售给 雅虎修道拒绝几年之后谷歌 成为全球最大的搜索引擎公司1999 年 9 月马云 带着他的十八罗汉在杭州的公寓中创建了 阿里巴巴集团如今的 淘宝、支付宝 等阿里系产品已经深刻改变了人们的生活方式2000 年李彦宏 带着他的“超链分析”技术专利创建了 百度一下子你就知道的“百度一下你就知道”的观念深入人心在这里插入图片描述互联网·仍在快速发展web2.0 和 移动互联网 时代同样诞生了无数传奇即将到来的 web3.0 也同样令人期待。所有人共建的就是网络1.2.类型如果按照网络区域进行划分可以分为局域网 LAN和广域网 WAN局域网 LAN 通常指在一个区域内将多台计算机通过双绞线、同轴电缆等连接介质互相连接在这里插入图片描述广域网 WAN则是指将相隔千里的计算机进行连接在这里插入图片描述值得注意的是局域网和广域网只是一个相对的概念并没有明显的界限比如一个看似很大的广域网实际也就是个局域网2.网络协议2.1.什么是协议协议是一种约定也是一种标准比如著名的IEEE 754标准就规定了浮点数如何在内存中存储再比如投资者往往会与被投资者签订一份对赌协议确保投资顺利进行协议制定后参与者都必须遵守该协议不同行业中的协议往往由该行业中的翘楚制定比如在通信标准领域华为就担任了重要角色并作为5G标准的主导者之一一流企业定标准二流企业做品牌三流企业做产品在当前互联网时代有众多计算机生产商、计算机操作系统和多样化的计算机网络硬件设备。那么如何实现这些不同设备之间的互相连接呢答案是制定出被大家都认可的协议当协议被制定出来且拥有一定用户基础后后续厂商推出的硬件设施也必须遵守该协议否则就会被市场抛弃如此一来可以倒逼众多配套设备共同遵守网络连接环境也就逐渐完善了2.2.协议分层网络在传输过程中面临诸多问题数据如何组织如何解析的问题长距离传输数据丢失的问题如何在众多主机中定位目标主机的问题如何进行数据转发、路径选择的问题010101 硬件级别的协议问题在这里插入图片描述如何解决这些问题呢将问题分类逐个击破 — 高内聚这些问题之间是存在先后关系的比如只有先把信息组织好了才需要考虑数据传输过程中的丢失问题丢失问题得到保障后就要考虑把数据发送给谁、如何发送最终通过硬件完成发送基于解耦、可维护性、可扩展性这三点出发采用协议分层的解决方案将不同的问题解决策略归入不同模块中模块之间互不影响 — 低耦合此时网络的层状结构呼之欲出不同分层中包含了各种协议负责解决不同的问题在这里插入图片描述其实分层这个概念早在语言学习阶段就已经接触过了在学习继承时子类继承自父类当前出现了父类和子类这两层结构父类可以不必关心子类的具体实现需要时可以直接通过父类指针对子类成员或函数进行访问在进行分层后上层无需关心下层的具体实现只需要使用下层提供的功能即可分层思想很好的体现了计算机领域的设计哲学任何计算机问题都可以通过添加一层软件层解决拿日常生活举例假设 A 想给 B 打电话只需要拿起电话并拨通 B 的号码待 B 接通电话后双方可以通话在通话过程中A 与 B 都认为自己在直接与对方通话这是因为 A、B 同处语言层任务是 进行通话而通话的具体实现属于通信设备层用于 实现通话语言层 依赖通信设备层的功能但并不关心它的具体实现因为没必要语言层和通信设备层之间通过接口进行连接有点类似于操作系统中的系统调用在这里插入图片描述假设某天通信设备层中的电话机坏了可以将其更换为无线电继续向语言层提供通话的服务即便设备更换了A、B 依旧可以正常通话在这里插入图片描述不仅通信设备层可以更换设备语言层也可以更换角色比如现在变成 B、C 两个外国人进行通话通信设备层依旧可以正常提供服务在这里插入图片描述上述例子中很好的体现出分层的好处分层之后每一层都只关注自己层的功能使用下层提供的接口任何一层出问题都不会直接影响其他层分层是解决大量问题的最优解高内聚、低耦合能否不进行分层从技术层面来说是可以的但这对于整个系统的设计都是非常不友好的比如你可以把所有的代码都写到一个main函数中程序依旧可以运行但如果程序运行出现了问题或者说需要对某个功能进行改动会变得十分麻烦所以随着编程思想的深入不同的功能由不同的函数实现对功能函数进行聚合也就形成了类分层也是如此分层之后无论是进行功能维护还是进行功能扩展都可以在不影响其他层的情况下进行2.3.OSI七层模型基于网络分层的设计思想诞生了著名的OSI七层网络模型OSIOpen System Interconnect即开放式系统互连 一般都叫OSI参考模型是ISO组织在 1985 年研究的网络互连模型该模型将网络从逻辑上分成了七层每一层都有对应的协议或物理设备OSI参考模型最大优点是将服务、接口和协议这三个概念明确地区分开来通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯自底向上OSI参考模型中不同层级实现功能如下所示在这里插入图片描述在这里插入图片描述在这里插入图片描述OSI参考模型是一种框架性的设计方法基于该模型可以实现不同的具体模型其中最出名的是TCP/IP五层模型这也是我们主要学习的网络模型2.3.TCP/IP五层模型为什么会变成五层模型这是因为开发人员在使用 OSI七层模型 的过程中发现这个标准设计的过于麻烦了应用层、表示层、会话层可以合为一层应用层加上剩下的四层也就是变成了五层模型在这里插入图片描述为什么叫做TCP/IP五层模型这是因为其中的TCP、IP协议非常经典、非常重要具有代表意义于是就命名成了TCP/IP五层模型注意 TCP/IP是一组协议的代名词其中包含了许多协议共同组成了TCP/IP 协议簇TCP/IP 五层模型也可以称为TCP/IP 四层模型这是因为物理层不是我们开发人员关注的重点在这里插入图片描述TCP/IP 五层模型的不同分层功能如下自底向上物理层负责光电信号的传递方式以太网 中采用 同轴电缆、双绞线、光纤、电磁波 等传递信号不同材质决定了信号最大传输速率、传输距离、抗干扰性等如果信号传递过程中出现衰减还可以使用 集线器 进行信号增强数据链路层负责设备之间的数据帧的传送和识别比如网卡设备的驱动、帧同步、冲突检测、差错校验等工作 数据链路层 中有很多不同的实现标准以太网、令牌环、无线 LAN 等具体是什么标准取决于网卡用于连接多台设备实现网络数据传输与交换的 交换机 就工作在 数据链路层网络层负责地址管理和路由选择比如在 IP 协议 中通过 IP 地址来标识主机可以通过查询路由表的方式规划出源主机与目标主机之间的传输路线这正是 路由器 的工作职责**传输层**负责两台主机之间的数据传输通过诸如 TCP 协议 等传输协议实现高效、可靠的数据传输数据传输不一定成功可以通过 重传 相关机制重新传输数据应用层负责应用程序间沟通比如 简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet 等在进行网络编程时主要针对的就是应用层在这里插入图片描述一般而言硬件除了工作在某一层外还需要具备自己下层的功能对于一台主机它的操作系统内核实现了从「传输层」到「物理层」的内容对于一台路由器它实现了从「网络层」到「物理层」对于一台交换机它实现了从「数据链路层」到「物理层」对于集线器它只实现了「物理层」但这并不是绝对的某些硬件也可以工作在上层比如路由器可以实现传输层的部分功能交换机 也可以实现网络层的转发2.4.系统与网络的联系系统、网络不分家看似设计复杂的网络标准模型其实和系统设计有着千丝万缕的联系比如物理层、数据链路层、网络层、传输层这四层属于操作系统层剩下的应用层属于用户层因为我们最终是需要通过操作系统来进行网络通信所以网络标准模型必然会被融入操作系统中应用层中的应用、表示、会话不属于系统体系结构也不能属于系统体系结构因为他们由用户定义并实现由于实现方式不固定也就统称为应用层网络编程就是在应用层中进行的在这里插入图片描述网络标准模型融入操作系统后为了让用户能使用网络操作系统就为网络相关操作提供了一批 系统调用接口也就是后面学习的socket 套接字编程操作系统具有四大管理模块内存管理、进程管理、文件管理、驱动管理压根就没有网络管理那么操作系统是如何网络进行管理的Linux 中一切皆文件网络需要借助网卡通信而网卡在操作系统看来不过是一个提供了读方法与写方法的硬件设备而已所以操作系统只需要通过 「文件管理」 那一套来对网络进行管理就行了其实 socket 本质上就是一个文件描述符一个专门对于 网络资源文件 进行操作的句柄而已这也就意味着系统提供的网络相关系统调用接口必然与文件相关接口操作类似网络本质上是挂接至文件系统中的一个重要子功能网络与系统也有一些区别系统可以有很多种但网络中的核心协议栈必须一致无论是哪种系统如果核心协议栈不一致就无法进行网络通信所有主流操作系统都必须实现基于TPC、IP实现的核心协议栈工作在操作系统层中在这里插入图片描述3.网络传输3.1.前置概念一、处在同一个局域网中的主机是可以直接通信的比如部分游戏的本地连接对战功能CS 1.6、魔兽世界、求生之路等这些游戏在进行本地多人对战时只需要构建一个局域网主机相连后即可直接进行通信再比如快压、QQ互传、快传等传输文件的方式也是通过局域网连接实现的本质上就是通过热点构建一个子网局域网其他手机主机连接后可以直接通信传输文件这些日常生活中接触过的操作都在证明 处于同一个局域网中的主机是可以直接通信的二、TCP/IP模型中的不同层都有自己的协议而协议最直观的表现部分叫做 「协议报头」每一层都有自己的协议很好理解毕竟每层需要解决的问题都不同用来解决问题的协议自然就不同在这里插入图片描述至于什么是协议报头协议报头有什么用协议报头在数据传输过程中用于承载一些控制信息协议报头提供了关于数据包或帧的元信息以便在网络中正确地路由、传递和处理数据比如下面这个就是经典的 TCP 协议报头在这里插入图片描述可以通过生活中的例子辅助理解前面提到过马云创办的淘宝深刻改变了现代人的生活说白了就是网购这种网上购物方式必须依赖强大的物流体系面对成千上万的商品以及全国大大小小的收货信息该如何设计快递方式才能确保物流过程中不会出差错这里是引用答案是通过快递单标识物流信息这里的快递单就好比协议报头因为有很多家快递公司每家公司的快递单都不一样不同协议的协议报头也不一样协议报头是协议最直观的表现部分在这里插入图片描述所以假设张三双十一在某东上买了一把青轴机械键盘商家发货时会先选择一家快递公司协议进行发货将键盘有效载荷打包并给包裹贴上一张快递单协议报头准备物流如果不发生意外张三在数天后会收到一条取件信息张三拿到快递后首先做的是读取 快递单协议报头 信息 确认是自己的包裹后才会 把包裹拆开解包最终张三成功拿到了自己网购的 键盘有效载荷在上面这个故事中张三的整个购物过程可以分为三步商家打包 - 物流 - 张三解包快递单作为快递公司的代表包含了很多重要信息是包裹物流过程中的通关文牒如果张三想要退货则会在原先包裹的基础之上再加一张快递单2将之前的快递单1包裹 整体看作一个 包裹有效载荷利用新的快递单2 进行封装此时的有效载荷从键盘变成了包裹证明有效载荷是一个相对的概念网络中传输的数据可以看作商品称为有效载荷传输过程中选择的协议可以看作快递公司协议报头自然就是快递单了实际在进行网络传输时也是遵循打包 传输 解包这三步走的只不过在传输过程中还需要再打包在众多 协议报头的保驾护航之下可以确保数据在网络世界中成功递达快递单1 商品 — 协议报头 有效载荷快递单2 快递单1商品 — 协议报头 有效载荷所以现在可以理解为什么不同层中的协议可以共同完成数据传输工作了因为对于同层来说协议是用来解决问题的问题解决后会用自己的协议报头将数据打包传给下层或者把自己本层的协议报头与有效载荷分离后把有效载荷传给上层传给下层时解决完问题后将上层传过来的有效载荷与自己层的协议打包后继续传给下一层这个过程称为封装传给上层时上层得到的是一个自己能看懂的数据包把自己本层的协议分离后把有效载荷继续往上传就好了这个过程称为分用封装与分用是不同网络层中必须面对的重要问题只有把这两个问题解决了整个传输过程才会通畅关于更多实现细节可以接着往下看3.2.同一个局域网内通信有了局域网内直接通信和协议报头的前置知识后接下来演示同一个局域网内两台主机如何通信在这里插入图片描述通信过程应用层将自己的协议报头与用户想发送的信息封装成一个 数据包传给下一层传输层将自己的协议报头与数据包封装成一个新的数据包传给下一层不断重复直到数据包来到对端主机网络中链路层从数据包中分离出有效载荷向上交付网络层同样需要分离出有效载荷向上交付最终有效载荷为 主机A 发送的 信息成功交给了主机B在这里插入图片描述解铃还须系铃人XXX层封装 的协议报头只有同层才能进行解包得益于协议分层看似主机A与主机B在直接通信实际上数据至少经历了九次传输3.3.数据包的封装与分用从上面主机通信的例子中可以产出以下结论每一层都有自己的协议报头向下传输时每一层都要有将自己的「协议报头」与「有效载荷」封装传给下一层的能力向上传输时每一层都要有将自己的「协议报头」与「有效载荷」分离识别并交付给上一层的能力在逻辑上同一层中使用的都是同一个协议都认为自己在于对端直接通信向上交付时如何从数据包中将自己的 「协议报头」 与 「有效载荷」 分离呢a.「协议报头」中一般都包含了当前报头的大小用数据包总大小 - 协议报头大小得到的就是「有效载荷」除此之外有的「协议报头」与「有效载荷」之间存在特殊分隔符可以轻松识别并分离可是协议有很多在向上交付时如何知道 「有效载荷」 该传递给哪个 协议 呢b.如果要交给上一层「有效载荷」中必然包含上一层协议报头而协议报头中包含了协议信息自然能知道将「有效载荷」交付给谁了几乎每层协议都要具备a、b两个基本功能否则就无法向上交付数据补充概念不同的协议层对数据包有不同的称谓,在传输层叫做段在网络层叫做数据报在链路层叫做帧应用层数据通过协议栈发到网络上时每层协议都要加上一个数据首部称为封装首部信息中包含了一些类似于首部有多长、载荷有多长、上层协议是什么等信息数据封装成帧后发到传输介质上到达目的主机后每层协议再剥掉相应的首部,根据首部中的上层「协议报头」将数据交给对应的上层协议处理3.4.局域网通信原理局域网通信的一般原理在局域网中进行通信时无论任何时刻只允许一台主机向局域网中发送信息局域网中通信的具体实现方式这里不详谈通过一个例子来辅助理解某天张三正在上课王老师定了一个规矩在我上课期间其他人不允许讨论如果想发言需要举手示意张三听着听着就走神了突然王老师看着张三想起了一件事并直接问到“[张三] [你的作业为什么没交]”因为此时全班只有王老师的声音其他同学听到后发现王老师叫的是 [张三]而不是自己选择无视了王老师的发言当张三听到王老师在叫自己名字后打起精神并站了起来开始分析王老师传达的信息[为什么没交作业]张三想了半天想出一个理由[王老师] [作业我写了但在家里忘带了下次带给你]其他同学听到张三的发言依旧选择无视王老师收到张三的信息后表示“[张三] [你能忘记作业为什么不能忘记吃饭呢]”全班发出笑声张三收到信息后尴尬坐下在这里插入图片描述故事结束在上面的故事中张三所处的环境正是一个局域网同学和老师们可以直接通信但任何时刻都只允许一人通信其中每个人的名字可以看作自己的标识符王老师发出的信息中只包含了 [张三] 这个 标识符因为在一个教室里所以除张三外的其他同学也能收到王老师发出的信息但他们选择无视因为 [张三] 这个 标识符 与自己对不上当张三与王老师在进行对话时虽然全班人都能听到但本质上只有张三与王老师在进行通信而这就是局域网中以太网的通信原理如何理解 “抓包” 行为当你收到不是发给你的数据包时没有选择无视而是将其收集了起来这就是抓包带入故事中就是那种喜欢凑热闹的吃瓜群众网卡默认会过滤掉不属于自己的数据包可以手动设置成混杂模式以关闭过滤以太是什么东西为什么能跟网络扯上关系以太 这个名词源于物理学中的以太假说认为光在太空中通过以太传播但物理实验证明其根本不存在最终沦为物理学界的笑柄。而我们网络中正是通过光电信号传输数据的光电信号中有光因此就把该标准称为以太网用来 “致敬” 物理学既然局域网中的数据包可以被所有人收到也就意味着通信过程可能被干扰就比如同时向湖面丢石头产生的波纹之间会相互影响导致自己的波纹丢失/混乱如果我们不断往局域网中发送大量无用的数据包会导致网络碰撞影响局域网中的正常通信发生网络碰撞后未递达的数据会重新发送此时再发送就会变得特别慢因为此时局域网中都是垃圾数据包大部分时间都用在甄别垃圾数据包上了这就也解释了大部分学校的校园网在晚上打游戏的时候会很卡因为大家处于同一个局域网中大家都在打游戏都在发送数据包容易发生数据碰撞从而导致数据 延迟递达也就是网卡在网络世界中需要使用唯一标识符来标识自己的主机否则就无法做到信息传递与接收网卡厂商在生成网卡时会给每一个网卡都写入属于自己的SN 号也就是MAC 地址这是一个硬件地址目前 全球唯一对于Windows电脑用户可以调起cmd窗口输入指令ipconfig /all查询自己当前电脑网卡的MAC信息当我们在局域网中进行通信时可以直接通过 MAC地址比对判断数据包是不是发给自己的3.5.跨路由器的远端通信在学习远端通信之前需要先认识一下路由器路由器主要工作在网络层但它也具备数据链路层、物理层的工作能力路由器也可以可以看作一台 主机节点作为远端通信的桥梁路由器至少需要级联两个子网至少要提供两个网络接口在这里插入图片描述主机A与主机B不处在同一个局域网中如果想要进行通信需要让路由器与主机A处于同一个子网同时让路由器与主机B也处在同一个子网主机A 把数据交给 路由器路由器 把数据转发给 主机B主机A 与 主机B 完成了通信假设主机A与路由器所在子网标准为以太网主机B与路由器所在子网标准为令牌环同样可以演示两台主机如何进行跨路由器的远端通信令牌环是局域网中实现通信的另一种方法存在一个令牌该局域网中的主机轮流持有只有持有令牌的主机才能发出信息令牌环目的也是确保任何时刻都只有一台主机发送信息在这里插入图片描述主机A 正常将信息封装后向下传递当数据包来到网络层时发现此时有很多主机自己该如何将数据包正确传递给路由器呢在这里插入图片描述在局域网中主机可以通过甄别唯一标识符 MAC的方式无视不属于自己的信息此时目标主机并不存在于当前局域网中按照之前的逻辑主机A发送的信息会被所有人丢弃包括路由器所以光靠唯一标识符 MAC是无法完成跨路由器通信的还需要一个重要概念IP 地址IP 地址的功能是标识公网环境下的所有主机当前所谈及的IP 地址均为IPv4标准该标准使用了一个 4 字节的无符号整数类型unsigned int来表示一个IP 地址代码语言javascriptAI代码解释// IP地址的结构通过位段实现 struct ip { int part1 : 8; int part2 : 8; int part3 : 8; int part4 : 8; }操作系统内核由C语言编写而网络中的传输层和网络层属于操作系统内核自然也是通过C语言实现的从代码结构中可以看出IP 地址由四部分组成每一部分占 8 字节表示范围为 [0, 255]直接使用二进制表示比较抽象IP 地址 一般表示为xxx.xxx.xxx.xxx这种表示方式称为字符串风格的点分十进制方案是方便给人看的如何将二进制转换为点分十进制代码语言javascriptAI代码解释// IP地址 unsigned int ipVal 3332933889; // 分别获取IP地址中的四个部分 struct ip* pIP (struct ip*)(ipVal); pIP-part1; pIP-part2; pIP-part3; pIP-part4;将获取的四个部分转为十进制然后拼接成字符串即可关于转换工作不需要我们手动完成使用系统提供的接口就行了如何借助IP 地址把数据包正确交给路由器在路由器中存在一张路由表其中包含了当前子网中已有路径信息以及之前通信过的路径信息主机A 在进行数据包发送前会先到路由表中查询目标路径是否存在如果存在就按照路径传递如果不存在就会把数据包交给路由器由路由器完成数据包的转发可以把IP地址看作学号规定不同班级的学号前缀不一样假设张三捡到了一张学生证数据包仔细查阅花名册路由表后发现不是自己的同班同学于是将学生证交给了辅导员路由器由辅导员来完成学生证的归还工作将数据包丢给路由器的行为称为默认路由现在主机A知道自己要把数据包交给路由器同时也知道主机B的IP地址接下来路由器就会收到一个数据包在这里插入图片描述路由器拿到数据包后会进行解包将以太网报头拆掉然后分析IP报头规划该数据包的路径得知需要将此数据包交给主机B加上令牌环报头后把数据包丢入令牌环网络中等待主机B截取不仅是主机需要解包路由器等中间设备也需要具备解包能力因为路径规划依赖于 IP而查看IP协议报头需要先将以太网等链路层协议报头去除在这里插入图片描述得益于路由器 IP 地址在网络层及以上层次中都认为数据包的内容始终没有改变而在网络层之下允许各种不同的实现标准进行通信比如这里的以太网与令牌环这种优秀的设计使网络在普及时可以畅通无阻IP 是全球网络的基础4.网络地址4.1.IP地址IP地址用来标识网络中不同主机的地址目前的 IP 地址 有两种IPv4、IPv6凡是没有特殊说明的IP 地址都是指IPv4IPv4由一个 4 字节的无符号整数 构成占 32 比特位可表示的最大地址数为 42亿为了让IP 地址更便于阅读可以将整数中的四部分转为十进制后通过符号连接以点分十进制的形式展现比如192.168.0.1IPv4 标准于 1981 年推出在那个联网设备都还极度匮乏的年代使用一个无符号整型最大表示 42 亿就足够了IPv4 在当时看来确实可以标识网络中的主机所有主机然而谁也没有意料到网络发展如此之快快到 42 亿个地址根本不够用IPv4 标准中的所有地址于 2019 年全部分配完毕这就导致IPv4 标准现在并不能标识所有主机只能标识公网环境下的所有主机