FPGA之tcp/udp

在调试以太网的过程中,考虑了vivado IP配置(管脚、reset等),SDK中PHY芯片的配置(芯片地址、自适应速率配置等),但是,唯独忽略了tcp/udp协议,所以在ping通之后仍无法连接。

所以现在来学习一下tcp与udp的区别 ---- 为什么要用tcp而不是udp协议。

百度安全验证icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1748334531859727810&wfr=spider&for=pc

TCP与UDP(非常详细)_tcp和udp-CSDN博客 

详细介绍了tcp的数据格式、流量控制等:

计算机网络-TCP/UDP详解(最全)_tcp udp-CSDN博客 

tcp与udp的概念

tcp:

是一种面向有连接的传输层协议。适用于要求可靠传输的应用。

udp:

是一种面向无连接的传输层协议。适用于实时应用(速度快,但可能产生丢包)。

tcp

tcp通信

三次握手、传输确认、四次挥手。

三次握手

客户端 --> 服务端:客户端想服务端发起连接,会先发一包连接请求数据(SYN包),询问能否建立连接

服务端 --> 客户端:服务端收到后,同意连接,就会回复一包SYN+ACK包

客户端 --> 服务端:客户端收到后,发送一包ACK包,连接建立

目的:为了防止已失效的请求报文  突然传到服务器,引起错误(服务端会认为客户端再次请求连接,但是客户端并没有 -- 因为是之前发送的请求)

数据传输

一包数据可能会被拆成多包发送。可能会发生:丢包、数据包到达的先后顺序不同。

tcp协议为每一个连接建立了发送缓冲区。从建立连接后的第一个字节序列号为0,后面的字节的序列号依次加1。发送数据时,从数据缓冲区取一部分数据组成发送报文,在tcp协议头中会附带序列号和长度,接收端在收到数据后需要回复确认报文,确认报文中的ACK等于接收序列号加长度,即下包数据发送的起始序列号。

四次挥手

客户端/服务端发起关闭连接请求。

客户端 --> 服务端:客户端给服务端发起一包FIN包,表示要关闭连接,并且进入终止等待1状态

服务端 --> 客户端:服务端收到FIN包,发送一次ACK包,表示自己进入关闭等待状态,此时客户端进入终止等待2状态

此时服务端还可以发送数据,客户端还可以接收数据

服务端 --> 客户端:待服务端发送完数据后,发送一包FIN包,进入确认状态

客户端 --> 服务端:客户端收到FIN包后,回复ACK包,进入超时等待状态,经过超时时间后关闭连接;服务端收到ACK包后,立即关闭连接

客户端超时等待状态的目的:确保发送的ACK包被服务端接收(如果服务端没有收到,就会一直等待确认,然后会重新发送FIN包,客户端收到FIN包后会重发ACK包,并刷新超时时间)

Socket

tcp把连接作为最基本的对象,每一条tcp连接都有两个端点 -- 即套接字(socket),端口号拼接到IP地址即构成了套接字。

udp

udp是非连接的。

发送数据:把数据包封装一下,从网卡发出。

数据包之间并没有状态上的联系。

优点:速度快,性能损耗少,cpu内存资源占用小于tcp

缺点:可能产生丢包,传输稳定性不如tcp

区别

tcp面向连接,udp面向无连接;

tcp是可靠的,udp是不可靠的;

tcp只能一对一,udp支持一对一,也支持一对多,多对多多对一的方式(单播、多播、广播);

tcp面向字节流,udp面向报文

tcp会产生粘包问题,udp会产生丢包问题;

...

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

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

相关文章

浪潮信息IPF24:AI+时代,创新驱动未来,携手共创智慧新纪元

如今,数字化时代的浪潮席卷全球,人工智能已经成为推动社会进步的重要引擎。浪潮信息IPF24作为行业领先的AI技术盛会,不仅为业界提供了交流合作的平台,更在激发创新活力、拓展发展路径、加速AI技术落地等方面发挥了重要作用。 升级…

OS复习笔记ch6-2

死锁的解决 死锁的预防(打疫苗)死锁的避免(戴口罩)死锁的检测(做核酸) 死锁的预防 前面我们提到了死锁的四个必要条件 防止前三个必要条件,就是间接预防防止最后一个必要条件–循环等待&…

软测刷题-错题1

提高测试效率的方法: 1、不要做无效的测试 2.不要做重复的测试 3.不同测试版本的测试侧重点 4.优化测试顺序 LoadRunner是对服务器进行施压。 在数据库中存在的用户数是指注册用户数。 input标签可以直接使用send_keys实现上传,而非input标签是无法直…

Rust后台管理系统Salvo-admin源码编译

1.克隆salvo-admin后台管理系统源码: https://github.com/lyqgit/salvo-admin.git 2.编译 编译成功 3.创建mysql数据库与执行sql脚本 输入名称ry-vue 执行sql脚本 全部执行上面3个sql 修改数据库用户名与密码: 清理及重新编译 cargo clean cargo build 4.运行并测试 cargo…

使用vue,mybatis,mysql,tomcat,axios实现简单的登录注册功能

