网络通信协议,UDP和TCP,初步了解

UDP(User Datagram Protocol)和TCP(Transmission Control Protocol)是两种常见的网络通信协议,用于在计算机网络中进行数据传输。

  • 1. TCP:Transmission Control Protocol(传输控制协议)
    • 1.1 why TCP important(为什么TCP很重要)
    • 1.2. what’s TCP(什么是TCP)
    • 1.3 TCP flow contrlol(TCP流量控制)
  • 2. UDP:User Datagram Protocal(用户数据包协议)
    • 2.1 what’s UDP(什么是UDP)
  • 3. 总的来说

1. TCP:Transmission Control Protocol(传输控制协议)

1.1 why TCP important(为什么TCP很重要)

TCP 主要的功能是希望在不可靠的网络里,建构一个可靠的传输环境,internet要连接跨地区网络,所以用连接性高但可靠性低的IP,发送packet后会遗失或干扰发生数据错误或重复传送导致到达次序混乱,基本上IP协议无法检定以上可能错误,这都必须有TCP协议侦测并采取补救措施,由此TCP流量控制就显得非常重要。

1.2. what’s TCP(什么是TCP)

TCP 是一种面向连接的协议,它提供了可靠的、有序的数据流传输服务。TCP 在通信开始之前需要进行握手过程,建立起连接后,它通过序号和确认号来保证数据的可靠性、有序性和完整性。TCP 还实现了流量控制和拥塞控制机制,以确保网络的稳定性和公平性。TCP 适用于对数据可靠性和顺序性要求较高的应用场景,如网页浏览、文件传输和电子邮件。

1.3 TCP flow contrlol(TCP流量控制)

流量控制是一种用于在已建立的连接上进行数据传输的方法。它通过管理数据包的流动来提高传输连接的利用率。

流量控制不仅管理数据包在通信连接中的传输顺序,还涉及管理发送端和接收端的缓冲区。发送端将数据放入发送缓冲区,接收端则将接收到的数据放入接收缓冲区。

在传输过程中,可能会出现一些问题,例如数据包延迟到达接收端、传输错误等。因此,需要一种机制来处理这些问题,例如确认接收到的数据、重传丢失的数据等。

流量控制技术旨在减少缓冲区的需求,以提高系统的效率。然而,由于缓冲区无法无限扩展,因此重复使用缓冲区以减少需求也是流量控制的重要目标之一。

2. UDP:User Datagram Protocal(用户数据包协议)

2.1 what’s UDP(什么是UDP)

UDP 是一种简单的无连接协议,它提供了数据包的传输服务,但不提供像 TCP 那样的可靠性和错误检测机制。UDP 数据包以数据报形式发送,每个数据包都是一个独立的实体,它们可能会按顺序到达,也可能丢失或重复。UDP 适用于对实时性要求较高,但对数据可靠性要求不高的应用场景,比如音频/视频流传输和在线游戏。

3. 总的来说

UDP 适用于实时性要求高但对数据可靠性要求较低的应用场景,而 TCP 则适用于对数据可靠性和顺序性要求较高的应用场景。

重点摘要自以下链接,欲深入了解更多细节,请参阅:
1. 维基百科 - 传输控制协议
2. TCP/IP 协定与 Internet 网络:第七章 传输层协定

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

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

相关文章

【经典算法】LeetCode31. 下一个排列(Java/C/Python3/GO实现含注释说明,中等)

题目描述 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&…

微信小程序的常用API②

一、动画API (1)作用:用于在微信小程序中完成动画效果的制作 (2)使用:创建实例 wx.createAnimation() (3)常用属性: duration 【number型】 动画持续时间&…

探索Flutter 3.0:跨平台开发的新越界

Flutter 3.0 是谷歌推出的最新版本,它是一个开源的UI开发框架,可以用来创建高质量的原生接口在iOS和Android上。自从首次发布以来,Flutter 已经快速发展成为最受欢迎的跨平台移动开发框架之一。Flutter 3.0 带来了许多重要的更新和改进&#…

《C++学习笔记---入门篇2》---传值引用与传引用返回详解

先看这个程序,随着Count栈帧的销毁,会创建一个临时变量将n的值带回,可以实现我们的目的。 再看这个情况的时候,对于n来说他存放的位置在静态区,他不会随着函数栈帧的销毁而销毁,返回的时候依旧靠着临时变量…

Jmeter05:配置环境变量

1 Jmeter 环境 1.1 什么是环境变量?path什么用? 系统设置之一,通过设置PATH,可以让程序在DOS命令行直接启动 1.2 path怎么用 如果想让一个程序可以在DOS直接启动,需要将该程序目录配置进PATH 1.3 PATH和我们的关系…

