网工基础协议——TCP/UDP协议

news2024/10/6 8:38:09

TCP和UDP的不同点:

TCP(Transmission Control Protocol,传输控制协议);

UDP(User Data Protocol,用户数据报协议);

TCP:传输控制协议,面向连接可靠的协议,只能适用于单播通信,基于建立好的连接,灵活的对接下来的数据传输控制。

UDP:用户数据包协议,面向无连接不可靠的协议。保证数据正常传输,UDP无法进行控制,则需要基于上层协议进行控制。

区别:

TCP——无法很好满足及时性业务(文件类传输业务好满足,可靠);

UDP——可以很好满足及时性业务(对时间要求高的业务)。

UDP:上层数据过大,UDP无法分片,交于网络层进行分片。

TCP:自带分片功能,感知上层数据大小做分片,网络层不做分片。

传输层:实现“端到端”的服务,应用到应用;基于应用级别的互访就是端口到端口的互访。

端口范围:0~65535;TCP/UDP;端口占用/释放

范围0~1023,知名端口,提前保留出来的端口;

范围>=1024,随机高端口,随机产生;

TCP协议:telnet服务[23];HTTP服务[80];HTTPS[443];SSH[22];FTP服务[20/21]

UDP协议:DNS服务[53];DHCP协议[67/68]

协议字段protocol:6,代表TCP协议;17代表UDP协议;

五元组——适用于高级ACL(源端口、目的端口、源IP、目的IP、协议号)

超时重传机制:RTTS,加权的平均往返时间(数据全丢)

TCP流量控制

TCP协议字段注释:

SYN:同步SYN,在连接建立时用来同步序号(当SYN=1,ACK=0时表示这是一个连接请求报文段,当对方同意建立连接时恢复一个SYN=1,ACK=1的报文段)。

seq-Sequence Number:表示这个TCP包的序列号(TCP协议拼凑接收到的收据包时,根据seq来确定顺序并且能够确定是否有数据包丢失)。

ack-acknowledgment Number:表示这个包的确认号。(首先确认已收到对方的多少数据,其次告诉对方接下来的包的seq要从ack确定的数值继续接力+1)。

FIN:终止FIN,用来释放连接。(当FIN=1时,表示此报文段的发送方的数据已发送完毕,并要求断开此连接)

窗口的功能:减少多次确认;缓存机制(备份);重传(存在丢包,在哪里丢,从哪里传)

以太网≤1500B;窗口的大小=一次性可发送的包个数。

TCP的端口号(区分应用程序的流量):FTP-21/20;HTTP-80;telnet-23;SMTP-25;HTTPS-443

注释:

1、源/目的端口:源/目的主机的应用程序端口号;

2、序号、确认序号:TCP可靠传输的关键部分。序号是本报文段发送数据组的第一个字节的序号(在TCP传输流中,每一个字节一个序号。如:e.g的序号为300,数据部分为100字节,则下一个报文段的序号为400),所以序号保证了TCP传输的有序性。确认序号,即Ack,指明下一个期待收到的字节序号,表明该序号之前所有数据已全部正确收到(确认序号只有当Ack=1是有效)。

3、数据偏移/首部长度:由于首部可能含有可选项内容,因此TCP头部的长度是不确定的,报头不包含任何可选字段则长度为20字节,4位首部长度字段所能表示的最大值为1111,转换为十进制为15,15*32/8=60,故报头最大长度为60字节。首部长度也叫数据偏移(首部长度实际指示了数据区在报文段中的起始偏移值)。

4、保留:为将来定义新的用途保留,为0.

5、控制位:

        1)URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。

        2)ACK:确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。

        3)PSH:push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。

        4)RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。

        5)SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。

        6)FIN:finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

UDP——直播、会议、大流量、游戏等应用数据使用的传输协议。

UDP传输过程:不提供重传机制,占用资源少,处理效率高。

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

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

相关文章

Remote Desktop Web修改密码,自动填写域前缀

C:\Windows\Web\RDWeb\Pages\zh-CN\password.aspx 内 添加 value“ITinfra” CMD或者powershell 重启IIS服务; iisreset

【漏洞复现】飞企互联-FE企业运营管理平台 ProxyServletUti接口处存在任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

设备全生命周期管理平台:各领域的关键手段

在当今的各个领域中,设备全生命周期管理平台正逐渐崭露头角,成为提高设备管理水平的关键手段。 数字化转型已成为众多企业的重要发展方向,将设备管理数字化可显著提高效率与准确性。同时,智能化应用,如利用人工智能和机…

Java——代码块

