分布式系统概念和设计

网络和网络互联

分布式系统的网络问题

分布式系统的复杂度是因为其中无数的应用进行交互导致的不确定的状态

性能

等待时间和点对点传输率

  • 等待时间:是指在执行发送操作之后到数据在目的可用这一段时间,通过传输空消息进行度量
  • 数据传输率:一旦输出过程开始,数据在网络上的两台计算机之间的传输速率(bps/s)

两个计算机之间传输length长度的消息网络所需要的时间

消息传输时间 = 等待时间 + length / 数据传输率

其他条件:

1.消息长度不超过网络所允许的最大值,长消息会被分成多个段,总的传输时间也相应的变成多个段的传输时间的总和。

网络传输率:主要是由网络的物理特性决定。

等待时间:主要由软件开销,路由延迟,源于争夺传输信道的依赖负载的统计因素三方面决定

关于等待时间有一个重要的意义:分布式系统中有很多小的数据传输,因此等待时间在决定性能上与数据传输率有相同或更重要的意义。

网络的系统总宽带是吞吐量的度量——在给定时间内网络可以传输的数据总量。

  • 局域网技术中,如以太网,每一次的数据传输都用到了整个网络的传输能力,这时系统的带宽也就是数据的传输率。
  • 在广域网技术中,消息可以同时在多个不同的信道中传输,这是系统的总带宽和传输率没有直接关系。网络性能会在网络超载时恶化——超载的原因是太多消息同时在网络中传输。
    超载给网络的等待时间,传输率以及总的带宽所带来的精确影响极大的依赖于网络技术。

网络传输的一个例子:

有标准的PC或Unix系统构造的负载较轻的本地网络环境下,传输一个短请求消息加上收到一个空应答的总时间通常是一毫秒之内。

而调用一个已经在本地内存中的应用层对象操作,需要的时间是微妙级别的。

最终发现,即使是网络性能发展的再快,本地网访问共享资源的时间依然比访问本地内存的资源慢1000倍。

因特网上往返的延迟平均值是?

300~600ms,比访问本地慢500倍,这里的延迟时间来自于路由器的交换延迟和网络电路的竞争。

可伸缩性

计算机网络是现代社会不可缺少的基础设施。

可靠性

故障模型说明:通信子系统无须提供完全无错的通信

通信错误的检测和更正经常由应用层软件完成。链接失败,socket失败等

大多数出现的错误通常是由发送方或接收方中的软件故障或者缓冲溢出,而非网络错误。

安全性

大多数组织的网络防御方式是在组织内部设置一套防火墙

防火墙的主要作用:在组织内部的局域网和因特网之间建立一个保护的边界,保护组织内的所有计算机资源不受外界用户和进程的访问,并能控制组织内用户使用防火墙之外的资源。

防火墙运行在网关上,网关是因特网到组织内部网入口点的计算机。

防火墙接收并且过滤掉所有关于组织的信息。

防火墙通常按照组织的安全策略进行配置,哪些允许哪些拒接。

为了保证分布式系统在防火墙的限制下依然可以执行,所需要的一个安全环境是可以部署大型的分布式系统,具有端到端的认证,私密和安全。

使用密码技术可达到这种细粒度的更灵活的安全形式。

VPN(虚拟私有网络),允许对移动设备和其他外部节点建立安全链接以便使得能参加到一个安全的内部网络。

移动性

分布式系统对移动设备的支持保证连续通信要求的无线网络,移动网络的扩展还在持续进行中。

服务质量

在传输和处理实时多媒体数据满足期限要求的能力。

在传输多媒体数据的应用要求所使用的信道有足够的宽带和受限的等待时间。

应用可以同时指定最小可接受服务质量和期望的最佳值。

组播

分布式系统中大部分通信是一对进程之间。一对多的通信是网络技术向多个接收方传递消息。

网络类型

区分物理传输技术和底层协议

ATM(异步传输模式)可适用于局域网和广域网

无线网络,同时支持局域网和城域网

局域网(LAN)Local Area Net

由单一通信介质链接的计算机之间以相对较高的速度传输信息

介质包括:双绞线,同轴电缆和光纤

双绞线(Twisted Pair)
双绞线是由两根绝缘电线紧密绞合在一起形成的电缆,它是目前最常见的通信电缆之一。双绞线可分为屏蔽双绞线和非屏蔽双绞线两种类型,常用于网络通信、电话线路等。