目录 第一步环境搭建 后端: 前端: 第二步画流程图 web: service: dao层: 第三步前端代码的实现 这是开始的页面,接下来我们要到router路由下书写#login的路径 路由中的component在我们自己创建的views书写vue文件…

单日收益1000+看了就会的项目,最新灵异短视频项目,简单好上手可放大操作

各位好友,佳哥在此与大伙儿聊聊一项神秘莫测的短视频项目。你或许会想,“又是一个视频创作项目?” 但别急,这个项目与众不同,日入千元不再是梦,而且它的易用性让人惊喜,无论你是初学者还是资深玩…

春秋云境CVE-2018-7422

简介 WordPress Plugin Site Editor LFI 正文 1.进入靶场 2.漏洞利用 /wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path/../../../../../../flag看别人wp做的。不懂怎么弄的,有没有大佬讲一下的

没有电商经验的人去操作抖音小店,难度大不大?好操作吗?

大家好,我是电商小V 很多新手小伙伴想去操作抖音小店项目,咨询的最多的问题就是我没有电商运营的经验可以去操作吗? 当然是可以操作的,抖音小店项目对于新手来说是一个非常友好的项目,很多小伙伴都是感觉没有电商经验去…

数据库攻防之MySQL

MySQL 是最流行的关系型数据库,与此同时也是 web 应用中最好的关系型数据库管理应用软件。我们在渗透过程中碰到的 PHP 站点大部分都会搭配 MySQL 数据库,因此它是红队攻防中最常遇到的数据库。 0x01 MySQL简介 MySQL 是典型的关系型数据库,…

YOLOv10 | 无NMS的YOLO | 实时端到端目标检测的新突破

过去几年里,YOLOs因在计算成本和检测性能之间实现有效平衡而成为实时目标检测领域的主流范式。研究人员针对YOLOs的结构设计、优化目标、数据增强策略等进行了深入探索,并取得了显著进展。然而,对非极大值抑制(NMS)的后…

redis--消息队列

分类 生产者消费模式 发布者订阅模式 生产者消费模式 在生产者消费者(Producer/Consumer)模式下,上层应用接收到的外部请求后开始处理其当前步骤的操作,在执行完成后将已经完成的操作发送至指定的频道(channel)当中,并由其下层的应用监听…

【Chrono Engine学习总结】6-创建自定义场景-6.2-chrono中的光线设置

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 上一篇文章中,自己【用sketchup重建了三维场景】,但导入chrono中颜色很不正确,几乎都是白色的,但也不是完全白色。经过…

IDE上传本地仓库到GitHub

IDE上传本地仓库到GitHub 1、选择远程仓库平台2、下载安装Git3、IDE集成Git4、本地项目上传GitHub 1、选择远程仓库平台 1.1、注册远程仓库平台 常见的远程仓库托管平台有: 1)GitHub 域名:https://github.com 介绍:GitHub是全球最…

Java订餐系统源码 springboot点菜系统源码

Java订餐系统源码 springboot点菜系统源码 源码下载地址:https://download.csdn.net/download/xiaohua1992/89341358 功能介绍: 前台登录:前台登录: ①首页:菜品信息推荐、菜品信息展示、查看更多 ②菜品信息&…

地理信息系统(GIS)软件开发

地理信息系统(GIS)软件开发是一项复杂且系统性很强的工程,涉及空间数据的采集、管理、分析和展示。以下是一个典型的GIS软件开发流程,包括各个步骤的详细说明。北京木奇移动技术有限公司,专业的软件外包开发公司&#…

面向对象------多态

1.多态的定义 通俗来说,当同一种行为或者事情发生在不同的对象上,这些行为或者事情最终得到的结果不同。 注意:多态要发生在继承的基础上。 例如:彩色打印机和黑白打印机。 彩色打印机和黑白打印机是不同的对象,但…

详细分析Element中的MessageBox基本知识(附Demo)

目录 前言1. 基本知识2. Demo2.1 确认框2.2 警告框2.3 对话框 3. this.$confirm 前言 详细知识推荐阅读:详细分析Element Plus中的ElMessageBox弹窗用法(附Demo及模版) MessageBox则常用于Vue2 1. 基本知识 MessageBox 是 Element UI 提供…

Liunx学习随笔

Linux学习随笔 一.前期准备1.安装Vmware Workstation软件2.下载linux镜像3.安装操作系统 夕阳无限好,只是近黄昏,时隔一年,重新提笔 没有比脚更远的路,没有比人更高的山 一.前期准备 1.安装Vmware Workstation软件 下载地址&am…

南京观海微电子----升压和降压模块电路解析

(一)升压模块 1. 如果是交流电压升压,那非常简单,只要选择变比合适的变压器就行(1:3和1:4.17); 2. 如果是直流电压升压,从12v升到36v也很容易,可选择用的开关稳压器很多,例如 :Cs5171.Cs5172.Cs5173.Cs5174.Mc33063.…

【调和级数】100321. 优质数对的总数 II

本文涉及知识点 调和级数 质数、最大公约数、菲蜀定理 LeetCode100321. 优质数对的总数 II 给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j) 为 优质数对&#…