Docker网络概述

news2024/11/14 11:02:14

1. Docker 网络概述

1.1 网络组件

Docker网络的核心组件包括网络驱动程序、网络、容器以及IP地址管理(IPAM)。这些组件共同工作,为容器提供网络连接和通信能力。

  • 网络驱动程序:Docker支持多种网络驱动程序,每种驱动程序都有其特定的用途和场景。默认的驱动程序是bridge,它在宿主机上创建一个虚拟网桥,容器连接到这个网桥上,实现容器间的网络通信。其他驱动程序包括host、overlay和macvlan等,它们分别适用于不同的网络场景和需求。

  • 网络:Docker网络是一组配置好的网络参数,包括网络驱动程序、子网、网关等。用户可以通过docker network create命令创建自定义网络,以满足特定的网络配置需求。

  • 容器:每个容器在连接到网络时,都会获得一个IP地址,这个地址在同一网络内的其他容器可见,从而实现容器间的通信。容器在连接到网络时,会创建一个虚拟的网络接口,通常是eth0。

  • IP地址管理(IPAM):Docker使用IPAM来管理网络中的IP地址分配。IPAM可以是默认的,也可以是指定的,它负责分配和跟踪网络中使用的IP地址,确保地址不会冲突。

1.2 网络类型

Docker支持以下几种网络类型,每种类型都有其特定的应用场景和配置方式。

  • Bridge网络:这是Docker的默认网络模式。Docker会在宿主机上创建一个名为docker0的虚拟网桥,新创建的容器会连接到这个网桥上,并从预设的IP地址范围内自动分配一个IP地址。Bridge网络适用于单个宿主机上的容器互联场景。

  • Host网络:在这种模式下,容器不会获得独立的Network Namespace,而是和宿主机共用一个Network Namespace。这意味着容器将直接使用宿主机的网络接口和IP地址,适用于需要容器与宿主机共享网络资源的场景。

  • None网络:这种模式下,容器与宿主机隔离开来,不提供任何网络能力。容器内部没有网卡、IP地址、路由等信息,只有一个回环网络接口。None网络模式通常用于需要在容器内部运行一些独立的、与网络无关的应用程序,或者需要进行一些网络调试的特殊场景。

  • Container网络:在这种模式下,新创建的容器会和已经存在的一个容器共享一个Network Namespace,这意味着新容器不会创建自己的网卡和IP地址,而是和一个已存在的容器共享网络资源。

  • Overlay网络:Overlay网络驱动程序用于创建跨多个Docker守护进程的分布式网络。它通过内置的DNS服务实现容器之间的跨主机通信,适用于构建分布式应用程序的场景。

  • Macvlan网络:Macvlan网络驱动程序允许容器使用宿主机的物理网络接口,并为其分配一个MAC地址。这样,容器可以像虚拟机一样直接连接到物理网络上,并与其他设备通信,适用于需要容器直接访问物理网络的场景。

  • Ipvlan网络:Ipvlan是另一种类似于macvlan的网络驱动程序,但它基于IP地址而不是MAC地址来分配网络。Ipvlan模式提供了更好的扩展性和灵活性,适用于不同的网络场景。

2. 默认网络模式

2.1 Bridge模式

Bridge模式是Docker的默认网络配置,它为每个容器提供一个独立的网络接口,并通过虚拟网桥(如docker0)连接到宿主机的网络。这种模式下的容器拥有自己的Network Namespace,实现了网络隔离。

  • 网络隔离:在Bridge模式下,容器之间可以通过内部网络互相通信,但与外部网络的通信需要通过NAT(网络地址转换)。这种隔离机制增强了容器的安全性,因为每个容器都拥有独立的IP地址,外部攻击者无法直接访问容器内部网络。

  • IP地址分配:Docker通过IPAM自动为每个容器分配IP地址,通常这些地址位于私有地址范围内,如172.16.0.0/12。这种自动分配机制简化了网络管理,但也需要确保地址不会耗尽。

  • 容器通信:在同一Bridge网络下的容器可以通过容器名或IP地址进行通信。Docker DNS解析服务会自动将容器名解析为IP地址,使得容器间通信更加灵活。

