概述
服务器多路复用是提高服务器性能的关键技术,它允许一个进程同时处理多个网络连接。通过使用高级工具和技术,您可以进一步优化服务器多路复用,以最大限度地提高吞吐量和减少延迟。
epoll 和 kqueue
epoll 和 kqueue 是 Linux 和 macOS 等操作系统中用于实现服务器多路复用的高级工具。这些工具提供了比传统 select() 和 poll() 系统调用更强大的功能,允许您更有效地管理网络连接。
- Epoll 支持边缘触发(edge-triggered)和水平触发(level-triggered)模式。边缘触发模式在事件首次发生时触发回调函数,而水平触发模式在事件持续期间不断触发回调函数。
- Kqueue 类似于 epoll,但它还提供了对信号和管道等其他事件类型的支持。
多线程和异步 I/O
多线程和异步 I/O 可以进一步提高服务器多路复用的性能。多线程允许您在不同的线程中处理多个连接,而异步 I/O 允许在不阻塞主线程的情况下执行 I/O 操作。
- 多线程 可以通过创建多个工作线程来处理连接,以提高吞吐量。但是,管理线程和同步访问共享资源可能会带来额外的开销。
- 异步 I/O 使用回调函数在 I/O 操作完成后通知应用程序。这允许应用程序在不阻塞主线程的情况下执行其他任务,从而提高响应能力。
协议优化
优化网络协议还可以提高服务器多路复用的性能。例如,使用 HTTP/2 代替 HTTP/1.1 可以减少请求和响应之间的延迟并提高吞吐量。
- HTTP/2 使用二进制帧协议,允许并发请求和响应。它还提供了流控制和头压缩功能,提高了效率。
- 优化传输层协议(优化传输层协议),例如 TCP,可以通过调整窗口大小、拥塞控制算法和其他参数来提高网络性能。
性能分析和微调
持续分析和微调服务器多路复用性能对于维持最佳性能至关重要。使用性能监视工具可以识别瓶颈和优化服务器配置。
- 性能监视工具,例如 perf 和火焰图,可以提供有关服务器性能的深入见解,帮助您找到瓶颈。
- 微调 涉及调整操作系统和服务器软件的配置参数,以优化特定工作负载。例如,您可能需要调整 epoll 事件循环的轮询间隔。
高级技术
除了上述技术外,还有其他高级技术可以进一步提升服务器多路复用性能,包括:
- 负载均衡 通过将连接分配给多个服务器,可以提高吞吐量并提高可用性。这可以通过使用负载均衡器硬件或软件来实现。
- 内容分发网络(CDN) 可以缓存静态内容,例如图像和视频,从而减少服务器负载并提高响应速度。
- Web 应用程序防火墙(WAF) 可以保护服务器免受恶意流量的侵害,从而提高安全性并减少负载。
结论
通过使用高级工具和技术,例如 epoll、kqueue、多线程、异步 I/O、协议优化、性能分析和微调,您可以优化服务器多路复用以获得最大吞吐量和最低延迟。通过持续监视和微调服务器性能,您可以确保您的服务器以最佳状态运行,满足您的应用程序和用户的需求。
一文掌握InfiniBand技术和架构
InfiniBand技术通过简化服务器之间的连接,同时支持服务器与远程存储和网络设备的连接,极大提升了数据传输效率。
OpenFabrics Enterprise Distribution (OFED) 是一组开源软件驱动,为InfiniBand Fabric提供用户级接口程序。
OpenFabrics Alliance (OFA) 发布了OFED的第一个版本,Mellanox OFED支持Linux和Windows操作系统,并提供诊断和性能工具,用于监控InfiniBand网络运行状态。
【文章福利】推荐Linux内核源码交流群【】,共享学习书籍、视频资料,前50名可进群领取价值600的内核资料包。
OpenFabrics Alliance致力于开发并推广软件,通过将高效消息、低延迟和最大带宽技术架构应用到最小CPU开销的应用程序中,实现最大应用效率。
2004年,OFA成立,最初是OpenIB联盟,致力于开发基于Linux的InfiniBand软件栈。
2005年,OFA支持Windows操作系统,使软件栈跨平台。
2006年,OFA扩展其章程,包括对iWARP的支持。
2010年,OFA增加了对RoCE (RDMA over Converged)的支持,通过以太网提供高性能RDMA和内核旁路解决方案。
2014年,随着OpenFabrics Interfaces工作组的建立,OFA再次扩大,实现对其他高性能网络的支持。
1999年开始起草InfiniBand规格及标准规范,2000年正式发表。
InfiniBand Architecture (IBA) 在集群式超级计算机上广泛应用,全球HPC高算系统TOP500大效能的超级计算机中有相当多套系统都使用上IBA。
除了InfiniBand Trade Association (IBTA) 9个主要董事成员CRAY、Emulex、HP、IBM、intel、Mellanox、Microsoft、Oracle、Qlogic外,其他厂商如Cisco、Sun、NEC、LSI等也在加入或重返InfiniBand阵营。
为了满足HPC、企业数据中心和云计算环境中的高I/O吞吐需求,新一代高速率56Gbps的FDR (Fourteen Data Rate) 和100Gpb EDR InfiniBand技术已广泛应用。
InfiniBand大量用于FC/IP SAN、NAS和服务器之间的连接,作为iSCSI RDMA的存储协议iSER已被IETF标准化。
相比FC,InfiniBand在性能、延迟和兼容性方面具有优势。
InfiniBand采用PCI串行高速带宽链接,从SDR、DDR、QDR、FDR到EDR HCA连接,可做到极低时延,基于链路层的流控机制实现先进的拥塞控制。
InfiniBand采用虚通道(VL)方式来实现QoS,虚通道是共享物理链接的相互分立的逻辑通信链路,每条物理链接可支持多达15条的标准虚通道和一条管理通道(VL15)。
RDMA技术实现内核旁路,提供远程节点间RDMA读写访问,完全卸载CPU工作负载,基于硬件传出协议实现可靠传输和更高性能。
相比TCP/IP网络协议,InfiniBand使用基于信任的、流控制的机制来确保连接的完整性,数据包极少丢失,接受方在数据传输完毕后返回信号来标示缓存空间的可用性,从而提升了效率和整体性能。
InfiniBand网络基于“以应用程序为中心”的新观点,提供易于使用的消息服务。
InfiniBand消息服务摒弃了传统网络和应用程序之间消息传递的复杂结构,直接使用InfiniBand服务意味着应用程序不再依赖操作系统来传递消息,这大大提高了通信效率。
InfiniBand与其他网络的核心区别在于其基于信用的流量控制系统和远程直接内存访问(RDMA)。
InfiniBand支持远程节点间RDMA读写访问,具备在完全卸载CPU和操作系统的方式下,在两个远程系统的存储区域移动数据的能力。
InfiniBand物理信号技术一直超前于其他网络技术,使其具备比其他任何网络协议都大的带宽。
InfiniBand架构的核心是把I/O子系统从服务器主机中剥离出去,通过光纤介质,采用基于交换的端到端的传输模式连接它们。
在InfiniBand架构中,数据通过Hub Link方式连接,目前的标准是Hub Interface 2.0。
Hub Link是一种串行总线,具有良好的可扩展性,主板设计师可以根据需要的总线带宽在内存控制器和HCA之间选择多条Hub Link总线。
InfiniBand规范定义了三个基本组件:HCA、TCA和交换机。
HCA提供从系统内存到InfiniBand网络的通路;TCA提供I/O设备或I/O网络与InfiniBand网络的连接;交换机使多个InfiniBand叶节点互连进一个单一网络,同时支持多个连接。
InfiniBand采用分层协议,每层负责不同的功能。
物理层定义了电气特性和机械特性;链路层描述了数据包的格式和数据包操作的协议;网络层是子网间转发数据包的协议;传输层负责报文的分发、通道多路复用和基本传输服务;上层协议包括SDP、SRP、iSER、RDS、IPoIB和uDAPL等。
InfiniBand灵活支持直连及交换机多种组网方式,主要用于HPC高性能计算场景,大型数据中心高性能存储等场景,满足低时延的需求。
高性能计算(HPC)是一个涵盖面很广的领域,它覆盖了从最大的“TOP 500”高性能集群到微型桌面集群。
在HPC系统中,InfiniBand的低延迟、高带宽和原生的通道架构对于此类系统来说是非常重要的。
HTTP/2 都还没上用,HTTP/3 又是什么鬼?
HTTP/3是超文本传输协议(HTTP)的第三个正式版本,将改善网络性能和稳定性,解决各种安全隐私问题,但尽管如此,仍存在一些安全挑战。
HTTP/3不再使用传输控制协议(TCP),相反,将使用2012年谷歌提出的QUIC传输协议。
实际上,HTTP/3前身是HTTP-over-QUIC。
2018年10月,互联网工程任务组(IETF) HTTP和QUIC工作组主席Mark Nottingham提出了将HTTP-over-QUIC更名为HTTP/3
QUIC是基于用户数据包协议(UDP)连接的复用版本的传输层协议。
与TCP不同,UDP不遵循TCP三向交握,而是使用单个UDP往返。
因此,在用户代理和Web服务器之间的每个连接都使用UDP,QUIC协议极大地改善了任何web组件的网络性能。
同样,QUIC依靠多路复用来在单个连接上无缝地管理用户代理与服务器之间的多个交互,而没有一个阻塞另一个,因此与以前的版本相比,有助于提高性能。
从性能和稳定性的角度考虑,HTTP/3似乎都有很大的优势。
从安全性来说,HTTP/3有其先进性也有其局限性。
安全优势1.端到端加密
TCP协议旨在确保在传输过程中进行有效负载加密,但是对于特定传输的信息仍未加密,所以这会引发许多安全和隐私问题。
预防攻击的对策不是在TCP堆栈上,而是在处理协议和网络的网络设备和中间盒上。
此外,解析器可以克服负载均衡器和其他网络设备中的这些问题,但它们也还存在严重的性能问题,并且可能会限制网络发展速度和可靠性。
使用QUIC协议时,只有网段中的必填字段未加密,而其余信息默认情况下是加密的。
通过查看TCP和QUIC的网络段,我们发现包括数据包标志(数据包NR和ACK NR),窗口和选项的字段在QUIC中已加密,但在TCP中未加密。
QUIC中建议加密有助于防止普遍存在的监视攻击(在HTTP / 3的前身中很普遍)以及协议工件和元数据、应用程序数据的侵入式信息收集。
下面的图1显示了QUIC协议在网络分析器工具Wireshark中的呈现方式。
根据QUIC的网段,互联网协议(IP)层保存源IP地址和目标IP地址信息。
UDP保留源端口和目标端口,而QUIC包含公共标志,数据包编号,连接ID和加密的有效负载。
安全连接
为了在连接期间支持端到端加密,QUIC主要依赖于加密和传输层握手。
由于QUIC直接与TLS 1.3 交互,因此它可用于所有原始连接的授权加密,并且没有禁用TLS。
QUIC还负责确保建立安全连接,同时考虑到所有原始连接的机密性和完整性保护。
与HTTP / 2 + TLS实现不同,QUIC在其传输上下文中处理TLS握手和警报机制,这反过来又帮助QUIC利用从握手交换的密钥来建立密码保护。
如果我们从整体上考虑该协议,则TLS和QUIC之间存在两个主要通信:
QUIC为TLS提供了稳定的流抽象,通过QUIC发送和接收消息。
TLS使用以下内容更新QUIC组件。
1.秘密的、经过身份验证的加密算法和密钥派生功能(KDF)
2.数据包保护密钥
3.协议状态更改(例如握手状态、服务器证书)
与使用TLS的“ application_data”记录的HTTP/2不同,QUIC使用STREAM帧,通过QUIC数据包形式展现。
TLS握手以CRYPTO帧的形式形成,主要由连续流中的握手数据组成。
QUIC旨在并行发送数据包,有时会将不同的消息捆绑成一个消息并加密,因为这些消息具有相同的加密级别。
此功能为网络性能提供了极大的优势,同时确保在传输过程中应用正确的加密模式。
3.完全正向保密性
当在用户代理和服务器之间交换临时私钥时,可以实现协议中的完全前向保密性(PFS)。
用户代理启动的每个会话都使用新的唯一会话密钥,并且它与先前的会话密钥没有任何关系。
通过为每次传输使用单独的会话密钥,即使任何会话密钥被泄露,来自较早或将来会话的任何信息也不会受到破坏。
从加密角度来看,没有密钥交换可以提供完美前向保密性。
但是,完全正向保密性,一个新术语对PFS的实现提供了可能。
QUIC使用TLS 1.3,该协议支持椭圆曲线(EC)DHE密钥交换或有限字段上的预共享密钥(PSK)和Diffie-Hellman(DH)。
0-RTT密钥交换提供了完全的正向保密性,因为加密规范仅接受通过0-RTT握手的前向安全连接。
尽管TLS 1.2还支持前向保密性,但从技术上讲,当用户代理发送由只有服务器已知的对称密钥保护的机密资料副本时,正向保密性在会话恢复期间会丢失。
该协议甚至为用户代理和服务器之间的初始消息提供了完全的正向保密。
此外,由于QUIC协议不支持长期密钥,因此QUIC借助TLS 1.3可以使用其协议层为应用程序提供完全正向保密功能。
4.重放攻击防护
除了随机数,QUIC实现还用于存储密钥派生的客户端值。
服务器会识别并拒绝具有相同密钥派生值和随机数的任何重复请求。
考虑到用户代理和服务器之间的协议通信开销,这种设计被称为性能噩梦。
从理论上讲,该解决方案看似适用,但是在实践中,该协议可能会变得很占内存并导致性能问题。
当前的设计不是最好的,但是从协议层面来说,这会防止任何服务器多次接受同一密钥。
同样,QUIC在初始步骤中不提供重放保护,而是在服务器初始回复后立即开始保护。
QUIC是让初始交易能得到应用程序保护并减少协议所占内存。
考虑到Web组件可能会使用从会话密钥派生的密钥,因此在此阶段可能会发生重放攻击。
但是,可以在应用程序层面使用预防措施来减轻这种情况。
欺骗保护
QUIC在握手期间支持地址验证,并且需要签名的地址证明,从而消除了任何IP欺骗攻击。
IP地址欺骗问题主要在QUIC中通过广泛利用“源地址令牌”来解决,“源地址令牌”是服务器的经过身份验证的加密块,其中包含用户代理的IP地址和服务器的时间戳。
用户代理可以重复使用服务器生成的源地址令牌,除非连接更改、IP地址不在变化。
由于源地址令牌用作承载令牌,因此它们可以反复使用,并且可以绕过服务器设置的任何IP地址限制。
由于服务器仅响应令牌中的IP地址,因此即使是被盗的cookie或令牌也不会成功进行IP欺骗。
6.防止SSL降级
TLS 1.3可以防止TLS降级攻击,因为该协议规定了所有握手通信的密钥哈希,并且要求握手接收方验证发送的密钥哈希。
在握手过程中,任何检测到的对客户端功能的篡改尝试都将导致握手终止并出现错误。
此外,检测还涉及用户代理与服务器之间的证书验证消息,包括有关特定连接的所有先前消息的PKCS RSA哈希签名。
QUIC中的校验和实现将成功防止TLS降级攻击。
安全挑战1.0-RTT恢复漏洞
HTTP / 3的最大优势之一是0-RTT恢复,它可以极大地提高连接速度并减少延迟。
但是,仅当成功建立了先前的连接,并且当前交易使用在上一次连接期间建立了预共享机密时,这一优势才发挥作用。
0-RTT恢复功能存在一些安全方面的缺点。
最常见的攻击媒介之一是重放攻击,当对手重新发送初始数据包时可能会造成这种攻击。
在特定的情况下,这可能会迫使服务器认为该请求来自先前已知的客户端。
恢复0-RTT的另一个安全缺点是完全前向保密的部分失效。
如果对手破坏了令牌,那么他们就可以解密用户代理发送的0-RTT通信内容。
2.连接ID操纵攻击
连接ID操纵攻击要求将攻击者处在用户代理与服务器之间。
他们可以在交换客户端和服务器问候消息的初始握手期间操纵连接ID。
握手将照常进行,服务器假定已建立连接,但是用户代理将无法解密,因为连接ID需要加密密钥派生过程的输入步骤,并且用户代理和服务器将计算不同的加密键。
用户代理最终将超时,并向服务器发送错误消息,告知连接已终止。
由于客户端使用原始的加密密钥将错误消息加密到服务器,因此服务器将无法解密,并且将保持连接状态,直到空闲连接超时(通常在10分钟内)到期为止。
当大规模执行时,相同的攻击可能会对服务器造成拒绝服务攻击,并保留多个连接,直到连接状态过期。
保持连接有效的另一种攻击方法是更改其他参数,例如源地址令牌,从而防止客户端建立任何连接。
放大攻击
为了成功进行放大攻击,攻击者必须欺骗受害者的IP地址,并将UDP请求发送到服务器。
如果服务器发回更重要的UDP响应,则攻击者可以大规模利用此服务器行为并创建DDOS攻击情形。
具体来说,在QUIC中,当对手从目标接受地址验证令牌并释放最初用于生成令牌的IP地址时,就会发生UDP放大攻击。
攻击者可以使用相同的IP地址将0-RTT连接发送回服务器,该IP地址可能已被改为指向不同的端点。
通过执行此设置,攻击者可以潜在地指示服务器向受害服务器发送大量流量。
为了防止这种攻击,HTTP / 3具有速率限制功能和短暂的验证令牌,可以充当DDOS攻击的补偿控制,同时部分缓解攻击情形。
3.流量耗尽型攻击
当对手有意启动多个连接流时,就会发生流耗尽攻击,这可能导致端点耗尽。
攻击者可以通过反复提交大量请求来利用穷尽序列。
尽管特定的传输参数可能会限制并发活动流的数量,但是在某些情况下,可能会故意将服务器配置设置为更高数值。
由于服务器的协议配置增加了协议性能,因此受害服务器可能成为此类攻击的目标。
4.连接重置攻击
连接重置攻击主要是向受害者发送无状态重置,从而可能产生类似于TCP重置注入攻击的拒绝服务攻击。
如果攻击者可以获得具有特定连接ID的连接生成的重置令牌,则可能存在潜在的攻击媒介。
最后,攻击者可以使用生成的令牌重置具有相同连接ID的活动连接,从而使服务器等待连接,直到发生超时为止。
如果大规模进行此攻击,则服务器必须大量消耗其资源,以等待连接完成。
版本降级攻击
QUIC数据包保护为通信中的所有数据包(版本协商数据包除外)提供身份验证和加密。
版本协商数据包旨在协商用户代理和服务器之间QUIC的版本。
该功能可能允许攻击者将版本降级到QUIC的不安全版本。
该攻击目前暂时不会发生,因为只有QUIC的一个版本,但是将来需要注意。
6.缺少监视支持
尽管一些用户代理,服务器和信誉良好的网站支持HTTP3 / QUIC,但是许多网络设备(例如反向/正向代理,负载均衡器,Web应用程序防火墙和安全事件监视工具)并不完全支持HTTP / 3。
与TCP不同,QUIC连接中不需要套接字,这使得检测主机和恶意连接变得更加困难。
恶意攻击者可能能够通过QUIC中继恶意有效载荷并执行数据泄露攻击,并且保持隐身状态,因为大多数检测工具无法检测到QUIC流量。
QUIC的历史
2016年,互联网工程任务组(IETF)开始标准化Google的QUIC,并宣布IETF QUIC成为新HTTP / 3版本的基础。
但是,出于性能和安全方面的考虑,IETF QUIC与原始QUIC设计大相径庭。
TCP上的传统Web流量需要三向握手。
QUIC使用UDP,由于往返次数减少和发送的数据包减少,因此延迟减少,从而加快了网络流量传输。
UDP除了速度更快之外,还具有其他优点,包括连接迁移、改进延迟、拥塞控制和内置加密。
根据Google的说法, “与TCP + TLS的1-3次往返相比, QUIC握手通常需要零往返来发送有效负载。
” 第一个连接需要一个往返,而随后的连接则不需要任何往返。
同样,由于QUIC用于多路复用操作,因此与TCP相比,它在数据包丢失方面做得更好,并且握手速度更快。
Google的QUIC版本现在是gQUIC。
从gQUIC进化的HTTP / 3,具备了重大的改进,并得到IETF工作组的贡献和增强。
尽管从技术上讲HTTP / 3是完整的应用程序协议,但QUIC指的是基础传输协议,它不限于服务Web流量。
UDP是无连接的,不是很可靠。
QUIC通过在UDP上添加类似于TCP的堆栈,来添加可靠的连接,并在其之上重新发送具有流控制功能的方式来克服这些限制,同时解决了TCP的行头阻塞问题。
HTTP / 3使用UDP,类似于HTTP / 2使用TCP的方式。
每个连接都有几个并行流,这些并行流用于通过单个连接同时传输数据,而不会影响其他流。
因此,与TCP不同,为特定的单个流承载数据的丢失数据包只会影响该特定的流。
然后,每个流帧都可以在到达时立即分配给该流,因此可以在不丢失任何流的情况下继续在应用程序中重新组合。
QUIC的这种连接建立策略是通过加密和传输握手的组合来实现的。
和HTTP/2的比较分析
QUIC旨在通过减轻HTTP/2的数据包丢失和延迟问题来提高性能。
虽然HTTP/2对每个数据来源使用单个TCP连接,但这会导致行头阻塞问题。
例如,一个请求的对象可能会停滞在另一个遭受丢失的对象之后,直到该对象恢复为止。
QUIC通过将HTTP/2的流层向下推送到传输层来解决此问题,从而避免了应用程序层和传输层的问题。
HTTP/3还支持多路复用,在与TLS直接集成的同时,提供独立于其他连接请求的请求。
尽管HTTP/2和HTTP/3的工作方式相似,但以下是HTTP/2和HTTP/3的一些重要区别。
从网络堆栈的角度来看,HTTP/2广泛使用了符合HTTP标准的TLS 1.2+,底层的TCP充当了传输协议。
但是,在HTTP/3中,默认情况下,除了QUIC以外,还使用TLS 1.3,而UDP是传输协议。
下图说明了QUIC在网络协议堆栈中的位置。
相比之下,以前的版本使用TLS 1.2,并使用TCP的拥塞控制丢失恢复功能,而HTTP/2处理多流功能。
连接ID的优势
TCP连接即利用数据源和目标网络实体(主要是地址和端口)来标识特定连接。
但是,QUIC连接使用连接ID,它是64位随机生成的客户端标识符。
这项更改对于当前的Web技术非常有利,主要是因为要求它们支持用户的移动性。
如果用户从Wi-Fi网络移动到蜂窝网络,则HTTP/2 TCP协议将需要基于当前地址建立新的连接。
但是,由于HTTP/3 QUIC协议使用随机连接ID,因此当从蜂窝网络转移到Wi-Fi连接时,HTTP/3上的客户端更改IP地址将继续使用现有的连接ID而不会中断。
从协议的角度来看,连接ID提供了其他好处。
服务器和用户代理可以使用连接ID识别原始连接和重传连接,并避免TCP中普遍存在的重传歧义问题。
结论
QUIC已获得多数浏览器的支持。
YouTube和Facebook等重要网站已启用该功能,可以更快地加载页面。
在撰写本文时,目前只有4%的顶级网站支持QUIC。
微软已经宣布,他们将在内核中交付带有通用QUIC库MsQuic的Windows,以支持各种收件箱功能。
QUIC和HTTP/3旨在满足当今互联网网络性能、可靠性和安全性的目标。
强制性支持TLS 1.3的安全性得到了显着改善,从而解决了HTTP/2和早期版本的HTTP的弱点。
在HTTP/3传输过程中使用端到端加密有助于抵御攻击者和数据聚合者的一些隐私问题。
尽管存在一些弱点,但从性能和安全性角度来看,HTTP/3仍将继续发展,不管怎么说都是对HTTP/2的重大改进。
作者:IT影子
链接:
关于网络的基础知识
网络基础知识 一.网络的定义及特点 计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享信息资源。
一般来说,计算机网络可以提供以下一些主要功能: * 资源共享 网络的出现使资源共享变得很简单,交流的双方可以跨越时空的障碍,随时随地传递信息。
* 信息传输与集中处理 数据是通过网络传递到服务器中,由服务器集中处理后再回送到终端。
* 负载均衡与分布处理 负载均衡同样是网络的一大特长。
举个典型的例子:一个大型ICP(Internet内容提供商)为了支持更多的用户访问他的网站,在全世界多个地方放置了相同内容的WWW服务器;通过一定技巧使不同地域的用户看到放置在离他最近的服务器上的相同页面,这样来实现各服务器的负荷均衡,同时用户也省了不少冤枉路。
* 综合信息服务 网络的一大发展趋势是多维化,即在一套系统上提供集成的信息服务,包括来自政治、经济、等各方面资源,甚至同时还提供多媒体信息,如图象、语音、动画等。
在多维化发展的趋势下,许多网络应用的新形式不断涌现,如: ① 电子邮件——这应该是大家都得心应手的网络交流方式之一。
发邮件时收件人不一定要在网上,但他只要在以后任意时候打开邮箱,都能看到属于自己的来信。
② 网上交易——就是通过网络做生意。
其中有一些是要通过网络直接结算,这就要求网络的安全性要比较高。
③ 视频点播——这是一项新兴的娱乐或学习项目,在智能小区、酒店或学校应用较多。
它的形式跟电视选台有些相似,不同的是节目内容是通过网络传递的。
④ 联机会议——也称视频会议,顾名思义就是通过网络开会。
它与视频点播的不同在于所有参与者都需主动向外发送图像,为实现数据、图像、声音实时同传,它对网络的处理速度提出了最高的要求。
以上对网络的功能只是略举一二,我们将在以后的篇幅中用更详尽的案例去充实大家对网络的理解。
网络的分类及组成 网络依据什么划分,又是如何组成的呢? 计算机网络的类型有很多,而且有不同的分类依据。
网络按交换技术可分为:线路交换网、分组交换网;按传输技术可分为:广播网、非广播多路访问网、点到点网;按拓朴结构可分为总线型、星型、环形、树形、全网状和部分网状网络;按传输介质又可分为同轴电缆、双纽线、光纤或卫星等所连成的网络。
这里我们主要讲述的是根据网络分布规模来划分的网络:局域网、城域网、广域网和网间网。
1. 局域网-LAN(Local Area Network) 将小区域内的各种通信设备互连在一起所形成的网络,覆盖范围一般局限在房间、大楼或园区内。
局域网的特点是:距离短、延迟小、数据速率高、传输可靠。
目前常见的局域网类型包括:以太网(Ethernet)、令牌环网 (Token Ring)、光纤分布式数据接口(FDDI)、异步传输模式(ATM)等,它们在拓朴结构、传输介质、传输速率、数据格式等多方面都有许多不同。
其中应用最广泛的当属以太网—— 一种总线结构的LAN,是目前发展最迅速、也最经济的局域网。
局域网的常用设备有: * 网卡(NIC) 插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输。
它的主要技术参数为带宽、总线方式、电气接口方式等。
* 集线器(Hub) 是单一总线共享式设备,提供很多网络接口,负责将网络中多个计算机连在一起。
所谓共享是指集线器所有端口共用一条数据总线,因此平均每用户(端口)传递的数据量、速率等受活动用户(端口)总数量的限制。
它的主要性能参数有总带宽、端口数、智能程度(是否支持网络管理)、扩展性(可否级联和堆叠)等。
* 交换机(Switch) 也称交换式集线器。
它同样具备许多接口,提供多个网络节点互连。
但它的性能却较共享集线器大为提高:相当于拥有多条总线,使各端口设备能独立地作数据传递而不受其它设备影响,表现在用户面前即是各端口有独立、固定的带宽。
此外,交换机还具备集线器欠缺的功能,如数据过滤、网络分段、广播控制等。
* 线缆 局域网的距离扩展需要通过线缆来实现,不同的局域网有不同连接线缆,如光纤、双绞线、同轴电缆等。
2. 城域网- MAN(Metropolitan Area Network) MAN的覆盖范围限于一个城市,目前对于市域网少有针对性的技术,一般根据实际情况通过局域网或广域网来实现。
3. 广域网-WAN(Wide Area Network) WAN连接地理范围较大,常常是一个国家或是一个洲。
其目的是为了让分布较远的各局域网互连,所以它的结构又分为末端系统(两端的用户集合)和通信系统(中间链路)两部分。
通信系统是广域网的关键,它主要有以下几种: * 公共电话网 即PSTN(Public Swithed Telephone Network),速度9600bps~28.8kbps,经压缩后最高可达115.2kbps,传输介质是普通电话线。
它的特点是费用低,易于建立,且分布广泛。
* 综合业务数字网 即ISDN(Integrated Service Digital Network),也是一种拨号连接方式。
低速接口为128kbps(高速可达2M),它使用ISDN线路或通过电信局在普通电话线上加装ISDN业务。
ISDN为数字传输方式,具有连接迅速、传输可靠等特点,并支持对方号码识别。
ISDN话费较普通电话略高,但它的双通道使其能同时支持两路独立的应用,是一项对个人或小型办公室较适合的网络接入方式。
* 专线 即Leased Line,在中国称为DDN,是一种点到点的连接方式,速度一般选择64kbps~2.048Mbps。
专线的好处是数据传递有较好的保障,带宽恒定;但价格昂贵,而且点到点的结构不够灵活。
* X.25网 是一种出现较早且依然应用广泛的广域网方式,速度为9600bps~64kbps;有 冗余纠错功能,可 靠性高,但由此带来的副效应是速度慢,延迟大; * 帧中继 即Frame Relay,是在X.25基础上发展起来的较新技术,速度一般选择为64kbps~2.048Mbps。
帧中继的特点是灵活、弹性:可实现一点对 多点的连接,并且在数据量大时可超越约定速率传送数据,是一种较好的商业用户连接选择。
*异步传输模式 即ATM(Asynchronous Transfer Mode),是一种信元交换网络,最大特点的速率高、延迟小、传输质量有保障。
ATM大多采用光纤作为连接介质,速率可高达上千兆(109bps),但成本也很高。
广域网与局域网的区别在于:线路通常需要付费。
多数企业不可能自己架设线路,而需要租用已有链路,故广域网的大部分花费用在了这里。
人们常常考虑如何优化使用带宽,将“好刀用在刀刃上”。
广域网常用设备有: * 路由器(Router) 广域网通信过程根据地址来寻找到达目的地的路径,这个过程在广域网中称为路由(Routing)。
路由器负责在各段广域网和局域网间根据地址建立路由,将数据送到最终目的地。
* 调制解调器(Modem) 作为末端系统和通信系统之间信号转换的设备,是广域网中必不可少的设备之一。
分为同步和异步两种,分别用来与路由器的同步和异步串口相连接,同步可用于专线、帧中继、X.25等,异步用于PSTN的连接。
4. 网间网 即Internetwork,是一系列局域网和广域网的组合,因此包含的技术也是现有的局域网和广域网技术的综合。
Internet便是一个当前最大也最为典型的网间网。
二.协议的定义及意义 如何定义网络协议,它有哪些意义? 协议是对网络中设备以何种方式交换信息的一系列规定的组合,它对信息交换的速率、传输代码、代码结构、传输控制步骤、出错控制等许多参数作出定义。
网络是一个相互联结的大群体,因此要想加入到这个群体中来,就不能随心所欲,任由兴之所发。
就好象一个国家或一个种族拥有自己的语言,大家都必须通晓并凭借这种语言来对话一样,相互联结的网络中各个节点也需要拥有共同的“语言”,依据它所定义的规则来控制数据的传递,这种语言便是大家经常听说的 “协议”。
协议是对网络中设备以何种方式交换信息的一系列规定的组合,它对信息交换的速率、传输代码、代码结构、传输控制步骤、出错控制等许多参数作出定义。
对网络始入门者来说,纷繁复杂的协议常常让人头痛不已—这些协议各起什么作用?它们之间又有什么联系?为什么有了A协议还需要补充B协议?这些问题搞不清楚,往往成为进一步学习的障碍。
其实这个问题应该这样理解:是先有了各种不同语言的民族,后来随着社会的发展,才有了不同民族间交流的需求。
网络也是这样,最初人们在小范围内建立网络,只需要自己作一些简单的约定,保证这一有限范围内的用户遵守就可以了;到后来网络规模越来越大,才考虑到制定更严格的规章制度即协议;而为了实现多个不同网络的互联,又会增加不少新协议作为补充,或成长为统一的新标准。
数据在网络中由源传输到目的地,需要一系列的加工处理,为了便于理解,我们这里不妨打个比喻。
如果我们把数据比做巧克力:我们可以把加工巧克力的设备作为源,而把消费者的手作为目的来看看会有什么样的传输过程。
巧克力厂通常会为每块巧克力外边加上一层包装,然后还会将若干巧克力装入一个巧克力盒,再把几个巧克力盒一起装入一个外包装,运输公司还会把许多箱巧克力装入一个集装箱,到达消费者所在的城市后,又会由运输商、批发商、零售商、消费者打开不同的包装层。
不同层次的包装、解包装需要不同的规范和设备,计算机网络也同样有不同的封装、传输层面,为此国际标准化组织ISO于1978 年提出“开放系统互连参考模型”,即著名的OSI(Open System Interconnection)七层模型,它将是我们后续篇幅中要介绍的内容,这里先不展开论述。
网络的协议就是用作这些不同的网络层的行为规范的。
网络在发展过程中形成了很多不同的协议族,每一协议族都在网络的各层对应有相应的协议,其中作为Internet规范的是ICP/IP协议族,这也是我们今天要讲的。
TCP/IP协议的定义以及层次、功能 什么是TCP/IP协议,划为几层,各有什么功能? TCP/IP协议族包含了很多功能各异的子协议。
为此我们也利用上文所述的分层的方式来剖析它的结构。
TCP/IP层次模型共分为四层:应用层、传输层、网络层、数据链路层。
TCP/IP网络协议 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网间网协议)是目前世界上应用最为广泛的协议,它的流行与Internet的迅猛发展密切相关—TCP/IP最初是为互联网的原型ARPANET所设计的,目的是提供一整套方便实用、能应用于多种网络上的协议,事实证明TCP/IP做到了这一点,它使网络互联变得容易起来,并且使越来越多的网络加入其中,成为Internet的事实标准。
* 应用层—应用层是所有用户所面向的应用程序的统称。
ICP/IP协议族在这一层面有着很多协议来支持不同的应用,许多大家所熟悉的基于Internet的应用的实现就离不开这些协议。
如我们进行万维网(WWW)访问用到了HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、 远程登录用Telnet协议等等,都是属于TCP/IP应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。
* 传输层—这一层的的功能主要是提供应用程序间的通信,TCP/IP协议族在这一层的协议有TCP和UDP。
* 网络层—是TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输,IP协议就是一个网络层协议。
* 网络接口层—这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。
1.TCP/UDP协议 TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。
其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。
通过面向连接、端到端和可靠的数据包发送。
通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。
一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
IP协议的定义、IP地址的分类及特点 什么是IP协议,IP地址如何表示,分为几类,各有什么特点? 为了便于寻址和层次化地构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。
IP协议(Internet Protocol)又称互联网协议,是支持网间互连的数据报协议,它与TCP协议(传输控制协议)一起构成了TCP/IP协议族的核心。
它提供网间连接的完善功能, 包括IP数据报规定互连网络范围内的IP地址格式。
Internet 上,为了实现连接到互联网上的结点之间的通信,必须为每个结点(入网的计算机)分配一个地址,并且应当保证这个地址是全网唯一的,这便是IP地址。
目前的IP地址(IPv4:IP第4版本)由32个二进制位表示,每8位二进制数为一个整数,中间由小数点间隔,如159.226.41.98,整个IP地址空间有4组8位二进制数,由表示主机所在的网络的地址(类似部队的编号)以及主机在该网络中的标识(如同士兵在该部队的编号)共同组成。
为了便于寻址和层次化的构造网络,IP地址被分为A、B、C、D、E五类,商业应用中只用到A、B、C三类。
* A类地址:A类地址的网络标识由第一组8位二进制数表示,网络中的主机标识占3组8位二进制数,A类地址的特点是网络标识的第一位二进制数取值必须为“0”。
不难算出,A类地址允许有126个网段,每个网络大约允许有1670万台主机,通常分配给拥有大量主机的网络(如主干网)。
* B类地址:B类地址的网络标识由前两组8位二进制数表示,网络中的主机标识占两组8位二进制数,B类地址的特点是网络标识的前两位二进制数取值必须为“10”。
B类地址允许有个网段,每个网络允许有台主机,适用于结点比较多的网络(如区域网)。
* C类地址:C类地址的网络标识由前3组8位二进制数表示,网络中主机标识占1组8位二进制数,C类地址的特点是网络标识的前3位二进制数取值必须为“110”。
具有C类地址的网络允许有254台主机,适用于结点比较少的网络(如校园网)。
为了便于记忆,通常习惯采用4个十进制数来表示一个IP地址,十进制数之间采用句点“.”予以分隔。
这种IP地址的表示方法也被称为点分十进制法。
如以这种方式表示,A类网络的IP地址范围为1.0.0.1-127.255.255.254;B类网络的IP地址范围为:128.1.0.1-191.255.255.254;C类网络的IP地址范围为:192.0.1.1-223.255.255.254。
由于网络地址紧张、主机地址相对过剩,采取子网掩码的方式来指定网段号。
TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。
正因为如此 ,它能广泛地支持由低两层协议构成的物理网络结构。
目前已使用TCP/IP连接成洲际网、全国网与跨地区网。
三.网络发展简史 是什么促进了网络的发展? 纵观近几十年信息时代的风云变换,人们可以了解网络的发展是与计算机、尤其是个人电脑(PC)的发展密切相关的。
第一台计算机诞生于1945年,标志着人类自学会使用工具的漫长岁月中,终于拥有了可以替代人类脑力劳动的“工具”;到六、七十年代,进而衍生出计算机互连系统—严格说来还算不上真正的网络—它是IBM和Digital的中央处理系统,网络主体是一台或多台大型主机,被隔离在一个相对封闭的机房(那时人们通常称这种机房为“玻璃屋”),然后由一群身穿白大褂的工作人员小心维护;大多数网络用户面对的是一台台非智能化的终端,所有对终端的操作都将通过低速链路传递到主机去进行处理,网络的效率主要由链路的速率和主机的性能决定。
这样的网络不是面向大众的,仅局限于一些专业领域,如:金融行业、研究机构等。
对大多数人而言,网络是陌生的、神秘的甚至是虚无缥缈的东西。
直到八十年代PC的出现,才给网络吹来一股清新之风—相对终端而言,PC具备自己的处理引擎(CPU)和文件存贮区域(硬盘),能够装载多种应用程序,独立地完成许多工作,从而将强大的计算能力交到个人手里;相对大型主机而言,这种轻便的机器内部结构大大简化,其价格远低于大型机,并且随着批量生产和技术的迅速成熟还在不断下降,使越来越多的用户能享受到这种智能设备带来的迅速、方便、功能强大的服务。
因此可以说PC的出现首先是满足了个人用户信息处理的需要。
但与个人信息处理紧密相联的便是信息的交换,于是联网的需求应运而生—人们购买网络设备和连线,在自己的办公室内搭建起局域网,实现本地通讯;为了扩展网络距离,又向提供服务的电话公司租用电话线或其它线路,在城市的各个角落甚至城市之间建立起广域网;再进一步发展下去,又出现了一类专门的服务行业,可以通过主干连接将原本隔离的多个网络互联起来,构成跨越国度的网际网。
在这一过程中,Internet(国际互联网)的蓬勃兴起毫无疑问地成为网络技术成长的催化剂。
Internet发展简史 Internet是如何演变的? Internet的应用范围由最早的军事、国防,扩展到美国国内的学术机构,进而迅速覆盖了全球的各个领域,运营性质也由科研、教育为主逐渐转向商业化。
在科学研究中,经常碰到“种瓜得豆”的事情,Internet的出现也正是如此:它的原型是1969年美国国防部远景研究规划局(Advanced Research Projects Agency)为军事实验用而建立的网络,名为ARPANET,初期只有四台主机,其设计目标是当网络中的一部分因战争原因遭到破 坏时,其余部分仍能正常运行;80年代初期ARPA和美国国防部通信局研制成功用于异构网络的 TCP/IP协议并投入使用;1986年在美国国会科学基金会(National Science Foundation)的支持下,用高速通信线路把 分布在各地的一些超级计算机连接起来,以NFSNET接替ARPANET;进而又经过十几年的发展形成Internet。
其应用范围也由最早的军事、国防,扩展到美国国内的学术机构,进而迅速覆盖了全球的各个领域,运营性质也由科研、教育为主逐渐转向商业化。
90年代初,中国作为第71个国家级网加入Internet,目前,Internet已经在我国开放,通过中国公用互连网络(CHINANET)或中国教育科研计算机网(CERNET)都可与Internet联通。
只要有一台微机,一部调制解调器和一部国内直拨电话就能够很方便地享受到Internet的资源;这是Internet逐步爬入普通人家的原因之一;原因之二,友好的用户界面、丰富的信息资源、贴近生活的人情化感受使非专业的家庭用户既做到应用自如,又能大饱眼福,甚至利用它为自己的工作、学习、生活锦上添花,真正做到足不出户,可成就天下事,潇洒作当代人。
网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验—从硬件上、软件上、所用标准上……,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。
到了今天,Internet能够负担如此众多用户的参与,说明我们的网络技术已经成长到了相当成熟的地步,用户自己也能耳闻目睹不断涌现的新名词、新概念。
但这还不是终结,仅仅是历史长河的一段新纪元的开始而已。
Internet的应用集锦 Internet可为我们做哪些事? Internet如此美妙,初入门者不免好奇:它究竟可以为我们做哪些事?总的说来,Internet是一套通过网络来完成有用的通讯任务的应用程序,下面的篇幅将从应用入手,展示Internet的几项最广为流行的功能,它包括:电子邮件、WWW、文件传输、远程登 录、新闻组、信息查询等。
1.电子邮件(Email) 有了通达全球的Internet后,人们首先想到的是可以利用它来提供个人之间的通信,而且这种通信应能兼具电话的速度和邮政的可靠性等优点。
这种思路生根发芽成长起来,最终得到的果实便是Email。
通过它,每人都可以有自己的私有信箱,用以储存已收到但还未来得及阅读的信件,Email地址包括用户名加上主机名,并在中间用@符号隔开,如 。
从最初的两人之间的通信,如今的电子邮件软件能够实现更为复杂、多样的服务,包括:一对多的发信,信件的转发和回复,在信件中包含声音、图像等多媒体信息等;甚至可以做到只要有你的邮件到达,挂在你身上的BP机就嘀嘀作响发出提示;人们还可以象订购报刊杂志一样在网上订购所需的信息,通过电子邮件定期送到自己面前。
2.WWW World Wide Web(通常被称为WWW)在中文里常被译作“万维网”,除发音相近外,也体现了其变化万千的内涵。
用户借助于一个浏览器软件,在地址栏里输入所要查看的页面地址(或域名),就可以连接到该地址所指向的WWW服务器,从中查找所需的图文信息。
WWW访问的感觉有些象逛大商场,既可以漫无边际地徜徉,也可以奔着一个目标前进;但不论如何,当用户最终获得想要的内容时,也许已经跨越了千山万水,故有时我们也称之为“Web冲浪”。
WWW服务器所存贮的页面内容是用HTML语言(Hyper Text Mark-up Language)书写的,它通过HTTP协议(Hyper Text Transfering Protocol)传送到用户处。
3.文件传输(FTP) 尽管电子邮件也能传送文件,但它一般用于短信息传递。
Internet提供了称作FTP(File Transfer Protocol)的文件传输应用程序,使用户能发送或接收非常大的数据文件:当用户发出FTP命令,连接到FTP服务器后,可以输入命令显示服务器存贮的文件目录,或从某个目录拷贝文件,通过网络传递到自己的计算机中。
FTP服务器提供了一种验证用户权限的方法(用到用户名、密码),限制非授权用户的访问。
不过,很多系统管理员为了扩大影响,打开了匿名ftp服务设置——匿名ftp允许没有注册名或口令的用户在机器上存取指定的文件,它用到的特殊用户名为“anonymous”。
4.远程登录(Remote Login) 远程登录允许用户从一台机器连接到远程的另一台机器上,并建立一个交互的登录连接。
登录后,用户的每次击键都传递到远程主机,由远程主机处理后将字符回送到本地的机器中, 看起来仿佛用户直接在对这台远程主机操作一样。
远程登录通常也要有效的登录帐号来接受对方主机的认证。
常用的登录程序有TELNET、RLOGIN等。
5.Usenet新闻组 Usenet新闻是Internet上的讨论小组或公告牌系统(BBS)。
Usenet在一套名为新闻组的标题下组织讨论,用户可以阅读别人发送的新闻或发表自己的文章。
新闻组包括数十大类、数千组新闻,平均每一组每天都有成百上千条新闻公布出来。
新闻组的介入方式也非常随便,你可以在上面高谈阔论、问问题,或者只看别人的谈论。
上面所列举的仅是Internet文化长廊中的主要内容,但绝不是全部。
Internet永远是在不断发展、推陈出新的,这将是我们下一篇的内容——Internet的发展趋势。
四发展面临的问题 Internet的发展正面临哪些困境? 在上篇中我们讲述了Internet的发展简史和它的方方面面的应用。
正是由于Internet的丰富多彩,才会吸引越来越多的人加入其中:对用户而言,Internet正一步步渗透到我们工作、生活的各个方面,极大地改变了长久以来形成的传统思维和生活方式;而对Internet而言,用户的积极参与使得这一全球通行的网络迅速膨胀起来,用户对它的需求也不断升级,使Internet的耐受力面临带宽的短缺、IP地址资源匮乏等严峻考验。
1.带宽的短缺 据1995年年中的估计, 有150多个国家和地区的6万多个网络同Internet联结, 入网计算机约450万台, 直接使用Internet的用户达4000万人。
而到今天,Internet已经开通到全世界大多数国家和地区,几乎每隔三十分钟就有一个新的网络连入,主机数量每年翻两番,用户数量每月增长百分之十,预计到本世纪末和下世纪初, Internet将连接近亿台计算机, 达到以十亿计的用户。
而对更远的将来,人们很难精确估计。
不管怎么说,这些数字已足以说明Internet的危机所在:就好象一根悬挂了很多重物的钢丝绳,重量增加了,绳子就有断裂的危险;而用户在Internet上的游历实际上要走过很多根这样的“钢丝绳”,用户越多,绳子的负载越重,其中任一根不结实,都会成为瓶颈,导致网络访问的失败。
因此,“钢丝绳”的加固—带宽容量的增加势在必行,从Internet主干到分支,直至最终用户的接入,都出现了许多成熟的或正在发展的链路技术来实现这项需求,我们将在后文着重介绍其中用户最为关心的几种接入技术。
2. IP地址资源的匮乏 我们曾介绍了IP地址的格式和分类,这里所指的都是现行的IPv4—它是一个32位二进制数,因此总地址容量为232,也即有数亿个左右。
而按照TCP/IP协议(同很多其它协议一样)的规定,相互联接的网络中每一个节点都必须有自己独一无二的地址来作为标识,那么很显然,相对前文日益增长的用户数,现有IP地址资源已不堪重负,很快将被用光—有预测表明,以目前Internet发展速度计算,所有IPv4地址将在2005~2010年间分配完毕。
解决IP地址缺乏的办法之一是想办法延缓资源耗尽

