计算机网络 —— 运输层(UDP和TCP)

计算机网络 —— 运输层(UDP和TCP)

  • UDP
  • TCP
  • UDP和TCP的异同点
      • 相同点
      • 不同点

我们今天来看运输层的两个重要的协议——UDP和TCP

UDP

UDP,全称为用户数据报协议(User Datagram Protocol),是互联网中一种核心的传输层协议。它是无连接的、不可靠的服务,主要用于在网络上的应用程序间快速传输数据包。相比于TCP(传输控制协议),UDP具有以下显著特点:

  1. 无连接:UDP不建立和维护连接状态。发送端可以直接向接收端发送数据报,无需事先建立连接,这使得UDP的通信开销小,效率较高。
  1. 轻量级:UDP头部远比TCP简单,只包含源端口、目的端口、长度和校验和等基本字段,没有序列号、确认机制等复杂功能,因此处理速度快,延迟低。
  1. 不可靠:UDP不保证数据包的顺序、不进行流量控制,也不进行错误恢复(如重传丢失的数据包),因此被称为“不可靠”协议。数据包可能丢失、重复或乱序到达。
  1. 面向数据报:UDP以数据报为单位进行传输,每个数据报都是独立处理的,适合一次性传输小量数据或者对实时性要求高的应用。

UDP因其上述特性,通常被应用于对实时性要求较高而可以容忍一定数据丢失的场景,比如在线视频流、网络游戏、VoIP(网络电话)、DNS查询等。在这些场景中,低延迟和高传输速度比数据的绝对完整性更为重要。

在这里插入图片描述

TCP

TCP,全称为传输控制协议(Transmission Control Protocol),是互联网协议套件中一个至关重要的传输层协议,设计用于在不可靠的网络上提供可靠的、面向连接的、基于字节流的通信服务。以下是TCP的一些关键特征和功能:

  1. 面向连接:在数据传输前,TCP要求通信双方通过三次握手过程建立一个连接。这个过程确保了双方都准备好进行通信,并且分配了资源。
  1. 可靠性:TCP通过序列号、确认应答、重传机制以及错误检测(使用校验和)来确保数据的可靠传输。如果数据包在传输过程中丢失、损坏或乱序,TCP会负责重新传输或排序。
  1. 流量控制:TCP使用滑动窗口协议来控制发送方的发送速率,防止接收方来不及处理而导致数据溢出。
  1. 拥塞控制:当网络出现拥塞时,TCP能够减缓发送速率,通过减少数据的注入来缓解网络压力,避免网络拥塞进一步恶化。
  1. 数据分块与重组:TCP将接收到的应用层数据分割成合适大小的数据段进行传输,并在接收端根据TCP报头中的信息将这些数据段重新组合成原始数据流。
  1. 全双工通信:建立的TCP连接允许数据在两个方向上同时传输,即双向通信。
  1. 连接终止:数据传输完毕后,TCP连接通过四次挥手的过程优雅地关闭,确保双方都知晓连接的结束并释放相关资源。

由于TCP提供了这些保证数据完整性和可靠性的机制,它被广泛用于需要高度可靠数据传输的应用,如Web浏览、电子邮件、文件传输等。然而,这种可靠性是以增加延迟和降低网络效率为代价的,因此在对实时性要求极高的应用(如某些在线游戏或实时音频、视频流)中,可能会选择使用UDP协议。

在这里插入图片描述
这里是两种协议的对比:
在这里插入图片描述

UDP和TCP的异同点

UDP(用户数据报协议)和TCP(传输控制协议)都是Internet协议套件中的传输层协议,负责在两台计算机之间提供端到端的通信服务。尽管它们服务于相同的基本目的,但它们的设计哲学和功能特性存在显著差异。以下是它们的主要异同点:

相同点

  1. 传输层协议:UDP和TCP都位于OSI模型的传输层,位于网络层之上,为应用层提供服务。
  2. 端口号:两者都使用端口号来标识源和目标应用程序,确保数据能够正确地送达对应的应用程序。
  3. 校验和:UDP和TCP报头中都包含校验和字段,用于基本的错误检测,确保数据的完整性。

