十一、容器化 vs 虚拟化-Docker

文章目录

  • 前言
  • 一、Docker 介绍
    • 1. 简介
    • 2. 应用场景
    • 3. 特点
    • 4. Docker和虚拟机之间的区别
    • 5. 解决痛点
      • 1. 解决依赖兼容
      • 2. 解决操作系统环境差异
      • 3. 小结
  • 二、Docker 架构
  • 三、工作流程
  • 五、Docker 核心组件及其工作机制
    • 1. Docker 客户端(Docker Client)
    • 2. Docker 守护进程(Docker Daemon)
    • 3. Docker 引擎 API(Docker Engine API)
    • 4. Docker 容器(Docker Containers)
    • 5. Docker 镜像(Docker Images)
    • 6. Docker 仓库(Docker Registries)
    • 7. Docker Compose
    • 8. Docker Swarm
    • 9. Docker 网络(Docker Networks)
    • 10. Docker 卷(Docker Volumes)
  • Docker 命令


前言

容器化

  我们搭建了微服务体系,同时借助Idea编译工具多次完成本地服务启动、部署和验证。就会出现下面场景:

  • 开发人员A写好的代码–>开发人员B的电脑上运行,B必须保证跟A一样的系统环境(JDK/MySQL等)
  • 系统代码部署从DEV–>TEST–>PRE–>PROD,每个环节都必须保证一样的系统环境(同上)
  • 分布式系统中依赖组件非常多,组件与组件之间的部署往往会产生一些冲突(端口/依赖/环境等)

传统基础架构部署
  这样的版本一致保证会耗费我们大量的时间和精力,同时万一有问题产生,我们也很难第一时间考虑到是因为版本不一致导致的问题。

  因此我们需要一套可以平滑切换的部署引擎,这就是容器化技术Docker


一、Docker 介绍

1. 简介

Docker标识
  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

  Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

  容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低

  Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。

相关链接

Docker 官网

Github Docker 源码

2. 应用场景

  • Web 应用的自动化打包和发布(编译构建和部署)

  • 自动化测试和持续集成、持续交付(CI/CD)

  • 在服务型环境中部署和调整数据库或其他的后台应用。

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

3. 特点

  Docker 是一个用于开发,交付和运行应用程序的开放平台。

  Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以采用与管理应用程序相同的方式来管理基础架构。

  通过利用 Docker 的方法实现快速交付,测试和部署代码,您可以大幅提高,开发迭代和部署上限的效率。

  1. 快速,一致地交付应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:

  • 您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。

  • 他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。

  • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。

  • 测试完成后,将修复后的程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

  1. 响应式部署和扩展

Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

  1. 在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。

4. Docker和虚拟机之间的区别

‌虚拟机‌:是基于虚拟硬件的操作系统。虚拟机是通过Hypervisor(虚拟机管理系统,常见的有VMWare workstation、VirtualBox),虚拟出网卡、CPU、内存等虚拟硬件,再在其上建立虚拟机,每个虚拟机是个独立的操作系统,拥有自己的系统内核。体积大、启动速度慢、性能一般。

‌Docker‌:是一个系统进程。容器是利用namespace将文件系统、进程、网络、设备等资源进行隔离,利用cgroup对权限、CPU资源进行限制,最终让容器之间互不影响,容器无法影响宿主机。体积小、启动速度快、性能好。

Docker和虚拟机的区别

特性虚拟机容器
启动分钟级秒级
硬盘使用一般为 GB一般为 MB
性能接近原生
系统支持量一般几十个单机支持上千个容器

5. 解决痛点

1. 解决依赖兼容

Docker为了解决依赖的兼容问题的,采用了两个手段:

  • 【依赖打包】将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 【部署隔离】将每个应用放到一个隔离容器去运行,避免互相干扰

Docker解决依赖兼容此时打包好的应用包(不再是原来的jar包)既包含应用本身,也包含应用所需的Libs、Deps,无需在操作系统上安装,自然不存在应用间的兼容问题。
虽然解决了不同应用的兼容问题,但是开发、测试等多个环境,不同的操作系统版本之间也会有差异,这个不解决一样会面临开篇所说的问题,想了解这个必须先了解下操作系统的结构。

2. 解决操作系统环境差异

以一个ubuntu操作系统为例,如下:

Docker解决操作系统环境差异其结构包括:

  • 计算机硬件:如CPU、内存、磁盘等
  • 系统内核:所有Linux发行版内核都是Linux,如CentOS/Ubuntu/Fedora等,内核与计算机硬件交互,对外提供内核指令,用于操作计算机硬件。
  • 系统应用:操作系统本身提供的应用、函数库。这些函数是对内核指令的封装,使用更方便。

应用与计算机交互的流程大致如下:

  • 应用(外部应用如redis/web应用等)调用操作系统应用(函数库),实现各种功能
  • 系统函数库是对内核指令集的封装,会调用内核指令
  • 内核指令操作计算机硬件
    如Ubuntu和CenOS虽然都是基于Linux内核,无非是系统应用不同,提供函数库有差异,如下:

在这里插入图片描述
但就是这种差异,当一个Ubuntu版本的MySQL尝试安装到CentOS系统时,MySQL还是调用的Ubuntu函数库,会出现找不到或者不匹配的情况,从而导致报错,即出现我们上面提到的系统环境差异导致的不兼容问题:

在这里插入图片描述
我们来看下Docker是如何处理这种环境间的差异的:

  • Docker将应用程序与所需调用的系统(如Ubuntu)函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统Linux内核来运行

在这里插入图片描述

3. 小结

  1. Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
  • Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
  • Docker应用运行在容器中,使用沙箱机制,相互隔离
  1. Docker如何解决开发、测试、生产环境有差异的问题?
  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
  1. Docker是一个快速交付应用、运行应用的技术,具备下列优势:
  • 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  • 运行时利用沙箱机制形成隔离容器,各个应用互不干扰
  • 启动、移除都可以通过一行命令完成,方便快捷

二、Docker 架构

  Docker 架构是基于客户端-服务器的C/S模式,其中包括多个关键组件,确保容器化应用的高效构建、管理和运行。可以使用远程 API 来管理和创建 Docker 容器

  Docker 容器(Container),是独立运行的一个或一组应用,基于 Docker 镜像来创建,是镜像运行时的实体。

  Docker 镜像(Image),用于创建 Docker 容器的模板,就相当于是一个 root 文件系统。

  镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Docker面向对象
容器对象实例
镜像

Docker架构1
Docker架构2
  Docker是一个CS架构的程序,底层由Go 语言进行开发实现,由两部分组成:

  • 服务端(Server):Docker 守护进程,负责处理 Docker 指令,管理镜像、容器等。
  • 客户端(Client):通过命令或 RestAPI 向 Docker 服务端发送指令。可以在本地或远程向服务端发送指令。

Docker架构3

三、工作流程

  • 构建镜像:使用 Dockerfile 创建镜像。

  • 推送镜像到仓库:将镜像上传到 Docker Hub 或私有镜像仓库中。

  • 拉取镜像:通过 docker pull 从镜像仓库中拉取镜像。

  • 运行容器:使用镜像创建并启动容器。

  • 管理容器:使用 Docker 客户端命令管理正在运行的容器(例如查看日志、停止容器、查看资源使用情况等)。

  • 网络与存储:容器之间通过 Docker 网络连接,数据通过 Docker 卷或绑定挂载进行持久化。

五、Docker 核心组件及其工作机制

1. Docker 客户端(Docker Client)

Docker 客户端是用户与 Docker 守护进程交互的命令行界面(CLI)。它是用户与 Docker 系统的主要交互方式,用户通过 Docker CLI 发出命令,这些命令被发送到 Docker 守护进程,由守护进程执行相应的操作。

  • 功能:允许用户使用命令与 Docker 守护进程通信,如创建容器、构建镜像、查看容器状态等。

  • 交互方式:Docker 客户端与 Docker 守护进程之间通过 REST API 或 Unix 套接字通信。常用的命令行工具是 docker,通过它,用户可以发出各种 Docker 操作命令。

常用命令:

  • docker run:运行容器。

  • docker ps:列出正在运行的容器。

  • docker build:构建 Docker 镜像。

  • docker exec:在容器中执行命令。

2. Docker 守护进程(Docker Daemon)

Docker 守护进程(通常是 dockerd)是 Docker 架构的核心,负责管理容器生命周期、构建镜像、分发镜像等任务。

守护进程通常以后台进程的方式运行,等待来自 Docker 客户端的 API 请求。

功能:

  • 启动和停止容器。

  • 构建、拉取和推送镜像。

  • 管理容器的网络和存储。

  • 启动、停止、查看容器日志等。

  • 与 Docker 注册表进行通信,管理镜像的存储与分发。