目录 一.代码块概念以及分类 二.普通代码块 三.构造代码块 四.静态代码块 一.代码块概念以及分类 使用 {} 定义的一段代码称为代码块。根据代码块定义的位置以及关键字,又可分为以下四种: 普通代码块构造块静态块同步代码块(后续讲解多…

【vue3】插件@tsparticles/vue3、tsparticles实现粒子特效

文章目录 一、安装依赖二、全局引入三、使用 一、安装依赖 npm i tsparticles/vue3 npm i tsparticles二、全局引入 // main.js import Particles from tsparticles/vue3 import { loadFull } from tsparticlesconst app createApp(App) app.use(Particles, {init: async (e…

远程连接服务器ubuntu系统的PyCharm打不开

问题:远程连接服务器ubuntu系统,PyCharm打不开 尝试杀死服务器进程,重新连接服务器:pkill -u 用户名XShell远程连接,都打不开 解决方案:

python复制文件夹内容

参考博客 https://blog.csdn.net/itfans123/article/details/133710731 案例1 import os import shutildef copy_folder(source_folder, destination_folder):# 创建目标文件夹os.makedirs(destination_folder, exist_okTrue)# 遍历源文件夹中的所有文件和文件夹for item in …

刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组

刷穿力扣006-剑指offer<一>数组——02寻找目标值-二维数组 基本面试题都是我带大家刷的力扣热题100和剑指offer的75道题&#xff0c;建议刷两遍&#xff01;&#xff08;ps:想找工作实习的同学&#xff0c;文末有面试八股和简历模板&#xff09; 题目&#xff1a; 语言…

Python爬虫入门教程!

什么是爬虫? 爬虫就是自动获取网页内容的程序&#xff0c;例如搜索引擎&#xff0c;Google&#xff0c;Baidu 等&#xff0c;每天都运行着庞大的爬虫系统&#xff0c;从全世界的网站中爬虫数据&#xff0c;供用户检索时使用。 爬虫流程 其实把网络爬虫抽象开来看&#xff0c;它…

【智能算法】能量谷优化算法(EVO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2023年&#xff0c;M Azizi等人受到物理理论粒子稳定性与衰变性启发&#xff0c;提出了能量谷优化算法&#xff08;Energy Valley Optimizer, DVO&#xff09;。 2.算法原理 2.1算法思想 EVO基于…

数据结构速成--栈

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 目录 一…

【ROS2】搭建ROS2-Humble + Vscode开发流程

【ROS2】搭建ROS2-Humble Vscode开发流程 文章目录 【ROS2】搭建ROS2-Humble Vscode开发流程1.基本环境配置2.搭建Vscode开发环境 1.基本环境配置 基本的环境配置包括以下步骤&#xff1a; 安装ROS2-Humble&#xff0c;可以参考这里安装一些基本的工具&#xff0c;可以参考…

Linux LVM与磁盘配额

目录 一.LVM概述 LVM LVM机制的基本概念 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; VG&#xff08;Volume Group&#xff0c;卷组&#xff09; LV&#xff08;Logical Volume&#xff0c;逻辑卷&#xff09; 二.LVM 的管理命令 三.创建并使用LVM …

2024 计算机毕业设计之SpringBoot+Vue项目合集(源码+L文+PPT)

各位朋友大家好&#xff0c;有幸与屏幕前你们相识&#xff0c;博主现已经搬砖9年&#xff0c;趁着头发还充裕&#xff0c;希望给大家提供一些编程领域的帮助&#xff0c;深知计算机毕业生这个阶段的崩溃与闹心&#xff0c;让我们共同交流进步。 博主给大家列举了项目合集&#…

Android Studio修改项目包名

1.第一步&#xff0c;项目结构是这样的&#xff0c;3个包名合在了一起&#xff0c;我们需要把每个包名单独展示出来 2.我们点击这个 取消选中后的包名结构是这样的&#xff0c;可以看到&#xff0c;包名的每个文件夹已经展示分开了&#xff0c;现在我们可以单独对每个包名文件夹…

ubuntu+安装Google Protobuf 库

本文参考文章如下 https://blog.csdn.net/wzw1609119742/article/details/119712422#t18https://blog.csdn.net/j8267643/article/details/134133091https://blog.csdn.net/jax_fanyang/article/details/135937002?spm1001.2014.3001.5502 现在论坛上据大部分的教程都是下面…

【深度学习实战(5)】使用仿射变换来实现自己的letter_box操作

一、letter_box 深度学习模型输入图片的尺寸为正方形&#xff0c;而数据集中的图片一般为长方形&#xff0c;粗暴的resize会使得图片失真&#xff0c;采用letterbox可以较好的解决这个问题。该方法可以保持图片的长宽比例&#xff0c;剩下的部分采用灰色填充。 二、代码 本例…

✌粤嵌—2024/4/3—合并K个升序链表✌

代码实现&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* merge(struct ListNode *l1, struct ListNode *l2) {if (l1 NULL) {return l2;}if (l2 NULL) {return l1;}struct Lis…

本地搭建属于你自己的AI搜索引擎 支持多家AI模型

FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器&#xff0c;并使用 MULTI LLM 生成答案&#xff0c;无需 GPU。用户可以提出问题&#xff0c;系统将进行多引擎搜索&#xff0c;并将搜索结果合并到LLM中&#xff0c;并根据搜索结果生成答案。全部免费使用。 项目…

老王讲IT:名片管理系统

综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点&#xff1a; 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动&#xff0c;显示名片管理系统欢迎界面&#xff0c;并显示功能菜单 ************************************************** 欢…