传输层协议介绍(tcp,udp),可靠性和不可靠性

news2024/11/26 4:34:20

目录

传输层协议

介绍

tcp协议

介绍

面向连接

可靠性

面向字节流 

udp协议

介绍

无连接

不可靠

面向数据报

可靠和不可靠

可靠

不可靠


传输层协议

介绍

传输层是计算机网络体系结构中的第四层,它负责在网络中的不同主机之间提供端到端的数据传输

  • 传输层的核心任务是确保可靠、有效和有序的数据传输
  • 在传输层中,有两个主要的协议,即传输控制协议(TCP)和用户数据报协议(UDP)

tcp协议

介绍

是一种在计算机网络中常用的面向连接的、可靠的传输层协议

它负责提供可靠的、有序的、全双工(允许双方在同一时间进行双向的数据传输)的数据流传输

面向连接

在传输数据前,先要确定通信是否通畅 -- 也就是建立连接的过程

  • 连接的建立和关闭分别通过三次握手和四次挥手来完成
  • 如:打电话的第一句话是喂一样,当我们听到对方应答后,才会说事情

可靠性

通过序列号、确认机制和重传机制来确保数据的可靠传输

面向字节流 

它不关心数据的边界,将应用层的数据视为一连串的字节流进行传输

udp协议

介绍

是一种在计算机网络中使用的简单、无连接、无状态的传输层协议

无连接

通信的双方不需要事先建立连接,直接进行数据的传输

不可靠

不保存通信的状态信息,如果数据包出现乱序/发送不成功,他不会做出处理

面向数据报

将应用层的数据视为数据报,发一个收一个(比如说发邮件)

每个数据报都是独立的,不像tcp那样形成流

 

可靠和不可靠

注意,协议的描述都是中性的,不可靠不代表没用,可靠不代表我们要用它(都是需要看场景的)

可靠

复杂,耗费成本大

  • tcp协议会在报文发生错误时进行重传,就代表传输层需要检测是否错误,且要一直维护报文,而不能直接丢弃
  • 还要对其增加序号,如果乱序还要重新排序
  • 在需要精确度高的场合,需要使用tcp
  • 比如:银行系统,电子邮件等

不可靠

简单,成本低

  • 因为传输层不需要做过多的处理
  • 由于udp的轻量性和较低的延迟,适用于对实时性要求较高的应用
  • 比如:音频、视频流等

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

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

相关文章

Web 常用的 扩展开发框架

当谈到提升浏览器功能和用户体验时,浏览器扩展成了一股强大的力量,备受用户青睐。在众多的Web扩展开发框架中,WXT和Plasmo凭借其丰富的工具和特性,以及简化的开发流程,成为开发者们的首选。在本文中,我们将…

基于 Jenkins 搭建一套 CI/CD 系统

一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos…

jupyter 修改文件保存位置 步骤

一、找到配置文件位置 打开Anaconda Prompt,输入: jupyter notebook --generate-config 根据得到的路径,以记事本方式打开配置文件 二、修改路径 在文件中输入: c.NotebookApp.notebook_dir E:\\deepLearning\\Jupyter_files…

离线下载的pytorch/torchvision/torchaudio

链接:https://download.pytorch.org/whl/torch_stable.html 下载pytorch-torchvision-torchaudio等一系列一定要版本匹配,并且如果是在gpu上跑的话,一定要都是cu版本 参考链接:https://blog.csdn.net/AiTanXiing/article/detail…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的输电线路设备检测系统(深度学习+UI界面+Python代码+训练数据集)

摘要:本篇博客详细介绍了如何运用深度学习构建一个先进的输电线路设备检测系统,并附上了完整的实现代码。该系统利用了最新的YOLOv8算法作为其核心,同时也对之前版本的YOLOv7、YOLOv6、YOLOv5进行了性能比较,包括但不限于mAP&…

如何解决由触发器导致 MySQL 内存溢出?

由触发器导致得 OOM 案例分析过程和解决方式。 作者:龚唐杰,爱可生 DBA 团队成员,主要负责 MySQL 技术支持,擅长 MySQL、PG、国产数据库。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编…

