计算机网络基础:TCP、UDP、IP、端口号与套接字

发布时间:2026/9/12 23:57:39

计算机网络基础:TCP、UDP、IP、端口号与套接字 计算机网络通信并不是由单一协议完成的而是由多个协议在不同层次上协同工作。以浏览器访问网站为例浏览器首先需要通过域名找到服务器的 IP地址再通过端口号定位服务器上的具体服务随后使用 TCP或者UDP等传输层协议完成数据传输。首先本文将对网络分层模型进行较为详细的解释。1 网络分层模型详解网络通信的本质是两个计算机之间交换数据。为了降低复杂度网络被设计为分层架构——每一层只关心自己那一层的功能下层为上层提供服务。1.1 OSI七层模型OSIOpen Systems Interconnection模型由ISO组织定义将网络通信分为七层OSI层级功能典型协议/设备7. 应用层 (Application)为用户应用程序提供网络服务接口HTTP,FTP,SMTP,DNS6.表示层Presnetation数据格式转换、加密、压缩SSL/TLS, JPEG, ASCII5.会话层Session建立、管理、终止会话NetBIOS, RPC, PPTP4.传输层Transport端到端可靠传输、流量控制TCP、UDP、SCTP3.网络层Network路径选择、逻辑寻址、路由IP, ICMP, OSPF, 路由器2.数据链路层 (Data Link)相邻节点间可靠传输、错误检测Ethernet, PPP, 交换机1. 物理层 (Physical)比特流传输、电气特性定义RS-232, RJ45, 集线器1.2 TCP/IP 分层模型网络通信需要处理应用交互、可靠传输、跨网络转发和局域网传输等不同问题。为了降低系统复杂度互联网采用分层设计思想各层只负责特定功能并向上层提供服务。常见的 TCP/IP 四层模型如下。层次常见协议主要职责应用层HTTP、HTTPS、DNS、SMTP定义应用程序之间的交互规则和数据格式传输层TCP、UDP实现端到端的进程通信网络层IP、ICMP负责逻辑寻址和跨网络路由转发网络接口层Ethernet、Wi-Fi、ARP负责局域网中的帧传输和链路寻址当应用程序发送数据时数据会按照从上到下的顺序逐层封装应用层数据 ↓ TCP/UDP 首部 应用层数据 ↓ IP 首部 TCP/UDP 报文 ↓ 以太网首部 IP 数据报 帧尾 ↓ 转换为比特流并进行物理传输不同层次中数据的名称也有所不同层次数据单位应用层数据Data传输层报文段TCP Segment或数据报UDP Datagram网络层IP 数据报IP Datagram或分组Packet数据链路层帧Frame物理层比特流Bits接收端收到数据后会按照相反方向进行解封装并将最终的应用层数据交给对应程序处理。2 IP 协议与 IP 地址IPInternet Protocol互联网协议位于网络层主要负责逻辑寻址和路由转发。IPv4 地址由 32 位二进制数组成通常使用点分十进制表示例如192.168.1.100 。IP 地址的作用是标识网络中的主机或网络接口使网络设备能够判断数据的目标位置。例如客户端 IP192.168.1.100 服务器 IP203.0.113.10当客户端向服务器发送数据时IP 协议负责将数据封装为 IP 数据报并在首部中填写源 IP 地址和目的 IP 地址。路由器会根据目的 IP 地址和路由表将数据逐跳转发至目标网络。IP协议具有以下特点无连接即发送数据前不需要建立连接尽力而为即不能保证数据一定到达不保证数据顺序不负责丢包重传支持不同网路之间的路由转发因此IP 主要解决“数据应当发送到哪台主机”的问题而数据是否可靠到达则通常由 TCP 等上层协议负责。3 端口号定位主机中的服务仅通过 IP 地址可以找到一台主机但一台主机上通常运行多个网络服务。例如一台服务器可能同时提供 Web 服务、SSH 远程登录服务和数据库服务。因此网络通信还需要通过端口号定位主机上的具体应用程序。端口号由 16 位二进制数组成取值范围为0 ~ 65535 。端口通常分为以下三类端口范围类型说明0 ~ 1023知名端口常用于标准网络服务1024 ~ 49151注册端口可由应用程序或厂商使用49152 ~ 65535动态端口通常由客户端临时分配常见端口如下服务或协议默认端口HTTPTCP 80HTTPSTCP 443SSHTCP 22FTPTCP 21SMTPTCP 25DNSUDP 53必要时使用 TCP 53MySQLTCP 3306例如访问 HTTPS 网站时可以将通信表示为客户端192.168.1.100:52341 服务器203.0.113.10:443其中客户端的52341通常是操作系统临时分配的动态端口服务器的443则是 HTTPS 服务监听的固定端口。可以将 IP 地址和端口号的关系概括为IP 地址用于定位主机 端口号用于定位主机上的具体应用程序。4 TCP 协议可靠的传输方式TCPTransmission Control Protocol 传输控制协议位于传输层是一种面向连接、可靠、面向字节流的协议。TCP的特点主要包括在传输数据之前需要建立连接保证数据可靠达到 保证数据按顺序交付支持超时重传支持流量控制支持拥塞控制通过端口号实现进程间通讯。TCP的适用于对数据完整性要求较高的场景例如HTTP和HTTPS网页访问文件传输远程登录数据库连接电子邮件传输4.1 TCP三次握手TCP在传输数据之前需要通过三次握手建立连接。客户端 服务器 | | | -------- SYNSeqx -------------------- | | | | --- SYN ACKSeqyAckx1 ---------- | | | | -------- ACKAcky1 ------------------- | | | TCP 连接建立完成三次握手的过程如下1. 客户端发送SNY报文请求建立连接2. 服务器返回SNY ACK报文表示同意建立连接3. 客户端发送ACK报文确认收到服务器响应4. 双方完成初始序列号同步TC怕链接建立。TCP 使用三次握手的目的是让通信双方确认彼此具备正常的收发能力并避免失效连接请求导致错误建立连接。4.2 TCP 的可靠传输机制TCP 的可靠性由多个机制共同实现。机制作用序列号保证数据能够按照正确顺序重组确认机制接收方确认已正确接收到数据超时重传未收到确认时重新发送数据校验和检测传输过程中是否发生数据损坏流量控制防止发送速度超过接收方处理能力拥塞控制减少网络拥塞对传输造成的影响例如发送方发送数据后如果在规定时间内没有收到确认报文就会认为数据可能丢失并进行重传。4.3 TCP 四次挥手当通信完成后TCP 连接通常需要通过四次挥手关闭。客户端主动关闭 服务器被动关闭 | | | -------- FIN -------------------------------- | | | | ------- ACK --------------------------------- | | | | ------- FIN --------------------------------- | | | | -------- ACK -------------------------------- | | | TCP 连接关闭完成其基本过程如下主动关闭方发送 FIN表示不再发送数据被动关闭方返回 ACK确认收到关闭请求被动关闭方完成剩余数据发送后发送 FIN主动关闭方返回 ACK确认连接关闭。主动关闭方在发送最后一个 ACK 后通常进入TIME_WAIT状态并等待一段时间。该状态的作用是确保最后一个 ACK 能够到达对方同时避免旧连接中延迟到达的报文影响新的连接。5 UDP 协议轻量的数据报传输UDPUser Datagram Protocol用户数据报协议同样位于传输层。与 TCP 相比UDP 的设计更加简单传输开销较小。UDP 的主要特点如下无连接发送数据前不需要建立连接不保证数据一定到达不保证数据到达顺序不提供自动重传首部长度固定为 8 字节支持广播和组播以数据报为单位传输数据。UDP 适用于对实时性要求较高、能够容忍少量丢包的场景例如DNS 查询网络游戏在线音视频通话直播推流DHCP实时监控数据传输。在实时音视频场景中如果某个数据包延迟过高即使重新传输也可能已经失去实际意义。因此相比等待重传及时发送后续数据通常更重要。UDP 的不可靠性并不意味着它没有价值而是表示其不在传输层负责可靠性保障。应用程序可以根据自身需求在 UDP 基础上设计确认、重传或排序机制。6 TCP 与 UDP 的比较TCP 和 UDP 均属于传输层协议但其特性和适用场景不同。对比项目TCPUDP是否建立连接需要不需要是否可靠传输是否是否保证顺序是否是否支持重传支持不支持流量控制有无拥塞控制有无数据传输单位字节流数据报首部长度最少 20 字节固定 8 字节传输开销相对较高相对较低常见应用Web、文件传输、远程登录DNS、游戏、音视频TCP 更适用于可靠性优先的场景UDP 则更适用于实时性和低延迟优先的场景。两者不存在绝对优劣实际选择应根据业务需求决定。7 套接字Socket套接字Socket是操作系统提供给应用程序的网络通信接口也是对网络通信断电的抽象。应用程序通常不会直接构造TCP报文或者IIP数据报而是通过Socket接口完成连接建立、数据发送和数据接收等操作。一个通信端点通常可以表示为协议 IP 地址 端口号 。例如TCP 192.168.1.100:52341 TCP 203.0.113.10:443一次 TCP 连接通常由以下四个信息唯一确定源 IP 地址 源端口号 目的 IP 地址 目的端口号例如192.168.1.100:52341 → 203.0.113.10:443如果再加上所使用的传输层协议则可以称为五元组协议 源 IP 源端口 目的 IP 目的端口即TCP 192.168.1.100 52341 203.0.113.10 443服务器可以同时为多个客户端提供服务。即使所有客户端均访问服务器的443端口不同客户端的源 IP 地址或源端口不同因此服务器仍能够区分不同连接。客户端 A192.168.1.100:52341 → 203.0.113.10:443 客户端 B192.168.1.101:52342 → 203.0.113.10:4438 Socket 通信的基本流程在典型的 TCP 客户端—服务器模式中双方使用 Socket 的流程有所不同。8.1 服务器端服务器端通常按照以下顺序执行操作socket() → 创建套接字 bind() → 绑定本地 IP 地址和端口 listen() → 监听客户端连接请求 accept() → 接受客户端连接 recv() → 接收数据 send() → 发送数据 close() → 关闭套接字例如一个 Web 服务器通常会绑定并监听80或443端口等待客户端请求。8.2 客户端客户端通常按照以下顺序执行操作socket() → 创建套接字 connect() → 连接服务器 send() → 发送数据 recv() → 接收数据 close() → 关闭套接字对于 TCP Socket 而言客户端调用connect()时底层会发起 TCP 三次握手。三次握手完成后客户端和服务器便可以交换数据。对于 UDP Socket由于 UDP 不需要建立连接通常可以直接使用sendto()发送数据报并使用recvfrom()接收数据报。
延伸阅读

