IPv4 地址、IPv6 地址、Mac 地址、端口号各自是什么?

前言:

本篇我们分享一下计算机网络中的几个基础概念,IPv4 地址、IPv6 地址、MAC 地址、端口号各自代表什么意思。

计算机网络往期文章

TCP 为什么是 3 次握手 4 次挥手?

TCP 数据传输的拆包和粘包了解吗?

什么是 UDP 协议?UDP 协议和 TCP 协议的区别是什么?

ipconfig 命令和 ipconfig/all 命令

我们知道 ipconfig 命令可以查看本地 IP 地址,也就是 IPv4 地址,命令执行如下:

powershell 复制代码
ipconfig

执行结果:

执行结果中可以看到我们熟知的 IPv4 地址、IPv6 地址,但是没有 Mac 地址,要想查看 Mac 地址需要执行如下命令:

powershell 复制代码
ipconfig/all

执行结果:

有物理地址字样的文字就是 Mac 地址(参考格式:00-1A-2B-3C-4D-5E)。

IPv4 地址

IPv4 的全称是 Internet Protocol version4 的缩写,中文翻译为互联网通信协议(TCP/IP协议)第四版,通常简称为网际

协议版本4。

IPv4 使用 32位(占用4字节)地址,因此地址空间中只有 4294967296(2^32) 个地址,因为只有接近 43 亿个地址,因此 IP4 地址已经被耗尽。

IPv4 地址是由 32 位的二进制数组成,它们通常被分为 4 个"8 位二进制数",为了方便人类阅读和分析,IPv4 地址只用点分十进制来表示,四个字节分开用十进制来表示,IPv4 地址格式表示为:(aa.bb.cc.dd)。其中,aa,bb,cc,dd 这四个英文字母表示为 0-255 的十进制的整数,例如:192.168.10.10。

在点分十进制的表示方式下,占用 4个字节的 IP 地址被分为四段,每一段占用一个字节,一个字节有 8位,而 8 位能表示的数字范围是 0--255,因此我们在 IPv4 的地址中看不到不到大于 255 的数字。

IPv6 地址

IPv6 全称是 Internet Protocol version 6 的缩写,中文翻译为互联网通信办议(TCP/IP协议)第6版,通常简称为网际协议版6,IPv6 具有比 IPv4大得多的编码地址空间,用它来取代 IPv4主要是为了解决 IPv4地址枯竭问题,同时它也在其他方面对于 IPv4 也有很多改进。

IPv6 采用的是 128 位的地址,因此 IPv6 支持 2^128 个地址,这是一个非常庞大的数字,完全可以解决 IPv4 地址不足的问题,IPv6 地址是以二进位制下 128 位长度,以16位为一组,每组之间以冒号隔开,可以分为8组,IPv6 地址格式如下:

powershell 复制代码
1a2b:3c4d:5e6f:7g8h:xxxx:xxxx:xxxx:xxxx

其中每个字母都是 16 进制数字,表示 4位。

IPv4 地址和 IPv6 地址的区别

IPv4 地址和IPv6 地址的区别还是较多的,列举如下:

  • 地址长度:IPv4 地址的长度是 32位,IPv6 地址的长度是128 位。
  • 地址总数: IPv4 的总数是 2^32 约 43 亿个,而 IPv6 地址则是 2的 128次方个地址,大概四 340 万亿个。
  • 地址解析协议:IPv4 地址使用 ARP 来查找与 IPv4 地址相关联的物理地址,IPv6 地址使用因特网控制报文协议版本6 (ICMPv6)将这些功能嵌入到到 IP 自身,作为无状态自动配置和邻节点发现算法的一部分,不存在类似于 ARP 之类的东西。
  • 报文头:IPv4 根据提供的 IP 选项,有 20-60 个字节的可变长度 IP 报文头选项,而 IPv6 的报文头是 40 个字节的固定长度。
  • 安全性:IPv6 有预设的 IPsec,IPv4 则没有。
  • 地址类型:IPv4 地址分为三种基本类型:单点广播地址、多点广播地址上和广播地址;IPv6 地址分为三种基本类型:单点广播地址、多点广播地址和任意广播地址。

IPv6 相比 IPv4 的优势

  • 更多的地址空间: IPv4 的总数是 2^32 约 43 亿个,而 IPv6 地址则是 2的 128次方个地址,大概四 340 万亿个,IPv6 地址没有耗尽的风险。
  • 更小的路由表:IPv6 的地址分配遵循聚类原则,这使得路由器能在路由表中用一条记录表示一片子网,大大减少了路由器中路由表的长度,提高了路由器转发数据包的速渡。
  • 增强的组件支持以及对流的支持。
  • 更高的安全性:在使用 IPv6 时候用户可以对网络层强了网络安全,数据进行加密并对IP报文进行校验,这极大地增强了网络安全。

Mac 地址

Mac 地址全称叫做媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),由网络设备制造商生产时写在硬件内部,Mac 地址与网络无关,无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到哪里的网络,都有相同的 Mac 地址,它由厂商写在网卡的 BIOS 里,从理论上讲是没有办法冒名顶替的。