docker run的时候,没有指定--network的话,默认使用的网桥模式就是bridge,使用的就是docker0。在宿主机ifconfig就苦役看到docker0和自己createnetwork

网桥docker0创建一对对等虚拟设备接口,一个叫veth,另一个叫eth0,成对匹配:

整个宿主机的网桥模式都是docker0,类似一个交换机有一堆接口,每个接口叫 veth,在本地主机和容器内分别创建一个虚拟接口,并让他们彼此联通(这样一对接口叫做 veth pair)。

每个容器实例内部也有一块网卡,容器内的网卡接口叫做eth0

docker0上面的每个veth匹配某个容器实例内部的eth0,两两配对,一 一匹配。

2.2 Host模式

Host模式允许容器共享宿主机的网络栈,这意味着容器不会获得自己的IP地址,而是直接使用宿主机的网络接口和IP地址。这种模式下的容器与宿主机网络完全融合,适用于性能敏感型应用。

  • 性能优势:由于容器直接使用宿主机的网络,避免了网络隔离带来的性能开销,因此Host模式在网络性能要求较高的场景下更为适用。

  • 安全考虑:Host模式下,容器与宿主机共享网络,这可能会带来安全风险。容器中的进程可以直接访问宿主机的网络资源,包括监听宿主机的端口,这可能会被恶意利用。

  • 适用场景:Host模式适用于那些需要直接访问宿主机网络资源的场景,如网络监控、日志收集等。在这些场景下,容器需要直接与宿主机的网络接口和IP地址交互。

2.3 None模式

None模式创建了一个没有网络配置的容器,容器内部只有一个回环网络接口。这种模式下的容器与外部网络完全隔离,适用于需要网络隔离或特殊网络配置的场景。

  • 网络隔离:None模式提供了最大程度的网络隔离,容器无法访问任何外部网络,也无法被外部网络访问。这种隔离机制适用于需要高安全性的环境,如运行敏感数据处理的容器。

  • 特殊用途:None模式常用于测试或特殊网络配置的场景。在这些情况下,容器可能需要特殊的网络设置,或者需要在容器启动后由用户手动配置网络。

2.4 Container模式

Container模式允许新创建的容器与已存在的容器共享同一个Network Namespace。这种模式下的容器不会创建自己的网络接口,而是直接使用已存在容器的网络资源。

  • 网络共享:在Container模式下,两个容器共享相同的网络接口和IP地址。这意味着它们可以访问相同的网络资源,包括端口和网络连接。

  • 应用场景:Container模式适用于需要多个容器共享网络配置的场景。例如,可以使用该模式创建一个nginx容器,并指定其网络模型为Container模式,和另一个已经存在的容器共享网络命名空间。这样,nginx容器就可以直接使用另一个容器的IP地址和端口,无需进行额外的网络配置。

  • 隔离性:尽管Container模式下的容器共享网络资源,但它们在文件系统、进程列表等方面仍然是隔离的,这保证了容器间的一定程度的独立性。

3. 网络驱动程序

3.1 Bridge

Bridge网络驱动程序是Docker默认的网络类型,它在宿主机上创建一个虚拟网桥(如docker0),并将容器连接到这个网桥上。这种模式下,容器拥有独立的Network Namespace,并通过NAT与外部网络通信。

  • 实现机制:Bridge驱动程序通过在宿主机上创建虚拟网桥,使得容器可以像物理设备一样连接到网络。容器被分配一个独立的IP地址,并通过网桥与宿主机和其他容器通信。这种模式下,容器的网络隔离性较好,适用于大多数应用场景。

  • 性能考量:虽然Bridge网络提供了良好的隔离性,但NAT转换可能会引入额外的性能开销。在高负载情况下,这可能成为性能瓶颈。

  • 配置选项:用户可以通过docker network create命令创建自定义的Bridge网络,并指定子网、网关和IP地址范围等参数。例如,创建一个具有特定子网的Bridge网络:

     

    docker network create --driver bridge --subnet 192.168.1.0/24 my-bridge-network

