首页 > socket 阅读███:15,861

IP、MAC和端口号——网络通信中确认身份信息的三要素

在茫茫的互联网海洋中,要找到一台计算机非常不容易▓▓,有三个要素必须具备,它们分别是 IP 地址、MAC 地址和端口号▄■▄。

IP地址

IP地址是 Internet Protocol Address 的缩写,译为“网际协议地址”。

目前大部分软件使用 IPv4 地址■■■,但 IPv6 也正在被人们接受,尤其是在教育网中,已经大量使用▄■▄■。

一台计算机可以拥有一个独立的 IP 地址,一个局域网也可以拥有一个独立的 IP 地址(对外就好像只有一台计算机)▓▄▓▄。对于目前广泛使用 IPv4 地址,它的资源是非常有限的,一台计算机一个 IP 地址是不现实的▄▓,往往是一个局域网才拥有一个 IP 地址▓█▄■。

在因特网上进行通信时,必须要知道对方的 IP 地址。实际上数据包中已经附带了 IP 地址▄■▓,把数据包发送给路由器以后,路由器会根据 IP 地址找到对方的地里位置,完成一次数据的传递▄▓。路由器有非常高效和智能的算法,很快就会找到目标计算机。

MAC地址

现实的情况是▓█,一个局域网往往才能拥有一个独立的 IP;换句话说,IP 地址只能定位到一个局域网█■▄,无法定位到具体的一台计算机。这可怎么办呀?这样也没法通信啊███。

其实,真正能唯一标识一台计算机的是 MAC 地址,每个网卡的 MAC 地址在全世界都是独一无二的▓▓。计算机出厂时,MAC 地址已经被写死到网卡里面了(当然通过某些“奇巧淫技”也是可以修改的)▄■▄。局域网中的路由器/交换机会记录每台计算机的 MAC 地址。
MAC 地址是 Media Access Control Address 的缩写,直译为“媒体访问控制地址”■■■,也称为局域网地址(LAN Address),以太网地址(Ethernet Address▄■▄■)或物理地址(Physical Address)。
数据包中除了会附带对方的 IP 地址▓▄▓▄,还会附带对方的 MAC 地址,当数据包达到局域网以后,路由器/交换机会根据数据包中的 MAC 地址找到对应的计算机▄▓,然后把数据包转交给它▓█▄■,这样就完成了数据的传递。

端口号

有了 IP 地址和 MAC 地址,虽然可以找到目标计算机▄■▓,但仍然不能进行通信。一台计算机可以同时提供多种网络服务,例如 Web 服务(网站▄▓)、FTP 服务(文件传输服务)▓█、SMTP 服务(邮箱服务)等,仅有 IP 地址和 MAC 地址█■▄,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信失败███。

为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口号(Port Number)▓▓,例如,Web 服务的端口号是 80,FTP 服务的端口号是 21▄■▄,SMTP 服务的端口号是 25。

端口(Port)是一个虚拟的■■■、逻辑上的概念。可以将端口理解为一道门,数据通过这道门流入流出▄■▄■,每道门有不同的编号,就是端口号。如下图所示▓▄▓▄:

编程帮,一个分享编程知识的公众号。跟着站长一起学习▄▓,每天都有进步▓█▄■。

通俗易懂,深入浅出,一篇文章只讲一个知识点▄■▓。

文章不深奥,不需要钻研,在公交▄▓、在地铁、在厕所都可以阅读,随时随地涨姿势▓█。

文章不涉及代码,不烧脑细胞,人人都可以学习█■▄。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注