当前位置: 首页 > news >正文

第五章:TCP和UDP基本原理

TCP和UDP基本原理

  • 一、TCP/IP传输层的作用
  • 二、 端口
    • 1.范围
    • 2. 服务端
    • 3. 客户端
    • 4. 常见知名端口号
      • 4.1 TCP 80 HTTP
      • 4.2 TCP 20 21 FTP
      • 4.3 TCP 23 TELNET
      • 4.4 TCP 25 SMTP
      • 4.5 UDP 53 DNS
      • 4.6 TCP 443 HTTPS
  • 三、 TCP原理
    • 1. TCP头部封装格式
      • 1.1 Source Port 源端口
      • 1.2 Destination Port 目的端口
      • 1.3 Seq 序列号
      • 1.4 Acknowledgement 确认号
      • 1.5 Data Offset 数据偏移
      • 1.6 Reserved 保留位
      • 1.7 Urg 紧急开关
      • 1.8 Ack 确认位开关(重点)
      • 1.9 Psh 直接提交缓存数据
      • 1.10 Rst 复位开关(重点)
      • 1.11 Syn 握手开关(重点)
      • 1.12 Fin 结束开关(重点)
      • 1.13 window 窗口尺寸
      • 1.14 Checksum 校验序列
      • 1.15 Urgent Pointer 紧急指针
      • 1.16 Options 可选项
    • 2. TCP可靠机制
      • 2.1 确认机制
      • 2.2 三次握手
      • 2.3 四次挥手
      • 2.4 RST结束连接
      • 2.5 窗口机制
      • 2.6 完整性校验
    • 3. TCP特征
      • 3.1 优点
      • 3.2 缺点
    • 4. TCP的适用场景
  • 四、 UDP原理
    • 1. UDP特征
      • 1.1 优点
      • 1.2 缺点
    • 2. UDP的使用场景
  • 五、 比较

一、TCP/IP传输层的作用

  1. 提供面向连接或无连接的服务
  2. 维护连接状态
  3. 对应用层数据进行分段和封装
  4. 实现多路复用
  5. 可靠的传输数据
  6. 执行流量控制

二、 端口

每个应用程序进出网络都需要经过一个唯一端口,
通过端口号来识别数据交由哪个应用程序处理

1.范围

1 - 65535

2. 服务端

固定端口号

3. 客户端

1024以上随机端口

4. 常见知名端口号

4.1 TCP 80 HTTP

超文本传输协议

4.2 TCP 20 21 FTP

文件传输协议

4.3 TCP 23 TELNET

远程登录

4.4 TCP 25 SMTP

简单邮件传输协议

4.5 UDP 53 DNS

域名解析协议

4.6 TCP 443 HTTPS

HTTP over SSL

三、 TCP原理

1. TCP头部封装格式

1.1 Source Port 源端口

1.2 Destination Port 目的端口

1.3 Seq 序列号

标识本机发送的数据报文编号

1.4 Acknowledgement 确认号

标识请求对方下次发送的数据报文编号

1.5 Data Offset 数据偏移

标识数据分段在完整数据中的位置

1.6 Reserved 保留位

1.7 Urg 紧急开关

1.8 Ack 确认位开关(重点)

1.9 Psh 直接提交缓存数据

1.10 Rst 复位开关(重点)

用于强行中断TCP连接

1.11 Syn 握手开关(重点)

1.12 Fin 结束开关(重点)

1.13 window 窗口尺寸

用来通知本机的接收能力

1.14 Checksum 校验序列

1.15 Urgent Pointer 紧急指针

1.16 Options 可选项

2. TCP可靠机制

2.1 确认机制

  1. Seq = 上一次ack
  2. Ack = 上一次的seq + length
  3. 如果没有接收到,或接收到的是不完整数据,会再次发送Ack请求对方重发

2.2 三次握手

  1. 第一次 SYN置位 A-B
  2. 第二次 SYN,ACK置位 B-A
  3. 第三次 ACK置位 A-B

2.3 四次挥手

  1. 第一次 FIN置位 A-B
  2. 第二次 ACK置位 B-A
  3. 第三次 FIN置位 B-A
  4. 第四次 ACK置位 A-B

