【网络安全】TCP和UDP

news2024/9/23 18:05:01

一、TCP/UDP对比

1.共同点:

都是工作在TCP/IP体系结构的传输层的协议

工作主要都是把端口号往原始数据封装

在 TCP 协议中,原始数据指的是应用程序产生的需要通过网络进行传输的数据。这些数据可以是各种类型的信息,例如文本、图像、音频、视频等。
 
原始数据通常在应用程序中生成,并被传递给 TCP 协议进行封装和传输。TCP 协议会将原始数据与其他相关信息(如端口号、序列号、校验和等)一起组成 TCP 数据包。

2.区别:

  • TCP是面向连接的协议,而UDP是无连接的协议;
  • TCP协议的传输是可靠的,而UDP协议的传输 “尽力而为”;
  • TCP协议可以实现流控,而UDP不行;

流控:流量控制

我们在发送数据的时候,有的时候发送的太快,有的时候发送的太慢,我们要想办法控制一下这个速度,这点TCP可以做到,而UDP做不到。

流控(3)应该算是传输可靠性(2)中的一环,流量发的快一点或者慢一点,主要目的是保证对方能够正常收到这些信息,能够正常地处理这些信息,并且保证传输效率。所以有流控这个机制在里面,传输也会更可靠一点。

  • TCP可以分段,而UDP不行;

分段:拆分大的数据包

我们发数据的时候,这个数据包有可能很大,因为里面的数据内容有可能很多,TCP可以分段就是可以把这些很大的数据包拆分开,拆成一个一个的小段,然后再去分别发送过去,而UDP不行,多大就多大发。

  • TCP消耗资源较大,传输效率较低。UDP耗费资源较小,速度快;

3.TCP/UDP使用场景

  • TCP协议更适用于对传输可靠性要求较高,但是对传输效率和资源占用要求较低;(网页浏览、电子邮件传输和文件传输等);
  • UDP更适用于对传输效率要求较高,可靠性要求较低的场景;(即时通实现类:语音、视频、聊天、游戏、直播等);

什么是面向连接?

我们可以通过一个小游戏来理解一下:

 TCP面向连接小游戏

在正式传输数据之前,先使用预先的协议(TCP协议),建立点到点的链接。 

A跟B说:你准备好了吗?我要开始扔球了,然后B说:我准备好了。

有了这一来一回,A就可以给B扔球了。A给B的连接就相当于建立好了。这种情况下,A就可以给B扔球了。

如果B也想给A扔球,那B也要A给B说:你准备好了吗?我也要开始扔球了,然后A说:我准备好了。 有了这一来一回,B也可以给A扔球了。

所以数据传输其实是双向的,TCP协议建立好的通信通道其实是双向的,就是A可以给B扔球,小B也可以给A仍球,这个通道就是 “会话”。

什么是会话?

A可以给B发信息,那A就生成一条指向B的会话,B可以给A发信息,那B就生成一条指向A的会话。可以发送信息的这个通道,就可以把他理解为是一个会话。

TCP协议是面向连接的协议,在发送数据之前要先建立连接,而他建立的连接就是建立的一条双向会话。

TCP建立的连接实际建立了一个双向的会话连接,即通讯双方都可以向对方发送数据。

一张很刺激的图片:

2be060e12a4146d2abb209ffb0335b90.png

这张图可以在一定程度上可以反应出来TCP和UDP这两种协议的风格。

  • TCP比较沉稳,面向连接、速度慢、可靠传输;
  • UDP比较奔放,无连接、速度快、不可靠传输;

来看一下TCP和UDP这两个协议的包头,上面的图片中写着TCP-20字节头,UDP-8字节头。

往原始数据前面加的数据称之为头部,往后面加的称之为尾部。

TCP和UDP都是只给前面加,所以他们只有头部信息。

我们看一下他们头部都要封装哪些参数,哪些内容。

TCP协议头部:

44fac022fd414fb68edb9bbab9bf2edc.png

  • 源端口号:
  • 目的端口号
  • 序号
  • 确认序号
  • 首部长度
  • 保留
  • 窗口大小
  • 校验和
  • 紧急指针
  • 选项

封装图:

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

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

相关文章

STM32 通过软件模拟 I2C 驱动 24Cxx 系列存储器

目录 一、AT24CXXX 系列存储器介绍1、基本信息2、寻址方式3、页地址与页内单元地址4、I2C 地址5、AT24CXX 的数据读写5.1 写操作5.1.1 按字节写5.1.2 按页写 5.2 读操作5.2.1 当前地址读取5.2.2 随机地址读取5.2.3 顺序读取 二、代码实现1、ctl_i2c2、at24c3、测试程序 I2C 相关…

c++难点核心笔记(一)

文章目录 前言C的应用领域 核心编程内存分区模型1.程序运行前2.程序运行后3.new操作符引用 函数1.概述和函数原型2.函数的定义和参数3.使用函数处理不同类型的数据4.微处理器如何处理函数调用函数的分文件编写 指针和引用什么是指针动态内存分配使用指针时常犯的编程错误指针编…

为你介绍五款超实用免费报表工具,一文说清优缺点

1. 山海鲸可视化 山海鲸可视化是一款完全免费的报表工具,不仅能够处理各式复杂报表,而且提供了非常丰富的组件和模板,软件操作方式为零代码的拖拽式操作,新手用户也能快速上手。同时,它附送一个免费的网站后台&#x…

