【unity游戏开发——网络】网络通信寻址三要素:IP、端口、MAC

发布于:2025-06-27 ⋅ 阅读:(12) ⋅ 点赞:(0)

注意:考虑到热更新的内容比较多,我将热更新的内容分开,并全部整合放在【unity游戏开发——网络】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

前言

当我们传递消息时,如何准确的将信息传递到目标设备?

那么解决这个问题的关键点,就是IP地址、端口号以及Mac地址相关的内容。

这里假设你要给朋友寄封信。

一、IP 地址:城市的地址 (逻辑定位)

1、是什么?

设备在网络世界中的“住址”。就像你的朋友住在“xxx市xxx区中关村大街 1 号”。

2、作用?

定位目标设备所在的网络。有了它,信息就知道该往哪个“城市”(网络)送。

3、关键点:

3.1 IPv4 (主流):

192.168.1.1 这种格式。数量有限(约 42 亿),快用完了。就像老式门牌号系统。

3.2 IPv6 (未来):

2001:0db8:85a3:0000:0000:8a2e:0370:7334 这种格式。数量巨大(几乎无限),解决 IPv4 枯竭问题。就像新式超级门牌号系统。

3.3 公网 IP: 互联网上的“唯一公开地址”。就像你朋友家的邮编,全世界都能寄信到这个邮编代表的区域(但具体楼栋门牌需要更多信息)。

  • 查公网 IP: 百度搜索“IP”即可。家里可能有很多台设备,你去查询这个ip其实是一样的,处于局域网内,对外公网ip其实是一样的。
    在这里插入图片描述

3.4 私网 IP (局域网 IP):

家庭/公司内部使用的地址。只在你的路由器管理的小范围(局域网)内有效,不能直接上公网。就像你家小区内部的楼号(1 号楼、2 号楼)。你家所有设备(手机、电脑、电视)对外都用同一个公网 IP(小区邮编),对内用不同的私网 IP(楼号门牌)。

  • 查看私网 IP:
    • Mac/Linux: 打开终端 -> 输入 ifconfig -> 找 inet (通常是 192.168.x.x 或 10.x.x.x)。
    • Windows: Win+R -> 输入 cmd -> 回车 -> 输入 ipconfig -> 找 IPv4 地址。
      在这里插入图片描述
      在这里插入图片描述

二、端口号:门牌号 / 收件人姓名 (区分应用)

1、是什么?

设备上特定应用程序的“门牌号”。就像你朋友住在“北京市海淀区中关村大街 1 号”的“808 室”,收件人是“张三”。

2、作用?

区分同一台设备上的不同程序。电脑/手机同时运行微信、浏览器、游戏、音乐播放器…端口号告诉网络数据该交给哪个程序处理。IP 地址找到了“大楼”,端口号找到了具体的“房间”和“收件人”。

3、关键点:

  • 范围:0 - 65535。

  • 常用端口: 0-1023 通常被系统或知名服务占用(如网页 80,安全网页 443,邮件 25)。

  • 开发/自用端口: 通常选 1024 以上 的端口,避免冲突。就像给自家房间贴个自定义门牌。

三、MAC 地址:设备的身份证号 (物理标识)

1、是什么?

网卡的全球唯一物理身份证号。刻在硬件上,出厂就固定(虽然可软件修改,但一般不这么做)。格式:00:16:EA:AE:3C:40 或 00-16-EA-AE-3C-40。

2、作用?

在局域网内进行最直接的设备识别和通信。IP 地址帮你找到目标“小区”(网络),MAC 地址则在小区内部帮你找到具体的“住户”(设备)。

3、关键点:

  • 前 6 位 (00:16:EA):厂商代码,由 IEEE 分配,代表制造这个网卡的厂家(如 Intel, Realtek)。

  • 后 6 位 (AE:3C:40):设备序列号,由厂家分配,确保同一厂家的每个网卡都不同。

  • 查看 MAC 地址: 和查看私网 IP 方法类似 (ipconfig /all),找 物理地址。
    在这里插入图片描述

  • 与 IP 的关系:

    • IP 是逻辑地址: 像住址,可以变(搬家、换网络)。

    • MAC 是物理地址: 像身份证号,基本不变(换网卡才变)。

    • 在局域网内部通信时,最终依赖 MAC 地址 传输数据。路由器/交换机会维护一个表,记录哪个 IP 对应哪个 MAC。

总结:

  • IP 地址 负责在茫茫网络中找到目标设备所在的网络。

  • 端口号 负责在目标设备上找到具体的应用程序。

  • MAC 地址 负责在目标网络内部找到具体的物理设备网卡进行最终数据传输。


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到