kafka的配置
server.properties
server.properties模板
# broker id,多个broker服务器的话,每个broker id必须不同
broker.id=1# kafka broker所在节点的
hostnamehostname=10.1.1.1.3:9092# 处理网络请求的线程数
num.network.threads= 8# 执行磁盘IO的线程数
num.io.threads=8# server使用的send buffer大小。
socket.send.buffer.bytes=1048576# server使用的recive buffer大小。
socket.receive.buffer.bytes=1048576# 接受的最大请求大小(防止OOM)
socket.request.max.bytes=104857600#-------------added by Kaim ---------------
# 加入队列的最大请求数(超过该值,network thread阻塞)
queued.max.requests=16# purgatory(炼狱)是个容器,用来存放不能马上答复的网络请求。如果能答复请求则从炼狱删除。这个是fetch炼狱保存的最大请求数。设置的比默认值小是据说因为这里有个BUG,不知道0.10.x中解决没# BUG说明见:http://blog.csdn.net/stark_summer/article/details/50203133fetch.purgatory.purge.interval.requests=100# 生产者炼狱保存的最大请求数
producer.purgatory.purge.interval.requests=100############################# 日志配置#############################
# 可以设置多个日志存放的路径
log.dirs=~/kafka-logs# 默认每个主题的分区数,生产环境建议值:
8num.partitions= 8# 启停时做日志恢复每个目录所需的线程数,采用RAID的时候可以增大该值
num.recovery.threads.per.data.dir=1# 写入磁盘的消息批大小
log.flush.interval.messages=10000# 强制刷新消息到磁盘的时间阈值
log.flush.interval.ms=10000# 日志保留的最少时间 由于做压测,防止占用磁盘太多,保留时间为1ms#
log.retention.hours=168log.retention.minutes=5# 每个日志段大小,超过该值会生成新日志段
log.segment.bytes=1073741824# 检查日志分段文件的间隔时间,以确定是否文件属性是否到达删除要求。
log.retention.check.interval.ms=300000# --------------added by kami--------------
# 自动创建主题
auto.create.topics.enable=true# 当执行一次fetch后,需要一定的空间扫描最近的offset,设置的越大越好,一般使用默认值就可以
log.index.interval.bytes=4096# 每个log segment的最大尺寸。注意,如果log尺寸达到这个数值,即使尺寸没有超过log.segment.bytes限制,也需要产生新的log segment。log.index.size.max.bytes=10485760# 检查是否需要fsync的时间间隔
log.flush.scheduler.interval.ms=2000# 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。
log.roll.hours=168# server可以接收的消息最大尺寸。重要的是,consumer和producer有关这个属性的设置必须同步,否则producer发布的消息对consumer来说太大。默认值均为一百万
message.max.bytes=1000000############################# Zookeeper #############################
# zookeeper server地址,如果有多个则用逗号分隔
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181# Timeout in ms for connecting to zookeeper# zk连接的超时时间
zookeeper.connection.timeout.ms=6000# zk follower的同步延迟时间
zookeeper.sync.time.ms = 2000############################ replication configuration added by KamiWan############### 从leader备份数据的线程数
num.replica.fetchers=4# 备份时每次fetch的最大值
replica.fetch.max.bytes=1048576# follwer执行fetcher请求时的最大等待时间
replica.fetch.wait.max.ms=500# 默认的replication数量,可以根据所需要的可靠性要求来配置
default.replication.factor=2# 性能调优
#处理网络请求的线程数
num.network.threads=3
#处理I/O操作的线程数
num.io.threads=8
#单个消息的最大大小
message.max.bytes=1000000#安全配置
#代理间通信使用的协议
security.inter.broker.protocol=SASL_PLAINTEXT
#启用的SASL认证机制
sasl.enabled.mechanisms=PLAIN
#代理间通信使用的SASL机制
sasl.mechanism.inter.broker.protocol=# 日志保留策略
log.retention.hours=168# 控制器和集群相关配置
#控制器监听的名称
controller.listener.names=PLAINTEXT
#是否允许未同步的副本被选为领导者
unclean.leader.election.enable=false
#:写入消息时需要的最小同步副本数
min.insync.replicas=3#Kafka 集群优化设置的参数
num.network.threads=9 (CPU数+1)默认是3
num.io.threads=16 (CPU数2到3倍)默认是8
# 每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
#默认是16384,有点小
batch.size = 100000
#加快备份的复制速度
num.replica.fetchers=4#消息从内存中写入磁盘是时候使用的线程数量。
#用来处理磁盘IO的线程数量
num.io.threads=8#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400#接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400#请求套接字的缓冲区大小
socket.request.max.bytes=104857600#我们知道segment文件默认会被保留7天的时间,超时的话就
#会被清理,那么清理这件事情就需要有一些线程来做。这里就是
#用来设置恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1#segment文件保留的最长时间,默认保留7天(168小时),
#超时将被删除,也就是说7天之前的数据将被清理掉。
log.retention.hours=168#滚动生成新的segment文件的最大时间
log.roll.hours=168#日志文件中每个segment的大小,默认为1G
log.segment.bytes=1073741824#上面的参数设置了每一个segment文件的大小是1G,那么
#就需要有一个东西去定期检查segment文件有没有达到1G,
#多长时间去检查一次,就需要设置一个周期性检查文件大小
#的时间(单位是毫秒)。
log.retention.check.interval.ms=300000#日志清理是否打开
log.cleaner.enable=true#broker需要使用zookeeper保存meta数据
zookeeper.connect=zk01:2181,zk02:2181,zk03:2181#zookeeper链接超时时间
zookeeper.connection.timeout.ms=6000#上面我们说过接收线程会将接收到的消息放到内存中,然后再从内存
#写到磁盘上,那么什么时候将消息从内存中写入磁盘,就有一个
#时间限制(时间阈值)和一个数量限制(数量阈值),这里设置的是
#数量阈值,下一个参数设置的则是时间阈值。
#partion buffer中,消息的条数达到阈值,将触发flush到磁盘。
log.flush.interval.messages=10000#消息buffer的时间,达到阈值,将触发将消息从内存flush到磁盘,
#单位是毫秒
log.flush.interval.ms=3000
.index 文件:
描述:这是 Kafka 的偏移量索引文件。它用于快速查找消息在日志文件中的位置。
命名格式:00000000000000000000.index
作用:通过这个索引文件,Kafka 可以快速定位消息在日志文件中的物理位置,以便更快地读取消息。
.log 文件:
描述:这是 Kafka 的日志文件,存储实际的消息数据。
命名格式:00000000000000000000.log
作用:包含了生产者发送的消息内容。每个日志文件是一个分区的一部分,日志文件的命名表示消息的起始偏移量。
.timeindex 文件:
描述:这是 Kafka 的时间戳索引文件,存储消息的时间戳索引。
命名格式:00000000000000000000.timeindex
作用:通过这个文件,Kafka 可以根据时间戳快速查找消息。这个文件对于实现基于时间的消息查找非常重要。
.snapshot 文件:
描述:这是 Kafka 的快照文件,记录了日志段的元数据快照。
命名格式:00000000000000000016.snapshot
作用:用于恢复日志段的元数据,保证在崩溃恢复时能够正确地重建索引和时间戳数据。
leader-epoch-checkpoint 文件:
描述:这是 Kafka 用于记录 leader 选举周期的检查点文件。
作用:记录了分区的 leader 副本在不同的选举周期中的偏移量信息,帮助 Kafka 在故障恢复时确定正确的 leader 和消息偏移量。
partition.metadata 文件:
- 描述:这是 Kafka 的分区元数据文件。
- 作用:存储分区的基本元数据信息,如分区的 leader、replica 列表等,用于分区的管理和协调
相关文章:
kafka的配置
server.properties server.properties模板 # broker id,多个broker服务器的话,每个broker id必须不同 broker.id1# kafka broker所在节点的 hostnamehostname10.1.1.1.3:9092# 处理网络请求的线程数 num.network.threads 8# 执行磁盘IO的线程数 num.io…...
Linux下Java通过JNI调用C++
以下为Demo流程 1.创建Java文件 public class HelloWord {// 声明本地方法public native void sayHello();static {// 加载本地库System.loadLibrary("hello");}public static void main(String[] args) {new HelloWord().sayHello();} } 2.编译生成.h头文件 在H…...
家政预约小程序数据库设计
目录 1 如何设计表结构1.1 用户表1.2 服务分类表1.3 服务表1.4 服务规格表1.5 订单表1.6 服务人员表1.7 评价表1.8 促销活动表1.9 投诉表1.10 年卡表1.11 派单表1.12 支付记录表1.13 通知记录表1.14 优惠券表1.15 用户优惠券表1.16 消息模板表1.17 积分记录表 经过一系列的设计…...
【Git学习】windows系统下git init后没有看到生成的.git文件夹
[问题] git init 命令后看不到.git文件夹 [原因] 文件夹设置隐藏 [解决办法] Win11 win10...
云手机群控能用来做什么?
随着云手机的发展,云手机群控技术逐渐从小众的游戏多开工具,发展为涵盖多个领域的智能操作平台。不论是手游搬砖、短视频运营,还是账号养成等场景,云手机群控都展现出了强大的应用潜力。本文将为大家详细解析云手机群控的应用场景…...
go下载依赖提示连接失败
1、现象 Go下载模块提示连接失败 dial tcp 142.251.42.241:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.…...
在线excel编辑(luckysheet)
项目地址:Luckysheet: 🚀Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 可以下载项目使用npm安装运行,也可以用cdn 加载excel文件(使用luckyexcel): …...
2024国赛A题第一问
第一问 板凳龙等距螺线匀速运动模型的建立 坐标系的建立 根据题意,舞龙队沿螺距为55cm的螺线顺时针进入,进入位置为螺线第16圈点A处,即整个螺线的最外侧点,设定其为 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)。为了便于计算出题目要…...
【魅力golang】之-反射
1、引言 反射(Reflection)在 Golang中用于运行时检查和操作变量的类型和值。通过反射,可以实现动态类型处理,这在构建泛型代码、框架、序列化工具和动态代理等场景中非常有用。 2、什么是反射 反射是指程序在运行时能够动态地检…...
Java在 聊天管理系统中的应用
聊天管理系统已经成为人们日常沟通不可或缺的一部分。无论是企业内部的即时通讯,还是社交媒体平台的聊天功能,聊天管理系统都扮演着至关重要的角色。 Java 作为一种广泛应用的编程语言,凭借其强大的功能、良好的跨平台性以及丰富的类库&…...
记一次rac故障原因分析(虚拟化平台)
一 现象描述 XX客户于1月14号凌晨业务中断,检查数据库发现数据库集群宕机。 XX客户于2月14号春节初五早上业务异常,连接数据库无响应。 二 问题详细诊断 1月14号故障 1月14号凌晨2点,客户反馈业务中断,发现节点1无法连接&…...
opencv中的各种滤波器简介
在 OpenCV 中,滤波器是图像处理中的重要工具,用于对图像进行平滑、去噪、边缘检测等操作。以下是几种常见滤波器的简单介绍。 1. 均值滤波 (Mean Filter) 功能: 对图像进行平滑处理,减少噪声。 应用场景: 去除图像…...
文本数据处理
文本数据处理 一、数据转换与错误处理 (一)运维中的数据转换问题 在计算机审计及各类数据处理场景中,数据转换是关键步骤,涉及将被审计单位或其他来源的数据有效装载到目标数据库,并明确标示各表及字段含义与关系。…...
ThinkPHP 8开发环境安装
【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《ThinkPHP 8高效构建Web应用 夏磊 编程与应用开发丛书 清华大学出版社》【摘要 书评 试读】- 京东图书 1. 安装PHP8 Windows系统用户可以前往https://windows.php.net/downloads/releases/archives/下载PHP 8.0版本&am…...
php怎么去除数点后面的0
在PHP中,我们可以使用几种方法来去除数字小数点后的0。 方法一:使用intval函数 intval函数可以将一个数字转化为整数,另外,它也可以去除小数点后面的0。 “php $number 123.4500; $number intval($number); echo $number; // 输…...
Database.NET——一款轻量级多数据库客户端工具
文章目录 Database.NET简介下载使用使用场景总结 Database.NET简介 Database.NET 是一个功能强大且易于使用的数据库管理工具,适用于多种数据库系统。它为开发者和数据库管理员提供了一个统一的界面,可以方便地管理和操作不同类型的数据库。 支持的数据…...
Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果
目录 八、测试套件TestSuite和测试运行器TestRunner 1、基本概念 2、创建和使用测试套件 3、 自动发现测试用例、创建测试套件、运行测试 4、生成html的测试报告:HTMLTestRunner 1️⃣导入HTMLTestRunner模块 2️⃣运行测试用例并生成html文件 九、unittest…...
protobuf学习使用
1、概述 protobuf是Google开发的一种语言中立、平台无关、可扩展的序列化结构数据格式。允许定义一次数据结构,然后可以使用各种支持的语言来生成代码,以轻松地读写这些结构到一个二进制流中,如网络传输或文件,Protobuf支持多种编…...
跟我学c++中级篇——C++中的缓存利用
一、缓存 学习过计算机知识的一般都知道缓存这个概念,大约也知道缓存是什么。但是如果是程序员,如何更好的利用缓存,可能就有很多人不太清楚了。其实缓存的目的非常简单,就是了更高效的操作数据。大家都听说过“局部性原理”&…...
Goland 安装与使用
GoLand安装 官方网址: JetBrains GoLand:不只是 Go IDE 1. 进入官网,点击下载: 2. 如下图一步步安装 3. 如下图一步步安装...
cesium通过经纬度获取3dtiles 得feature信息
找到这里3dtiles的两种访问方式: 1.1 3DTileContent#getFeature 这里涉及3DTile 数据结构,暂不了解3DTile 数据结构,因此暂不使用。 1.2 scene.pick 本次使用 scene表示虚拟场景中所有 3D 图形对象和状态的容器;scene中…...
spring cloud gateway 3
**Spring Cloud Gateway 3** 是 Spring Cloud 生态系统中的一个重要组件,用于构建 API 网关,提供路由、监控、安全等关键功能。以下是关于 Spring Cloud Gateway 3 的详细介绍: ## 1. 什么是 Spring Cloud Gateway? **Spring Clou…...
青少年编程与数学 02-005 移动Web编程基础 03课题、流式布局
青少年编程与数学 02-005 移动Web编程基础 03课题、流式布局 一、流式布局二、网页示例HTML (index.html)CSS (styles.css) 三、精灵图精灵图的工作原理精灵图的优点精灵图的缺点精灵图的适用场景 四、轮播图HTML (index.html)CSS (styles.css)JavaScript (script.js) 课题摘要…...
【数据可视化复习方向】
1.数据可视化就是数据中信息的可视化 2.数据可视化主要从数据中寻找三个方面的信息:模式、关系和异常 3.大数据可视化分类:科学可视化、信息可视化、可视分析学 4.大数据可视化作用:记录信息、分析推理、信息传播与协同 5.可视化流程&…...
Spring Security 6 系列之九 - 集成JWT
之所以想写这一系列,是因为之前工作过程中使用Spring Security,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级为6.3.0,关键是其风…...
大数据实验三
Python and anaconda 实验三数据预处理和轨迹聚类参考地址: https://www.hifleet.com/wp/communities/data/hangyundashujujishukechengshiyanzhinanshujuyuchulijiguijijuleichixugengxinzhong#post-2212https://www.hifleet.com/wp/communities/data/hangyundas…...
《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
目录 前言: 一、选择题。 二、填空题。 三、名词解释。 四、简答题。 前言: 这个自动标题自己带了序号,一开始想全部选项和题号都改过来的,结果一看一百多个全是,懒得改了 一、选择题。 1、广域网覆盖的地理范围…...
学习笔记 --C#基础其他知识点(持续更新)
C#中的同步和异步《一》 以下理解借鉴博客:借鉴博客地址1 异步编程(Asynchronous) 允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字 async Task AsynchronousMethod() {// 等待异步操作完成await Task.Delay…...
STM32 高级 谈一下IPV4/默认网关/子网掩码/DNS服务器/MAC
首先可以通过 winr->输入cmd->输入ipconfig 命令可以查看计算机的各种地址 IPV4:是互联网协议第 4 版(Internet Protocol version 4)所使用的地址。它是一个 32 位的二进制数字,通常被分为 4 个 8 位的部分ÿ…...
智能家居实训室中,STC单片机驱动的“互联网+”智能家居系统设计
一、引言 随着经济的快速发展,人们对家居环境的智能化、网络化需求日益增强,智能家居的研究也因此受到了国内外相关机构的广泛关注。STC单片机凭借其卓越的性能和广泛的应用领域,成为了智能家居系统设计的优选方案。作为一种先进的微控制器&…...
esp32学习:用虫洞ESP32S3-EYE开发板快速实现USB摄像头(UVC免驱)
直接上干货:实现一个USB摄像头,免驱UVC设备。 硬件准备: 乐官方推荐的Cam开发板就是乐鑫带摄像头OV2604的esp32-s3-eye,我们虫洞esp32-s3-eye完全兼容这个板子哦,虫洞ESP32-S3-EYE 人脸识别 esp-cam升级 OpenCV LVGL …...
Python 面向对象编程 五(结束)组合
Python 面向对象编程 五(结束)组合 组合 组合 组合是面向对象编程中另一个流行的概念,它与封装也有一定关系。简单地说,组成是指在一个对象中包含一个或多个对象,从而形成一个真实世界的对象。包含其他类对象的类称为…...
基于微信小程序的校园访客登记系统
基于微信小程序的校园访客登记系统 功能列表 用户端功能 注册与登录 :支持用户通过手机号短信验证码注册和登录。个人资料管理 :允许用户编辑和更新个人信息及其密码。站内信消息通知:通知公告。来访预约:提交来访预约支持车牌…...
docker 部署mysql8
在Docker中部署MySQL 8是一个相对简单的过程。以下是基本的步骤: 拉取MySQL 8镜像: 使用Docker命令拉取最新的MySQL 8镜像: docker pull registry.openanolis.cn/openanolis/mysql:8.0.30-8.6创建并运行MySQL容器: 创建并运行MySQ…...
聊一聊 C#前台线程 如何阻塞程序退出
一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond…...
【编译原理】往年题汇总(山东大学软件学院用)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀编译原理_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …...
【原创学习笔记】近期项目中使用的西门子V20变频器总结(上篇)
现场V20 22kW变频器如图所示 进线分别为L1,L2,L3,PE线,出现分别为U,V,W接电机 在西门子官网查询手册后,查询可知可以通过多种方式控制变频器,比如:面板(BOP)控制,端子(NPN/PNP&…...
IndexOf Apache Web For Liunx索引服务器部署及应用
Apache HTTP Server 是一款广泛使用的开源网页服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等 IndexOf 功能通常指的是在一个目录中自动生成一个索引页面的能力,这个页面会列出该目录下所有的文件和子目录。比如网上经常看到的下图展现的效果,那么接下来我们就讲一下…...
Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集PI-FGSM介绍背景和动机算法原理算法流程 PI-FGSM代码实现PI-FGSM算法实现攻击效果 代码汇总pifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexN…...
Casino Royale靶场wp
0x00 下载安装 https://download.vulnhub.com/casinoroyale/CasinoRoyale.ova 导入vmware启动 0x01 主机信息收集 0x02目录扫描 index.php 获取到一个域名 修改本地hosts 添加一行 路径:C:\Windows\System32\drivers\etc 192.168.2.20 casino-royale.local 点击…...
c/c++ 无法跳转定义
背景 对于嵌入式开发离不开交叉编译工作,采用vccode远程到虚拟机开发来说,总会遇到一个函数跳转问题。下面针对运用开发如何设置vscode保证函数能正确跳转大函数定义。 一、安装c/c插件 安装C/C Extension Pack插件,这插件包含有几个插件。…...
4.5 数据表的外连接
本次课程我们将继续的学习数据表的连接。因为数据表的连接是分为内连接和外连接的。内连接的语法,还有一些练习,我们都是学习到了。那么本次课程咱们就开始学习数据表的外连接语法。首先我来解释一下为什么要使用外连接这种语法。咱们首先看一条记录&…...
请购单一直提示需求部门不能为空无法提交
终于发现了它的逻辑。用户很多次反馈,提交请购单时,提示需求部门不能为空,既使选择了需求部门,保存时,神奇的是会清空掉部门的信息,提交时就会有错误提示出来。 原因:光选择单头上的需求部门是…...
Jenkins基础教程
Jenkins介绍 Jenkins 是一款开源的持续集成(CI)和持续交付(CD)工具,在软件开发和自动化部署流程中发挥着关键作用。 1.背景和起源 它最初是由 Sun Microsystems 公司的一名工程师开发的 Hudson 项目,后来…...
如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH
目录 一、什么是 Java 环境变量? 二、配置 Java 环境变量 1. 下载并安装 JDK 2. 配置 JAVA_HOME Windows 系统 Linux / macOS 系统 3. 配置 PATH Windows 系统 Linux / macOS 系统 4. 验证配置 三、常见问题与解决方案 1. 无法识别 java 或 javac 命令 …...
深入解析 Pytest 钩子函数及二次开发过程
关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在 Pytest 测试框架中,钩子函数(Hooks)是一种强…...
http 请求总结get
关于get请求传递body的问题 错误代码 有400 , 415 等情况 <!doctype html><html lang"zh"><head><title>HTTP Status 400 – 错误的请求</title><style type"text/css">body {font-family:Tahoma,Arial,sans-seri…...
漏洞扫描:网络安全的 “体检” 与 “防护指南”
在当今数字化时代,网络安全如同守护城堡的坚固城墙,而漏洞扫描则是检查城墙是否存在缝隙与薄弱环节的重要手段。那么,究竟什么是漏洞扫描?又该如何进行呢? 什么是漏洞扫描? 漏洞扫描是一种安全检测过程&a…...
《Vue进阶教程》第二十七课:实现侦听对象
往期内容: 《Vue进阶教程》第十六课:深入完善响应式系统之单例模式 《Vue进阶教程》第十七课:支持分支切换 《Vue进阶教程》第十八课:避免死循环 《Vue进阶教程》第十九课:computed初步实现 《Vue进阶教程》第二十…...
【Linux 网络 (五)】Tcp/Udp协议
Linux 网络 一前言二、Udp协议1)、Udp协议特点2)、Udp协议格式3)、Udp报文封装和解包过程4)、UDP的缓冲区 三、TCP协议1)、TCP协议特点2)、TCP协议格式1、4位首部长度、源端口、目的端口2、16位窗口大小3、…...