JVM java主流的追踪式垃圾收集器

目录 前言 分代垃圾收集理论 标记清除算法 标记复制算法 标记整理法 前言 从对象消亡的角度出发, 垃圾回收器可以分为引用计数式垃圾收集和追踪式垃圾收集两大类, 但是java主流的一般是追踪式的垃圾收集器, 因此我们重点讲解. 分代垃圾收集理论 分代收集这种理…

腾讯云负载均衡ssl漏洞(CVE-201602183)解决

绿盟漏洞扫描腾讯云应用,提示有1个高危、1个中危。 看IP是应用服务器前端的负载均衡。 漏洞详细信息如下: 根据腾讯云文档,可以通过设置负载均衡加密算法设置,来缓解漏洞风险。 登录 负载均衡控制台,在左侧导航栏单击…

宸励投资专注高新技术投资,助推中小企业快速发展

宸励投资,作为一家新兴的互联网式新轻创型投行公司,专注在人工智能、专精特新及数字化美业三大板块领域,展现了其深厚的专业背景和卓越的引领能力。这家公司不仅在各自的领域内深耕细作,更通过其前瞻性的视角和独到的战略布局&…

Windows X86 远线程注入问题解惑

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

ProtoBuf介绍及安装

文章目录 序列反序列化ProtoBuf特点安装ProtoBufwindowsUbuntuCentos 序列反序列化 在网络传输过程当中,可以理解为: 发送方接收方 它们彼此要通信,先要定好一个规则,也就是协议,双方都能认识的结构化数据&#xff…

Linux C——网络编程

本案例运行环境:Ubuntu 12.04.1 LTS 1、基本概念 网络的七层模型: 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 其中:1、2、3层主要面向通过网络端到端的数据流, 4、5、6、7层定义了程序的功能 …

静态链接和动态链接的Golang二进制文件

关注TechLead,复旦博士,分享云服务领域全维度开发技术。拥有10年互联网服务架构、AI产品研发经验、团队管理经验,复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,阿里云认…

李沐 模型选择、过拟合和欠拟合相关代码【动手学深度学习v2】

多项式回归 生成数据集 给定x,我们将使用以下三阶多项式来生成训练和测试数据的标签: y=5+1.2x−3.4+5.6+ϵ where ϵ∼( ). 噪声项ϵ服从均值为0且标准差为0.1的正态分布。 在优化

GraphRAG与VectorRAG我都选:HybridRAG

从金融应用中产生的非结构化文本数据(如财报电话会议记录)提取和解释复杂信息,即使采用当前最佳实践使用检索增强生成(RAG)技术,对于大型语言模型(LLMs)来说仍存在重大挑战。这些挑战…

【游戏党必看】2024年最适合玩游戏的电脑系统推荐!

许多玩家都在问如果在电脑上玩游戏装什么系统好呢?以下系统之家小编给大家推荐两款专门为游戏玩家打造的操作系统,针对大型游戏进行了深度优化,显著提升了系统性能,确保游戏运行更为流畅无阻,能完美兼容各种类型的游戏…

三好夫人|最强“逼”婚神器,送完一次就领证

三好夫人|揭秘最强“逼”婚神器,让你的爱情甜蜜升级,速领见家长通行证! 男人们请记住,如果一个女生给你送三好夫人,那么你赶快带她见家长把婚事定了。 在这个快节奏的时代,爱情似乎也被按下了快…

基于51单片机的电机控制和角度检测

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采用滑动变阻器连接ADC0832数模转换器模拟角度传感器,然后通过LCD1602显示数值,然后按键按下不动,电机正转,松开停止。第二…

显示和隐藏图片【JavaScript】

使用 JavaScript 来实现显示和隐藏图片。下面是一个简单的示例&#xff0c;展示如何通过按钮点击来切换图片的可见性。 实现效果: 代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name&…

神奇的交互!Ethernet IP转Profinet网关与发那科机器人的数据交互

在当今的工业领域&#xff0c;随着自动化程度的不断提高&#xff0c;工业化升级已成为必然趋势。在这个过程中&#xff0c;对机器人的联网需求变得日益迫切。机器人作为工业生产中的重要组成部分&#xff0c;其高效运行和与其他设备的协同工作对于提高生产效率至关重要。然而&a…

EI-Bisynch协议

EI-Bisynch&#xff08;Extended Interface-Bisynchronous&#xff09;协议是一种早期用于设备通信的协议&#xff0c;主要用于工业控制系统中的串行通信。随着技术的发展&#xff0c;EI-Bisynch的使用已经大幅减少&#xff0c;逐渐被更现代化、灵活性更高的通信协议&#xff0…

【Linux】手把手教你制作一个简易shell——(进程创建fork进程替换wait与进程等待exec的应用)(自定义shell程序设计)

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

华为昇腾智算中心-智算中心测试方案与标准

本方案是企业内训课程《华为昇腾智算中心深度技术研修》的一部分授课课件的样例。方案内容中详细阐述了华为昇腾环境下智算中心的测试方案和标准&#xff0c;以确保硬件和软件系统在实际部署和运行中的高效性和稳定性。主要内容包括集群硬件清单、节点拓扑配置以及环境配置。硬…