精华内容
下载资源
问答
  • 互联网协议 — 动态路由协议类型
    千次阅读
    2020-04-19 13:04:44

    目录

    动态路由协议

    所有的路由协议都是用于提供可达性信息和路径信息。动态路由协议,即:基于动态路由协议的配置参数,(相邻)路由器之间会定期自动的交换彼此的路由信息,路由器会知道网络中其它网段的信息,动态生成路由表,最终达到全网的路由收敛。

    此时,即使网络上的路由节点出现了故障,只要有一个可绕行的其它路径,那么路由器的路由表会自动重新设置,数据包也会自动选择这个路径。

    动态路由协议的基本原理

    路由器之间需要运行相同的动态路由协议,才能相互交换路由信息。不同的动态路由协议,都有着相同的目的,就是计算和维护路由表。通常工作过程包含 4 个阶段:

    1. 邻居发现阶段:运

    更多相关内容
  • 网络安全系列-XI: 主流网络协议介绍

    千次阅读 2022-04-07 10:45:01
    本文针对主流的网络协议进行介绍

    IP协议

    • IP协议:处于第三层 网络层,是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。
      在局域网环境,IP协议往往封装在太网帧中传送,而所有的TCP、UDP、ICMP、IGMP数据都被封装在IP数据报中传送
      • IPv4的2个缺陷:有限的地址空间和路由复杂性
      • IPv6扩展了互联网地址的最大数量,以处理日益增长的互联网用户人口,详见:internet-protocol-ip-version-6
        • IPv6将IP地址的大小从32位增加到128位,因此支持更多层次的寻址层次,更多的可寻址节点,更简单的地址自动配置。
        • 为了简化路由问题,IPv6地址分为两个部分:前缀和ID

    TCP协议

    • TCP协议:处于第4层 传输层,在Internet主机之间提供可靠的数据流传输。
      • TCP使用底层协议Internet Protocol来传输数据报,并支持在进程端口之间进行连续数据流的块传输
      • TCP提供可靠的消息传递。TCP确保数据不会被损坏、丢失、复制或无序地交付给接收进程

    ICMP协议

    • ICMP: 全称Internet Control Message Protocol即Internet控制报文协议,是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。
      • 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
      • ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。
      • 属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等

    DHCP协议

    • DHCP: 全称Dynamic Host Configuration Protocol即动态主机配置协议,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率
      • DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置
      • DHCP有三种机制分配IP地址:自动分配、 动态分配、手工分配

    DNS协议

    • DNS: 全称Domain Name System即域名系统,是Internet上解决网上机器命名的一种系统。
      • DNS作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
      • DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

    BGP协议

    BGP是自治系统间的路由协议。BGP交换的网络可达性信息提供了足够的信息来检测路由回路并根据性能优

    SNMP协议

    • SNMP: 全称Simple Network Management Protocol即简单网络管理协议,位于ISO/OSI网络层次模型的顶层即应用层,属于应用层协议
      • 在传输层依靠UDP协议进行传输。
      • 主要用在局域网中对设备进行管理,应用最为广泛的是对路由器交换机等网络设备的管理
      • 实际网络中,利用SNMP协议自动帮助管理员收集网络运行状况的方法应用最为广泛

    LDAP协议

    • LDAP: 全称Lightweight Directory Access Protocol 即轻型目录访问协议,是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
      • LDAP由互联网工程任务组(IETF)的文档RFC定义,使用了描述语言ASN.1定义。最新的版本是版本3
      • 一个常用用途是单点登录

    SMB协议

    • SMB:全称Server Message Block即 ,是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
      • SMB协议是基于TCP-NETBIOS下的文件共享协议,一般端口使用为139,445

    SOCKS协议

    • SOCKS:全称Socks: Protocol for sessions traversal across firewall securely即防火墙安全会话转换协议,SOCKS协议提供一个框架,为在 TCP和UDP域中的客户机/服务器应用程序能更方便安全地使用网络防火墙所提供的服务。
      • 协议工作在OSI参考模型的第5层(会话层),使用TCP协议传输数据,因而不提供如传递 ICMP信息之类的网络层网关服务。
      • SOCKSv5 为这些协议穿越提供了有力的认证方案,而 SOCKSv4 为 TELNET 、FTP 、HTTP 、WAIS 和 GOPHER 等基于 TCP 协议的客户/服务器程序仅仅提供了一个不安全防火墙穿越

    SSH协议

    • SSH: 全称Secure Shell,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
      • 从客户端来看,SSH提供两种级别的安全验证: 基于口令的安全验证、基于密匙的安全验证
      • SSH 主要由三部分组成:传输层协议 [SSH-TRANS]、用户认证协议 [SSH-USERAUTH]、连接协议 [SSH-CONNECT]

    HTTP协议

    超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

    • 请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。
    • 是应用层协议,是一种协议规范
    • HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器

    TLS/SSL协议

    TLS/SSL 目的是为互联网通信提供安全及数据完整性保障

    • TLS:全称Transport Layer Security即传输层安全性协议
    • SSL: 全称Secure Sockets Layer即安全套接层

    IETF将SSL标准化,即RFC 2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS 1.0与SSL 3.0的差异非常微小,目前有3个版本:

    • TLS 1.1
    • TLS 1.2
    • TLS 1.3

    krb5协议

    Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。

    IRC协议

    IRC: 全称Internet Relay Chat即互联网中继聊天协议,是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议

    • IRC的最大特点是实现了在线实时交谈,速度快、功能多的优点
    • IRC上的信息交流采用请求与应答的模式.

    QUIC协议

    QUIC:全称Quick UDP Internet Connection,是谷歌制定的一种基于UDP的低时延的互联网传输层协议

    • QUIC很好地解决了当今传输层和应用层面临的各种需求,包括处理更多的连接,安全性,和低延迟。
    • QUIC融合了包括TCP,TLS,HTTP/2等协议的特性,但基于UDP传输

    RADIUS 协议

    RADIUS :全称Remote Authentication Dial In User Service ,即远程认证拨号用户服务协议,主要完成在网络接入设备和认证服务器之间承载认证、授权、计费和配置信息。详见参见RADIUS简介

    • RADIUS是一种C/S结构的协议RADIUS 协议承载于UDP 之上,官方指定端口号为认证授权端口1812、计费端口1813。
    • RADIUS协议在RFC2865、RFC2866 中定义。
    展开全文
  • 即时通讯是一个终端连往一个通讯网路的服务类软件。即时通讯不同於e-mail在於它的交谈是即时的。我们日常生活已经开始离不开即时通讯了,那么,即时通讯到底... 目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即
  • 主流互联网架构

    千次阅读 2017-06-18 09:32:41
    主流互联网架构 基础知识点: Squid: Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证。Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存...
    转自:http://www.cnblogs.com/wuyuankun/p/3984209.html

    主流互联网架构

    基础知识点:

    Squid:

    Squid cache(简称为Squid)是一个流行的自由软件,它符合GNU通用公共许可证。Squid作为网页服务器的前置cache服务器,可以代理用户向web服务器请求数据并进行缓存,也可以用在局域网中,使局域网用户通过代理上网。Squid主要设计用于在Linux一类系统运行。

     

    Memcached :

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

    ESI 动态缓存技术:

    任何一个Web网站的内容都是在不断更新和变化,但这并不意味这这个网站的内容就是动态内容,事实上,动态的内容是指用户每次点击 相同的链接时取的的内容是由Web服务器应用程序生成的,如常见得ASP,JSP等,与此相对应,静态内容一般就是指由文本、图像和多媒体组成,在用户每 次单击相应链接时基本保持不变。现在解决动态内容缓存的最新技术就是通过ESI技术来设计网站的内容。
        ESI技术工作原理
        动态生成的内容能为用户带来丰富精彩的页面,网站开发者也可以更容易和更灵活地控制相关的内容,但在享受这些便利的同时,也增加了 网站数据库和应用服务器的处理压力的。当网站的访问量增大后,硬件和数据库的投资是非常巨大的,即使如此,仍然有可能导致页面的严重延迟甚至访问失败。
        用户访问动态生成的内容速度慢的根本原因在于动态生成的内容需要经过一个复杂的过程,首先,根据用户请求的不同将用户的请求分配 到应用服务器相应的软件模块中,软件模块必须通过运算决定需要从数据库中提取什么样的数据给用户,然后再从数据库中提取出相应的数据按照定义的格式传给用 户。这些冗长的过程导致用户访问速度变慢,同时增加了服务器的负载。
        在实际环境中,一个动态生成的页面,当中可能只有少量的内容是频繁变化的或是个性化的,对于传统的Cache服务器来说,为了能 够保证页面的时效性,却由于页面中这些少量的动态内容而无法将整个页面进行缓存。ESI(Edge Side Include)通过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制 策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个 页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。
        ESI是一种简单的标识语言,开发人员可以使用它标志内容片断以便通过相应的Cache服务器来加速缓存。同时ESI还定义了一 套内容效验标准,可以实现原服务器对Cache服务器中缓存内容的管理,提高了网站对内容的控制能力。CDN网络也可以利用在分布全国各地的节点中安装支 持ESI的Cache服务器来提供对网站动态内容提供CDN服务
     
    ****************************************************************************************************************************
     

    第一步:物理分离webserver和数据库

    刚开始我们的网站可能搭建在一台服务器上,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为数据库和应用形成互相的影响。

    clip_image005

    图3.1

    3.2第二步:增加页面缓存

    好景不长,随着访问的人越来越多,你发现响应速度又开始变慢了,查找原因,发现是访问数据库的操作太多,导致数据连接竞争激烈,所以响应变慢,但数据库连接又不能开太多,否则数据库机器压力会很高,因此考虑采用缓存机制来减少数据库连接资源的竞争和对数据库读的压力,这个时候首先也许会选择采用squid等类似的机制来将系统中相对静态的页面(例如一两天才会有更新的页面)进行缓存(当然,也可以采用将页面静态化的方案),这样程序上可以不做修改,就能够很好的减少对webserver的压力以及减少数据库连接资源的竞争,OK,于是开始采用squid来做相对静态的页面的缓存。

    clip_image007

    图3.2

    3.3第三步:增加页面片段缓存

    增加了squid做缓存后,整体系统的速度确实是提升了,webserver的压力也开始下降了,但随着访问量的增加,发现系统又开始变的有些慢了,在尝到了squid之类的动态缓存带来的好处后,开始想能不能让现在那些动态页面里相对静态的部分也缓存起来呢,因此考虑采用类似ESI之类的页面片段缓存策略,OK,于是开始采用ESI来做动态页面中相对静态的片段部分的缓存。

    clip_image009

    图3.3

    3.4第四步:数据缓存

    在采用ESI之类的技术再次提高了系统的缓存效果后,系统的压力确实进一步降低了,但同样,随着访问量的增加,系统还是开始变慢,经过查找,可能会发现系统中存在一些重复获取数据信息的地方,像获取用户信息等,这个时候开始考虑是不是可以将这些数据信息也缓存起来呢,于是将这些数据缓存到本地内存,改变完毕后,完全符合预期,系统的响应速度又恢复了,数据库的压力也再度降低了不少。可以使用的技术有:memcached。

    clip_image011

    图3.4

    3.5第五步:增加webserver

    好景不长,发现随着系统访问量的再度增加,webserver机器的压力在高峰期会上升到比较高,这个时候开始考虑增加一台webserver,这也是为了同时解决可用性的问题,避免单台的webserver down机的话就没法使用了,在做了这些考虑后,决定增加一台webserver,增加一台webserver时,会碰到一些问题,典型的有:

    1、如何让访问分配到这两台机器上,这个时候通常会考虑的方案是Apache自带的负载均衡方案,或LVS这类的软件负载均衡方案;

    2、如何保持状态信息的同步,例如用户session等,这个时候会考虑的方案有写入数据库、写入存储、cookie或同步session信息等机制等;

    3、如何保持数据缓存信息的同步,例如之前缓存的用户数据等,这个时候通常会考虑的机制有缓存同步或分布式缓存;

    4、如何让上传文件这些类似的功能继续正常,这个时候通常会考虑的机制是使用共享文件系统或存储等;

    在解决了这些问题后,终于是把webserver增加为了两台,系统终于是又恢复到了以往的速度。

    clip_image013

    图3.5

    3.6第六步:分库

    享受了一段时间的系统访问量高速增长的幸福后,发现系统又开始变慢了,这次又是什么状况呢,经过查找,发现数据库写入、更新的这些操作的部分数据库连接的资源竞争非常激烈,导致了系统变慢,这下怎么办呢,此时可选的方案有数据库集群和分库策略,集群方面像有些数据库支持的并不是很好,因此分库会成为比较普遍的策略,分库也就意味着要对原有程序进行修改,一通修改实现分库后,不错,目标达到了,系统恢复甚至速度比以前还快了。

    clip_image015

    图3.6

    3.7第七步:分表、DAL和分布式缓存

    随着系统的不断运行,数据量开始大幅度增长,这个时候发现分库后查询仍然会有些慢,于是按照分库的思想开始做分表的工作,当然,这不可避免的会需要对程序进行一些修改,也许在这个时候就会发现应用自己要关心分库分表的规则等,还是有些复杂的,于是萌生能否增加一个通用的框架来实现分库分表的数据访问,这个在ebay的架构中对应的就是DAL,这个演变的过程相对而言需要花费较长的时间,当然,也有可能这个通用的框架会等到分表做完后才开始做,同时,在这个阶段可能会发现之前的缓存同步方案出现问题,因为数据量太大,导致现在不太可能将缓存存在本地,然后同步的方式,需要采用分布式缓存方案了,于是,又是一通考察和折磨,终于是将大量的数据缓存转移到分布式缓存上了。

    clip_image017

    图3.7

    3.8第八步:增加更多的webserver

    在做完分库分表这些工作后,数据库上的压力已经降到比较低了,又开始过着每天看着访问量暴增的幸福生活了,突然有一天,发现系统的访问又开始有变慢的趋势了,这个时候首先查看数据库,压力一切正常,之后查看webserver,发现apache阻塞了很多的请求,而应用服务器对每个请求也是比较快的,看来是请求数太高导致需要排队等待,响应速度变慢,这还好办,一般来说,这个时候也会有些钱了,于是添加一些webserver服务器,在这个添加webserver服务器的过程,有可能会出现几种挑战:

    1、Apache的软负载或LVS软负载等无法承担巨大的web访问量(请求连接数、网络流量等)的调度了,这个时候如果经费允许的话,会采取的方案是购买硬件负载,例如F5、Netsclar、Athelon之类的,如经费不允许的话,会采取的方案是将应用从逻辑上做一定的分类,然后分散到不同的软负载集群中;

    2、原有的一些状态信息同步、文件共享等方案可能会出现瓶颈,需要进行改进,也许这个时候会根据情况编写符合网站业务需求的分布式文件系统等;

    在做完这些工作后,开始进入一个看似完美的无限伸缩的时代,当网站流量增加时,应对的解决方案就是不断的添加webserver。

    clip_image019

    图3.8

    3.9第九步:数据读写分离和廉价存储方案

    突然有一天,发现这个完美的时代也要结束了,数据库的噩梦又一次出现在眼前了,由于添加的webserver太多了,导致数据库连接的资源还是不够用,而这个时候又已经分库分表了,开始分析数据库的压力状况,可能会发现数据库的读写比很高,这个时候通常会想到数据读写分离的方案,当然,这个方案要实现并不容易,另外,可能会发现一些数据存储在数据库上有些浪费,或者说过于占用数据库资源,因此在这个阶段可能会形成的架构演变是实现数据读写分离,同时编写一些更为廉价的存储方案,例如BigTable这种。

    clip_image021

    图3.9

    3.10第十步:进入大型分布式应用时代和廉价服务器群梦想时代

    经过上面这个漫长而痛苦的过程,终于是再度迎来了完美的时代,不断的增加webserver就可以支撑越来越高的访问量了,对于大型网站而言,人气的重要毋庸置疑,随着人气的越来越高,各种各样的功能需求也开始爆发性的增长,这个时候突然发现,原来部署在webserver上的那个web应用已经非常庞大了,当多个团队都开始对其进行改动时,可真是相当的不方便,复用性也相当糟糕,基本是每个团队都做了或多或少重复的事情,而且部署和维护也是相当的麻烦,因为庞大的应用包在N台机器上复制、启动都需要耗费不少的时间,出问题的时候也不是很好查,另外一个更糟糕的状况是很有可能会出现某个应用上的bug就导致了全站都不可用,还有其他的像调优不好操作(因为机器上部署的应用什么都要做,根本就无法进行针对性的调优)等因素,根据这样的分析,开始痛下决心,将系统根据职责进行拆分,于是一个大型的分布式应用就诞生了,通常,这个步骤需要耗费相当长的时间,因为会碰到很多的挑战:

    1、拆成分布式后需要提供一个高性能、稳定的通信框架,并且需要支持多种不同的通信和远程调用方式;

    2、将一个庞大的应用拆分需要耗费很长的时间,需要进行业务的整理和系统依赖关系的控制等;

    3、如何运维(依赖管理、运行状况管理、错误追踪、调优、监控和报警等)好这个庞大的分布式应用。

    经过这一步,差不多系统的架构进入相对稳定的阶段,同时也能开始采用大量的廉价机器来支撑着巨大的访问量和数据量,结合这套架构以及这么多次演变过程吸取的经验来采用其他各种各样的方法来支撑着越来越高的访问量。

    clip_image023

    图3.10

    4.分析

    随着平台做大做强,很可能会走向定制操作系统,定制数据库,甚至定制硬件,定制任何可以定制的东西这样一条路。

    在服务器、架构、组件等技术选择方面,主要有两个方向:1选择成熟商用。2选择开源+自主研发。下面就这两个方向逐一进行简单分析。

    1商用的优缺点

    l 商用的优点之一是成熟,稳定,搭建快速。

    l 商用的缺点之一是费用高,随着服务器的增加,license的费用上升,成本偏高。

    l 商用的产品是通用化的,缺乏定制性,不能满足个性需要。

    2开源+自主研发的优缺点

    l 源码开放,可控性好,出现问题,可以从底层解决,扩展性好。

    l 短期时间、人力投入大,初期见效慢;长期产出大,见效明显。

    l 可以在软件和硬件的多个层面不断优化,充分满足个性化需要。

    商用和开源+自主研发各有优缺点,各有互补性,要根据使用场景的不同来进行选择,也可以根据需要配合使用。

    5.总结

    目前大型网站的主流是LAMP(linux+apache+mysql+php),或者是在这基础之上的扩展,例如增加缓存,增加中间件(中间件大多使用java,c,c++或者.NET编写,或者购买成熟的中间件产品,IBM就有很多成熟的中间件产品);又或者替换其中的某些部分,例如前端使用python,ruby,lua这些新近流行的脚本语言,数据存储部分使用nosql或者文件系统。这样的选择有历史原因、费用原因、业务原因,也有在网站发展之后需要满足新的需求而衍生出来解决特定问题的原因。

    也有初期使用微软系(windows+.NET+MSSQL)来构建网站的,在后面又根据需要加入其他体系的的电商,例如:京东,当当,凡客等。也有始终采用微软系的网站,国外的微软官网stackoverflow,还有曾经辉煌的myspace

    其实,现在的发展趋势是:混合体系,而非单一的体系。就是说技术体系不是单一的,也不是固定一成不变的,而是根据业务以及网站的发展,以及技术的发展,选择合适的技术解决适当的问题。

    架构的变更不是一件小事,对业务和网站的发展都很重要,不可能几天或者一半个月就变更一下,也不可能有事没事变更一下,应该是在关键的时候,有需要的时候,或者根据计划定期升级。

    我觉得有一种方式可以帮助我们进行选择。就是根据我们的目标,或者说预估的业务量,预估的成交量,预估的用户量,划分几个平台发展里程碑,或者是时间段。然后根据平台发展的里程碑来规划技术选型的里程碑。考虑规模的同时,还需要考虑业务的类型,产生的数据的类型,对这些数据的处理需求等因素。

    可以先定几个里程碑,这个里程碑的时间,可以根据前面的业务预估来裁定。先根据第一个里程碑要满足的业务需求,来选择当前的技术架构,并且进行存储空间规划。然后针对第一个到第二个里程碑的过度,进行预留设计,保证将来的平稳过渡。或者只是预留扩展的余地,这方面有时候有点难度,不过应该尽量做。

    在第二个里程碑之前的1-2个月进行第二个里程碑技术架构的讨论和设计,因为这时候相比原有的第二个里程碑的业务估计可能会有变动,或者技术上有了新的选择,都可以及时考虑到本次的设计中来。以此类推后面的里程碑技术架构变更。

    还有就是突发情况,因为总会有一些意料之外的情况发生,有的是业务发展的需要,有的是被动的需要。针对这些突发情况,也会进行架构的升级。

     

    ****************************************************************************************************************************

     

    clip_image003

                 较为完整的系统架构图

    2.系统使用的主要技术

    下列排名不分先后

    2.1前端

    JavaScript,html,css,silverlight,flash

    Jquery

    Javascript类库,用来简化html的操作,事件处理,动画,异步访问,用于web的快速开发。最新版本是1.7.1,分为开发环境(大小为229k)和生产环境(大小为31k)。特点是轻量,体积小;css兼容1-3;跨浏览器。凡客,当当,亚马逊。

    如果从框架角度分级的话,可以有以下分类:

    • 零级,完成base工作,包括扩展原有对象的方法,Ajax通讯部分,比较精简
    • 一级,完成effect工作,包括增加常用效果转换函数,如tween、drag、maskLayer、fade等的特效
    • 二级,完成component工作,包括对话框、列表、树、日历等的组件
    • 三级,完成application工作,包括完整的前端平台,允许用户定义能实现一定功能的模块

    一些UI控件和开发框架只做零级Prototype.js,和一级jQuery/Mootools;一些做到了三级,如Dojo和EXT。

    Kissky

    小巧灵活,简洁实用,使用起来让人感觉愉悦。淘宝,腾讯。

    2.2后端

    Php,Perl,asp,ruby,python,.net,java,jsp(java server page)

    静态语言:java, .net

    动态语言(脚本语言):php, asp, jsp, perl, python, ruby

    Php是老牌的脚本语言,尽管出现了很多的新语言,但是php还是大多数网站的首选,据说全世界70%的网站都使用php。LAMP(linux+apache+mysql+php)是经典组合。

    ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是。常用于各种动态网站中。

    JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

    Pythonruby是近几年崛起的开源语言,特点是容易上手,能快速完成原型。同时也是较为成熟脚本语言。Python是豆瓣的主要语言,google,youtube等网站也都在使用。

    http://www.python.org/about/quotes/

    Twitter的前端主要使用ruby,motorola和NASA也都使用了ruby。

    http://www.ruby-lang.org/en/documentation/success-stories

    2.3缓存

    Squid cache

    开源。

    Squid服务器群,把它作为web服务器端的前置cache服务器,缓存相关请求来提高web服务器速度。Squid将大部分静态资源(图片,js,css等)缓存起来,也可以缓存频繁访问的网页,直接返回给访问者,减少应用服务器的负载。

    memcached

    开源。

    WikipediaFlickrTwitterYoutube

    memcached服务器群,一款分布式缓存产品,很多大型网站在应用; 它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。因为通常网站应用程序中最耗费时间的任务是数据在数据库的检索,而多个用户查询相同的SQL时,数据库压力会增大,而通过memcached的查询缓存命中,数据直接从memcached内存中取,每次缓存命中将替换到数据库服务器的一次往返,到达数据库服务器的请求更少,间接地提高了数据库服务器的性能,从而使应用程序运行得更快。它通过基于内存缓存对象来减少数据库查询的方式改善网站系统的反应,其最吸引人的一个特性就是支持分布式部署。

    2.4中间件

    Java,.net,c,c++

    2.5存储

    2.5.1关系数据库

    Oracle,mysql,mssql,postgreSQL

    postgreSQL

    关系数据库,拥有15年的历史。免费,开源。可以运行在linux、unix和windows上,支持事物、主外键、连接、视图、触发器、存储过程。包含大量的数据类型,也支持大对象。支持多种语言,c,c++,java,c#,perl,python,ruby等等。

    2.5.2 NoSQL存储

    MongoDB,Redis,CouchDB,Cassandra,HBase

    NoSQL(not only sql),不仅仅是SQL。用来弥补关系数据库在某些方面的不足。例如:

    l 高并发读写。每秒上万次的读写,关系数据库有点吃力。

    l 海量数据的高效存储和访问。例如:对一张表有2亿数据的表进行读写,效率较为低下。

    l 高扩展性。对于数据库的升级和扩展,增加节点,往往需要停机和数据迁移。

    有一些地方不需要关系数据库,例如:

    l 事务一致性。某些场合不需要事务,对于数据的一致性也没有严格要求。

    l 读写实时性。有些场合不需要实时的读写。

    http://baike.baidu.com/view/2677528.htm

    Mongodb

    文档型nosql,支持主从复制。有很多的大公司使用。支持多种编程语言。

    http://www.mongodb.org/display/DOCS/Production+Deployments

    Disney,SAP,淘宝(监控数据),sourceforge,大众点评(用户行为分析,用户、组)。

    Redis

    键值型nosql,vmware赞助,支持多种编程语言。Twitter,淘宝,新浪微博都有使用。

    Couchdbcassandrahbase

    都是apache旗下的项目。

    2.5.3文件系统

    商用中间件,自定义文件系统

    2.6操作系统

    Windows,linux,unix

    2.7 Web应用服务器软件

    IIS,apache,tomcat,jboss,weblogic(BEA,商用,收费),websphere(IBM,商用,收费),lighttpd,nginx

    IIS

    微软windows操作系统专用。

    Lighttpd

    lighttpd,是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好。lighttpd并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,

    Nginx

    开源

    Nginx+php(FastCGI)+Memcached+Mysql+APC 是目前主流的高性能服务器搭建方式!适合大中型网站,小型站长也可以采用这种组合!

    Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括国内最大的电子地图MapBar、新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网 站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站,更多的网站都在使用Nginx配置。

    2.8 框架

    Javascript:Jqueryprototype.jsKisskyextjs

    .NET:企业库unityNHibernateSprint.NETibatisMVCMEFPrismlog4net23个开源项目lucene.NET

    Java:hibernatespringstrutseasyjflog4j开源项目lucene

    Python:djangoflaskbottletornadouliwebweb.py

    Ruby:rails

    PHP:PEA

    展开全文
  • 摘 要: 介绍了利用互联网技术及其TCP/IP协议研制开发的远程在系统编程工具。使用该工具可对用PLD器件设计的电子系统、设备、消费产品进行远程监控、调试或升级。该工具可供电子产品的研制生产商使用,也可供开设...
  • 本文来自于cnblogs,本文主要讲述主流的几种, ...移动端和服务端的交互,主流的方式还是通过Http协议的形式来进行. 请求以Get/Post方式,响应以json(数据更小巧且自描述能力强)的方式占据主流.各大互联网公司,
  • 即时通讯是一个终端连往一个通讯网路的服务类软件。即时通讯不同於e-mail在於它的交谈是即时的。我们日常生活已经开始离不开即时通讯了,那么,即时通讯到底... 目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即
  • 网络协议划分: 物理层:以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等。 数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 ...

    网络协议划分:

    物理层:以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等。

    数据链路层:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP · CSMA/CD等。

    网络层协议:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP · RIP等。

    传输层协议:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等。

    应用层协议:DHCP ·DNS · FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP 等。


    网络协议大全图

    图片较大,建议下载查看或者点击放大查看。

    在这里插入图片描述
    转载:http://www.52im.net/thread-180-1-1.html

    展开全文
  • 他支持目前市面上绝大多数国内外OPC SERVER的OPC DA1.0/2.0/3.0、OPC UA协议的数据读写,如(Kepserver、Matrikon、GE IGS、亚控、力控等),支持西门子、三菱、ABB等主流PLC及私有协议设备。KepOPC将实时采集的数据...
  • 他支持目前市面上绝大多数国内外OPC SERVER的OPC DA1.0/2.0/3.0、OPC UA协议的数据读写,如(Kepserver、Matrikon、GE IGS、亚控、力控等),支持西门子、三菱、ABB等主流PLC及私有协议设备。KepOPC将实时采集的数据...
  • 随着互联网技术的发展,目前越来越多的应用转向了移动终端,以移动终端为代表的移动互联网时代已经到来。Android作为移动设别的主流操作系统,具有开源,免费等优势,但是在Android系统中,并没有提供ad hoc网络连接...
  • 三种主流流媒体协议比较

    万次阅读 2017-03-06 12:22:03
    一、介绍在流媒体协议中,常用的流...二、协议介绍1、HTTP协议:HTTP的视频协议,主要是在互联网普及之后。在互联网上看视频的需求下形成的。 最初的HTTP视频协议,没有任何特别之处,就是通用的HTTP文件渐进式下载
  • 工业控制主机运行的软件和通信协议漏洞占主流 工业主机勒索病毒让“带毒运行”成为过去时 能源工业企业毫无疑问会成为APT攻击的首要目标 工控网络安全的应对之策 马上行动:工控网络安全从主机防护开始 开放心态:...
  • 主流协议详述

    千次阅读 2010-07-13 08:21:00
    在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的...
  • 目录 ... 2、XMPP 3、COAP 4、MQTT协议 ...对于物联网,最重要的是在互联网中设备与设备的通讯,现在物联网在internet通信中比较...在互联网时代,TCP/IP协议已经一统江湖,现在的物联网的通信架构也是构建在传统互联...
  • 依据标准的数据协议,利用可扩展的采集模块,平台将多个安全监控子系统和生产过程子系统的关键数据统一解析与存储,并提供兼容当前主流移动操作系统的实时数据展示、短信报警、每日简报、视频监控和生产模拟图展示等多...
  • 流媒体直播协议与比较

    千次阅读 2018-12-19 13:30:04
    这几年来,视频直播、游戏直播、竞赛直播等已经成为互联网行业的大热话题,本文主要和大家谈谈直播协议、视频推流等技术内容。 流媒体概述 所谓流媒体是指采用流式传输的方式在 Internet 播放的媒体格式。 流...
  • IoT—物联网通信协议解析

    千次阅读 2020-07-01 07:41:49
    本文介绍了几个可用的物联网通信协议,它们具有不同的性能、数据速率、覆盖范围、功率和内存,而且每一种协议都 有各自的优点和或多或少的缺点。其中一些通信协议只适合小型家用电器,而其他一些通信协议则可以用于...
  • 系统集成范文 系统集成范文 求职意向软件/互联网开发/系统集成 出生日期 1991 - 09 - 01 工作年限 10年 手机号码 168 0000 0000 电子邮箱 docer@ 自我介绍 熟悉Android开发平台开发环境操作系统熟悉主流Android开发...
  • 他支持目前市面上绝大多数国内外OPC SERVER的OPC DA1.0/2.0/3.0、OPC UA协议的数据读写,如(Kepserver、Matrikon、GE IGS、亚控、力控等),支持西门子、三菱、ABB等主流PLC及私有协议设备。KepOPC将实时采集的数据...
  • 本系列教程将结合 TI推出的CC254X SoC系列讲解从环境的搭建到蓝牙 ...第二十三节蓝牙协议栈主从一体之主机通讯 第二十四节 OAD空中升级 第二十五节SBL串口升级 有关TI的CC254X芯片介绍可点击下面链接查看 主流蓝牙BLE
  • 【摘要】 当今物联网的主流通信协议是CoAP/LWM2M协议和MQTT协议,本文将会为您分别解读这些协议的工作方式,了解它们的特点,助您选择最适合您的设备的通信协议。 通信协议又称为传输协议,用于定义多个设备之间...
  •  首先,我默认你会熟练使用wireshark软件(Kali TOP 1),Wireshark是一个强大开源流量与协议分析工具,除了传统网络协议解码外,还支持众多主流和标准工控协议的分析与解码。 传送门 ->  使用Wireshark分析工控...
  • 常见接口协议解释

    万次阅读 2020-11-29 10:22:54
    网络协议 TCP和UDP协议的区别 Restful软件架构风格 RPC协议 网络协议 7层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 TCP/IP四层模型:数据链路层、网络层、传输层、应用层。 数据链...
  • 物联网协议对比Http,socket,XMPP,COAP,MQTT HTTP: 典型的c/s通讯模式,最早适用web浏览器。不适合物联网场景,主要三大弊端。 1。必须由设备主动向服务器发送数据,难以主动向设备推送数据。 不适合数据采集,实时...
  • 1.MQTT协议介绍

    千次阅读 2022-02-26 21:08:59
    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。 MQTT最大优点在于,可以...
  • 互联网四大主流技术

    千次阅读 2015-08-05 10:31:20
    [b]互联网四大主流技术[/b] 1、webSocket 即时通信即时通信(WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。) 2、web API提供api接口(应用程序编程接口),ASP.NET Web...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,604
精华内容 21,041
关键字:

互联网的主流协议