Docker 守护进程监听来自 Docker 客户端的请求,并且通过 Docker API 执行这些请求。守护进程将负责容器、镜像等 Docker 对象的管理,并根据请求的参数启动容器、删除容器、修改容器配置等。

启动 Docker 守护进程(通常是自动启动的):

sudo systemctl start docker

3. Docker 引擎 API(Docker Engine API)

Docker 引擎 API 是 Docker 提供的 RESTful 接口,允许外部客户端与 Docker 守护进程进行通信。通过这个 API,用户可以执行各种操作,如启动容器、构建镜像、查看容器状态等。API 提供了 HTTP 请求的接口,支持跨平台调用。

功能:

  • 向 Docker 守护进程发送 HTTP 请求,实现容器、镜像的管理。

  • 提供 RESTful 接口,允许通过编程与 Docker 进行交互。

可以通过 curl 或其他 HTTP 客户端访问 Docker 引擎 API。例如,查询当前 Docker 守护进程的版本:

curl --unix-socket /var/run/docker.sock http://localhost/version

4. Docker 容器(Docker Containers)

容器是 Docker 的执行环境,它是轻量级、独立且可执行的软件包。容器是从 Docker 镜像启动的,包含了运行某个应用程序所需的一切——从操作系统库到应用程序代码。容器在运行时与其他容器和宿主机共享操作系统内核,但容器之间的文件系统和进程是隔离的。

功能:

  • 提供独立的运行环境,确保应用程序在不同的环境中具有一致的行为。

  • 容器是临时的,通常在任务完成后被销毁。

容器的生命周期是由 Docker 守护进程管理的。容器可以在任何地方运行,因为它们不依赖于底层操作系统的配置,所有的运行时依赖已经封装在镜像中。

启动一个容器:

docker run -d ubuntu

5. Docker 镜像(Docker Images)

Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起的特殊文件系统,称为镜像。

Docker 镜像是容器的只读模板,用户可以根据镜像启动容器。每个镜像除了提供容器应用程序运行所需的操作系统、应用程序、库、资源配置等文件外,还包含了为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像是静态的,不包含任何动态数据,其内容在构建之后也不会被改变。

功能:

  • 镜像是构建容器的基础,每个容器实例化时都会使用镜像。

  • 镜像是只读的,不同容器使用同一个镜像时,容器中的文件系统层是独立的。

Docker 镜像可以通过 ‌docker pull‌ 从 Docker Hub 或私有注册表拉取,也可以通过 docker build 从 Dockerfile 构建。

拉取 Ubuntu 镜像:

docker pull ubuntu

6. Docker 仓库(Docker Registries)

Docker 仓库是用来存储 Docker 镜像的地方,最常用的公共仓库是 Docker Hub。用户可以从 Docker Hub 下载镜像,也可以上传自己的镜像分享给其他人。除了公共仓库,用户也可以部署自己的私有 Docker 仓库来管理企业内部的镜像。

功能:

  • 存储 Docker 镜像。

  • 提供镜像的上传和下载功能。

Docker Hub 提供了大量官方和社区维护的镜像,如 Ubuntu、Nginx、MySQL 等。

推送镜像到 Docker Hub:

docker push <username>/<image_name>

7. Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 Compose,用户可以使用一个 docker-compose.yml 配置文件定义多个容器(服务),并可以通过一个命令启动这些容器。Docker Compose 主要用于开发、测试和部署多容器的应用。

功能:

  • 定义和运行多个容器组成的应用。

  • 通过 YAML 文件来配置应用的服务、网络和卷等。

创建一个简单的 docker-compose.yml 文件来配置一个包含 Web 服务和数据库服务的应用:

version: '3'
services:web:image: nginxports:- "8080:80"db:image: mysqlenvironment:MYSQL_ROOT_PASSWORD: example

启动 Compose 定义的所有服务:

docker-compose up

8. Docker Swarm

Docker Swarm 是 Docker 提供的集群管理和调度工具。它允许将多个 Docker 主机(节点)组织成一个集群,并通过 Swarm 集群管理工具来调度和管理容器。Swarm 可以实现容器的负载均衡、高可用性和自动扩展等功能。

功能:

  • 管理多节点 Docker 集群。

  • 通过调度器管理容器的部署和扩展。

初始化 Swarm 集群:

docker swarm init

9. Docker 网络(Docker Networks)

Docker 网络允许容器之间相互通信,并与外部世界进行连接。Docker 提供了多种网络模式来满足不同的需求,如 bridge 网络(默认)、host 网络和 overlay 网络等。