不同点

  1. 连接性
  • TCP是面向连接的,通信双方在数据传输前必须通过三次握手建立连接,确保双方准备好进行通信。
  • UDP是无连接的,发送数据前不需要建立连接,数据报直接发送给接收方。
  1. 可靠性
  • TCP提供可靠的数据传输服务,通过序列号、确认应答、重传机制等确保数据包的顺序、无丢失、无重复。
  • UDP不保证数据的可靠传输,数据包可能丢失、重复或乱序到达,适用于对实时性要求高而不强调可靠性的应用。
  1. 传输模式
  • TCP是面向字节流的,将数据视为无结构的字节流,可以按需分割和重组数据。
  • UDP是面向数据报的,保留了数据包的边界,每个数据报作为一个整体发送和接收。
  1. 拥塞控制和流量控制
  • TCP具有复杂的拥塞控制和流量控制机制,能够根据网络状况动态调整发送速率,避免拥塞。
  • UDP没有内置的拥塞控制和流量控制机制,发送速率由应用层控制,可能加剧网络拥塞。
  1. 首部开销
  • TCP报头通常为20字节,包含更多的控制信息,如确认、序列号等。
  • UDP报头只有8字节,更简洁,开销小,适合小数据包传输。
  1. 应用场景
  • TCP适用于需要高度可靠性的应用,如Web浏览(HTTP)、电子邮件(SMTP/POP3/IMAP)、文件传输(FTP)等。
  • UDP适用于对实时性要求较高,可容忍一定数据丢失的应用,如在线游戏、VoIP、视频流、DNS查询等。

综上所述,UDP和TCP各有优势,适用于不同需求的网络通信场景。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Day07-06_13【CT】LeetCode手撕—1. 两数之和

