网络-TCP&UDP

网络基础知识TCP&UDP OSI开放式互联参考模型 物理层(原始比特流传输) 数据链路层(物理寻址,将原始比特流转变为逻辑传输线路 包含错误检测) 网络层(控制子网运行) 传输层(必要时将数据进行分割,保证数据段有效到达对端) 会话层(管理会话) 表示层(语法语义的转换) 应用层(确定协议 TCP/IP-HTTP) TCP/IP协议群 传输控制协议TCP 面向链接的、可靠的、基于字节流的传输层通信协... 阅读详情

TCP

TCP 三次握手和四次挥手

三次握手

  • 客户端发消息给服务端(SYN)
  • 服务器针对客户端的 SYN 返回一个 ACK,并且发送一个 SYN 给客户端
  • 客户端针对服务端的 SYN 返回一个 ACK,服务端收到后确认连接

四次挥手

  • 客户端要求断开连接,发送一个断开的请求,这个叫作(FIN)
  • 服务端收到请求,发送给客户端一个 ACK,作为 FIN 的响应
  • 同时通知自己相应的应用程序:对方要求关闭连接,可能还有发送出去的消息没响应,或者还有资源需要释放。确认可以关闭连接后,服务器向客户端发送一个 FIN
  • 客户端收到这个 FIN 后,确认可以关闭连接,向服务端发送一个 ACK 表示连接彻底释放

TCP 如何保证可靠传输

  • 握手,应答机制
  • 滑动窗口控制
    • 滑动窗口是 TCP 协议控制可靠性的核心。发送方将数据拆包,变成多个分组,然后将这些分组放入一个拥有滑动窗口的数组,按先入先出(FIFO)的顺序依次发出。
    • 窗口中的分组会一次性发送
    • 窗口中最小的分组如果收到 ACK,窗口就会发生滑动,如果最小序号的分组长时间没有收到 ACK,就会触发整个窗口的数组重新发送
    • 发送方窗口和接收方窗口的区别在于已发送部分就等于已接收,中间为窗口,未发送部分就是未接收部分。窗口大小通常是接收方决定,当接收方给发送方回复 ack 的时候会携带接收方窗口大小,发送方就会根据这个回复来动态调整自己的窗口大小
  • 快速重传
  • 拥塞控制
    • 慢启动–指数启动–线性–回归慢启动

对比 UDP

  • 可靠性差异。TCP 会保证数据正确性和顺序,在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。UDP 只管发送数据封包。
  • 基于连接与无连接
  • 传输速度
  • 场景差异
  • 流控技术。TCP 在发送缓冲区中存储数据,并在接收缓冲区中接收数据

TCP 是怎么判断丢包的?

参考

  • https://zhuanlan.zhihu.com/p/101702312
  • https://lucifer.ren/fe-interview/#/topics/network/tcp
Synology File Station 官方 API 指南总结(中文版) 本文总结了Synology File Station官方API指南的核心内容,详细介绍了如何通过HTTP/HTTPS请求与DSM系统交互实现文件管理功能。主要内容包括: 基础API操作流程:从获取API信息、登录认证到执行请求和登出的完整工作流 请求构造与响应解析:JSON格式的请求参数处理和响应结果分析 关键API功能分类: 文件信息获取(List/Info) 文件搜索(Search) 收藏夹管理(Favorite) 缩略图生成(Thumb) 目录大小计算(DirSize) 文件上传(Upload)等 错 阅读详情

相关推荐

W5500以太网模块官方驱动移植

W5500驱动移植

weixin_42621095的博客 4131

【免费下载】 TCP&UDP测试工具,网络调试助手

TCP&UDP测试工具,网络调试助手 【下载地址】TCPUDP测试工具网络调试助手 这款TCP&UDP测试工具为网络开发人员提供了强大的调试支持,无论是客户端请求模拟还是服务器端响应验证,都能轻松应对。它支持TCP和UDP协议,适用于多种网络场景,帮助开发者快速定位问题、优化程序性能。无论是测试服务器响应,还是验...

gitblog_06741的博客 889

COT Buck和普通Buck的区别

传统的电流模控制的调制原理,由时钟脉冲信号 clk 的上升沿触发开始一个新的开关周期,d 由低变高,主开关闭合,流过它的电流和电感电流相等,并以固定斜率逐渐增大,直至 iL *Ri 与斜坡补偿信号 se 的和等于控制信号 vc;此时,比较器的输出电平由低变高,导通时间产生器被触发,其输出 d 由低变高,并产生一个固定的导通时间 Ton;然后 PWM 比较器的输出由低变高,导通时间产生器被触发,主开关闭合,电感电流逐渐增大,直到导通时间产生器计满固定的时间 Ton,d 变为低电平,主开关断开,周期结束。