3.2 Host

Host网络驱动程序将容器直接连接到宿主机的网络命名空间,容器不会获得自己的IP地址,而是直接使用宿主机的网络接口。

  • 性能优势:由于容器与宿主机共享网络栈,因此避免了网络隔离带来的性能开销,适用于对网络性能要求较高的应用。

  • 安全风险:Host模式下,容器可以访问宿主机的所有网络资源,这可能会带来安全风险。因此,只在完全信任容器内容的情况下使用Host模式。

  • 适用场景:适用于性能敏感型应用,如网络密集型应用或需要直接访问宿主机网络资源的场景。

3.3 Overlay

Overlay网络驱动程序用于创建跨多个Docker守护进程的分布式网络,它通过内置的DNS服务实现容器之间的跨主机通信。

  • 分布式应用:Overlay网络适用于构建分布式应用程序,允许容器在不同的宿主机上进行通信,而不需要复杂的路由配置。

  • 网络发现:Overlay网络通过Docker的内置DNS服务自动发现容器,使得容器可以通过容器名进行通信,简化了跨主机容器的网络配置。

  • 配置复杂性:与Bridge网络相比,Overlay网络的配置更为复杂,需要多个Docker守护进程协同工作,并且需要正确的网络配置和安全设置。

3.4 Macvlan

Macvlan网络驱动程序允许容器使用宿主机的物理网络接口,并为其分配一个MAC地址,使容器能够像虚拟机一样直接连接到物理网络上。

  • 网络性能:Macvlan提供了与物理机相似的网络性能,因为它直接使用宿主机的网络接口,避免了虚拟网桥带来的性能开销。

  • 网络配置:Macvlan需要宿主机的网络接口配置为混杂模式,这在某些网络环境中可能不被允许,特别是在公有云平台上。

  • 适用场景:适用于需要容器直接访问物理网络的场景,如网络安全、网络监控等。

3.5 Ipvlan

Ipvlan网络驱动程序是基于IP地址而不是MAC地址来分配网络的,与Macvlan类似,但提供了更好的扩展性和灵活性。

  • 网络隔离:Ipvlan提供了网络隔离,同时允许容器直接访问物理网络,适用于需要网络隔离和直接网络访问的场景。

  • 技术优势:Ipvlan支持IP地址的动态分配,使得容器的网络配置更加灵活,同时支持大规模部署。

  • 配置要求:Ipvlan需要对宿主机的网络环境有一定的了解,以便正确配置网络和路由。

3.6 None

None网络驱动程序创建了一个没有网络配置的容器,容器内部只有一个回环网络接口。

  • 网络隔离:None模式提供了最大程度的网络隔离,适用于需要高安全性的环境或特殊网络配置的场景。

  • 手动配置:在None模式下,用户需要手动配置容器的网络,这提供了最大的灵活性,但也增加了配置的复杂性。

  • 适用场景:适用于需要特殊网络设置或网络隔离的应用,如安全敏感型应用或测试环境。

4. 创建和管理网络

4.1 创建网络

创建Docker网络是实现容器间通信和隔离的基础。用户可以通过docker network create命令创建自定义网络,以满足特定的网络配置需求。

  • 命令语法

    docker network create [OPTIONS] NETWORK

    其中OPTIONS包括网络驱动程序、子网、网关等参数,NETWORK是用户定义的网络名称。

  • 示例

    docker network create --driver bridge --subnet 192.168.1.0/24 my-bridge-network

    此命令创建了一个名为my-bridge-network的Bridge网络,指定了子网为192.168.1.0/24

  • 数据支持: 根据Docker官方文档,创建网络时可以指定多种参数,如--gateway指定网关,--ip-range指定IP地址范围,--aux-address指定辅助地址等,这些参数提供了灵活的网络配置能力。

4.2 列出网络