目录 题目1-思路2- 实现⭐1. 两数之和——题解思路 3- ACM实现 题目 原题连接:1. 两数之和 1-思路 哈希表 利用哈希表存储 key 数组元素值 ——> value 数组下标遍历数组 2- 实现 ⭐1. 两数之和——题解思路 class Solution {public int[] twoSum(int[] nums…

【MySQL】E-R图-关系数据模型-3NF--精讲+练习(巨全面)

一.知识储备 E-R图 E-R图,即实体-关系图(Entity-Relationship Diagram),是数据库建模的一种工具,用于表示实体类型、属性以及它们之间的关系。 在E-R图中,实体用矩形表示,属性用椭圆表示&…

【精品方案】离散型制造行业智能工厂标准解决方案(49页 PPT)

引言:随着科技的不断进步和制造业的转型升级,离散型制造行业正面临着从传统制造向智能制造转型的迫切需求。离散型制造行业涉及的产品种类繁多,生产流程复杂,对生产效率、产品质量和成本控制有着极高的要求。因此,开发…

Nginx部署Vue项目css文件能加载但是不生效

目录 问题描述问题解决 问题描述 Nginx部署打包后的Vue项目css文件能加载但是不生效, 问题解决 查看响应标头,发现不对劲, Content-Type: text/plain正确的应该是 Content-Type: text/css根本原因是nginx没有告诉浏览器正确的文件类型 所…

大厂Java面试题:详细描述MyBatis缓存的实现原理

大家好,我是王有志。今天给大家带来的是一道来自光大科技的 MyBatis 面试题:详细描述MyBatis缓存的实现原理。 在通过源码分析 MyBatis 一二级缓存的实现原理前,我先给出我的回答。 首先是 MyBatis 一级缓存的实现原理: MyBaits…

vscode插件开发之 - menu配置

上一遍博客介绍了如何从0到1搭建vscode插件开发的base code,这遍博客将重点介绍如何配置menu。通常,开发一款插件,会将插件显示在VSCode 左侧的活动栏(Activity Bar),那么如何配置让插件显示在Activity Bar…

[Shell编程学习路线]——深入理解Shell编程中的变量(理论与实例)

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月12日11点40分 🀄️文章质量:95分 文章目录 ————前言———— 1 自定义变量 🫠…

数据结构笔记39-48

碎碎念:想了很久,不知道数据结构这个科目最终该以什么笔记方式呈现出来,是纸质版还是电子版?后来想了又想,还是电子版吧?毕竟和计算机有关~(啊哈哈哈哈哈哈哈) 概率论已经更新完了&…

为国产加油:“缺芯少屏”暂缓,另一领域,也要加把劲

说起咱中国之前的“缺芯少屏”,真的是让人挺闹心的。 不过呢,为了改变这个状况,咱们的工程师们可是费了不少劲儿,辛辛苦苦努力了数十年。现在好了,咱们也迎来了柔性屏的时代。 柔性屏 说起来,在触摸屏或者…

消费者消费数据时报错:INVALID_REPLICATION_FACTOR

今天部署了kafka集群,三台服务器,启动后,生产者发送数据,消费者接收数据的时候报错,INVALID_REPLICATION_FACTOR。 查了很多资料,说是要改kafka下config目录的server.properties,可能是副本数太小&#xff…

【MATLAB源码-第225期】基于matlab的计算器GUI设计仿真,能够实现基础运算,三角函数以及幂运算。

操作环境: MATLAB 2022a 1、算法描述 界面布局 计算器界面的主要元素分为几大部分:显示屏、功能按钮、数字按钮和操作符按钮。 显示屏 显示屏(Edit Text):位于界面顶部中央,用于显示用户输入的表达式和…

Python学习打卡:day05

day5 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day538、函数的初体验39、函数的基础定义语法函数的定义注意事项 40、函数的基础定义案例练习41、函数的传入参数42、函数的传入参数案例练习——升…

python django初步搭建(一)

记录一次简单的python django使用,后续调用api相关的暂时不想写。。。 一、环境 windows python 3.11.7 django 二、初步搭建 2.1 新建空文件夹 为了方便本次记录,新建了一个空的文件夹来使用。 直接在这里输入cmd 然后按下回车 2.2 安装virtual…

Kubernetes集群持久化部署实践

WordPress 网站持久化部署 要持久化MariaDB 可以把 Deployment 改成了 StatefulSet,修改 YAML添加“serviceName”“volumeClaimTemplates”这两个字段,定义网络标识和 NFS 动态存储卷,然后在容器部分用“volumeMounts”挂载到容器里的数据目…

利用three-csg-ts对做物体交互式挖洞

默认物体均为居中,如果指定位置没有发生偏移,可能是因为在执行布尔操作之前没有正确设置变换。确保在进行布尔运算之前应用所有必要的变换。以下是经过修正的完整代码示例,它会确保圆柱正确旋转并与盒子进行 CSG 操作。 安装依赖 首先&…

快捷回复话术分享:如何应对顾客愤怒骂人?

在客服的日常工作中,面对情绪激动、甚至愤怒发泄骂人的顾客是常见的挑战。初入此行业的小伙伴们往往在遭遇顾客的激烈情绪时感到手足无措,不知道如何妥善回应。为此,本文将分享一些实用的快捷回复话术和技巧,帮助新手客服更好地处…

vue聊天发送Emoji表情

在用web端写聊天发送表情的功能中,使用web端有系统自带的unicode表情会出现每端不统一的情况,不好用不能统一,在这里我想到了一个非常好的思路,可以解决这个问题! 那就是发送表情用图片的形式呈现,然后发给…

电脑屏幕怎么显示提醒事项 电脑桌面提醒事项设置

在这个信息爆炸的时代,我们每个人都像是被数据洪流裹挟着前进。工作中,生活中,无数琐碎而重要的事情需要我们记忆和处理。有时,仅仅依靠大脑去记住所有事情,真的让人头疼。特别是对于那些整日面对电脑的办公族来说&…

Python基础教程(十一):数据结构汇总梳理

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

使用C#快速搭建一个在windows运行的exe应用

文章目录 一、前言1.1 编写语言需要工具1.2 选择自己需要的组件进行安装 二、新建项目1.1 新建一个 .NET4.x 的项目1.2 添加一个小案例1.3 对界面进行美化1.3.1、配置Form属性1.3.2、配置Button按钮 1.4 查看组将的相关代码 三、后记 一、前言 这是一个比较旧的内容&#xff0…