模拟芯片设计 1129

TCP&UDP测试工具.zip:网络通信测试的利器

TCP&UDP测试工具.zip:网络通信测试的利器 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 一款支持TCP与UDP协议的数据传输和显示工具,适用于程序开发和调试。 项目介绍 在当今互联网技术快速发展的背景下,网络通信功能的稳定性和高效性是软件开发中的关键因素。今天,我们向您推荐一款名为“TCP&UDP测试工具.zip”的开源项目,它为开...

gitblog_06721的博客 407

AMD Ross FPGA Agent 实战:用 AI 驱动 Vivado 开发流程

在 EDA 领域,FPGA 开发长期面临工具链重、反馈周期长、报错晦涩等痛点。AI Agent 通过自然语言交互与工具调用,将 Vivado 的 Tcl 批处理流程封装为可编排、可观测的智能体,显著降低查文档与读报告的时间成本。其核心在于 Harness 与 Agent 的协同:Harness 提供安全执行环境,Agent 负责决策与迭代。典型应用包括工程创建、约束生成、综合实现报告解读及比特流失败排查。本文以 AMD Ross 为例,拆解其架构设计与实操方法,帮助开发者理解如何将 Agent 落地到高门槛

weixin_29189363的博客 1038

代码实现 —— 基于 STM32 的可见光通信系统课程设计

基于STM32F103ZET6,源码如需移植,需要修改定时器捕获通道引脚,及定时器,如果你也有这个课设任务,希望对你有所帮助。

不善挽留 1万+

网络根基之TCP&UDP基础知识

TCP和UDP原理和知识

技术容我懒 946

rk3568 OpenHarmony4.0如何使用中文输入法

问题:rk3568开发板 OpenHarmony4.0release系统自带输入法kikaInput软件只有英文输入,不含中文输入,不方便。本文基于rk3568开发板 OpenHarmony4.0release移植了laval社区发布的开发者手机中的搜狗输入法(测试版),实现了中文输入,为OpenHarmony4.0release的其他开发板中文输入提供参考。

Devlin_的博客 2917

网络编程——实验一:基于TCP&UDP的网络文件服务

目录 前言:本篇文章不提供知识点教学,只提供一些常见问题的解决方法和实现实验要求的学习路径 1 java IO 2 java Socket 2.1 创建简单的TCP连接 2.2 创建简单的UDP连接 2.3 创建多线程服务器+多用户连接服务器 3 文件传输 3.1 UDP文件传输 3.2 TCP文件传输 4 实现实验要求 3.1 简述实验要求 3.2 创建TCP和UD...

SealedJn的博客,学习分享,一起讨论 3191

泰克示波器TDS210改装便携示波器

泰克示波器TDS210改装编写示波器

超级网吧的博客 3080

Python 高级语法:闭包

闭包(Closure)是函数式编程中的一个重要概念。在Python中,闭包可以简单理解为:一种特殊的函数。外函数:嵌套函数中最外层的函数称之为外函数。内函数:嵌套函数中最内层的函数称之为内函数;内函数引用了外函数的临时变量;外函数的返回使用了临时变量的内函数。

moment159的博客 2354

Socket网络编程-TCP&UDP

认真学完,相信你会有收获 文章目录1.网络编程概述1.1 什么是网络编程1.1.1 理解网络编程1.1.2 网络编程结构1.2 IP地址及端口号2.Java网络编程-Socket2.1 网络套接字(Socket)2.2 Socket入门案例2.2.1 编写并运行服务器端2.2.2 编写并运行客户端2.2.3 如何运行?2.3 Socket获取对方IP地址2.3.1 服务端编写2.3.2 客户端编写...

兮赫的博客 886

基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab

其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。

学习使你进步。 1129

网络性能测试,TCP&UDP,总结

一,以太网测试 环境准备: 1、器件:CDU(大屏),tbox,以太网交换机 2,拷贝iperf可执行文件到CDU以及tbox设备中,给予iperf权限,adb命令adbshellchmod 777 /data/iperf 3,CDU(客户端时): 输入命令adb shell 输入ifconfig (我这里返回结果查看usb0是指本机的CDU的IP) 输入cd /data ...

