【网络安全】TCP和UDP

一、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.xdnf.cn/news/1543341.html

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

相关文章

【项目】多设计模式下的同步异步日志系统

文章目录 项目介绍开发环境核心技术日志系统介绍为什么需要日志系统日志系统技术实现同步写日志异步写日志 相关技术知识补充不定参函数不定参宏函数的使用C中不定参函数的使用C中不定参函数的使用 设计模式单例模式工厂模式建造者模式代理模式 日志系统框架设计模块划分日志等…

高校大数据实训管理平台怎么选择?

泰迪智能科技大数据实训管理平台分为多个方向包括:人工智能方向、大数据方向、商务数据分析方向,不同高校可以结合高校情况选择合适自己院校的相关产品平台。 高校实训管理平台是实验室模块的核心母平台,对实验室的所有课程及实训资源进行统…

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

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

HTTP协议:发展、请求响应、状态码 等

文章目录 HTTP发展历程HTTP请求URL和URIHTTP协议版本HTTP请求方法GET 和 POST 区别HTTP状态码HTTP 请求与响应报文HTTP 请求流程 HTTP 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在…

快速数据检索最佳闪存驱动器恢复下载

当你意识到你的闪存盘丢失了重要文件时,你是否曾有过心脏停跳的时刻?丢失数据可能会毁掉你的一天,并带来很大的压力,无论是重要的工作文件,你喜欢的照片,还是备份你需要保持。好消息是,在闪存驱…

Leetcode 合并区间

我们借助一个辅助链表(元素类型是一维数组)来进行结果统计。 这个算法解决了“合并区间”的问题,具体要求是给定一组区间(每个区间有开始和结束位置),如果两个区间有重叠,那么需要将它们合并成一个区间,并…

Cisco Packet Tracer超详细下载安装教程(附中文版插件)

一、安装包下载: 链接:https://pan.baidu.com/s/1RK8iQ9lJG__vBEGCYVYNSA 提取码:1lvb 压缩包解压密码:66668888,不能正常解压的,推荐使用360压缩解压 二、安装教程: 1.双击启动安装包 2.点击N…

使用功率谱密度 (PSD) 表征噪声

传递函数塑造噪声 图 1 显示了假设噪声源的频谱,该噪声源在所有频率下均表现出相同的平均功率,即 ,其中 η 是常数。 假设噪声源的频谱。 图 1. 假设噪声源的频谱。 如果我们将此噪声应用于 LTI 系统,系统的传递函数将决定不同…

基于丹摩智算平台-手把手拿下经典目标检测模型 Faster-Rcnn

文章目录 1. 前言1. 1 丹摩智算平台1.2 经典目标检测模型 Faster-Rcnn 2. 前置准备2.1 WindTerm(远程连接服务器)2.2 项目源码 3. 服务器平台配置3.1 创建实例3.2 远程链接 4. Faster-rcnn 的环境配置4.1 上传文件,解压4.2 安装所需环境 5. 数…

springboot框架VUE3学院网站系统开发mysql数据库设计java编程计算机网页源码maven项目

博主介绍:专注于Java vue .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的…

专业软件测试服务机构介绍:软件确认测试的类型和方法

随着现代科技的迅猛发展,软件开发逐渐成为各类企业发展的核心。然而,软件的质量直接关系到企业的运营效率和用户体验。因此,软件确认测试作为确保软件质量的重要环节,正受到越来越多的关注。 软件确认测试是指在软件开发周期的最…

tensorboard展示不同运行的曲线结果

运行tensorboard曲线如下: tensorboard --logdir .有时候,曲线图会展示多条曲线,以至于我们想分辨哪条线来自哪次训练都做不到了。如下图是设置smoothing-0.6的结果: smoothing可以在页面找到设置按钮,呼出设置侧边…

Llama 3.1 技术研究报告-2

3.3 基础设施、扩展性和效率 我们描述了⽀持Llama 3 405B⼤规模预训练的硬件和基础设施,并讨论了⼏项优化措施,这些措施提⾼了训练效率。 3.3.1 训练基础设施 Llama 1和2模型在Meta的AI研究超级集群(Lee和Sengupta,2022&#x…

直播美颜工具的开发详解:基于视频美颜SDK的解决方案

视频美颜SDK的出现,为开发直播美颜工具提供了一种高效的解决方案。本文将详细解析如何基于视频美颜SDK,开发一款性能优越、功能齐全的直播美颜工具。 1.视频美颜SDK的核心功能 视频美颜SDK是实现实时美颜的关键技术,其核心功能包括人脸检测、…

mysql逗号分隔的一行数据转为多行数据

原表: 结果: 方法一:如果每条数据的被逗号分隔的数量在637条以内,使用 mysql.help_topic(mysql自带的表,只有637个序号)。 select a.id,a.enclosure_ids,SUBSTRING_INDEX(SUBSTRING_INDEX(a.en…

harmonyOS 原来构建还有这么多弯弯绕绕

随着用户需求的不断增长,我们的 APP 已发展成功能丰富的超级APP,这也导致打包构建变得非常耗时,可能需要数小时,严重影响开发效率和产品迭代。通过采用模块化设计、增量构建、并行处理、缓存机制、优化依赖管理,以及云…

使用 Docker 部署 RStudio 的终极教程

一.介绍 在现代数据科学和统计分析领域,RStudio 是一个广受欢迎的集成开发环境(IDE),为用户提供了强大的工具来编写、调试和可视化 R 代码。然而,传统的 RStudio 安装可能面临环境配置复杂、版本兼容性等问题。Docker…

2.4K star的GOT-OCR2.0:端到端OCR 模型

GOT-OCR2.0是一款新一代的光学字符识别(OCR)技术,标志着人工智能在文本识别领域的重大进步。作为一款开源模型,GOT-OCR2.0不仅支持传统的文本和文档识别,还能够处理乐谱、图表以及复杂的数学公式,为用户提供…

报错解决方案

大模型-报错解决方案 百度千帆大模型 仅个人笔记使用,感谢点赞关注 百度千帆大模型 未开通付费模型 qianfan.errors.APIError: api return error, req_id: code: 17, msg: Open api daily request limit reached 可能的原因: 未开通所调用服务的付费权限&#xff0…

代码随想录算法day38 | 动态规划算法part11 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和,392.判断子序列

1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 力扣题目链接(opens new window) 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的…