TCP和UDP区别和使用场景

TCP UDP 是计算机⽹络中两种常⽤的传输层协议,⽤于实现可靠传输和⽆连接传输。

TCP 

TCPTransmission Control Protocol)是⼀种⾯向连接的、可靠的传输协议。它通过三次握⼿四次挥⼿进⾏连接和断开链接,保证数据的可靠性、完整性和顺序性,具有较⾼的传输效率。

TCP 协议适⽤于要求可靠传输的场景,如⽂件传输、电⼦邮件传输等。

TCP协议的⼯作流程如下:

客户端向服务器发送连接请求( SYN )。

服务器收到连接请求后,回复确认请求( SYN+ACK )。

客户端收到确认请求后,回复确认( ACK ),完成连接。

数据传输完成后,客户端和服务器分别发送关闭连接请求( FIN )。

对⽅收到关闭请求后,回复确认( ACK )。

双⽅都收到对⽅的关闭请求和确认后,关闭连接。

UDP

UDPUser Datagram Protocol)是⼀种⽆连接的、不可靠的传输协议。它不需要建⽴连接和维护连接状态,具有 较⾼的传输速度和实时性,但不保证数据的完整性和顺序性。

UDP 协议适⽤于实时性要求⾼、数据量⼩、丢失数据不会影响结果的场景,如视频直播语⾳通话等。 UDP协议

⼯作流程:

客户端向服务器发送数据报。

服务器收到数据报后,直接处理数据并回复确认。

客户端收到确认后,继续发送下⼀个数据报。

如果数据报丢失或损坏,客户端不会重传,⽽是直接忽略。

两者区别

1. 连接⽅式TCP ⾯向连接的协议,UDP ⽆连接的协议。

2. 可靠性TCP 提供可靠的传输,保证数据的完整性顺序性,⽽ UDP 不保证数据的完整性和顺序性。

3. 速度UDP TCP 更快,因为它不需要建⽴连接和维护连接状态。

4. 传输⽅式TCP 是基于字节流的传输⽅式,UDP 是基于数据报的传输⽅式。

 

应用场景 

针对于 TCP 的特点,其应⽤场景主要有:

1. ⽂件传输:通过 TCP 协议传输⽂件时,确保⽂件的完整性安全性

2. 邮件传输:通过 TCP 协议传输邮件时,确保邮件的完整性可靠性

3. ⽹⻚浏览:通过 TCP 协议传输⽹⻚时,确保⽹⻚的完整性正确性

针对UDP的特点,其应⽤场景主要有:

1. 视频流传输:通过 UDP 协议传输视频流时,要求实时性⾼,允许数据的丢失和重复。

2. 语⾳通话:通过 UDP 协议传输语⾳时,要求实时性⾼,允许数据的丢失和重复。

3. 游戏应⽤:通过 UDP 协议传输游戏数据时,要求实时性⾼,允许数据的丢失和重复。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587001.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA基础02-Java语言基础以及编译准备工作

什么是JAVA语言 Java是一门面向对象的编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用的两个特征。 (可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式…

​慧天[HTWATER]可以与与SWMM模型之间实现转换吗?

​慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求,以及水文、水力及水质模拟对数据的需求,实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开…

【学习笔记】java项目—苍穹外卖day02

文章目录 苍穹外卖-day02课程内容1. 新增员工1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码开发1.2.1 设计DTO类1.2.2 Controller层1.2.3 Service层接口1.2.4 Service层实现类1.2.5 Mapper层 1.3 功能测试1.3.1 接口文档测试1.3.2 前后端联调测试 1.4 …

SwiftUI Swift 显示隐藏系统顶部状态栏

Show me the code // // TestHideSystemTopBar.swift // pandabill // // Created by 朱洪苇 on 2024/4/1. //import SwiftUIstruct TestHideSystemTopBar: View {State private var isStatusBarHidden falsevar body: some View {Button {withAnimation {self.isStatusBa…

ZYNQ学习之Ubuntu下Linux文件系统、用户权限与磁盘管理

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

记某客户的一次无缝数据迁移

背景 客户需要将 Elasticsearch 集群无缝迁移到移动云&#xff0c;迁移过程要保证业务的最小停机时间。 实现方式 通过采用成熟的 INFINI 网关来进行数据的双写&#xff0c;在集群的切换恢复过程中来记录数据变更&#xff0c;待全量数据恢复之后再追平后面增量数据&#xff…

Unity类银河恶魔城学习记录12-1 p123 UI menu源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using System.Collections; using System.Collections.Generic; usin…

【MySQL】数据类型(1)

数据类型1 一、整形数据二、位图类型三、浮点类型 一、整形数据 我们的MySQL&#xff0c;有很多的数据类型&#xff0c;其中&#xff0c;我们在建表时&#xff0c;肯定要用到相应的数据类型。 整形有 tinyint, samllint , mediumint, int, bigint。 我们第一眼看上去&#x…

Linux:基本指令篇

文章目录 前言1.ls 指令2.pwd命令3.cd 指令4.touch指令5.mkdir指令&#xff08;重要&#xff09;6.rmdir指令 && rm 指令&#xff08;重要&#xff09;7.man指令&#xff08;重要&#xff09;8.cp指令&#xff08;重要&#xff09;9.mv指令&#xff08;重要&#xff09…

2023.4.7 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、过去方案和Motivation 4、Segment Anything模型 5、创新点 6、实验过程 7、实验结果 1、评价绩效 2、检测评价 3、跟踪评价 8、 结论 总结 引言 本周阅读了一篇关于高效的任意分割模型的文献&#xff0c;用于自…

Day57:WEB攻防-SSRF服务端请求Gopher伪协议无回显利用黑白盒挖掘业务功能点

目录 SSRF-原理&挖掘&利用&修复 SSRF无回显解决办法 SSRF漏洞挖掘 SSRF协议利用 http:// &#xff08;常用&#xff09; file:/// &#xff08;常用&#xff09; dict:// &#xff08;常用&#xff09; sftp:// ldap:// tftp:// gopher:// &#xff08;…

特征工程中的OneHotEncoder与DictVectorizer

OneHotEncoder理解 作用 OneHotEncoder是一个常用的 数据预处理方法&#xff0c;它可以 将离散型变量转换为连续型变量&#xff0c;使之更适于机器学习模型的应用。通常我们会使用Pandas处理数据读入之后&#xff0c;使用OneHotEncoder对离散数据进行转换。 应用场景 OneHo…