同轴电缆(Coaxial Cable)
同轴电缆是由一个中心导体、一层绝缘体和一个外层导体构成的电缆。同轴电缆常用于电视、计算机网络和电话系统中。它具有良好的抗干扰性能和传输速率高等优点。

光纤(Optical Fiber)
光纤是用高纯度玻璃或塑料制成的一种导光线。它具有传输速率快、抗干扰性强、抗电磁干扰等优点,被广泛应用于高速宽带通信、数据中心、医疗设备、安防系统等领域。

段:是指为一个部分或一层楼的很多电脑服务的那部分电缆。

在段中,消息不需要路由,因为段中的计算机都有直接的链接。

整个系统的带宽由链接在段中的计算机共享。

对于局域网,除了消息流量很大,系统总宽带高,等待时间短。

广域网 (WAN) Wide Area Network

在不同组织甚至被远距离分隔开的节点之间以低速传递消息。

通信介质是链接专用计算机的通信电路。

管理整个通信网络,并将消息或数据包路由到指定的地点。

大多数网络中,路由操作在每个路由点都引入了一定的延迟,因此消息传送的总等待时间取决于消息路由和消息经过的网络段的流量负载。

Win:tracert www.baidu.com

检测路由点,每个路由点的网段流量负载情况时间总和

城域网

基于高宽带的铜线和光纤电缆,距离50km内的城镇传输多媒体和其他数据。

电缆可以扩展开发,提供对分布式系统的数据传输率提供支持。

无线网

无线通信支持

WLAN:IEEE 802.11标准,在150m的范围提供2Mbps-11Mbps的数据传输

蓝牙低功耗无线网络技术:10m内进行1Mbps-2Mbps的速度传输数据

互联网

一个通信子系统,将多个网络连接起来提供公共数据通信设施,隐藏了单个网络中的技术,协议以及用于互联的方法。

开发可伸缩,开放的分布式系统需要类似互联网这样的网络。

分布式系统的开放性暗示了分布式系统所使用的网络应该是一个可扩展到大量计算机的网络。

在单个网络的地址空间有限,有一些网络有性能限制,不能满足大规模使用。

互联网是有多种网络组成。互联是靠特定的称为路由器的计算机和通用的网关计算机,集成通信子系统由软件层实现。

为整个网络的计算机提供寻址以及数据传输能力。

imagine:将互联网层覆盖在有底层网络,路由器,网关等组成的一个通信介质上构造的一个虚拟网络,因特网是互联网的很好说明,使用TCP/IP协议是集成层的一个很好说明。

网络比较

网络原理

计算机网络基础是包交换技术。

计算机在数据传送时先存储的能力。

允许向多个地址发送的消息可以共享同一个通信链接。

链接可用时,数据包按序排列在缓冲区中,然后发送。

通信是异步,消息经过一个延迟到达目的地,该延迟取决于数据包在网络中传递所花的时间

数据包的传输

计算机网络的大多数应用需求是发送信息的逻辑单元或消息——任意长度的数据串

在消息传递前,数据串被分割为数据包

最简单的数据包格式是一定长度的二进制数据序列,以及识别源和目标地址的寻址信息。

使用一定长度的数据包是为了:

  • 网络中的每个计算机能为可能到来的最大的数据包分配足够的缓冲空间
  • 避免因长消息不加分割地传递而为等待信道空闲而引起的延迟
数据流

消息为基础的通信方法可以满足大多数应用除了流媒体。

流媒体数据比分布式系统中其它大部分通信形式所需要的带宽都高。

传输数据需要进行压缩,并且数据是需要连续传输。

流媒体元素的播放时间是必须显示的时间或必须转成音频的时间。

如果流媒体每秒是24帧,第N帧的播放时间是从流开始传输后的(N/24)秒。

元素如果迟于它的播放时间到达目的地,该元素不再可用,被进程丢弃。

及时传输这种数据依赖于具有一定服务质量的网络链接——带宽,等待时间和可靠性都必须有保证。

流媒体需要建立从源到目的地的通道,其中路由是预定义,每个结点为其经过和缓冲保留好了需要的资源以便为数据流中任何不规则的地方进行适当的修复。

通过这个通道,数据可在要求的速率下从发送方到接收方。

ATM网络,IPv6,RSVP,RTP

ATM协议:

