【网络】传输层的特点总结

devtools/2024/9/23 0:00:20/

1传输层协议

传输层主要有两个常见的协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP 提供可靠的、面向连接的通信服务,适用于对数据传输可靠性要求高的场景,如网页浏览、文件传输等。而 UDP 则提供无连接的通信服务,适用于对实时性要求高的场景,如音视频传输、实时游戏等。

TCP(传输控制协议)和UDP(用户数据报协议)是传输层中两种最常用的协议,它们有不同的特点和适用场景。

TCP(传输控制协议)

  1. 特点

    • 面向连接:在通信前需要建立连接,通信结束后释放连接。
    • 可靠性:提供可靠的数据传输,通过序号、确认和重传机制来保证数据的可靠性。
    • 流量控制:通过滑动窗口机制来控制数据发送速率,防止发送方过载接收方。
    • 拥塞控制:通过拥塞窗口和慢启动等算法来避免网络拥塞。
    • 面向字节流:数据被视为连续的字节流进行传输,不保留边界信息。
  2. 适用场景

    • 对数据传输可靠性要求高的场景,如文件传输、网页浏览等。
    • 需要确保数据按照顺序到达的场景,如视频流、远程桌面等。
    • 网络资源占用情况有一定容忍度的场景,如不关注实时性的大文件下载。

UDP(用户数据报协议)

  1. 特点

    • 无连接:不需要建立连接,直接发送数据包。
    • 不可靠性:不保证数据的可靠传输,可能丢失、重复或乱序。
    • 简单性:协议简单,传输开销小,适用于实时性要求高的应用场景。
  2. 适用场景

    • 对实时性要求高、能容忍一定丢包的场景,如音频、视频传输、实时游戏等。
    • 传输量较小、对资源消耗要求低的场景,如 DNS 查询、NTP 时间同步等。
    • 不需要确保数据按照顺序到达的场景,如实时数据采集、广播等。

总结

TCP 和 UDP 是传输层中两种不同的协议,各有其特点和适用场景。TCP 提供可靠的、面向连接的通信服务,适用于对数据传输可靠性要求高的场景;而 UDP 则提供了简单、高效的无连接通信服务,适用于实时性要求高、能容忍一定丢包的场景。在选择 TCP 还是 UDP 时,需要根据具体应用的需求和特点进行综合考虑。


http://www.ppmy.cn/devtools/30883.html

相关文章

Python 发送钉钉消息(markdown格式)

send.py import requests import json from config import *def sendDing():"""给钉钉发送消息,使用markdown格式在发送的消息后,需要手动一次"""text msg .join([f"{i}" for i in at_list])data {"m…

xml,json和protobuffer

数据组织格式 xmljsonprotobuffer小结 xml 是以成对的方式,来表示"键值对"的信息,同时标签支持嵌套,可以构成更复杂的树形结构数据. 请求: <request> // 开始标签<username>zhangsan</username> // 表示的是键值对 key:username value: zhangsan&l…

自然语言处理: RAT = CoT + RAG

Retrieval Augmented Thoughts (RAT) 是一种协同思维链 (CoT) 和检索增强生成 (RAG) 的 AI 提示策略&#xff0c;助力解决具有挑战性的长任务推理和生成。 RAG 有关于RAG的介绍可以参考我之前的博文: 自然语言处理: 第十五章RAG(Retrieval Augmented Generation) 开发能够像人…

vue查询数据里面指定的数据

vue查询数据里面指定的数据 可以通过find函数进行查找&#xff0c; 以下是find函数的用法&#xff1a; this.meal_tables.find(item > item.price 10)查询的结果是复合条件的数据 注意&#xff1a; this.meal_tables为一个对象数组 meal_tables: []

线性卷积和圆周卷积

文章目录 【 1. 线性卷积 】1.1 图解分析1.2 矩阵相乘实现线性卷积1.3 圆周卷积实现线性卷积1.4 实例:线性卷积的两种实现方法【 2. 圆周卷积 】2.1 图解分析2.2 矩阵相乘实现圆周卷积2.3 频域点乘实现圆周卷积2.4 实例:圆周卷积两种实现方法【 3. 线性卷积和圆周卷积的等价 …

rust语言tokio库spawn, blocking_spawn等的使用

目录 tokio的spawn以及spawn_blocking的使用tokio::task::spawn方法解析tokio::task::spawn_blocking()方法解析 时间会遗忘一切 最后更新时间2024.04.29 tokio版本&#xff1a; tokio的spawn以及spawn_blocking的使用 tokio::task::spawn方法解析 tokio的实现原理以及源码…

Python语言在地球科学中地理、气象、气候变化、水文、生态、传感器等数据可视化到常见数据分析方法的使用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;Python能够运行在Linux、Windows、Macintosh、AIX操作系统上及不同平台&#xff08;x86和arm&#xff09;&#xff0c;Python简洁的语法和对动态输入的支持&#xff0c;再加上解释性语言的本质&…

【leetcode】二分搜索题目总结

704. 二分查找 class Solution { public:int search(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] == target) {return mid;} else if (nums[mid] < t…