TCP/IP协议,TCP和UDP区别
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是一组用于计算机网络中的通信协议,它为数据传输提供了标准框架,广泛用于互联网和局域网中。TCP/IP协议包括多个层次,每个层次都负责特定的通信任务。它是现代互联网及大多数计算机网络的基础。
TCP/IP 协议栈的四个层次:
-
网络接口层(Network Interface Layer)
- 也称为数据链路层或物理层。
- 负责数据的物理传输,包括设备间的通信、数据的打包与传输等。
- 常见的协议有:以太网(Ethernet)、Wi-Fi、PPP(Point-to-Point Protocol)等。
-
互联网层(Internet Layer)
- 主要负责数据包的路由选择和地址管理。
- 关键协议:
- IP(Internet Protocol,互联网协议):负责将数据包从源主机传输到目标主机,基于IP地址进行寻址。
- ICMP(Internet Control Message Protocol,互联网控制报文协议):用于诊断网络问题(如
ping命令使用 ICMP 协议)。 - ARP(Address Resolution Protocol,地址解析协议):将 IP 地址映射为物理硬件地址(如 MAC 地址)。
-
传输层(Transport Layer)
- 负责端到端的数据传输控制,确保数据可靠传输。
- 主要协议:
- TCP(Transmission Control Protocol,传输控制协议):面向连接、可靠的协议,提供流量控制、错误检查和重传机制,确保数据的完整性与正确顺序。
- UDP(User Datagram Protocol,用户数据报协议):无连接、不可靠的协议,适用于对速度要求高、对可靠性要求低的应用,如视频流、实时通信等。
-
应用层(Application Layer)
- 这一层直接面向用户,提供应用程序之间的通信服务。
- 主要协议:
- HTTP(Hypertext Transfer Protocol,超文本传输协议):用于万维网上的网页浏览。
- FTP(File Transfer Protocol,文件传输协议):用于文件的上传和下载。
- SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):用于发送电子邮件。
- DNS(Domain Name System,域名系统):用于将域名解析为IP地址。
TCP/IP协议的核心概念
-
IP地址:
- IP地址是网络中设备的唯一标识符,用于在网络中进行寻址。
- IPv4:32位地址,通常表示为四个十进制数(如
192.168.0.1)。 - IPv6:128位地址,解决IPv4地址耗尽问题,通常表示为八组十六进制数(如
2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
-
端口号:
- 端口号用于区分同一主机上的不同应用程序。每个网络应用程序都监听一个特定的端口。
- 常见端口号:
- HTTP:端口 80
- HTTPS:端口 443
- FTP:端口 21
- SMTP:端口 25
-
数据包:
- TCP/IP协议中,所有通信数据都被分割为数据包传输。每个数据包包含头部和数据部分,头部包含源地址、目标地址、端口号等信息。
-
路由:
- 路由是数据包在网络中从源设备到达目标设备的过程。路由器根据目标IP地址和路由表来决定数据包的转发路径。
TCP 和 UDP 的区别
-
TCP(传输控制协议):
- 面向连接,数据传输前需要建立连接(如三次握手)。
- 提供可靠的数据传输,确保数据包按顺序到达,不丢失、不重复。
- 支持流量控制和拥塞控制,确保网络不会因过多数据包而崩溃。
- 用于需要可靠性的应用,如网页浏览(HTTP)、文件传输(FTP)等。
-
UDP(用户数据报协议):
- 无连接,数据包直接发送,无需建立连接。
- 不保证数据的顺序、完整性或可靠性。
- 适用于实时性要求高、对丢包容忍的应用,如视频流、实时游戏、DNS查询等。
TCP/IP 协议的工作流程
-
建立连接:
- 使用 TCP 时,通信的两端通过“三次握手”建立连接:
- 客户端发送SYN请求。
- 服务器回应SYN-ACK确认。
- 客户端发送ACK确认,连接建立。
- 使用 TCP 时,通信的两端通过“三次握手”建立连接:
-
数据传输:
- 连接建立后,数据以数据包的形式在网络中传输。每个数据包包含序列号、确认号等,用于确保数据正确传输。
-
关闭连接:
- 使用 TCP 时,通信完成后,通过“四次挥手”过程关闭连接:
- 客户端发送FIN请求。
- 服务器回应FIN-ACK确认。
- 客户端发送ACK确认。
- 服务器关闭连接。
- 使用 TCP 时,通信完成后,通过“四次挥手”过程关闭连接:
总结
- TCP/IP 是用于计算机网络通信的基础协议集。
- 包括 互联网层(IP)、传输层(TCP/UDP) 和 应用层 等,确保数据在网络中可靠传输和有效路由。
- 常见协议有 HTTP、FTP、SMTP、DNS 等。
- TCP 提供可靠、面向连接的服务,适合对数据传输有高可靠性要求的应用。
- UDP 提供简单、无连接的服务,适合实时性要求高的应用。
理解这些协议和它们的工作方式对于网络配置、故障排查和优化非常重要。
相关文章:
TCP/IP协议,TCP和UDP区别
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是一组用于计算机网络中的通信协议,它为数据传输提供了标准框架,广泛用于互联网和局域网中。TCP/IP协议包括多个层次,每…...
【go从零单排】Timer、Epoch 时间函数
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,time.Timer 是一个用于在指定时间后执行操作的计时器。…...
壁仞科技上市前最后一波 校招 社招 内推
随着美国大选结束,国内GPU 产业得到空前的的发展空间,国内芯片相关股票一片飘红。 国内大型 GPU厂商壁仞科技,摩尔线程等正紧锣密鼓地加紧上市。 GPGPU 芯片赛道来到了史无前例的红利点,抓住机会💪 壁仞科技正在火热…...
【微软报告:多模态基础模型】(2)视觉理解
欢迎关注【youcans的AGI学习笔记】原创作品 【微软报告:多模态基础模型】(1)从专家到通用助手 【微软报告:多模态基础模型】(2)视觉理解 【微软报告:多模态基础模型】(3)…...
Linux 驱动
四十三、Linux设备树 43.1 DTS、DTB 和 DTC DTS 是设备树源码文件 DTB 是将DTS 编译以后得到的二进制文件。 DTC 工具将.dts 编译为.dtb 43.2 DTS语法 43.2.1 .dtsi 头文件 在.dts 设备树文件中,可以通过“#include”来引用.h、.dtsi 和.dts 文件。 …...
【数学二】线性代数-线性方程组-齐次线性方程组、非齐次线性方程组
考试要求 1、会用克拉默法则. 2、理解齐次线性方程组有非零解的充分必要条件及非齐次线性方程组有解的充分必要条件. 3、理解齐次线性方程组的基础解系及通解的概念,掌握齐次线性方程组基础解系和通解的求法. 4、理解非齐次线性方程组的解的结构及通解的概念. 5、会用初等行变…...
Git别名设置
在 Git 中设置命令别名可以让你更高效地使用常见的 Git 命令。通过为常用命令创建简短的别名,可以减少输入的字符数并加速工作流程。 参考链接 设置 Git 命令别名的方法: 使用 Git 配置命令: Git 允许通过 git config 命令来设置命令别名。这…...
算法基础 -- 红黑树原理与插入伪代码
红黑树原理与插入伪代码 红黑树的原理 红黑树是一种自平衡的二叉搜索树,通过对节点的颜色(红色或黑色)以及结构的约束条件来保持树的平衡。红黑树的原理可以通过以下五个特性描述: 节点是红色或黑色。根节点必须是黑色。所有叶…...
力扣 LeetCode 27. 移除元素(Day1:数组)
解题思路: 注意:数组只能覆盖,不能删除 erase方法的复杂度为O( n )而不是O( 1 ),因为需要把删除后后面的数组向前移动 方法一:双层for循环暴力 方法二:快慢指针 fast表示新数组的元素 slow表示新数组元…...
微服务链路追踪skywalking安装
SkyWalking是一个开源的分布式追踪系统,主要用于监控和分析微服务架构下的应用性能。 它提供了分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,特别适用于微服务、云原生架构和基于容器的环境(如Docker、K8s、Mesos&…...
mqtt学习笔记(一)
以解决问题方式逐步学习探索 mqtt使用场景mqtt可能缺点mqtt学习疑问探索1、mqtt主题发布过的历史消息,全新连接的client能消费到吗?2、mqtt的client掉线如何重连,重连后订阅的topic配置还在不?3、mqtt的client掉线重连后ÿ…...
Kafka Eagle 安装教程
目录 前言 一、安装前的准备 1. 系统要求 2. 安装 JDK 3. 安装 Kafka 和 Zookeeper 4. MySQL 环境准备 二、下载并安装 Kafka Eagle 三、配置 Kafka Eagle 1. 编辑配置文件 2. 配置 Kafka 和 Zookeeper 信息 四、启动 Kafka Eagle 五、访问 Kafka Eagle 六、测试功…...
Ajax 获取进度和中断请求
HTML加入一些内容方便看效果和做交互: <div><p>当前传输进度:<span id"progress">0%</span></p><button id"send">发送</button><button id"btn">中断</button> …...
实验5:网络设备发现、管理和维护
实验5:网络设备发现、管理和维护 实验目的及要求: 通过实验,掌握Cisco 路由器和交换机的IOS配置管理。自动从NTP服务器获取时间信息。能够利用TFTP服务器实现路由器和交换机配置文件的备份和恢复。同时验证CDP协议和LLDP协议的网络参数。完…...
kafka 生产经验——数据积压(消费者如何提高吞吐量)
bit --> byte --> kb -->mb -->gb --> tb --> pb --> eb -> zb -->yb...
对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)介绍
对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)介绍 对等同步身份认证(Simultaneous Authentication of Equals,简称SAE)是一种基于密码的身份验证方法,用于安全地交换密钥…...
Ajax 与 Vue 框架应用点——随笔谈
老式 在老式的技术中,一个网页通常由前端工程师直接使用 HTML、CSS、JavaScript 编写而成 这种方式的优点很明显:简单粗暴,方便工程师以简单的思维完成工作 当然,缺点也很明显,包括但不限于: 直接原生开发…...
The Internals of PostgreSQL 翻译版 持续更新...
为了方便自己快速学习,整理了翻译版本,目前翻译的还不完善,后续会边学习边完善。 文档用于自己快速参考,会持续修正,能力有限,无法确保正确!!! 《The Internals of PostgreSQL 》 不是 《 PostgreSQL14 Internals 》…...
redis 原理篇 31 redis内存回收 内存淘汰策略
哦哦, 内存满了咋搞 就算过期key 删除,还是不够用, 这种问题没办法,只能了解一下啥解决方案了, 内存是有限的,一直存,肯定会满,这时,咋处理? 首先ÿ…...
微信小程序——实现二维码扫描功能(含代码)
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...
Qwen系列之Qwen3解读:最强开源模型的细节拆解
文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...
Cursor AI 账号纯净度维护与高效注册指南
Cursor AI 账号纯净度维护与高效注册指南:解决限制问题的实战方案 风车无限免费邮箱系统网页端使用说明|快速获取邮箱|cursor|windsurf|augment 问题背景 在成功解决 Cursor 环境配置问题后,许多开发者仍面临账号纯净度不足导致的限制问题。无论使用 16…...
Python爬虫(52)Scrapy-Redis分布式爬虫架构实战:IP代理池深度集成与跨地域数据采集
目录 一、引言:当爬虫遭遇"地域封锁"二、背景解析:分布式爬虫的两大技术挑战1. 传统Scrapy架构的局限性2. 地域限制的三种典型表现 三、架构设计:Scrapy-Redis 代理池的协同机制1. 分布式架构拓扑图2. 核心组件协同流程 四、技术实…...
【RabbitMQ】- Channel和Delivery Tag机制
在 RabbitMQ 的消费者代码中,Channel 和 tag 参数的存在是为了实现消息确认机制(Acknowledgment)和精细化的消息控制。 Channel 参数 作用 Channel 是 AMQP 协议的核心操作接口,通过它可以直接与 RabbitMQ 交互: 手…...
RMQ 算法详解(区间最值问题)
RMQ 算法详解(区间最值问题) 问题介绍解决方法暴力法ST表法基本思想算法步骤C实现 问题介绍 RMQ问题是OI中经常遇到的问题,主要是一下形式: 给你一堆数,不断的对里面的数进行操作,例如:让某个…...