功能:

  • 管理容器间的网络通信。

  • 支持不同的网络模式,以适应不同场景下的需求。

创建一个自定义网络并将容器连接到该网络:

docker network create my_network
docker run -d --network my_network ubuntu

10. Docker 卷(Docker Volumes)

Docker 卷是一种数据持久化机制,允许数据在容器之间共享,并且独立于容器的生命周期。与容器文件系统不同,卷的内容不会随着容器的销毁而丢失,适用于数据库等需要持久存储的应用。

功能:

  • 允许容器间共享数据。

  • 保证数据持久化,独立于容器的生命周期。

创建并挂载卷:

docker volume create my_volume
docker run -d -v my_volume:/data ubuntu

Docker 命令

Docker 命令


本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识
Docker 教程


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488387.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏引擎学习第38天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾上次的内容。 我们之前讨论了将精灵放在屏幕上&#xff0c;但颜色错误的问题。问题最终查明是因为使用了一个调整工具&#xff0c;导致文件的字节顺序发生了变化。重新运行“image magic”工具对一些大图像进行重新处理后&am…

Docker 安装Nginx与配置Nginx

文章目录 前言 1.什么是nginx2.为什么使用nginx3.高并发4.Nginx特点&#xff1a; 一、docker安装nginx二、Nginx配置简介 1.文件讲解2.nginx.conf3.default.conf 三、nginx负载均衡 1.配置服务器列表地址2.多集群策略 2.1 权重配置2.2 ip_hash2.3 least_conn2.4 fair2.5 url_h…

qwen2.5 模型JSON格式化输出案例

这篇不是通过prompt提示去实现,是用vllm、ollama推理框架支持;这里也给出个prompt实现的案例参考 1、 vllm推理 参考:https://docs.vllm.ai/en/latest/usage/structured_outputs.html 模型vllm运行: 用的Qwen/Qwen2.5-3B-Instruct模型 vllm serve ./qwen2_5 --host 0.0…

黑马商城微服务复习(6)

MQ高级 1. 消息可靠性2. 发送者的可靠性1. 发送者问题2. 生产者重试机制3. 生产者确认机制4. MQ可靠性5. 消费者的可靠性 3. 延迟消息1. 定义2. 死信交换机 1. 消息可靠性 发送消息时丢失&#xff1a; 生产者发送消息时连接MQ失败生产者发送消息到达MQ后未找到Exchange生产者发…

UE5.5 Geometry库平面切割原理分析

平面切割--FMeshPlaneCut 平面定义: 面上一个点 法线 算法流程如下 求几何体所有顶点和面的有向距离(Signs) Sign计算&#xff1a; float Sign (VertexPos - PlaneOrigin).Dot(PlaneNormal); 遍历所有几何体所有交叉边, 进行SplitEdge 对于位于切割面两侧的交叉边(Sign…

TMS Software:TMS BIZ产品——TMS XData

TMS XData 用于多层REST/JSON HTTP/HTTPS应用服务器开发和ORM远程处理的Delphi框架。 TMS扩展数据可同时用于以下框架&#xff1a; VCLWEBFMX TMS XData可同时用于以下操作系统/浏览器&#xff1a; TMS XData可同时用于以下IDE&#xff1a; 功能概述 基于REST/JSON架构风格的…

优化移动端H5:常见问题与解决方案

移动端H5开发中的“坑”与解决方案 本文介绍了开发中遇到的几个关于移动端H5开发中的小问题&#xff0c;以及解决的方法。 一、iOS滑动不流畅问题 在iOS设备上&#xff0c;H5页面的滑动效果有时会出现不流畅的情况&#xff0c;特别是在页面高度超过一屏时。这通常是由于iOS的…

【论文速读】| AttackQA:利用微调及开源大语言模型辅助网络安全运营的数据集的开发与应用

基本信息 原文标题: AttackQA: Development and Adoption of a Dataset for Assisting Cybersecurity Operations Using Fine-Tuned and Open-Source LLMs 原文作者: Varun Badrinath Krishna 作者单位: SambaNova Systems 关键词: 网络安全、检索增强生成&#xff08;RAG&…

Ubuntu24.04配置STMTrack

项目地址&#xff1a;https://github.com/fzh0917/STMTrack 一、安装 CUDA 参考链接&#xff1a; Ubuntu24.04配置DINO-Tracker Ubuntu多CUDA版本安装及切换 由于之前在其他项目中已经安装了 CUDA12.1&#xff0c;这次需要安装另一个版本。 1. 查看安装版本 按照 requireme…