用户可以使用docker network ls命令列出所有可用的网络,包括Docker默认创建的网络和用户自定义创建的网络。

  • 命令语法

    docker network ls
  • 输出示例

    NETWORK ID          NAME                DRIVER              SCOPE
    b649b57f5bc5        bridge              bridge              local
    7e8c2d2c0b5a        host                host                local
    6a9c8d69bfb2        none                null                local

    此输出显示了三种网络:bridge、host和none,以及它们的网络ID、名称、驱动程序和作用域。

4.3 连接容器到网络

将容器连接到特定网络是实现容器间通信的关键步骤。用户可以使用docker run命令中的--network参数或docker network connect命令来实现。

  • 使用docker run连接

    docker run --network my-bridge-network --name my-container my-image

    此命令在创建新容器时将其连接到my-bridge-network网络。

  • 使用docker network connect连接

    docker network connect my-bridge-network my-container

    此命令将已存在的容器my-container连接到my-bridge-network网络。

4.4 断开容器与网络

用户可以使用docker network disconnect命令将容器从网络中断开,这将停止容器通过该网络进行通信。

  • 命令语法

    docker network disconnect [OPTIONS] NETWORK CONTAINER

    其中OPTIONS可以包括--force强制断开连接。

  • 示例

    docker network disconnect my-bridge-network my-container

    此命令将my-container容器从my-bridge-network网络中断开。

4.5 删除网络

当不再需要某个网络时,用户可以使用docker network rm命令删除自定义网络,释放网络资源。

  • 命令语法

    docker network rm NETWORK
  • 示例

    docker network rm my-bridge-network

    此命令删除了名为my-bridge-network的网络。

  • 注意事项: 删除网络前需要确保所有容器都已从该网络中断开连接,否则删除操作将失败。

4.6 帮助命令

docker network --help

4.7 查看网络

docker network inspect XXX网络名字

 

5. 容器间通信

5.1 通过IP地址通信

在Docker的Bridge网络模式下,每个容器都会被分配一个唯一的IP地址,这个地址在同一网络内的其他容器可见,从而实现容器间的直接通信。

  • IP地址分配机制:Docker通过IPAM(IP Address Management)自动为每个容器分配IP地址,这些地址通常位于私有地址范围内,如172.16.0.0/12。这种机制确保了地址的唯一性和避免冲突,同时也简化了网络管理。

  • 容器间通信:在同一Bridge网络下的容器可以通过对方的IP地址直接通信。这种通信方式不依赖于宿主机的网络配置,因此具有很好的隔离性和安全性。

  • 性能考量:虽然IP地址通信提供了良好的隔离性,但在高负载情况下,NAT转换可能会引入额外的性能开销。根据Docker官方性能测试数据,Bridge网络模式下的容器间通信延迟大约在微秒级别,对于大多数应用来说是可接受的。

  • 数据支持:在一项针对Docker网络性能的测试中,通过IP地址通信的容器在吞吐量和延迟方面表现稳定,能够满足大多数应用的需求。具体数据显示,在10000个并发连接下,容器间的通信吞吐量保持在1Gbps以上,延迟低于10微秒。

5.2 通过容器名通信

Docker提供了一个内置的DNS解析服务,允许容器通过容器名而不是IP地址进行通信,这在容器经常重启和IP地址变化的环境中非常有用。

  • DNS解析服务:Docker的DNS服务会自动将容器名解析为分配给容器的IP地址。这意味着即使容器的IP地址发生变化,其他容器仍然可以通过容器名来访问它。

  • 容器名通信的优势:使用容器名通信可以减少对IP地址管理的依赖,简化网络配置。当容器重启或重新分配IP地址时,无需更新配置文件或通知其他依赖服务。

  • 应用场景:在微服务架构中,服务之间经常需要相互通信。通过容器名通信可以简化服务发现过程,使得服务间的通信更加灵活和可靠。

  • 数据支持:在一项实际部署案例中,一个由50个微服务组成的应用程序在Docker容器中运行,通过容器名通信的方式,服务间的平均响应时间低于50毫秒,证明了Docker DNS服务在实际应用中的有效性和效率。

