因特网是什么时候开始的 因特网是什么( 二 )


我们稍深入探讨一下为应用程序提供服务的基础设施的含义 。为此,假定你对某种分布式因特网应用有一个激动人心的新想法,它可能大大地造福于人类,或者它可能直接使你名利双收 。你将如何把这种想法转化成一个实际的因特网应用呢?因为应用程序运行在端系统上,所以你需要编写运行在端系统的一些软件 。例如,你可能用C、Java或Python编写软件 。此时,因为你研发一种分布式因特网应用程序,运行在不同端系统的软件将需要互相发送数据 。此时我们碰到了一个核心问题,这个问题导致了另一种描述因特网的 *** ,即将因特网描述为应用程序的平台 。运行在端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据呢?
与因特网相连的端系统提供了一个套接字接口,改接口规定了运行在另一个端系统上的程序请求因特网基础设施向运行在另一个端系统的特定目的地程序交付数据的方式 。因特网套接字接口是一套发送程序必须遵循的规则 *** ,因此因特网能够将数据交付给目的地 。此时,我们做一个简单的类比 。假定Alice使用邮政服务向Bob发一封信 。当然,Alice不能只是写了这封信然后把信丢出窗外 。相反,邮政服务要求Alice将信放入一个信封中;在信封的中间写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将该信封丢进邮局的一个邮政服务信箱中 。因此,该邮政服务有自己的“邮政接口服务”或一套规则,这是Alice必须遵循的,这样邮政服务才能将她的信件交给Bob 。同理,因特网也有一个发送数据的程序必须遵循套接字接口,使因特网向接收数据的程序交付数据 。
当然,邮政服务向顾客提供了多种服务,如特快专递、挂号、普通服务等 。同样,因特网向应用程序提供了多种服务 。当你研发一种因特网应用程序时,也必须为你的应用程序选择其中的 一种因特网服务 。
我们已经给出了因特网的两种描述 *** :一种是根据它的硬件和软件组件来描述,另一种是基础设施像向分布式应用程序提供的服务来描述 。
什么是协议?1、人类活动的类比
【因特网是什么时候开始的因特网是什么】也许理解计算机 *** 协议这一概念的一个最容易的办法是,先与某些人类活动进行类比,因为我们人类无时无刻不止在执行协议 。考虑到当你想要向某人询问时间将要怎么做 。人类协议要求一方首先进行问候,然后开始与另一个人的通信 。对“你好”的典型响应是返回一个“你好”报文 。此人用一个热情的“你好进行响应”,隐含着一种指示,表明能够继续向那人询问时间了 。对最初的“你好”的不同响应也许表明了一个勉强的或不能进行的通信 。在此情况下,按照人类协议,发话者就不能询问时间了 。有时,问的问题根本得不到任何回答,在此情况下,按照人类协议,发话者通常会放弃向这个人询问时间 。注意在我们人类协议中,有我们发送的特定报文,也有我们根据接收到的应答报文或其他时间采取的动作 。显然,发送和接收的报文,以及这些报文发送和接收或其他事件出现时所采取的动作,这些在一个人类协议中起到了核心作用 。如果人们使用不同的协议,这些协议就不能交互,因而不能完成有用的工作 。在 *** 中这个道理同样成立 。即为了完成一项工作,要求两个通信实体运行相同的协议 。
我们再考虑第二个人类类比的例子 。假定你正在大学课堂里上课 。教师正在唠唠叨叨地讲述协议,而你困惑不解 。这名教师停下来问:“同学们你们有什么问题吗?”你举起了手 。这位教师面带微笑地示意你说:“请讲......”接着你就问了问题 。教师听取了你的问题并加以回答 。我们再一次看到了报文的发送和接收,以及这些报文发送和接收时所采取的一系列约定俗成的动作,这些是这个“提问与回答”协议的关键所在 。
2、 *** 协议
*** 协议类似于人类协议,除了交换报文和采取动作的实体是某些设备的硬件或软件组件 。在因特网中,涉及两个或多个***通信实体的所有活动都受协议的制约 。例如,在两台物理上连接的计算机中,硬件实现的协议控制了在两块 *** 接口卡间的“线上”得比特流;在端系统中,拥塞控制协议控制了在发送方和接收方之间传输的分组发送的速率;路由器中的协议决定了分组从源到目的地的路径 。在因特网中协议运行无处不在 。
以大家可能熟悉的一个计算机 *** 协议为例,考虑当你向一个Web服务器发出请求时所发生的情况 。首先,你的计算机向该Web服务器发送一条连接请求报文,并等待回答 。该Web服务器将最终能接收到连接请求报文,并返回一条连接响应报文 。得知请求该Web文档正常以后,计算机则在一条GET报文中发送要从这台Web服务器上取回的网页名字 。最后,Web服务器向计算机返回该Web网页 。

推荐阅读