2.4 RST结束连接

  1. 收到RST置位的包后,立即结束TCP连接
  2. 发出RST置位的包后,不必等待对方的确认,直接结束TCP连接

2.5 窗口机制

滑动窗口 通过通告对方本机接收能力,来实现流量控制

2.6 完整性校验

通过Checksum来检查数据完整性

3. TCP特征

3.1 优点

传输可靠性高

3.2 缺点

占用带宽高,传输延迟高

4. TCP的适用场景

对数据完整性要求高,但是对传输延迟要求低

四、 UDP原理

在这里插入图片描述

1. UDP特征

1.1 优点

占用带宽低,传输延迟低

1.2 缺点

没有任何可靠性机制

2. UDP的使用场景

对传输延迟要求高,但数据完整性要求低

五、 比较

在这里插入图片描述

相关文章:

第五章:TCP和UDP基本原理

TCP和UDP基本原理 一、TCP/IP传输层的作用二、 端口1.范围2. 服务端3. 客户端4. 常见知名端口号4.1 TCP 80 HTTP4.2 TCP 20 21 FTP4.3 TCP 23 TELNET4.4 TCP 25 SMTP4.5 UDP 53 DNS4.6 TCP 443 HTTPS 三、 TCP原理1. TCP头部封装格式1.1 Source Port 源端口1.2 Destination Por…...

算法:动态规划的入门理解

文章目录 算法原理题目解析第n个泰波那契数列三步问题使用最小花费爬楼梯 从本篇开始总结的是动态规划的一些内容,动态规划是算法中非常重要的一个版块,因此也是学习算法中的一个重点,在学习动态规划前应当要把动态规划的基础知识学习一下 算…...

最新版nacos 2.2.3服务注册与发现版本依赖问题

最新版nacos的注册服务时配置文件写的是对的,但就是在nacos web页面无法看见服务,此时你需要注意你的依赖是否正确 spring: application:name: orderservicecloud:nacos:discovery:server-addr: 122.51.115.127:8848父工程依赖:现在最新的s…...

2023年中国合同能源管理行业研究报告

第一章 行业概况 1.1 定义及分类 合同能源管理 (Energy Performance Contracting, EPC) 是当前能源行业中一个重要的概念,它构建了一个桥梁,将节能服务公司 (Energy Management Company, EMCo) 与用能单位紧密联系在一起。通过特定的契约形式&#xff…...

php以半小时为单位,输出指定的时间范围

//可预订小时范围$hour [];for ($i$startHour*3600;$i<$endHour*3600;$i1800){//以半小时为单位输出$startHourItem date(H:i,strtotime(date(Y-m-d))$i);//小时开始$endHourItem date(H:i,strtotime(date(Y-m-d))$i1800);//当前时间再加半小时$hourItemStr $startHourI…...

Electron应用的 asar 打包 解压

前言&#xff1a; .asar文件是一种归档文件格式&#xff0c;通常用于封装Electron应用程序的资源。Electron是一个使得开发者能够使用Web技术构建跨平台桌面应用程序的框架。为了提高性能和简化部署&#xff0c;Electron应用程序的资源通常会被打包到一个.asar文件中。 安装 as…...

蓝桥等考Python组别十七级003

第一部分:选择题 1、Python L17 (15分) 运行下面程序,输出的结果是( )。 def func(x, y): return (x + y) // 3 print(func(7, 5)) 2468正确答案:B 2、Python L17 (15</...

Redis概述和与SpringBoot的整合

Redis是一种高性能的键值对存储数据库&#xff0c;它支持多种数据结构&#xff0c;包括字符串、哈希、列表、集合和有序集合等。Redis具有快速、可靠、灵活和可扩展等特点&#xff0c;也被广泛应用于缓存、队列和排行榜等场景。 SpringBoot是一种基于Spring框架的快速开发脚手…...

Python 中的 round() 函数:实现精确的数值舍入操作

round(x, n) 函数用于对数值 x 进行舍入操作&#xff0c;并指定保留的小数位数为 n。它的工作原理如下&#xff1a; 如果 x 的小数位数小于等于 n&#xff0c;则直接返回 x 本身。例如&#xff0c;round(3.1415, 2) 将返回 3.14。 如果 x 的小数位数大于 n&#xff0c;则按照四…...

在springboot中如何开启Bean数据校验