ATM(Asynchronous Transfer Mode,异步传输模式)协议是一种面向连接的、高速、低延迟的数据通信协议。它采用固定长度的小数据单元(53字节),可以在多种不同的物理介质上传输数据,并提供了多种服务质量(QoS)保障机制。ATM协议在计算机网络中广泛应用于广域网、局域网、移动通信等领域。

IPv6协议:

IPv6(Internet Protocol version 6,互联网协议第6版)是一种用于网络通信的协议。它是IPv4的升级版,提供了更多的地址空间和安全性,可以支持更多的设备和应用。IPv6协议使用128位的地址长度,可以提供340万亿亿亿亿个地址,足以满足未来几十年的发展需求。IPv6协议在互联网中广泛应用于数据通信、视频传输、物联网等领域。

RSVP协议:

RSVP(Resource Reservation Protocol,资源预留协议)是一种用于网络中的服务质量保障(QoS)的协议。它允许网络中的节点在通信之前预留一定的带宽、延迟、丢包率等资源,从而保证通信的可靠性和稳定性。RSVP协议可以应用于各种不同的网络中,包括有线网络、无线网络、互联网等。

RTP协议:

RTP(Real-time Transport Protocol,实时传输协议)是一种用于音视频传输的协议。它可以在网络中传输实时的音频、视频、图像等媒体数据,支持多种不同的编码格式和传输方式。RTP协议使用UDP协议进行传输,可以在网络中提供低延迟、低丢包率的媒体传输服务。RTP协议广泛应用于视频会议、流媒体、IP电话等领域。

交换模式

网络是一组由电路连接起来的节点组成,为了能在任意两个节点间传输信息,交互系统必不可少。

  • 广播:是一种传输技术,不涉及交换。无论什么信息都将传给每一个节点。
    有接收方判断接收还是不接受。
  • 电路交换:电路交换网络,经过多个交换台。
  • 包交换:计算机和数字技术的诞生为电信带来新的机会的根本是,能够通过机器处理和存储数据,为通信网络提供了一种新的方法——存储转发网络。存储转发网络是将数据包从源发送到目的地,每个交换节点上的计算机会将达到的数据包先存储在节点计算机内存,再由一个程序选择数据包外出电路,将它们转发到下一个距离目的地更近的站点。《黑客帝国》
  • 帧中继:数据包的存储转发传输并不是瞬间完成的。节点转发会造成延迟,根据包大小可以计算出延迟时间。用快速交换小的数据包(帧)来解决延迟的问题。交换节点通过检测帧的前几位信息来路由帧。帧并不作为一个整体存储在节点中,而是通过位流的形式通过节点。ATM技术在由很多节点组成的网络中传递数据包只需要几十微秒

帧中继是一种数据链路层协议,它可以将数据帧从一个物理网络转发到另一个物理网络。在网络设计中,使用帧中继可以扩展局域网的范围,并提高数据传输速度和可靠性。通过使用帧中继,数据可以在不同的物理媒介之间进行传输,例如从光纤到铜线或者从无线信号到有线信号。

此外,帧中继还具有自动拓扑发现和故障隔离等功能。通过这些功能,网络管理员可以更加方便地管理和维护整个网络系统。

协议

协议的存在使得能独立地开发分布式系统的软件组件,并且能在代码上次序不一样,数据表达不一样的计算机用不同语言独立实现的组件,比如自然语言协议。

一个协议是由分别位于发送方和接收方一对软件模式实现的。

进程间通信所需要用到的众所周知的规则和格式:

  • 必须被交换的消息的顺序约定
  • 消息中数据格式的约定

一个传输协议将任意长的数据从一个进程发送到另一个接收进程,想向另一个进程传输消息的进程给传输协议模块发送一个调用,并指定格式传递消息。

传输软件接收负责将消息传递到目的地,将消息分割成指定大小的数据包和格式。

利用网络协议,传输到目的地。

接收方计算机中相应的传输协议模块通过网络层协议模块接收这些数据包,并在传递给接收进程之前,进行逆向的转换,重新生成消息。

协议层

网络软件是按层次排列的。

每一层都为上一层提供接口,并扩展底层通信系统的特质。

层表示成与网路相联的每一个计算机上的一个模块。

协议组

一套完整的协议层次被称为协议组或者协议栈。

数据包装配

1.传输前将消息分割成多个数据包以及在接收端重新组装各个数据包,通常由传输层完成。

2.网络层协议的数据包包括头部和数据部。数据域是可变的,限制在一个最大的传输单元(MTU)