服务器数据恢复—热备盘上线过程中硬盘离线导致raid5阵列崩溃的数据恢复案例

服务器数据恢复环境&#xff1a; 两组分别由4块SAS接口硬盘组建的raid5阵列&#xff0c;两组raid5阵列划分LUN并由LVM管理&#xff0c;格式化为EXT3文件系统。 服务器故障&#xff1a; RAID5阵列中一块硬盘未知原因离线&#xff0c;热备盘自动激活上线替换离线硬盘。在热备盘上…

【Java学习笔记】Map接口和常用方法

一、 Map接口实现类的 特点[很实用] key是自己存的java对象 value是一个固定的 //当有相同的 k ,就等价于替换. 二、 Map常用方法 &#xff08;根据键–>k&#xff09; 三、Map接口遍历方法 package com.hspedu.map_; import java.util.*; /** * author 韩顺平 * ver…

1.网络知识-IP与子网掩码的关系及计算实例

IP与子网掩码 说实话&#xff0c;之前没有注意过&#xff0c;今天我打开自己的办公地电脑&#xff0c;看到我的网络配置如下&#xff1a; 我看到我的子网掩码是255.255.254.0&#xff0c;我就奇怪了&#xff0c;我经常见到的子网掩码都是255.255.255.0啊&#xff1f;难道公司配…

SpringBoot中bean的生命周期

文章目录 概述使用场景代码演示bean初始化TestSupportBeanPostProcessorImpllog 代码 概述 Bean 生命周期管理是 Spring Boot 中的关键功能之一。它负责管理应用程序中的 Java 对象&#xff0c;这些对象被称为 Beans。Spring Boot 通过创建、配置、初始化和销毁这些 Beans 来确…

【数据结构——栈和队列】括号配对(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;编写一个程序利用栈判断左、右圆括号是否配对。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;栈对括号的处理。 栈对括号的处理 &…

让PPT不再“难搞”:智能工具如何改变办公体验

PPT的世界是一场属于设计感与逻辑力的双重较量。那些字体配色的小心思&#xff0c;排版设计的大考验&#xff0c;无不让人抓耳挠腮。然而&#xff0c;科技的加持让这一切正悄然改变。比如&#xff0c;随着 ai生成ppt 工具的兴起&#xff0c;许多复杂操作正被重新定义&#xff0…

OpenLayers基础教程——WebGLPoints设置不同图标样式的方法

1、前言 在OpenLayers中&#xff0c;WebGLPoints与VectorLayer设置不同图标样式的方法有所不同。本文就来介绍一下如何在WebGLPoints图层中根据要素类型设置不同的图标样式。 2、ol.layer.Vector的实现方法 ol.layer.Vector设置不同图标的样式很简单&#xff0c;直接上代码&…

浅谈Kubernetes(K8s)之RC控制器与RS控制器

1.RC控制器 1.1RC概述 Replication Controller 控制器会持续监控正在运行的Pod列表&#xff0c;并保证相应类型的Pod的数量与期望相符合&#xff0c;如果Pod数量过少&#xff0c;它会根据Pod模板创建新的副本&#xff0c;反之则会删除多余副本。通过RC可实现了应用服务的高可用…

es 3期 第14节-全文文本分词查询

#### 1.Elasticsearch是数据库&#xff0c;不是普通的Java应用程序&#xff0c;传统数据库需要的硬件资源同样需要&#xff0c;提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库&#xff0c;不是关系型数据库&#xff0c;不具备严格的ACID事务特性&#xff…

如何保证消息队列的高可用?(RabbitMQ)

RabbitMQ 是基于主从&#xff08;非分布式&#xff09;做高可用性的&#xff0c;RabbitMQ 有三种模式&#xff1a;单机模式、普通集群模式、镜像集群模式 1、单机模式&#xff1a;一般没人生产用单机模式 2、普通集群模式&#xff1a; 普通集群模式用于提高系统的吞吐量&…

CAPL如何设置或修改CANoe TCP/IP协议栈的底层配置

在CANoe中创建网络节点作为以太网主机时,可以给其配置独立的TCP/IP Stack。 配置的协议栈有一些底层配置参数可以在界面上设置或修改,比如: MTU上图中MTU显示500只是图形界面显示错误,正确值是1500。 TCP延迟确认这些参数也可以通过CAPL动态配置,甚至CAPL还可以配置很多界…