golang调用阿里云发短信

之前用golang封装的一个发送阿里云短信的工具包,代码如下 client.go package smsimport ("context""github.com/go-playground/validator/v10""github.com/pkg/errors" )type Client interface {// Send 发送短信Send(ctx context.…

Python脚本抢票【笔记】

Python脚本抢票【笔记】 前言版权推荐Python脚本抢票【Python】microsoft edge驱动器下载以及使用最后 前言 2024-4-17 18:19:15 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是ht…

容器工作流

背景 目前某平台使用计算容器和解析容器,这两种容器目前通过rabbitmq消息来进行链接,形成容器工作流,使用容器工作流框架可以省去两个容器中间环节的控制,不需要再使用java代码对容器的操作,通过容器工作流框架即可控…

SpringMVC进阶(数据格式化以及数据校验)

文章目录 1.数据格式化1.基本介绍1.基本说明2.环境搭建 2.基本数据类型和字符串转换1.需求分析2.环境搭建1.data_valid.jsp首页面2.Monster.java封装请求信息3.MonsterHandler.java处理请求信息4.monster_addUI.jsp添加妖怪界面5.单元测试 3.保存妖怪信息1.MonsterHandler.java…

路由嵌套是什么?怎么进行路由嵌套

路由嵌套: 此时我们从一个组件切换到另一个组件时,会直接跳转页面,所以我们需要一个东西让组件们可以在一个页面显示,这时候就需要进行路由嵌套。我们要找到组件之间的关系,大组件嵌套小组件,从大组件中打…

代码随想录算法训练营day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

242.有效的字母异位词 字符串仅包含小写字母,那么可以使用数组声明26位大小,遍历其中一个字符串,记录字符的个数,然后遍历另一个字符串,减去相应字符,最后都为0则符合条件 class Solution:def isAnagram(…

运维笔记:基于阿里云跨地域服务器通信(上)

运维笔记 阿里云:跨地域服务器通信(上) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

构建数据驱动的文化价值体系,还得靠数据分析

在您的业务中创建以数据为中心的文化需要思维方式的转变,这不会在一夜之间发生。但是,这是一个目标变得越来越容易实现,这是由您的员工以激情和热情朝着这个目标努力的驱动力所驱使的,而不是高层要求他们这样做的目标。 有多种因…

Redis面试题超详细(2024最新)

1、Redis是单线程执行还是多线程执行?它有线程安全问题吗?为什么吗? Redis版本在6.0之前都是使用的单线程运行的。所有的客户端的请求处理、命令执行以及数据读写操作都是在一个主线程中完成得。这种设计目的就是为了防止多线程环境下的锁竞争…

git变更远端仓库名之后如何修改本地仓库配置的另一种方法?(删remote指针、添加、绑定master)

背景 如果某个远端的仓库地址变化后,本地仓库可以修改对应的remote。 之前谈过几种方法,比如重新设置一个新的remote的指针,绑定到新地址。然后删除origin,然后把新指针mv到origin。比如直接seturl修改(git remote se…

深度学习从入门到精通——词向量介绍及应用

词向量介绍 词向量(Word embedding),即把词语表示成实数向量。“好”的词向量能体现词语直接的相近关系。词向量已经被证明可以提高NLP任务的性能,例如语法分析和情感分析。词向量与词嵌入技术的提出是为了解决onehot的缺陷。它把…

ESP32-S3的MQTT实战

昨天,我们讲了socket通信,当服务器和客户端建立起连接时,就可以互相通信了。在互联网应用大多使用WebSocket接口来传输数据。而在物联网的应用中,常常出现这种情况:海量的传感器,需要时刻保持在线&#xff…

微信小程序[黑马笔记]

简介 常用组件 视图组件 <!--pages/list/list.wxml--><scroll-view class"container1" scroll-y><view>A</view><view>B</view><view>A</view></scroll-view><!--pages/list2/list.wxml--><swiper …

❤mac使用Idea工具

❤mac使用Idea工具 1、安装 直接跳过&#xff0c;文章有 &#xff08;点击跳转&#xff09; 给自己的mac系统上安装java环境 2、使用 快捷键 Command , 系统首选项 设置Idea连接数据库 打开右侧的database&#xff08;或菜单里&#xff09;连接数据库&#xff0c;根据提…

ijkplayer iOS编译问题之[-Wincompatible-function-pointer-types]

编译环境 Apple M1 Pro Sonoma 14.1.2 编译的时候出现如下报错&#xff1a; libavcodec/aarch64/h264dsp_init_aarch64.c:84:38: error: incompatible function pointer types assigning to h264_weight_func (aka void (*)(unsigned char *, long, int, int, int, int)) from…