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

news2024/12/27 11:15:29

计算机网络 —— 运输层(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.coloradmin.cn/o/1814533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探地雷达正演模拟,基于时域有限差分方法,三

回顾上一章内容,主要讲了FDTD及基于C的实现方式和边界条件处理,这一章主要内容有两点:1、基于实际操作流程的GPR正演模拟(宽角法和剖面法);2、简单并行化加速GPR正演模拟(基于OpenMP&#xff09…

Mybatis Log Free

安装后重启 在 application.yml 配置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 选择效果

搭建一个简单的深度神经网络

目录 一、引入所需要的库 二、制作数据集 三、搭建神经网络 四、训练网络 五、测试网络 本博客实验环境为jupyter 一、引入所需要的库 torch库是核心,其中torch.nn 提供了搭建网络所需的所有组件,nn即神经网络。matplotlib类似与matlab&#xff0…

Apple Intelligence全面来袭,熟悉但又不同的味道

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

618购物节入手哪些数码好物好?年度必备好物清单大盘点

随着一年一度的618购物节的到来,数码市场再次掀起了热潮,在这个属于消费者的狂欢节里,各大品牌和商家纷纷推出优惠活动和新品,为数码爱好者们带来了无数的购物选择,那么在这个购物盛宴中,我们应该如何挑选那…

如何进行论文查重,选择合适的查重系统?

原创性是学术写作海洋中的航行灯塔,而论文查重(www.check110.com)则是保障这束光芒不被云雾遮蔽的工具。而查重系统如何对论文进行查重,又该如何选择论文查重系统呢? 一、论文查重 论文查重,就是检测学术…

Python基础教程(十三):file文件及相关的函数

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

idea中使用逆向工程生成数据库表的实体类

1、在idea中打开数据库视图; 2、点击database中的号创建数据源连接(以MySQL为例); 填入账户密码以及数据库名; 点击测试连接,若出现爆红Server returns invalid timezone. Go to Advanced tab and set serv…

RawChat:优化AI对话体验,全面兼容GPT功能平台

文章目录 一、Rawchat简介1.1 RawChat的主要特性1.2 RawChat的技术原理简述 二、使用教程三、案例应用3.1 图片内容分析3.2 生图演示3.3 文档解析3.4 探索更多 四、小结 一、Rawchat简介 RawChat平台的诞生,其核心理念是降低用户访问类似ChatGPT这类先进AI服务的门…

MySQL复习题(期末考试)

MySQL复习题(期末考试) 1.MySQL支持的日期类型? DATE,DATETIME,TIMESTAMP,TIME,TEAR 2.为表添加列的语法? alter table 表名 add column 列名 数据类型; 3.修改表数据类型的语法是? alter table 表名 modify 列名 新…

文心智能体体验,打造你自己的GPTs应用

利用百度智能体搭建的《RPG冒险游戏大作战》已经发布啦! RPG冒险游戏大作战 玩家扮演一位小小勇士女孩,从被巨龙毁灭的冒险小镇出发,一路披荆斩棘,集齐四件神器后,打败巨龙,夺回小镇的安宁! 整…

python3的基本语法说明一

一. 简介 本文开始学习 python3 的基本语法。 二. python3的基本语法 1. 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -*- 上述…

Unity图集

概述 相信在同学们学习过程中,在UI的的使用时候一定经常听说过图集的概念。 Unity有UI的组件,有同学们好奇,那为什么还要使用图集呢? 这就需要提到一个性能优化的问题了,因为过多的UI图片,会大幅增加Dra…

隔离式 AC-DC 反激电源设计原理分析

LinkSwitch-LP 系列旨在取代手机/无绳电话、PDA、数码相机和便携式音频播放器等应用中输出功率 < 2.5 W 的低效线频线性变压器电源。LinkSwitch-LP 还可用作白色家电等应用中的辅助电源。 LinkSwitch-LP 将高压功率 MOSFET 开关与 ON/OFF 控制器集成在一个设备中。它完全由…

Vue 路由传递参数 query、params

1、to的对象写法,绑定参数 <template> 2 <ul> 3 <li v-for"m in messlist" :key"m.id"> 4 <router-link :to"{ //使用params时&#xff0c;这个路径必须用name及别名......name: xiangqing, path: /bbb/message/deta…

自动驾驶#芯片-1

概述 汽车是芯片应用场景之一&#xff0c;汽车芯片需要具备车规级。  车规级芯片对加工工艺要求不高&#xff0c;但对质量要求高。需要经过的认证过程&#xff0c;包括质量管理标准ISO/TS 16949、可靠性标准 AEC-Q100、功能安全标准ISO26262等。  汽车内不同用途的芯片要求…

批量替换删除图片文件名称中相同数字:轻松管理文件结构新技巧大揭秘

特别是当图片文件名称中包含相同的数字时&#xff0c;想要快速找到或整理这些文件更是难上加难。今天&#xff0c;我要向大家揭秘一种轻松管理图片文件结构的新软件——文件批量改名高手。 进入“文件批量改命名高手”主页面&#xff0c;你会看到一个简洁明了的操作界面。在板…

聚焦新版综合编程能力面试考查汇总

目录 一、业务性编程和广度能力考查 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;必要性分析 二、高频考查样题&#xff08;编程扩展问法&#xff09; 考题1: 用java 代码实现一个死锁用例&#xff0c;说说怎么解决死锁问题&#xff1f;&#xff08;高…

Python 组内序号

模仿SQL的row_number() over (partition by column order by column) import pandas as pd # 创建一个示例数据框 data { group: [A, A, A, B, B, C, C, C, C], value: [3, 1, 2, 5, 4, 6, 9, 7, 8] } df pd.DataFrame(data) # 先按group分组&#xff0c;再按val…

eclipse导入Tomcat9源码

环境准备 下载Tomcat源码 https://github.com/apache/tomcat/tagsJDK版本 Tomcat9要求JDK17以上版本 https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.htmlAnt安装 https://ant.apache.org/bindownload.cgi我这里装的是apache-ant-1.10.14版本 …