网络编程之端口号
一、定义
在传输层中也有类似于地址(MAC 地址、IP 地址)的概念,那就是端口号,它用来识别一台计算机中进行通信的不同应用程序,因此,也被称为程序地址
二、根据端口号识别应用
一台计算机上同时可以运行多个程序,例如接受 WWW 服务的 Web 浏览器、电邮客户端、远程登录用的 ssh 客户端等程序都可同时运行,传输层协议正是利用这些端口号识别本机中正在进行通信的应用程序,并准确地将数据传输
三、通过端口号、IP 地址、协议号进行通信识别
仅凭目标端口识别某一个通信是远远不够的,因此,TCP/IP 或 UDP/IP 通信中通常采用 5 个信息(源 IP 地址、目标 IP 地址、协议号、源端口号、目标端口号)来识别一个通信,只要其中某一项不同,则被认为是其他通信
还有一种情况上图中并未列出,那就是 IP 地址(源 IP 地址、目标 IP 地址)和端口号(源端口号、目标端口号)全都一样,只是协议号(表示传输层是 TCP 或 UDP 的一种编号,具体见网络基础 - IPv4 篇)不同,这种情况下,也会认为是两个不同的通信
四、端口号如何确定
1、范围
uint16_t port; // [0, 65535]