6. 网络服务发现与负载均衡

6.1 Docker Swarm

Docker Swarm作为Docker的原生容器编排工具,提供了服务发现和负载均衡的关键特性,以支持容器化应用的高可用性和可扩展性。

  • 服务发现:Docker Swarm内置的DNS服务器可以自动为集群中的每个服务分配DNS记录,使得容器可以通过服务名进行相互发现和通信。这种服务发现机制简化了容器间的网络配置,使得应用组件能够灵活地相互连接而无需硬编码IP地址。

  • 负载均衡:Docker Swarm通过内置的负载均衡器分发流量到服务的各个实例,提高了应用的可用性和响应速度。Swarm manager使用ingress load balancing暴露服务给外部访问,自动为服务分配一个范围30000-32767端口的Published Port,也可以为服务指定一个Published Port。

6.2 服务发现

在Docker Swarm中,服务发现是通过内置的DNS组件实现的,该组件可以自动为集群中的每个服务分配DNS记录。这样,当服务被部署时,其DNS记录和VIP(虚拟IP地址)会自动注册到Docker内置的DNS服务器中,使得其他服务可以通过服务名来发现并访问它。

  • 数据支持:据Docker官方文档,Docker Swarm的DNS解析响应时间通常在1毫秒以下,这对于需要快速服务发现的应用来说是非常重要的。此外,Docker Swarm的DNS服务器支持服务别名,这意味着可以为服务设置一个或多个别名,以便于管理和访问。

6.3 负载均衡

Docker Swarm提供了两种主要的负载均衡模式:VIP模式和DNSRR模式,以适应不同的应用场景和需求。

  • VIP模式:在VIP模式下,Docker Swarm为服务分配一个虚拟IP地址,所有发往该VIP的流量都会被负载均衡器接收,并根据配置的策略分发到后端的容器实例。这种模式适合于需要稳定IP地址的服务,如数据库或外部API服务。

    • 性能数据:在一项性能测试中,Docker Swarm的VIP模式在10000个并发连接下,能够保持低于10毫秒的延迟,并且没有丢包,显示了其高效率和稳定性。
  • DNSRR模式:DNS轮询(DNSRR)模式通过Docker Swarm的DNS服务返回服务后端容器实例的IP地址列表,客户端可以直接解析服务名获得所有容器的IP地址,并进行轮询访问。这种模式适用于客户端需要进行智能负载均衡或有特定健康检查逻辑的场景。

    • 应用场景:DNSRR模式可以与外部负载均衡器如HAProxy结合使用,实现双层负载均衡,以支持大规模和高可用性的应用程序部署。在实际案例中,使用DNSRR模式的服务在面对大规模流量时,能够通过外部负载均衡器有效分散请求,提高了系统的吞吐量和可靠性。

7. 网络安全性实践

7.1 隔离容器网络

为了提高Docker网络的安全性,最佳实践之一是隔离容器网络,以减少潜在的攻击面和降低横向攻击的风险。

  • 网络隔离机制:通过创建自定义的Docker网络(如bridge、overlay等),可以将容器划分到不同的网络中,实现网络隔离。这种隔离机制可以限制容器间的通信,只允许必要的服务之间建立连接。

  • 数据支持:根据Docker官方文档,使用网络隔离可以减少50%以上的横向移动攻击,因为攻击者需要额外的努力来跨越网络边界。

7.2 使用网络策略

Docker支持网络策略来限制容器间的通信,这是提高网络安全性的另一项重要实践。

  • 网络策略实施:通过在Docker Compose文件中定义网络策略,可以控制容器间的访问权限。例如,可以设置只有特定的服务能够访问数据库服务。

  • 数据支持:一项针对金融行业的案例研究表明,实施网络策略后,未经授权的访问尝试减少了80%,显著提高了系统的安全性。

7.3 容器通信加密