Mac 地址由 6 个字节 48 位组成,前 24 位由 电气和电子工程师协会决定如何分配,后 24 位由实际生产该网络设备的厂商自行制定,例如:18-C0-4D-CA-4C-C8。

Mac 地址和 IPv4 地址的区别

  • 长度不同:IPv4 地址长度是 32位,Mac 地址长度是 48 位。
  • 可变性:IPv4 地址是可以修改的,而 Mac 地址是不可以更改的,除非更换网卡。
  • 寻址协议层不同:IPv4 地址处于 OSI 模型的网络层,Mac 地址位于 OSI 模型的数据链路层。

端口号

数据链路层和 IP 中的地址,分别指的是 MAC 地址和 IPv4 地址,前者用来识别同一链路中不同的计算机,后者用来识别T CP/IP 网络中互连的主机和路由器,在传输层中也有这种类似于地址的概念,就是端口号,端口号用来识别同一台计算机中进行通信的不同应用程序,因此端口号也被称为程序地址。

我们在一台主机上可以同时运行多个程序,例如浏览器、开发工具、桌面工具等程序都可同时运行,传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确的进行数据传输。

如何确定端口号?

在实际进行通讯时候,需要事先确定端口号,确定端口号的方法有以下两种:

  • 标准即定端口号:也叫静态方法,具体是指每个应用程序都有其指定的端口号,但并不是可以随意指定一个端口号,每个端口号都有它的使用目的,例如 HTTP、FTP 等广泛使用的端口号就是固定的,这些固定的端口号就是知名端口号,这些端口号分布在 0~1023 之间,我们在编写自己的应用服务时,不要使用这些端口号。
  • 时序分配法:也叫动态端口分配方法,服务端有必要确定监听的端口号,但是客户端没有必要确定端口号,在这种方法下,客户端系统可以不用分配端口号,完全交由操作系统来分配,操作系统会根据需要为每个应用程序分配不冲突的端口号,例如操作系统在分配端口号的时候可以进行 +1 操作,每多一个应用其端口号就在之前分配的端口号基础上 +1,这样操作系统就可以动态的管理端口号了。

查看端口号

windows 查看端口号和 Linux 查看端口号的方法不同。

window 查看端口号如下:

查看所有端口号

powershell 复制代码
netstat -ano

执行结果如下:

查看指定端口号

powershell 复制代码
netstat -ano|findstr 1228

执行结果如下:

Linux 查看所有端口号

powershell 复制代码
netstat -tulpn

执行结果如下:

powershell 复制代码
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      719/rpcbind         
tcp        0      0 0.0.0.0:10000           0.0.0.0:*               LISTEN      1069/nginx: master  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1069/nginx: master  
tcp        0      0 10.100.32.82:60020      0.0.0.0:*               LISTEN      1889/./gse_agent    
tcp        0      0 0.0.0.0:10100           0.0.0.0:*               LISTEN      1069/nginx: master  
tcp        0      0 0.0.0.0:60025           0.0.0.0:*               LISTEN      1046/sshd           
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      1069/nginx: master  
tcp6       0      0 :::8719                 :::*                    LISTEN      94737/java          
tcp6       0      0 :::111                  :::*                    LISTEN      719/rpcbind         
tcp6       0      0 :::8720                 :::*                    LISTEN      20446/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      94737/java   

总结:本篇简单分享了计算机网络中的一些基础概念,总的来说想要确认一个通信,是需要通过源 IP 地址、源端口号、目标 IP 地址、目标端口号、协议类型这五个要素来识别一个网络通信,希望可以帮助到有需要的鹏涛。

如有不正确的地方欢迎各位指出纠正。

相关推荐
Cyrus_柯2 天前
单片机基础
嵌入式硬件·计算机基础
该用户已不存在2 天前
关于我把Mac Mini托管到机房,后续来了,还有更多玩法
服务器·前端·mac
政安晨3 天前
政安晨【开源人工智能硬件】【ESP乐鑫篇】 —— 在macOS上部署工具开发环境(小资的非开发者用苹果系统也可以玩乐鑫)
esp32·mac·开源硬件·环境部署·乐鑫·开源人工智能硬件·工具链搭建
tonngw4 天前
【Mac 从 0 到 1 保姆级配置教程 19】- 英语学习篇-我的英语工作流分享(AI 辅助学习)
macos·mac·英语学习·沉浸式翻译·欧路词典·沙拉查词·终生学习
fengyun28917 天前
Omi录屏专家 Screen Recorder by Omi 屏幕录制Mac
macos·mac·录屏·屏幕录制
二夕聊数据7 天前
AI 时代如何打造一个更顺手的 Terminal?
mac·iterm
fengyun28919 天前
fcpx音视频剪辑编辑 Final Cut Pro X(Mac电脑)
macos·mac
奇妙之二进制9 天前
计算机科学导论(10)什么是BIOS
ubuntu·计算机基础
伊成10 天前
Mac中如何Chrome禁用更新[update chflags macos]
chrome·mac
fengyun289110 天前
Mac电脑 虚拟机 VMware Fusion13
macos·mac·虚拟机