为什么要有包装类?

1、典型回答 在 Java 中,所有的基本类型都会对应一个包装类,如下所示: 之所以要有包装类型的主要原因有以下几个: 面向对象要求:Java 是一门面向对象的编程语言,要求所有的数据都应该是对象。但是&#x…

【递归搜索回溯专栏】专题二:二叉树中的深搜----二叉搜索树中第K小的元素

本专栏内容为:递归,搜索与回溯算法专栏。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:递归搜索回溯专栏 🚚代码仓库:小小unicorn的代…

数据库三大范式设计原则

数据库三大范式 第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。 第二范式(确保表中的每列都和主键相关) 第二范式在第一范式的基础之上更进一层。第二范式需要确保数据…

基于ARMA-GARCH模型探究股价的日历效应和节假日效应【思路+代码】

目录 1. 模型定义1.1 ARMA-GARCH模型1.2 引入节假日效应的虚拟变量的新模型1.3 引入日历效应的虚拟变量的新模型 2. 实证部分2.1 准备工作2.2 引入节假日效应虚拟变量的模型建立和结果分析2.3 引入节假日效应和日历效应的虚拟变量的模型建立和结果分析 3. 结语 本文介绍了ARMA-…

Ubuntu18.04 安装搜狗输入法

一. 概述 自己的Ubuntu 18.04系统配置中文搜狗输入法,安装步骤,亲测可用 二. 安装步骤 2.1 确认系统版本和CPU架构 查看Ubuntu系统版本号,通过命令 lsb_release -a wuubuntume:~$ lsb_release -a No LSB modules are available. Distr…

【全志H616】-2 写一个自己的串口

【全志H616】-2 写一个自己的串口 1、基本命令 重启 sudo rebootLinux系统下一个文件夹的文件复制到另一个文件夹下 cp flags.c /home/user05/lab09/flags_revised.c //复制当前文件夹下的 flags.c 文件到 lab09 文件夹下flags_recised.c 文件cp oled_demo.c /home/orangep…

【网络安全】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 网络安全 目录: (一) (二) (三) (四)

苍穹外卖中新增员工的功能是如何实现的?再复习下项目结构

一、Common、Pojo、Server分别都是干啥的? 在一个典型的Java应用程序中,通常会使用模块化的方式来组织代码,以提高代码的可维护性和可扩展性。常见的模块包括Common模块、POJO模块和Server模块,它们通常各自负责不同的功能。 Com…

Java项目源码基于springboot的家政服务平台的设计与实现

大家好我是程序员阿存,在java圈的辛苦码农。辛辛苦苦板砖,今天要和大家聊的是一款Java项目源码基于springboot的家政服务平台的设计与实现,项目源码以及部署相关请联系存哥,文末附上联系信息 。 项目源码:Java基于spr…

北京市行政村边界shp数据/北京市乡镇边界/北京市土地利用分类数据

北京是一座有着三千多年历史的古都,在不同的朝代有着不同的称谓,大致算起来有二十多个别称。北京地势西北高、东南低。西部、北部和东北部三面环山,东南部是一片缓缓向渤海倾斜的平原。境内流经的主要河流有:永定河、潮白河、北运…

JavaWeb-Maven

一、Maven概述 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供一套标准化的项目结构提供一套标准化的构建流程(编译,测试,打包,发布......)提供一套依赖管理机制 二、Maven简…

Window部署Oracle并实现公网环境远程访问本地数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle,是甲骨文公司的一款关系…

闭包表(Closure Table)存储和查询树形数据结构

闭包表通过在关系表中记录树节点之间的直接和间接关系来表示节点之间的层次结构,目的是支持高效的树遍历和查询操作。 一、创建闭包表 CREATE TABLE departments (id int NOT NULL COMMENT ID,name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_…

Centos7安装postgresql14步骤

1、进入网址 https://www.postgresql.org/download/ 2、按步骤执行 # Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL: sudo yum install -y…