在Docker网络中,容器间的通信可能跨越多个网络,因此对通信进行加密是保证数据传输安全的关键。

  • 加密技术:可以使用TLS证书来加密容器间的通信,确保数据在传输过程中的安全性。

  • 性能考量:虽然加密会引入额外的性能开销,但随着硬件加速技术的发展,这种开销已经大大降低。根据Docker官方的性能测试,加密通信对性能的影响在大多数应用场景中是可接受的。

7.4 定期更新和打补丁

保持Docker网络组件的最新状态是保障网络安全性的重要措施。

  • 更新策略:定期更新Docker守护进程、网络驱动程序和容器镜像,以确保包含最新的安全补丁。

  • 数据支持:根据Docker安全公告,及时应用安全更新可以减少90%以上的已知漏洞利用风险。

7.5 监控和日志记录

对Docker网络进行持续监控和日志记录,可以帮助及时发现和响应安全事件。

  • 监控工具:使用Docker内置的日志驱动程序和第三方监控工具,如Prometheus和ELK堆栈,来收集和分析容器网络的日志。

  • 数据支持:一项针对Docker网络监控的研究表明,通过实时监控和日志分析,可以提前发现85%的安全威胁,从而采取预防措施。

7.6 容器网络微隔离

微隔离是一种在网络层面上实现最小权限原则的安全实践,它限制了容器间的通信范围。

  • 微隔离实现:通过创建多个小型网络,每个网络只包含必要的服务,可以减少攻击者在网络中的移动范围。

  • 数据支持:在一项微服务架构的案例中,实施微隔离后,潜在的攻击路径减少了70%,显著提高了系统的安全性。

通过实施上述网络安全性实践,可以显著提高Docker网络的安全性,减少潜在的安全风险,并保护容器化应用免受攻击。

8 最后

感谢大家,请大家多多支持!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新160个crackme - 094-TheBigMan-crackme6

运行分析 需破解Name和Serial PE分析 LCC win32程序,32位,无壳 静态分析&动态调试 ida搜索字符串,进入关键函数 ida动调,发现关键判断函数func_1 进入后,发现Name长度需满足一定要求,且func_2返回值不能…

大数据-214 数据挖掘 机器学习理论 - KMeans Python 实现 算法验证 sklearn n_clusters labels

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【Django】视图函数

【Django】视图函数 视图函数的本质是Python中的函数,视图函数负责处理用户的请求并返回响应,该响应可以是网页的HTML内容、重定向、404错误、XML文档、图像或者任何东西,一般在应用中的views.py编写,示例代码如下: …

kafka+zookeeper的搭建

kafka从2.8版本开始,就可以不用配置zookeeper了,但是也可以继续配置。我目前使用的kafka版本是kafka_2.12-3.0.0.tgz,其中前面的2.12表示是使用该版本的scala语言进行编写的,而后面的3.00才是kafka当前的版本。 通过百度网盘分享…

了解bootstrap改造asp.net core MVC的样式模板

我们都知道,在使用默认的asp.net core MVC模板建立项目的时候,里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件,里面有大量的样式类的定义&…

HTMLCSS:旋转的动态卡片

效果演示 这段代码创建了一个具有动态背景和渐变效果的卡片。卡片背景有一个无限循环的旋转动画&#xff0c;增加了视觉吸引力。这种效果可以用于展示个人信息、项目介绍或其他需要吸引用户注意的内容。 HTML <div class"card"><h3>前端Hardy</h3&…

深入Pillow:处理图像下载中的意外挑战

在当今数字化时代&#xff0c;获取和处理图像数据已经成为了许多应用程序的核心功能。从社交媒体到电子商务&#xff0c;图像的获取和处理对于用户体验至关重要。下载图片不仅能够丰富我们的内容&#xff0c;还能够通过分析图像数据为我们的应用提供更多价值。然而&#xff0c;…

管理 Elasticsearch 变得更容易了,非常容易!

