应用层(一)
来源:互联网 发布:淘宝五个金冠 编辑:程序博客网 时间:2024/05/18 16:39
应用层协议原理
网络应用程序体系结构
在编写软件之前,我们需要对应用程序有一个宽泛的体系结构计划。对于目前来说,一般会使用一种主流的体系结构:客户-服务器体系结构或对等(P2P)体系结构。
在客户-服务器体系结构中,有一个总是打开的主机称为服务器,它有一个固定的,周知的地址,称为IP地址,它的功能是服务器于来自许多其他称为客户的主机的请求。值得注意的是,在客户-服务器体系结构中,客户之间无法直接通信。
在P2P体系结构中,应用程序的通信对数据中心的服务器的依赖很小(或者没有依赖),应用程序可以直接进行通信,这些主机被称为对等方。这个体系的特性之一就是具有自扩展性。例如在一个文件共享的应用中,虽然每个对等方请求文件会产生工作量,但每个对等方向其他对等方发送文件为整个系统增加了服务能力。
但是,某些应用具有混合的体系结构,他们结合了两种体系结构中的一些元素。例如很多的即时通讯的软件,服务器被用于跟踪用户的IP地址,但是用户和用户之间的通信可以直接进行。
进程通信
在构建应用程序之前,我们需要对应用程序之间是如何通信的有一定的了解。
其实进行通信的是进程,而不是程序。
一个进程可以被认为是运行在端系统中的一个程序,当进程运行在相同的端系统时,它们使用进程间通信机制相互通信。
而对于不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。发送进程生成并向网络中发送报文;接收进程接受这些报文并响应。
客户和服务器进程
在网络应用程序中,进程总是成对的出。例如在web应用程序中,浏览器进程与一台web服务器进程交换报文;在一个P2P的文件共享系统中,两个对等方进程相互交换文件。对于每队通信进程,通常将其中之一标识为客户,而另一个进程标识为服务器(注意:这里的客户和服务器不同于应用程序体系结构中的客户和服务器)
进程与计算机网络之间的接口
多数应用程序是由通信进程对组成的,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文是通过一个叫做套接字(socket)的接口进行的。我们可以考虑这样的类比:进程就像一座房子,套接字就是它的门。当一个进程想向位于另外一台主机上的进程发送报文时,它把报文推出该门(套接字)。当报文到达接受进程的门口时,通过接受进程的门(套接字)传递进去。
如图所示,套接字是同一台主机内应用层与运输层之间的接口。
进程寻址
在一台主机上的进程为了向另一台主机上运行的进程发送分组,接受进程需要有一个地址。为了标识一个进程,需要定义两种信息:1.主机的地址;2.主机中接收进程的标志符。
主机的由IP地址标识,大家应该对这个很熟悉。
接收进程的地址由端口号标识。
- 应用层(一)
- [文件系统]应用层编程(一)
- input子系统应用层(一)
- Android应用层(View体系)一
- Android应用层(网络编程)一
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(一 硬件驱动层)
- 计算机网络应用层(一)应用协议原理
- 关于层和表的应用(一)
- 内存受限设备的应用层内存管理(一)
- IOS应用架构思考一(网络层)
- IOS应用架构思考一(网络层)
- MPAndroidChart常见设置属性(一)——应用层
- MPAndroidChart常见设置属性(一)——应用层
- EtherCAT 应用层协议的部分理解(一)
- MPAndroidChart常见设置属性(一)——应用层
- 对网络应用层的理解(一)
- Android开发之应用层到驱动层的接口实现(一)
- 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)
- 网站如何记录访客的个人信息?
- lesson18 Aliasing
- 关于文件上传的学习心得
- 不借用临时变量交换两个整数的值
- Java多线程的实现方法
- 应用层(一)
- 多操作符的语义判断(如 int& *a和int* &a)
- 互联网+O2O 的商业模式
- 自己做灭火机器人(一)——硬件准备与车体搭建
- Tabhost嵌套以及Tab中多个Activity跳转的实现
- Android组件之间的通信
- 活动的四种启动模式
- HDU 1325 Is It A Tree?(并查集)
- Linux内核模块--笔记