前言计算机网络通信的本质是不同设备之间的数据传输。想要完成一次正常的数据交互必须解决三个核心问题定位设备、定位程序、规定传输规则。对应网络核心概念即为IP 地址、端口号、传输协议。而套接字是最终实现数据收发的技术载体。本文将从零梳理网络核心基础构建完整的网络通信认知。一、IP 地址定位网络中的设备IP 地址是互联网中每一台设备的唯一逻辑标识作用是区分不同的计算机设备实现设备级别的定位。如果把网络环境比作一片小区每一台电脑、手机都是小区里的住户IP 地址就是住户的楼栋住址。数据想要从一台设备发送到另一台设备首先需要依靠 IP 地址确定目标设备。常见的 IP 地址分为三类1. 本地回环地址代表本机仅用于设备内部自测无法被外网设备访问。网段127.0.0.0~127.255.255.255常用地址 127.0.0.1。多用于本地程序调试2. 局域网 IP同一局域网环境下的设备地址可实现同一路由器下多设备互通无法直接被外网访问。标准私有网段192.168.0.0、10.0.0.0、172.16.0.0适用于家庭、公司内网设备通信。3. 公网 IP互联网唯一地址可实现跨网络、跨地域的设备通信。IP 只负责定位「哪一台设备」无法定位设备上具体的应用程序。二、端口号定位设备中的应用程序一台设备可以同时运行多个联网程序例如浏览器、聊天软件、视频软件等。仅依靠 IP 地址只能找到设备无法区分数据应该交给哪个程序处理端口号的作用就是区分同一设备上不同的网络应用。延续小区比喻IP 是楼栋地址端口号就是具体房间号。一栋楼对应一个 IP但楼内每个房间对应一个独立端口不同程序占用不同端口互不干扰。端口号取值范围为 0~65535整体分为两类1. 系统保留端口0~1023多用于系统服务、知名网络协议不建议自定义程序使用。2. 自定义端口1024~65535可供开发者自由使用用于自定义网络服务。端口具有唯一性同一设备的同一端口同一时间只能被一个程序占用端口被占用时新的网络服务无法启动。三、套接字 Socket网络通信的唯一通道套接字是网络编程的核心载体是应用层与网络传输层之间的通信接口也是程序收发网络数据的唯一通道。简单理解IP 端口 传输协议共同组成一个唯一的 Socket 通信端点。两台设备想要通信本质是两个 Socket 端点建立连接、双向传输数据。Socket 通信分为主动端与被动端角色固定1. 服务端套接字被动等待连接绑定固定端口持续监听外部的连接请求不主动发起通信。服务端必须固定端口让客户端可以精准找到服务程序。2. 客户端套接字主动发起连接主动指定目标设备的 IP 和服务端端口主动请求建立通信链路。值得重点理解的端口逻辑客户端连接时填写的端口是服务端的固定监听端口用于找到服务程序。而客户端自身的通信端口由操作系统随机分配临时端口无需手动指定。连接建立后系统会自动记录两端完整地址信息形成专属双向通信通道后续数据收发自动匹配两端端口无需人工干预。四、TCP 传输协议可靠的面向连接协议TCP 是目前最主流的传输层协议核心特点是面向连接、可靠传输。面向连接指通信双方传输数据前必须先建立专属连接通道通信结束后再释放连接。整个过程如同打电话必须先接通再对话最后挂断。TCP 的可靠性体现在数据不会丢失、不会重复、不会乱序。协议底层通过确认应答、超时重传、流量控制、拥塞控制等机制最大程度保障数据完整性。TCP 传输的数据是流式字节数据没有天然的消息边界需要开发者自行约定数据读取规则避免数据粘包、读取错乱。TCP 适用于对数据完整性、准确性要求高的场景例如文件传输、即时聊天、网页访问、数据库交互等。TCP 建立连接需要三次握手断开连接需要四次挥手流程严谨开销相对较高传输速度略慢于 UDP。五、UDP 传输协议快速的无连接协议UDP 是无连接的传输层协议核心特点是无需建立连接、传输速度快、开销小。UDP 通信无需提前建立通道无需握手验证直接将数据包打包发送无需等待对方确认接收。如同寄明信片直接投递不保证对方一定收到。UDP 不具备可靠传输机制数据可能丢失、乱序、重复不适合对数据完整性要求高的场景。但因为省去了大量校验和连接流程传输延迟极低性能更高。UDP 以数据报为单位传输数据每条数据自带独立边界不会出现粘包问题。UDP 适用于容忍少量数据丢失、优先追求实时性的场景例如网络游戏、视频直播、语音通话、实时投屏等。六、核心总结IP 地址负责定位设备解决「数据发给哪台电脑」的问题。端口号负责定位程序解决「数据交给哪个软件处理」的问题。套接字是通信通道是程序实现网络数据收发的核心载体。TCP 面向连接、可靠稳定适合精准传输场景UDP 无连接、高速低延迟适合实时传输场景。服务端端口固定用于被动监听连接客户端端口系统随机分配无需手动配置连接建立后系统自动维护双向通信链路。