如果消息的长度超过了底层网络的MTU,就将其裁成多个适当的大小,并标上顺序号以便进行充足

再用多个数据包进行传输

端口

传输层的任务是在一对网络端口间提供网络独立的消息传送服务

端口是主机中可有软件定义的通信端点,属于进程,可以让进程成对的通信。

可以改变端口抽象的特定细节提供有用的性质。

寻址

传输层负责将消息传递到目的地地址,其使用传输地址有主机的网络地址和一个端口号组成。

网络地址是唯一能标识主机的一个数字标识,可以让负责将数据路由到该主机的结点准确的定位。

因特网中每台主机都分配一个IP地址。用于标识该主机和相应它连入的子网,允许链接的节点。

以太网中没有路由节点,每台主机都有责任辨识数据包的地址,并接收发给自己的数据包。

路由

路由是除了局域网外其他所有的网络中都需要的功能。

大型网络中,采用自适应路由:两个节点间的最佳路由会被周期性重新评估,评估时考虑网络流量和故障

网络中将数据包传递到目的地是处于链接点的众多路由器的责任。

负责将数据包传输到目的地的路由算法:

1.必须决定每个数据包在穿梭于网络时所经过的路径

  • 在电路交换网络层和帧中继网络,虚拟电路链接建立后,整个路径已经决定。
  • 在包交换网络层,数据包的路径是单独决定的。

2.能根据监控流量和检测配置变化或故障动态的评估整个网络。

RIP 路由信息协议

1.周期性地以及一旦本地路由表发生改变,将自己的路由表以概要的方式发送给紧邻的可访问的路由器,在每个没有故障的线路上发送一个包含路由表副本的RIP数据包

2.紧邻路由器收到这样的表,如果接收到的表中给出到达一个新目的地的路由或对已有一个目的的存在更好的路径,更新本地路由表。

如果路由表是从链路n接收到的,并且表中给出的以链路n开头的到达某点的开销和本地路由表不相同,则用新的开销替换,因为新表和相关的目的地更近的路由器传来的,因此对经过更有权威性。

拥塞控制

网络的能力受限于通信链路和交换节点两者的性能。

当任何链路或节点的负载接近负载能力,主机开始建立等待发送的数据包队列

中间节点也会堆满被其他数据传输所阻塞了的数据包

如果负载继续维持这样的高水平,那么等待发送的队列就会不断的增长,

直到达到可用缓冲区空间的限制。

当节点处于这样的状态时,节点只能将未来到达的数据包丢掉。

当数据包丢失率和重传到达一个很高的状态,对网络吞吐量是灾难性的。

数据包在中间节点丢失,已经被占用的网络资源就被浪费掉了,重传还是会消耗同样的资源。

经验:当网络的负载能力超过80%,系统的吞吐量会因为数据包丢失而下降。

控制方法

拥塞技术

为了避免数据包在网络传递时经过拥塞节点而被丢弃,最好将数据包存在未发生拥塞节点中知道拥塞减少。

这样增加的数据包的延迟,但不会严重降低整个网络的吞吐量

所有基于数据报的网络层,包括IP,以太网。都依靠端到端的流量控制。

发送节点必须基于收到的接收方信息减少发出数据包的速率。

网络互联
  • 统一的互联网寻址机制,使得数据包可以找到连在任何一个子网中的任意主机
  • 定义互联网中的数据包格式并给出相应处理规则的协议
  • 互联组件,用于按照互联网地址将数据包路由到目的地。

路由器

除以太网和无线网这样的网络外——网络中的主机都是由一个传输介质所连接——其他所有网络都需要路由。

网桥

网桥连接不同种类的网络。

网络集线器

将主机和以太网以及其它广播本地网络技术的扩展段连接起来。

有多个插槽,每个插槽连接一台计算机

交换机

互联多个分离的以太网,将到达的数据包路由到适当的网络中。

在以太网的网络协议层上完成这一任务。

隧道法

网络和路由器在多种底层网络上传输互联网数据包。

有一个情况是底层网络协议在传输时可以隐藏起来,并且不需要使用特殊的互联网络协议。

因特网协议

