开发者社区> 华章计算机> 正文

《分布式系统:概念与设计》一3.4 互联网协议

简介: 本节书摘来华章计算机《分布式系统:概念与设计》一书中的第3章 ,第3.1节,(英) George Coulouris Jean DollimoreTim Kindberg Gordon Blair 著 金蓓弘 马应龙 等译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
+关注继续查看

3.4 互联网协议

本节将介绍TCP/IP协议组的主要特点,并讨论在分布式系统中使用它们的好处及局限性。
互联网的研究始于20世纪70年代早期的ARPANET——第一个大规模计算机网络的开发[Leiner et al.1997],随着近20年的研究和开发,互联网渐渐成形。这项研究的一个重要部分是开发TCP/IP协议组,TCP指传输控制协议,IP是指网际协议。TCP/IP和互联网应用协议在美国研究网络中的广泛采用以及最近在许多国家的商业网络中的广泛使用,使得全国的网络可以集成为一个互连网络,这一网络已经迅速发展到目前数量超过6000万主机的规模。现在许多应用服务和应用层的协议(列在下面的各个括号内)都是基于TCP/IP的,包括Web(HTTP)、电子邮件(SMTP、POP)、网络新闻(NNTP)、文件传输(FTP)和远程登录(telnet)。TCP是一个传输协议,它可以直接支持应用程序,也可以将附加的协议加在它上面,以提供额外的特点。例如,通常HTTP传输时直接使用TCP,但当需要端-端的安全性时,传输层安全(TLS)协议(在11.6.3节讨论)就会放在TCP的上层,以建立安全信道,HTTP消息通过这一安全信道传输。
最初,开发互联网协议是用来支持一些简单的广域应用,如文件传输和电子邮件,这涉及在地理上相隔很远的、有较长延迟的通信。但这些协议已被证明足以有效支持很多分布式应用的需求,不论这些应用是在广域网上还是在局域网上,它们现在广泛应用于分布式系统中。通信协议的标准化带来了巨大的好处。
图3-6所示的互连网络协议层的一般性说明被翻译成图3-12所示的互联网的特例,其中有两个传输协议——TCP(传输控制协议)和UDP(用户数据报协议)。TCP是一个面向连接的可靠协议,而UDP是一个不能保证可靠传输的数据报协议。网际协议(IP)是互联网虚拟网络的底层“网络”协议,也就是说,IP数据报为互联网和其他TCP/IP网络提供了基本的传输机制。我们在前面的句子中给“网络”一词加上引号,因为它并不是唯一的互联网通信实现所涉及的网络层。这是因为网际协议通常是在另一个网络技术之上,如以太网,它已经提供了一个网络层,该层使得连接到同一网络的计算机可以交换数据报。图3-13说明了通过TCP在底层以太网上传输消息的时候数据包的封装过程。头部的标签给出了上层协议的类型,以便接收协议栈正确地解开这个数据包。在TCP层,接收方的端口号有类似的作用,使得接收主机的TCP软件组件可以将消息送到特定的应用层进程中去。
image

TCP/IP规约[Postel 1981a;1981b]没有详细描述互联网数据报层以下的层,互联网层的IP数据包会转换成可以在几乎任何底层网络或数据链路上传输的包。
举例来说,IP起初运行在APPANET上,这个网络包括主机和一些由长距离数据链路连接的早期版本的路由器(称为PSE)。如今,IP实际上已经用于各种网络技术了,包括ATM、局域网(如以太网)和令牌环网。在串行线路和电话电路上通过PPP协议[Parker 1992]实现IP,使得IP可用于与调制解调器连接和其他串行链路的通信。
TCP/IP的成功源于它独立于底层传输技术,这使得互连网络可以由许多异构的网络或数据链路建立起来。用户和应用程序感知到的是一个支持TCP和UDP的虚拟网络,TCP和UDP的实现者看到一个虚拟IP网络,它隐藏了底层传输介质的多样性。图3-14说明了这个观点。
image

下面两节将详细描述IP寻址方案和IP协议。用于将互联网用户很熟悉的www.amazon.com、hpl.hp.com、stanford.edu、qmw.ac.uk这些域名转化成IP地址的域名系统将在3.4.7节中介绍,第9章将给出更全面的叙述。
现在,互联网上使用的主要IP协议的版本是IPv4(从1984年1月开始),这也是我们将在下面两小节里讨论的版本。但由于互联网使用的飞速发展,人们也不得不发布新的IP版本IPv6,以克服IPv4中地址数量的限制并为之增添功能以满足新的需求。我们将在3.4.4节描述IPv6。由于大量的软件将受此影响,所以逐渐过渡到IPv6的计划将在10年或更长的时间里来完成。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
spring security技术分享(四)
用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。 认证是确认某主体在某系统中是否合法、可用的过程。这里的主体既可以是登录系统的用户,也可以是接入的设备或者其他系统。
11 0
SpringBoot系列:整合Spring Security
Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication*)和用户授权(Authorization) 两个部分。
7 0
SpringCloud:服务发现之如何搭建Nacos服务
Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
7 0
什么是跨域?如何解决?
什么是跨域?如何解决?
5 0
窥探 Netty 源码!Recycler 对象池实现原理剖析
该文所涉及的 netty 源码版本为 4.1.6。
6 0
iOS-底层原理 15:dyld发展史
iOS-底层原理 15:dyld发展史
6 0
SwiftUI—如何使视图充满整个屏幕
SwiftUI—如何使视图充满整个屏幕
6 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载