计算机网络协议:分散式、集中式和分布式

一、网络通信模式和网络协议 分散式、集中式和分布式
在早期的计算机网络中,为了有效的利用计算机,一般讲数据通信模型分为分散式(decentralized)、集中式(centralized)和分布式(distributed)。
1、分散式
在分散式系统中,用户只需要管理自己的计算机系统,各自独立的系统之间没有资源或信息的交换或共享。这种模型由于存在大量共享数据的重复存储,除了引起数据冗余之外,也很容易导致一个企业组织内各部门数据的不一致性,同时还会造成硬件,支持和运营维护等成本的大量增加,因此早淘汰。
2、集中式
在集中式环境中,用一台主机算计保存一个企业组织的全部数据,而用户则通过终端连接到这台主机计算机系统并与之通信,从而达到访问数据的目的。终端是包含键盘和显示器设备,通过通信链路发送和接受数据。
集中式优点是所有运作和管理处于单个部门主持与控制之下,硬件成本低。另外,由于资源集中,既促进和方便了用户间的数据共享,又减少或消除了数据的冗余与不一致性。但是,集中式的缺点也很明显,首先,可靠性不如分布式,一旦主机出现故障,所有系统全部瘫痪。其次,集中式环境不能充分满足各个部门或用户的计算需求,这是因为系统所有部门和用户数据都共享,无法满足特殊部门的特殊要求;系统响应也会变慢。
3、分布式
分布式系统是分散式系统和集中式系统的混合,它由一个又一个的计算机连接起来的独立计算机组成。相应的数据也是分布在其他计算机上,不会因为一台计算机出现故障而无法使用的情况出现,更安全可靠,而且为不同的用户设置个性化服务。
c/s模型
c/s(client/server)模型也叫c/s模式,它是分散式、集中式以及分布式的基础上发展来的一种新的模型,c/s模型将一个网络事务处理分为两部分,一部分为客服端(client),它为用户提供网络请求服务接口;另一部分是服务端(server),它负责接收客服端对服务的请求,并将这些服务透明的提供给用户。
b/s模型
b/s(browse/server)模型也叫b/s模式,它是一种基于web通信模型,使用http(hypertext transfer protocol,超文本传输协议)通信。
p2p模型
p2p(peer-to-peer,对等互连),每个联网的计算机运行一个应用程序的client部分和server部分。
tcp/ip网络协议
osi(open system interconnect,开放式系统互连)七层参考模型,它将通信协议抽象为7层(由于较复杂,在实际应用中很少)。
广泛应用的tcp/ip(transmission control protocol/internet protocol,传输控制协议/因特网互联协议),又名网络通讯协议,是internet最基本的协议、internet国际互联网络的基础,由网络层的ip协议和传输层的tcp协议组成。
tcp/ip协议不是tcp和ip这两个协议的合称,而是指因特网整个tcp/ip协议族。
tcp/ip协议模块关系
从协议分层模型方面来讲,tcp/ip由四个层次组成:网络接口层、网络层、传输层、应用层。
网络接口层
物理层是定义物理介质的各种特性:
1、机械特性;
2、电子特性;
3、功能特性;
4、规程特性。
数据链路层是负责接收ip数据包并通过网络发送,或者从网络上接收物理帧,抽出ip数据包,交给ip层。
arp是正向地址解析协议,通过已知的ip,寻找对应主机的mac地址。
rarp是反向地址解析协议,通过mac地址确定ip地址。比如无盘工作站还有dhcp服务。
常见的接口层协议有:
ethernet 802.3、token ring 802.5、x.25、frame relay、hdlc、ppp atm等。
网络层
负责相邻计算机之间的通信。其功能包括三方面。
处理来自传输层的分组发送请求,收到请求后,将分组装入ip数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
处理路径、流控、拥塞等问题。
网络层包括:ip(internet protocol)协议、icmp(internet control message protocol)
控制报文协议、arp(address resolution protocol)地址转换协议、rarp(reverse arp)反向地址转换协议。
ip是网络层的核心,通过路由选择将下一条ip封装后交给接口层。ip数据报是无连接服务。
icmp是网络层的补充,可以回送报文。用来检测网络是否通畅。
ping命令就是发送icmp的echo包,通过回送的echo relay进行网络测试。
传输层
提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送,即耳熟能详的“三次握手”过程,从而提供可靠的数据传输。
传输层协议主要是:传输控制协议tcp(transmission control protocol)和用户数据报协议udp(user datagram protocol)。
应用层
向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录telnet使用telnet协议提供在网络其它主机上注册的接口。telnet会话提供了基于字符的虚拟终端。文件传输访问ftp使用ftp协议来提供网络内机器间的文件拷贝功能。
应用层协议主要包括如下几个:ftp、telnet、dns、smtp、nfs、http。
ftp(file transfer protocol)是文件传输协议,一般上传下载用ftp服务,数据端口是20h,控制端口是21h。
telnet服务是用户远程登录服务,使用23h端口,使用明码传送,保密性差、简单方便。
dns(domain name service)是域名解析服务,提供域名到ip地址之间的转换,使用端口53。
smtp(simple mail transfer protocol)是简单邮件传输协议,用来控制信件的发送、中转,使用端口25。
nfs(network file system)是网络文件系统,用于网络中不同主机间的文件共享。
http(hypertext transfer protocol)是超文本传输协议,用于实现互联网中的www服务,使用端口80。
ip
ip层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---tcp或udp层;相反,ip层也把从tcp或udp层接收来的数据包传送到更低层。ip数据包是不可靠的,因为ip并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。ip数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的tcp和udp服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,ip地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。ip确认包含一个选项,叫作ip source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些tcp和udp的服务来说,使用了该选项的ip包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠ip源地址做确认的服务将产生问题并且会被非法入侵。
tcp
tcp是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于tcp是面向连接的所以只能用于端到端的通讯。
tcp提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。tcp还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。
如果ip数据包中有已经封好的tcp数据包,那么ip将把它们向‘上’传送到tcp层。tcp将包排序并进行错误检查,同时实现虚电路间的连接。tcp数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
tcp将它的信息送到更高层的应用程序,例如telnet的服务程序和客户程序。应用程序轮流将信息送回tcp层,tcp层便将它们向下传送到ip层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它们使用了tcp。dns在某些情况下使用tcp(发送和接收域名数据库),但使用udp传送有关单个主机的信息。
udp
udp是面向无连接的通讯协议,udp数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
udp通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求程序员编程验证。
udp与tcp位于同一层,但它不管数据包的顺序、错误或重发。因此,udp不被应用于那些使用虚电路的面向连接的服务,udp主要用于那些面向查询---应答的服务,例如nfs。相对于ftp或telnet,这些服务需要交换的信息量较小。使用udp的服务包括ntp(网络时间协议)和dns(dns也使用tcp)。
欺骗udp包比欺骗tcp包更容易,因为udp没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与udp相关的服务面临着更大的危险。
icmp
icmp与ip位于同一层,它被用来传送ip的的控制信息。它主要是用来提供有关通向目的地址的路径信息。icmp的‘redirect’信息通知主机通向其他系统的更准确的路径,而‘unreachable’信息则指出路径有问题。另外,如果路径不可用了,icmp可以使tcp连接‘体面地’终止。ping是最常用的基于icmp的服务。
通讯端口
tcp和udp服务通常有一个客户/服务器的关系,例如,一个telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重telnet连接是如何相互确认并协调一致呢?tcp或udp连接唯一地使用每个信息中的如下四项进行确认:
源ip地址 发送包的ip地址。
目的ip地址 接收包的ip地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,smtp使用25、xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
数据格式
数据帧:帧头+ip数据包+帧尾 (帧头包括源和目标主机mac地址及类型,帧尾是校验字)
ip数据包:ip头部+tcp数据信息(ip头包括源和目标主机ip地址、类型、生存期等)
tcp数据信息:tcp头部+实际数据 (tcp头包括源和目标主机端口号、顺序号、确认号、校验字等)
ip地址
在internet上连接的所有计算机,从大型机到微型计算机都是以独立的身份出现,我们称它为主机。为了实现各主机间的通信,每台主机都必须有一个唯一的网络地址。就好像每一个住宅都有唯一的门牌一样,才不至于在传输资料时出现混乱。
internet的网络地址是指连入internet网络的计算机的地址编号。所以,在internet网络中,网络地址唯一地标识一台计算机。
我们都已经知道,internet是由几千万台计算机互相连接而成的。而我们要确认网络上的每一台计算机,靠的就是能唯一标识该计算机的网络地址,这个地址就叫做ip(internet protocol的简写)地址,即用internet协议语言表示的地址。
在internet里,ip地址是一个32位的二进制地址,为了便于记忆,将它们分为4组,每组8位,由小数点分开,用四个字节来表示,而且,用点分开的每个字节的数值范围是0~255,如202.116.0.1,这种书写方法叫做点数表示法。
ipv4
ipv4,是互联网协议(internet protocol,ip)的第四版,也是第一个被广泛使用,构成现今互联网技术的基石的协议。1981年jon postel 在rfc791中定义了ip,ipv4可以运行在各种各样的底层网络上,比如端对端的串行数据链路(ppp协议和slip协议) ,卫星链路等等。局域网中最常用的是以太网。
传统的tcp/ip协议基于ipv4属于第二代互联网技术,核心技术属于美国。它的最大问题是网络地址资源有限,从理论上讲,编址1600万个网络、40亿台主机。但采用a、b、c三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至ip地址已经枯竭。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国截止2010年6月ipv4地址数量达到2.5亿,落后于4.2亿网民的需求。虽然用动态ip及nat地址转换等技术实现了一些缓冲,但ipv4地址枯竭已经成为不争的事实。在此,专家提出ipv6的互联网技术,也正在推行,但ipv4的使用过度到ipv6需要很长的一段过渡期。中国主要用的就是ip4,在win7中已经有了ipv6的协议不过对于中国的用户们来说可能很久以后才会用到吧。
传统的tcp/ip协议基于电话宽带以及以太网的电器特性而制定的,其分包原则与检验占用了数据包很大的一部分比例造成了传输效率低,网络正向着全光纤网络高速以太网方向发展,tcp/ip协议不能满足其发展需要。
1983年tcp/ip协议被arpanet采用,直至发展到后来的互联网。那时只有几百台计算机互相联网。到1989年联网计算机数量突破10万台,并且同年出现了1.5mbit/s的骨干网。因为iana把大片的地址空间分配给了一些公司和研究机构,90年代初就有人担心10年内ip地址空间就会不够用,并由此导致了ipv6 的开发。
ipv6
ipv6是internet protocol version 6的缩写,其中internet protocol译为“互联网协议”。ipv6是ietf(互联网工程任务组,internet engineering task force)设计的用于替代现行版本ip协议(ipv4)的下一代ip协议。
与ipv4相比,ipv6具有以下几个优势: 一、ipv6具有更大的地址空间。ipv4中规定ip地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而ipv6中ip地址的长度为128,即有2^128-1个地址。
二、ipv6使用更小的路由表。ipv6的地址分配一开始就遵循聚类(aggregation)的原则,这使得路由器能在路由表中用一条记录(entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三、ipv6增加了增强的组播(multicast)支持以及对流的支持(flow control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(qos,quality of service)控制提供了良好的网络平台。
四、ipv6加入了对自动配置(auto configuration)的支持。这是对dhcp协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五、ipv6具有更高的安全性。在使用ipv6网络中用户可以对网络层的数据进行加密并对ip报文进行校验,极大的增强了网络的安全性。


借助区块链刷新金融业务体系,实现更高效和低成本的金融交易
对PROFIBUS-PA仪表设备在应用中的要点进行分析与研究
将会改变世界的七大超凡构想
各家布局Micro LED脚步不同 晶电真正量产还需两三年
八个三相回路需要采集电量有什么好办法?
计算机网络协议:分散式、集中式和分布式
Mygica U6885 支持全球DVB-TH数字电视的多功
无线调频麦克风的设计和制作
为您精选上周10则您不能错过的新闻,京东方OLED抢苹单传言再起
关于AH173霍尔传感器的相关应用介绍
机器人写手已经入侵 记者或将被取代
力合微亮相AIOT生态发展大会,PLBUS电力线通信芯片斩获NICT创新奖
ATM网络结构和接口
扫地机器人的设计都将面临着什么样的挑战
使用身份验证器的智能锁的使用和性能
得一微电子携YS9201等新品亮相COMPUTEX 2018
我的华为玩机技巧携手晤对科技,共探创意玩法与新可能
关于MATLAB table数据结构的分析介绍
常州坤维机器人应用传感器
串口传输速率低于波特率会怎么样 串口传输速率低于波特率的原因