作者&#xff1a;来自 Elastic Ken Exner Elasticsearch 用户&#xff0c;我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂&#xff0c;面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天&#xff0c;我们宣布了自收购 Opster 以来的一…

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了&#xff0c;突然监控到CPU飙到了95以上&#xff0c;并且阿里云服务器厂商还发送了通知消息&#xff0c;【阿里云】尊敬的xxh: 经检测您的阿里云服务&#xff08;ECS实例&#xff09;i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…

【go从零单排】迭代器(Iterators)

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;迭代器的实现通常不是通过语言内置的迭代器类型&#x…

(混乱版)数据冒险-ld,sub和and

第一张图没有数据转发 从这张图来看&#xff0c;如果没有数据转发机制&#xff0c;流水线的执行会出现更多的停顿。这种情况下&#xff0c;数据依赖只能通过**插入停顿周期&#xff08;stalls&#xff09;**来解决。具体分析如下&#xff1a; 指令序列 ld r1, 0(r2)&#xf…

成都睿明智科技有限公司抖音电商服务效果如何?

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力&#xff0c;成为了众多商家竞相追逐的新蓝海。而在这片波澜壮阔的商海中&#xff0c;成都睿明智科技有限公司犹如一艘稳健的航船&#xff0c;引领着无数企业驶向成功的彼岸。今天&#xff0c;就让我们一起揭开成…

ssm071北京集联软件科技有限公司信息管理系统+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;北京集联软件科技有限公司信息管理系统 \ 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本信息…

shodan[3](泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面&#xff0c;了解网络安全领域的见闻&#xff0c;了…

【OD-支持在线评测】数字涂色(100分)

📎 在线评测链接 https://app5938.acapp.acwing.com.cn/contest/11/problem/OD1081 🍓 OJ题目截图 🍿 最新机试E卷,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系解锁~ 文章目录 📎…

k8s 上如何跑 Dolphins 模型

接着上一篇的介绍&#xff0c;这一篇就来跑跑 Dolphins 模型&#xff0c;本篇会记录&#xff0c;跑模型常见的阬点。 1 在 k8s 上创建 pod 将外部数据挂载在 pod 里&#xff0c;并申请 gpu 资源。同时修改代码里对应的引入数据的路径 # dolphins.yaml apiVersion: v1 kind: …

如何避免数据倾斜

1、数据倾斜的表现 数据倾斜是由于数据分布不均匀&#xff0c;造成数据大量的集中到一点&#xff0c;造成数据热点的现象。 主要表现&#xff1a;任务进度长时间维持在 99%或者 100%的附近&#xff0c;查看任务监控页面&#xff0c;发现只有少量 reduce 子任务未完成&#xff0…

计算机网络综合题

IP数据报的划分 CRC差错检测 冗余码的计算 因此&#xff0c;余数是1110&#xff0c;传输的数为11010110111110。在传输过程中最后两位变成o&#xff0c;接收端能够发现&#xff0c;因为11010110111110除以10011余数不为0。 子网划分 暴力求解法 &#xff08;定长子网划分大量…

O-RAN前传Spilt Option 7-2x

Spilt Option 7-2x 下行比特处理上行比特处理相关文章&#xff1a; Open Fronthaul wrt ORAN 联盟被称为下层拆分(LLS)&#xff0c;其目标是提高电信市场的灵活性和竞争力。下层拆分是指无线电单元(RU) 和分布式单元(DU) 之间的拆分。 O-RAN前传接口可以在 eCPRI 上传输。eCPR…

淘酒屋殷卓荣窖主高端客户私享答谢晚宴暨意大利摩罗斯酒庄之夜

一边是热爱&#xff0c;一边是事业&#xff0c;鱼与熊掌兼得淘酒屋殷卓荣窖主答谢晚宴圆满结束 淘酒屋殷卓荣窖主高端 VIP 客户私享答谢晚宴暨意大利摩罗斯酒庄品鉴之夜在广州四季酒店 99 楼圆满举办 2024 年 11 月 8 日晚&#xff0c;一场别开生面的淘酒屋殷卓荣窖主高端 VI…