①&#xff1a;添加JSR303规范坐标与Hibernate校验框架对应坐标 <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId> </dependency><dependency><groupId>org.hibernate.validator<…...

【C语言好题系列三】

文章目录 学习导航一. 选择题二. 编程题(力扣/牛客网&#xff09;三. 总结 学习导航 一. 选择题 如下程序的运行结果是&#xff08;D&#xff09; char c[5]{a, b, \0, c, \0}; printf("%s", c);A: ‘a’ ‘b’ B: ab\0c\0 C: ab c D: ab 答案解析&#xff1a; 正…...

ElasticSearch搜索引擎:常用的存储mapping配置项 与 doc_values详细介绍

一、ES的数据存储结构&#xff1a; ES底层使用 Lucene 存储数据&#xff0c;Lucene 的索引包含以下部分&#xff1a; A Lucene index is made of several components: an inverted index, a bkd tree, a column store (doc values), a document store (stored fields) and te…...

[Spring]事务的传播机制

一、背景 Mysql在修改完数据后&#xff0c;默认会自动触发事务Commit提交。 而在我们服务的一个方法里&#xff0c;需要多次修改Mysql记录。 为了保证原子性&#xff0c;我们需要将Mysql设为手动提交&#xff0c;多次修改后再commit提交。 二、Spring事务 1、编程式事务管理…...

linux下,如何查看一个文件的哈希值md5以及sha264

在linux终端中&#xff0c;可能存在多个相似的文件&#xff0c;而哈希值可以唯一确定一个文件。文件的哈希值计算可以有以下两种方式&#xff0c;MD5和SHA256&#xff0c;现将两种方式罗列如下&#xff1a; 1、MD5 命令&#xff1a;$ md5sum FileName 一个文件的 MD5 是固定的…...

Java类加载过程

一、前言 我们都知道计算机的底层逻辑都是0和1的编码&#xff0c;当然除了现在所研究的量子计算除外。那么我们在计算机所做的一切操作&#xff0c;底层原理是不是都可以翻译到0和1呢。如果刨根问底的话&#xff0c;可以这么说&#xff0c;当然0和1的表示也属于逻辑门电路电的…...

人脸活体检测技术的应用,有效避免人脸识别容易被攻击的缺陷

随着软件算法和物理终端的进步&#xff0c;人脸识别现在越来越被广泛运用到生活的方方面面&#xff0c;已经成为了重要的身份验证手段&#xff0c;但同时也存在着自身的缺陷&#xff0c;目前常规人脸识别技术可以精准识别目标人像特征&#xff0c;并迅速返回比对结果&#xff0…...

大数据发展史

一、hadoop发展史 hadoop创始人Doug Cutting&#xff0c;主要为了实现Google类似全文搜索功能,该功能是基于Lucene框架进行优化升级,索引引擎; 2001年底Lucence成为Apache基金会的一个子项目,当时为了解决存储海量数据困难,检索海量速度慢,可以说Google是hadoop的思想之源; GFS…...

有关范数的学习笔记

向量的【范数】&#xff1a;模长的推广&#xff0c;柯西不等式_哔哩哔哩_bilibili 模长 范数 这里UP主给了说明 点赞 范数理解&#xff08;0范数&#xff0c;1范数&#xff0c;2范数&#xff09;_一阶范数-CSDN博客 出租车/曼哈顿范数 det()行列式 正定矩阵&#xff08;Posit…...

如何通过MES系统提高生产计划效率?

导 读 ( 文/ 1730 ) 在现代制造业中&#xff0c;通过制造执行系统&#xff08;MES&#xff09;系统来提高生产计划效率是至关重要的。本文将介绍如何通过MES系统来优化生产计划&#xff0c;包括实时数据分析、智能排程和协同协作。通过这些关键方法&#xff0c;企业可以提高生产…...

持续提升信息安全运维保障服务能力,天玑科技助力企业快速实现数字化转型

近年来&#xff0c;以互联网、云计算、大数据、物联网为代表的新一代信息技术快速发展。给人们的生产生活方式带来方便的同时&#xff0c;也给信息系统的安全带来了严峻的挑战。我国信息化和信息安全保障工作的不断深入推进&#xff0c;以应急处理、风险评估、灾难恢复、系统测…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...