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

LWIP传输层协议笔记

传输协议简介

文件/图片/视频  都是一堆二进制数据

经过传输层来传输

这两种协议有什么区别呢?

传输层的TCP/UDP三个步骤

TCP使用传输流程

1、三次握手

作用:三次握手就是建立连接的过程

2、传输数据

作用:建立连接完成之后,双方可互发数据

3、四次挥手

作用:四次挥手就是关闭连接的过程

TCP协议--三次握手

closed 状态

listen 状态

ESTAB-LISHED 状态

握手交互内容

SYN

SYN +ACK

ACK

TCP协议--数据传输

MTU过大      TCP传输层分包       UDP网络层分片

TCP/IP 协议栈中定义了MSS, 为的是提高网络的性能,lwIP定义的MSS大小是1460

流量控制分两种

1、停止等待协议     2、滑动窗口协议

TCP引用了滑动窗口协议

滑动窗口协议

滑动窗口效果(发送方,窗口大小是4)

窗口相当于要同时并行的任务

开始并行窗口1234号同时发送4个包

发送1234号 后应答了1号包  2345 有成了并行窗口  1丢弃

发送2号 后应答了2号  3456 又成了并行窗口  2丢弃

滑动窗口的发送机 和接收机 如上一样的原理,其实就是展示图不同

发送缓冲区结构

回复确认结构

   组装数据:根据序列号和长度重组数据

如果掉包呢

发了1234 包  1号响应  滑动到2345

再次发送2345包

然后34包也响应了,但是2号没响应,此时TCP触发重传机制重新再发2号包;

因为此时也发送了5号包,接收方因为接收到345,而没有2,接收方会全部丢弃2345包

TCP协议--四次挥手

TIME-WAIT 定时等待状态

LAST-ACK 最后一次响应状态

UDP协议

UDP协议

基于非连接

简单封装数据包

给到网卡发送

UDP特点

无连接

通讯前无需建立连接,无需在通信结束后断开连接

不可靠

无法保证数据一定能完整有效的传输目标

无流量,拥塞

数据连续性比完整性要求更高、对轻微的数据差错不敏感

广播、组播

实现一对一(TCP)、一对多、多对多的数据传输

TCP协议 VS UDP协议

UDP协议

速度快、性能损耗少、资源占用少

TCP协议

稳定可靠、稳定性强、保证数据传输完整性

http://www.dtcms.com/a/186282.html

相关文章:

  • C++ asio网络编程(5)简单异步echo服务器
  • 【】东方财务的Choice数据量化接口,在linux上安装python 版本,需要联系客户经理审核通过后就可以使用了。使用接口更加稳定和全面。
  • 智能指针入门:深入理解 C++ 的 shared_ptr
  • 【Mysql基础】一、基础入门和常见SQL语句
  • Matlab自学笔记五十四:符号数学工具箱和符号运算、符号求解、绘图
  • LLaMA Factory 深度调参
  • 右值和移动
  • 国产化Excel处理控件Spire.XLS系列教程:如何通过 C# 删除 Excel 工作表中的筛选器
  • 开疆智能Profinet转Canopen网关连接sick RFID读写器配置案例
  • 212. 单词搜索 II【 力扣(LeetCode) 】
  • RDB和AOF的区别
  • Kubernetes vs. OpenShift:深入比较与架构解析
  • Java学习手册:客户端负载均衡
  • Matlab 模糊pid的液压舵机伺服系统
  • 基于微信小程序的城市特色旅游推荐应用的设计与实现
  • Milvus 2.4 使用详解:从零构建向量数据库并实现搜索功能(Python 实战)
  • 记一次redis未授权被种挖矿
  • Java中进阶并发编程
  • langchain4j中使用milvus向量数据库做RAG增加索引
  • 新能源汽车电池加热技术:传统膜加热 vs. 脉冲自加热
  • C++类成员
  • 【技巧】使用frpc点对点安全地内网穿透访问ollama服务
  • Ascend的aclgraph(五)PrimTorch TorchInductor
  • 网页Web端无人机直播RTSP视频流,无需服务器转码,延迟300毫秒
  • Dagster Pipes系列-1:调用外部Python脚本
  • 按钮导航组件 | 纯血鸿蒙组件库AUI
  • 基于STM32、HAL库的DPS368XTSA1气压传感器 驱动程序设计
  • Java高频面试之并发编程-16
  • 设置环境变量启动jar报
  • 基于SpringBoot的蜗牛兼职网设计与实现|源码+数据库+开发说明文档