服务描述
前面的讨论已经辨识了构成因特网的许多部件 。但是我们也能从一个完全不同的角度 , 即从为应用程序提供服务的基础设施的角度来描述因特网 。除了诸如电子邮件和Web冲浪等传统应用外 , 因特网还包括移动智能手机和平板电脑应用程序 , 其中包括即时讯息、与实时道路流量信息的映射、来自云的音乐流、电影和电视流、在线社交网络、视频会议、多人游戏以及基于位置的推荐系统 。因为这些应用程序涉及多个相互交换数据的端系统 , 故它们被称为分布式应用程序 。重要的是 , 因特网应用程序在端系统上 , 即它们并不运行在网络核心中的分组交换机中 。尽管分组交换机能够加速端系统之间的数据交换 , 但它们并不在意作为数据的源或宿的应用程序 。
我们稍深入探讨一下为应用程序提供服务的基础设施的含义 。为此 , 假定你对某种分布式因特网应用有一个激动人心的新想法 , 它可能大大地造福于人类 , 或者它可能直接使你名利双收 。你将如何把这种想法转化成一个实际的因特网应用呢?因为应用程序运行在端系统上 , 所以你需要编写运行在端系统的一些软件 。例如 , 你可能用C、Java或Python编写软件 。此时 , 因为你研发一种分布式因特网应用程序 , 运行在不同端系统的软件将需要互相发送数据 。此时我们碰到了一个核心问题 , 这个问题导致了另一种描述因特网的方法 , 即将因特网描述为应用程序的平台 。运行在端系统上的应用程序怎样才能指令因特网向运行在另一个端系统上的软件发送数据呢?
与因特网相连的端系统提供了一个套接字接口 , 改接口规定了运行在另一个端系统上的程序请求因特网基础设施向运行在另一个端系统的特定目的地程序交付数据的方式 。因特网套接字接口是一套发送程序必须遵循的规则集合 , 因此因特网能够将数据交付给目的地 。此时 , 我们做一个简单的类比 。假定Alice使用邮政服务向Bob发一封信 。当然 , Alice不能只是写了这封信然后把信丢出窗外 。相反 , 邮政服务要求Alice将信放入一个信封中;在信封的中间写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将该信封丢进邮局的一个邮政服务信箱中 。因此 , 该邮政服务有自己的“邮政接口服务”或一套规则 , 这是Alice必须遵循的 , 这样邮政服务才能将她的信件交给Bob 。同理 , 因特网也有一个发送数据的程序必须遵循套接字接口 , 使因特网向接收数据的程序交付数据 。
当然 , 邮政服务向顾客提供了多种服务 , 如特快专递、挂号、普通服务等 。同样 , 因特网向应用程序提供了多种服务 。当你研发一种因特网应用程序时 , 也必须为你的应用程序选择其中的 一种因特网服务 。
我们已经给出了因特网的两种描述方法:一种是根据它的硬件和软件组件来描述 , 另一种是基础设施像向分布式应用程序提供的服务来描述 。
什么是协议?
1、人类活动的类比
也许理解计算机网络协议这一概念的一个最容易的办法是 , 先与某些人类活动进行类比 , 因为我们人类无时无刻不止在执行协议 。考虑到当你想要向某人询问时间将要怎么做 。人类协议要求一方首先进行问候 , 然后开始与另一个人的通信 。对“你好”的典型响应是返回一个“你好”报文 。此人用一个热情的“你好进行响应” , 隐含着一种指示 , 表明能够继续向那人询问时间了 。对最初的“你好”的不同响应也许表明了一个勉强的或不能进行的通信 。在此情况下 , 按照人类协议 , 发话者就不能询问时间了 。有时 , 问的问题根本得不到任何回答 , 在此情况下 , 按照人类协议 , 发话者通常会放弃向这个人询问时间 。注意在我们人类协议中 , 有我们发送的特定报文 , 也有我们根据接收到的应答报文或其他时间采取的动作 。显然 , 发送和接收的报文 , 以及这些报文发送和接收或其他事件出现时所采取的动作 , 这些在一个人类协议中起到了核心作用 。如果人们使用不同的协议 , 这些协议就不能交互 , 因而不能完成有用的工作 。在网络中这个道理同样成立 。即为了完成一项工作 , 要求两个通信实体运行相同的协议 。
推荐阅读
- 每年的7月14日是什么节日 7月14日是什么节日
- 带头大哥的真实身份是谁 天龙八部带头大哥是谁当年发生了什么
- 中国十大佛教圣地名山排名 中国四大名山是哪四山
- 测试显卡性能软件介绍 显卡性能测试软件
- 洋具是什么意思污游戏 洋具是什么
- 罗非鱼是淡水鱼还是海水鱼,非洲鱼在淡水中养还是海水养呢?
- kiss是什么意思 *** 热梗 kiss是什么意思
- 四大名扇分别是什么拼音 四大名扇分别是什么
- 牵引挂车是啥意思啊 牵引挂车是什么意思啊
- 机动车报废流程是什么样的 报废机动车流程