更多相关文章

2026/9/9 21:53:11

红警2 重聚未来 究极整合版推荐

红警2 重聚未来 究极整合版推荐 该版本内涵2千多款地图,包括2~8人的地图,游戏模式多大数十种,可自动调节游戏模式、超级武器、游戏类型等,支持win7/win10/win11操作系统安装畅玩,值得推荐,已存放到网盘&am…

2026/9/12 7:47:03

嵌入式数据采集终端工控主板怎么选?低功耗与宽温适配核心参数

一、为什么数据采集终端的主板选型不能只看性能?在工业物联网、环境监测、智慧水务、能源电力等领域,嵌入式数据采集终端承担着前端感知数据汇聚、预处理与上传的核心角色。很多工程师选型时第一反应是"CPU性能够不够",但小编认为&…

2026/9/11 10:36:39

2026AI人才市场火爆!这3个高薪岗位普通人也能入场,速收藏!

2026年上半年AI岗位招聘量同比增长87%,平均薪资涨幅达18%。大模型应用工程师、AI内容运营/生成师、提示词工程师这3个岗位缺口巨大,平均月薪超3万。市场不再只看重算法研究,应用型人才需求旺盛,跨领域复合型人才尤为吃香。普通人想…

2026/9/12 23:56:16

遥感影像场景分类中的迁移学习实战:从数据预处理到模型微调

