TCP与UDP

ops/2024/10/21 6:35:20/

端口

  • 每个应用程序进出网络都需要经过一个唯一端口,通过端口号来识别数据交由哪个应用程序处理。
  • 服务端:固定端口号。
  • 客户端: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.ppmy.cn/ops/127203.html

相关文章

大数据新视界 --大数据大厂之 Serverless 架构下的大数据处理:简化与高效的新路径

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【分布式微服务云原生】《逃离单体地狱:微服务架构的挑战与机遇》

标题:《逃离单体地狱:微服务架构的挑战与机遇》 摘要:本文深入探讨了“单体地狱”的概念及其带来的问题,以及从单体应用向微服务架构过渡时所面临的挑战和机遇。读者将了解到单体应用的困境、微服务架构的优势与复杂性&#xff0…

大数据新视界 --大数据大厂之 Ray:分布式机器学习框架的崛起

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Redis设计与实现 学习笔记 第九章 数据库

第9章到第14章属于本书第二部分:单机数据库的实现。 9.1 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态结构redis.h/redisServer的db数组中,db数组的每一项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库&…

Rancher—多集群Kubernetes管理平台

目录 一、Rancher 简介1.1 Rancher 和 k8s 的区别 二、Rancher 安装及配置2.1 安装 rancher2.2 登录 Rancher 平台2.3 Rancher 管理已存在的 k8s 集群2.4 创建名称空间 namespace2.5 创建 Deployment 资源2.6 创建 service2.7 Rancher 部署监控系统 一、Rancher 简介 Rancher …

PicoQuant GmbH公司Dr. Christian Oelsner到访东隆科技

昨日,德国PicoQuant公司的光谱和显微应用和市场专家Dr.Christian Oelsner莅临武汉东隆科技有限公司。会议上Dr. Christian Oelsner就荧光寿命光谱和显微技术的最新研究和应用进行了深入的交流与探讨。此次访问不仅加强了两家公司在高科技领域的合作关系,…

D43【python 接口自动化学习】- python基础之函数

day43 装饰器(上) 学习日期:20241020 学习目标:函数﹣- 56 装饰器:函数嵌套的定义与调用的区别 学习笔记: 变量作用域 变量读取顺序:local-》enclosed-》global-》builtin # 变量…

10-1.idea中的项目结构,辅助快捷键,模块的操作

idea中的项目结构和辅助快捷键 IDEA中项目结构 首先是创建项目,新建的项目中有子项目,我们可以创建模块 然后在模块中我们可以创建包,在包中的SRC中写我们的源代码,也就是类。 VScode写Java项目 如何你电脑比较卡的话&#…