lshdp的博客 252

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

网络编程TCP&UDP基础总结

1、TCP: |--特点:面向连接、虚电路连接、有缓冲的传输、全双工通信 |--对象: |--Socket:用来建立发送       端建立Socket服务的对象, |--ServerSocket:用来建立接收端建立Socket服务的对象。 因为只有当创建了Socket服务通道时,才能建立端点到端点的连接,进行数据通讯。 |--客户端和服务端建立连接: |--客户端: 思路: 1

q178266871的专栏 793

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

基于qt的网络TCP&UDP通信助手套件

注:write方法是异步,是先将要发送的数据放到数据缓冲区,最后同一发送,所以不能发到子线程,即不可以用Qt::DirectConnection这种发送方式。gitee链接git@gitee.com:LDLmcu/network-communication-assistant.git。基础通信部分借鉴了【正点原子】I.MX6U嵌入式Qt开发指南V1.1一文的相关例程。单播用于两个主机之间的端对端通信,需要知道对方的 IP 地址与端口。TCP多线程服务器及客户端展示。,仅在特定的本地范围内有效。

weixin_45706621的博客 1267

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C++QT开发——TCP&UDP网络编程

C++QT开发——TCP&UDP网络编程

m0_60259116的博客 3560

【Unity】网络通信(TCP&UDP)

Socket 接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,用以开发TCP/IP网络上的应用程序。也就是说Socket是TCP/UDP通讯的实现方式。TCP和UDP是传输层协议,使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。两者的不同是:TCP能提供有保证的数据传输,而UDP不提供,即UDP的数据容易丢失。

DevFrank的博客 1万+

Linux 网络编程——TCP&UDP

linux 网络编程——TCP&UDP

liulang_pingsai的博客 708

iOS 开发 网络编程详解之TCP&UDP

网络通信三要素 IP地址(主机名) 端口号 传输协议 IP地址(主机名)本地回环地址:127.0.0.1 主机名:localhost 每台计算机都有一个 127.0.0.1 如果 127.0.0.1 ping 不通,说明网卡不工作 如果本机地址 ping 不通,说明网线坏了端口号用于标示进程的逻辑地址,不同进程的标示 有效端口:0~65535 其中 0~1024由系统使用或者保留端口 开发中不要使用

高级软件开发工程师--周玉的博客 4146

【高级编程】网络编程 基于 TCP&UDP 协议的 Socket 编程

Socket 是一种网络通信的基础工具,它用于在计算机网络上进行数据传输。简而言之,Socket 提供了应用程序与网络之间的接口,使得应用程序可以通过网络发送和接收数据。Socket 的底层机制复杂,Java 平台提供了一些简单的 API,可以更简单有效的使用Socket 开发而无需了解底层机制。它提供了用于创建 UDP 套接字并通过其发送和接收数据报的功能。:表示要发送或接收的 UDP 数据包。为了在网络中不同的计算机之间进行通信而建立的规则、标准或约定的集合。包的一部分,用于实现基于TCP的网络通信。

m0_66584716的博客 1538

unity RPC网络传输以及网络编程之TCP&UDP的区别

unity 自带的network能满足一般的传输要求了,分两类,远程调用(RPC)和状态同步,其中状态同步适合做位置、方向之类的同步,RPC适合调用方法或提交数据。 要使用RPC 首先服务器端代码和客户端代码中所有的方法都必须一样,没有研究是否可以是方法名相同内容不同的情况。即使不用也要有! 把用于RPC的方法上面写上[RPC] 例如 [RPC] void ReceiveMessage(strin...

Wmayy_123的博客 1627

【C++】Qt:TCP&UDP网络通信示例

TCP&UDP网络通信示例

DevFrank的博客 5092

计算机网络协议 —— TCP&UDP

计算机网络协议之 —— TCP/UDP。

m0_47396773的博客 1388

【C++】基础:网络编程介绍与TCP&UDP示例

网络编程是C++ API操作中很重要的一部分,包含TCP和UDP。

DevFrank的博客 7068

网络|TCP&UDP,传输层中必须了解的那些协议

UDP 和 TCP 的基本特点        都是传输层协议,为应用层停供通用的数据传输服务。         用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信,效率较TCP更高,无需建立

xianghe_qqq的博客 443
上一篇: 网络-http概述
下一篇: 网络-websocket
__lucas
博客等级 码龄9年 329粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值