网络和网路互联的设计相关推荐

  1. 基于jsp(java)网络教学平台系统的设计与实现

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的 ...

  2. 基于jsp(java)网络教学平台系统的设计和开发(含源文件)

    获取项目源文件,联系Q:1225467431,可指导毕设,课设 摘 要 远程教育作为现代教育技术的形式,给教育思想与技术带来了革命性的变革,己经成为现代教育的必然要求.远程教育要得以顺利.高效的实施, ...

  3. 【php毕业设计】基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码)——网络数据包分析工具

    基于php+mysql+apache的网络数据包分析工具设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于php+mysql+apache的网络数据包分析工具设计与实现,文章末尾附有本毕业设 ...

  4. 基于java的网络在线考试管理系统的设计与实现--毕业开题报告

    基于java的网络在线考试管理系 统的设计与实现开题报告–毕业设计 最近grace刚完成毕业设计 通过了赶紧来给宝贝们分享我的成果哈哈 设计题目:基于java的网络在线考试管理系统的设计与实现 一.选 ...

  5. 聊天系统设计与实现服务器代码,网络聊天工具系统的设计与实现.doc

    PAGE 综合课程设计报告 网络聊天工具系统的设计与实现 学生姓名: 指导教师: 所 在 系: 电 子 信 息 系 所学专业: 计算机科学与技术 年 级: PAGE 1 1 目 录 TOC \o &q ...

  6. 网络协议及网络软件框架设计网络协议

    >>Drew的主页--->网络协议 主页 VxWorks ARM PowerPC 硬件驱动 网络协议 程序示例 下载 个人兴趣 网络协议及网络软件框架设计 网络协议 TCP/IP ( ...

  7. Docker使用自定义网络实现容器互联

    目录 容器互联 步骤 新建网络 连接容器 测试连接 添加已经运行的容器到自定义网络 容器互联 随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来实现互联,而不是使用 ...

  8. 网络通讯端口为什么要设计浪涌保护电路

    Hqst盈盛电子导读:雷击等原因形成的过电压和过电流不但会对网络通信信号产生极大的干扰,甚至会对设备端口造成巨大的损害,因此,在通讯线路中我们应当设计相应的雷击浪涌防护电路. 网络通讯端口为什么要设计 ...

  9. c语言课程设计 聊天室,网络聊天室C课程设计

    网络聊天室C课程设计 网络聊天室C课程设计 using System.Reflection; using System.Runtime.CompilerServices; [assembly: Ass ...

最新文章

  1. delphi 程序运行时移动控件
  2. MySQL删除同一个字段的多条记录
  3. 14.Java包装类
  4. 一个小清新搜索引擎试用感受 - 多吉搜索引擎(dogegoge)
  5. Vue(MVVM)、React(MVVM)、Angular(MVC)对比
  6. 如何确定h.264的码率
  7. ibm笔记本电脑电池_笔记本电池怎么充电 笔记本电脑电池充电方法【详解】
  8. 一键切换ip地址bat_震惊!FPGA配置居然一键完成!
  9. 收获不止oracle在线,重温《收获不止Oracle》
  10. Oracle数据库中文乱码问题
  11. HttpComponents分析之连接池实现
  12. python---基础知识回顾(十)进程和线程(协程gevent:线程在I/O请求上的优化)...
  13. 监控mysql的存储引擎
  14. 10款超炫HTML5游戏 附游戏源码
  15. 梦幻西游端游脚本制作教程
  16. 波浪线html,js中的波浪线符号作用(按位非(~)符号)
  17. 计算机英语性考任务答案,国开电大理工英语1单元自测7形考任务答案
  18. 继承,买卖与赠与房屋时哪个最合算
  19. 金三银四阿里我去定了,谁也拦不住我,这份《Android面试宝典》说的
  20. java 生成短链接_java调用百度API生成短链接(一)

热门文章

  1. 牛顿法计算平方根java_利用牛顿迭代法求平方根(转)
  2. frame组件+pack()来布局定位组件,实例讲解
  3. toAppendStream doesn‘t support consuming update and delete changes which is produced by node XXX
  4. 通过数据分析找出Netflix最适合学习英语的电影和电视剧
  5. 图像融合(Image Fusion)简介
  6. 青岛大学计算机小姐姐,青岛大学举牌校花一夜爆红,评论区留下脏话:见不得别人好是病!...
  7. DoNet学习-WebForm视频教程(30集)
  8. 计算机桌面曝光,win7电脑桌面壁纸曝光过高影响图标怎么办?亲测实用解决方法...
  9. 【正则表达式】从字符串中提取数字
  10. js实现表单及时验证功能 用户信息立即验证