架构师基础一
主要内容是数据是如何发送、影响发送速度的因素、为什么要限制带宽
一、数据的网络传输
数据是如何发送的?
- 应用程序首先将要发送的数据写入该进程的内存地址空间中。
- 应用程序通过系统函数(send)向内核发出系统调用,它将这些数据从用户态内存区复制到由内核维护的一段称为内核缓冲区的内存地址空间。这块地址是有限的空间,所以发送的数据以队列的形式进入,而这些数据来自多个进程,每块数据都有一定的额外记号来标记去向。如果发送的数据比较多,那么改系统调用就会进行多次,每次复制一定的数据大小,这个大小取决于网络数据包的大小以及内核区的承载能力。
- 当数据写入内核区后,内核会通知网卡控制器来取数据,同时CPU转而处理其他的进程。网卡接到通知后,便根据网卡驱动信息得知对应内核缓冲区的地址,将发送的数据复制到网卡的缓冲区中。注意以上一系列的数据复制中,数据始终按照连接两端设备的内部总线宽度来复制,也就是字节的整数倍。比如32位总线的主机系统一般使用32位总线宽度。
- 网卡缓冲区中的数据需要发送到线路中,同时释放缓冲区来来获取更多要发送的数据。只有二进制的数字信号才可以在线路中传输,所以这时候需要对数据进行字节到位的转换。
- 发送时网卡会使用内部特定的物理装置来生成可以传播的各种信号。
二、影响发送速度的因素
这里所将的带宽指的是数据的发送速度,如百兆网卡,一秒钟最快可以发送100Mb,那么影响他的发送速度的因素有哪些?
- 数据发送装置将二进制信号传送至线路的能力称信号传输频率,以及另一端的数据接收装置对二进制信号的接收能力。值得注意的是,信号的接收能力至关重要,如果接收能力跟不上,发送能力不可能提高。
- 数据传播介质的并行度,它完全等价于计算机系统总线宽度的概念。
三、限制带宽
在大多数情况下,我们都将Web站点服务器托管在IDC,通过将其连接到某个交换机,从而进入互联网。这时候,我们的服务器拥有自己的IP地址,当站点用户通过互联网向这台服务器请求数据后,数据从服务器经交换机到达指定的路由器,这个过程需要交换机的存储转发机制,也就是交换机从连接服务器的端口接收数据,存储到交换机内部的高速缓冲队列中,然后将其从连接路由器的端口发送出去,再经过路由器的转发,进入另一个网络,接下来重复这些过程,直至进入PC。
如果全世界只有你的服务器和你的用户在传输数据,那么这部分数据流经的每个交换节点都会全心全意地做好转发工作,此时你的数据在各节点转发的发送速度都可以达到理论上设备所能达到的最大值。但实际上每处交换节点都有可能来自其他的主机数据,包括你的数据在内的所有数据都汇集进入路由器的转发队列,路由器按照转发队列中的顺序来交错地发送这些来自不同主机的数据,所以单从来自不同主机的数据而言,其转发时的发送速度必定小于所有从路由器转发出去的数据的发送速度(即该交换节点的出口带宽)
因为带宽是有限的,它毫无疑问是个抢手的资源,而且互联网运营商在所有的基础交换节点设置管卡,也就是限制数据从你的主机流入路由器转发队列的速度,而只要流入路由器转发队列的数据,都会按照路由器出口带宽,流入其他网络。
分享到:
相关推荐
《架构师(第1期).pdf》作为系列的起始篇,其内容无疑为读者打下了坚实的基础。它首先定义了架构师的角色,让读者明确架构师不仅仅是技术团队的一员,更是连接业务战略和技术实施的关键桥梁。在这一期中,读者可以...
《一线架构师实践指南》是一本专为有志于或已经在IT行业中担任架构师角色的专业人士准备的电子书籍。该书旨在提供实用的、一线的架构设计与实施经验,帮助读者提升自己的专业技能,理解并解决实际工作中遇到的挑战。...
一个优秀的架构师不仅要精通技术,还需要具备良好的沟通能力、管理能力和对业务的深刻理解。 架构师的核心职责是全面理解业务需求,基于模型和基础模式进行抽象和简化。他们需要提出恰当且可行的整体解决方案,同时...
计算机基础是架构师必备的知识之一,涉及到硬件和软件的组成,以及系统软件和应用软件的区分。操作系统作为计算机系统的核心,其基础原理、类型、结构,以及并发性、共享性和虚拟性等特征是架构师必须掌握的。此外,...
《软件架构师教程》是一本全面且深入的指南,旨在帮助读者掌握软件架构设计的核心概念、原则和实践。作为系统架构师考试的重要参考资料,这本书涵盖了高级软件架构师所需的知识点,同时也是系统分析师提升专业能力的...
云计算架构师培训主要围绕着云计算的基础概念、技术特性、历史发展以及应用趋势展开。在此次培训中,学员将深入理解云计算与虚拟化技术,掌握云计算架构的设计与部署,以及了解云计算的典型应用场景。 首先,云计算...
系统架构师需要掌握一系列的技术和理论知识,这些内容在“系统架构师教程.pdf”中得到了系统的介绍和阐述。 首先,系统架构师需具备扎实的计算机网络基础。计算机网络是现代信息系统不可或缺的组成部分,架构师应...
首先,技术专业能力是架构师的基础,包括深入理解各种技术框架、编程语言、系统设计原则等。但仅掌握这些还不够,架构师还需要具备抽象思维和模型化表达的能力。抽象思维是将复杂系统拆解成可管理的部分,而模型化则...
系统架构师是一个在IT行业中至关重要的角色,他们负责设计、规划和实施复杂的计算机系统,以满足业务需求。历年高级系统架构师真题是备考这一专业资格考试的重要参考资料,涵盖了从2009年至2017年的历年试题,旨在...
"架构师全面体系架构"这一主题涵盖了架构师在开发过程中的各个方面,包括但不限于系统架构、软件架构、网络架构、数据架构等。下面我们将深入探讨这些关键领域。 1. **系统架构**:系统架构是整个IT解决方案的基础...
1. 分析(Analysis):这是架构设计的第一步,要求架构师深入理解业务需求、系统约束以及技术环境。这包括业务流程分析、用户需求识别、系统性能指标设定等,以确保架构设计能充分满足业务目标。 2. 设计(Design)...
1. **系统架构基础**:这部分内容可能涵盖计算机硬件、操作系统原理、网络通信协议、数据库系统、中间件技术等基础知识,这些都是系统架构师必须掌握的基础。 2. **软件设计与开发方法**:包括面向对象设计、敏捷...
一个优秀的架构师需要对业务需求有深刻理解,同时具备技术领导力,能够设计出既满足功能需求又具有良好扩展性和维护性的系统。本书将探讨以下几个关键知识点: 1. **架构设计原则**:书中会详细介绍如何根据业务...
冲击顶级Python架构师-Python超级全栈架构师开发课程,是一套系统化非常强的Python实战课程,课程数目超过了400多集,课程帮助同学们从零基础开始学习Python基础课程,Python高级进阶课程,Python的进程和线程,数据...
《系统架构师官方教材》是一份详尽的资源包,专为那些致力于成为或已经在担任系统架构师的专业人士设计。这份教材涵盖了系统架构师所需掌握的广泛知识领域,旨在帮助学习者深入理解如何设计、构建和优化复杂的技术...
他首先阐述了架构师的角色定位,强调架构师不仅要有扎实的技术基础,还要具备良好的沟通能力、项目管理能力和业务理解能力。这使得架构师能够协调开发团队,确保技术决策与业务目标的一致性。 在框架选择和使用方面...
首先,软件架构师需要具备深厚的技术知识基础。五十多位软件架构师,包括尼尔·福特、迈克尔·尼加德、比尔·德·霍拉等,都是以其在软件架构领域的专业能力被邀请参与写作。他们分享的不仅是开发经验,还有工作中...
总的来说,成为一名合格的架构师,需要深厚的编程基础,卓越的团队协作能力,以及对新技术的敏锐洞察。他们不仅能够设计出高效的系统,还能通过实际行动影响团队,推动项目的成功实施。因此,每个渴望成为架构师的...
一、架构师的基础知识 架构师需要具备一定的基础知识,包括但不限于: * J2EE 工程的通用架构 * 数据库管理系统(如 Oracle) * 应用服务器(如 App Server) * Web 服务器(如 Apache Http Server) * Tomcat ...
《软件架构师:构建高效系统的关键》 在信息化社会中,软件架构师的角色日益凸显,他们不仅是...这些资料将帮助学习者全面了解软件架构师的工作内容,提升他们的专业素养,为成为一名合格的软件架构师打下坚实的基础。