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

TCP与UDP

端口

  • 每个应用程序进出网络都需要经过一个唯一端口,通过端口号来识别数据交由哪个应用程序处理。
  • 服务端:固定端口号。
  • 客户端:1024以上随机端口。
  • 知名端口号:
    • TCP80:HTTP
    • TCP20:FTP
    • TCP23:Telnet
    • TCP25:SMTP(远端邮件传输协议)
    • UDP53:DNS

TCP

TCP报文格式

在这里插入图片描述

  • 源端口
  • 目的端口
  • 序列号
  • 确认号(ACK):期望下一次从对方收到数据包的序列号
  • 数据偏移:用于数据分段的重组
  • 保留:后续功能扩展
  • 置位符:
    • SYN:同步标志位
    • FIN:结束标志位
    • ACK:确认标志位
    • RST:重置标志位,直接强行结束TCP连接
    • URG:紧急开关标志位,数据段里面有紧急内容,需要优先转发
    • PSH
  • 窗口:
  • 校验和
  • 紧急指针:指示报文中紧急的内容的位置
  • 选项
  • 填充

TCP可靠性机制

  • 确认机制
    Seq=上一次的ACK
    ACK=上一次的seq+length
    如果没有接收到,或接收到的是不完整数据,会再次发送ACK请求对方重发。
    在这里插入图片描述
  • 三次握手
    在这里插入图片描述
    ps:四次挥手
  • 窗口机制
    滑动窗口:通过通告对方本机接收能力,来实现流量控制。
    在这里插入图片描述
  • 完整性校验
    通过Checksum来检查数据完整性

TCP特征

  • 优点:传输可靠性高
  • 缺点:占用带宽高,传输延迟高
  • 适用场景:对数据完整性要求高,但是对传输延迟要求低

UDP

UDP报文格式

在这里插入图片描述

UDP特征

  • 优点:占用带宽低,传输延迟低
  • 缺点:没有任何可靠性机制
  • UDP适用场景:对传输延迟要求高,但数据完整性要求低

http://www.mrgr.cn/news/54309.html

相关文章:

  • set_dataset_splits(lrgb文件中的split_generator.py)
  • SQL-SERVER导入excel表格
  • React综合指南(二)
  • Docker 笔记
  • 计算机毕业设计 | SSM 校园线上订餐系统(附源码)
  • RabbitMQ 入门(四)SpringAMQP五种消息类型(Work Queue)
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Filter/Listener面试题
  • 基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
  • Python 列表专题:列表可变性
  • 游戏投屏软件有哪些?分享这10款比较好用的!
  • Java ArrayList 深入解析
  • 思维导图怎么制作?这四款制作思维导图的软件值得推荐!
  • LLMS-Stable diffusion 报错 index out of bounds
  • 调整奇数偶数的顺序
  • 正则表达式 - 修饰符
  • 【C++贪心 单调栈】1727. 重新排列后的最大子矩阵|1926
  • 数据分箱:决策树得到特征的分箱区间后后怎么映射到原数据中?
  • cs61a涉及图像转换的代码注释(Lecture01)
  • 高效的多进程编程:使用 Python `multiprocessing` 库进行进程管理
  • Lucas带你手撕机器学习——线性回归
  • golang 基本数据类型
  • 基于DNA算法的遥感图像加解密matlab仿真
  • 衡石分析平台系统分析人员手册-可视化报表仪表盘
  • 定时发送邮件
  • 【STM32-HAL库】STM32F系列新建工程并点灯教程(小白向)
  • Docker本地镜像发布到Docker Registry私有仓库