简介:基于TensorFlow迁移学习的遥感影像场景分类资源,以天宫数据大赛遥感影像为真实样例,面向具备Python与深度学习基础的研究者,演示如何利用预训练inception-resnet-v2骨干网络完成场景识别建模。压缩包共2000个文件、约696.94M…

2026/9/12 23:56:16

ByteBuffer内存模型与粘包拆包实战详解

从“处理粘包”这个需求开写第一天实录。这其实是很多做网络编程的同学,尤其是从业务转中间件、或者刚开始接触 Netty、自研 RPC 框架时,第一个绕不过去的坎。网上讲 ByteBuffer 的文章不少,但大多停留在“capacity 是啥、position 是啥”这种…

2026/9/12 23:56:16

Redis读写锁原理与实战:读多写少场景下的缓存一致性方案

读多写少这四个字,听起来像是一个特别普通的业务特征,但如果你真正在一个高并发服务里维护过商品详情、配置项、排行榜这类热点数据,就会明白“读多写少”其实是最容易翻车的场景之一。热点 key 读流量一上来,缓存击穿、脏数据、接…

2026/9/12 23:56:16

ESP32接入0.96寸OLED屏幕实战:从接线到显示温湿度与WiFi状态

第一次在ESP32上点亮0.96寸OLED屏幕时,我盯着那块能显示中文、数字、小图标的128x64屏幕,脑子里的第一反应是:早该给开发板装“可视化输出”了。之前调ESP32,要么靠串口监视器打印,要么连手机看蓝牙数据,总…

2026/9/12 23:56:16

PyQt5+OpenCV打造监控视频播放器:UI转换、帧率控制与异常处理

简介:基于Python实现本地视频播放的完整示例项目,面向需要快速掌握PyQt5/PySide2桌面界面开发与OpenCV视频处理的Python学习者与开发者。项目使用Qt Designer可视化设计主界面,生成兼容的.ui布局文件,再通过OpenCV的VideoCapture读…

2026/9/12 23:51:16

YOLO烟盒检测实战:小目标标注校验与训练调优全链路

简介:本资源是面向计算机视觉初学者与算法工程师的烟盒目标检测专用数据集,专为YOLO系列模型训练与验证设计,适用于工业质检、包装识别等实际场景。数据集共1934张高质量图像,已按标准划分训练集、验证集与测试集,并提…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码