目录
一、研发一个网络应用程序
二、网络应用程序体系结构
1、客户机/服务器体系结构
2、P2P 体系结构
3、客户机/服务器和 P2P 混合的体系结构
三、进程通信
1、进程通信的类型
2、进程与计算机网络的接口:套接字
3、进程寻址
四、应用层协议
五、可供应用程序使用的运输服务
1、应用需要什么样的服务?
2、因特网传输协议提供的服务
plus、安全 TCP
一、研发一个网络应用程序
1)研发网络应用程序的核心
核心:写出能够运行在不同的端系统并通过网络彼此通信的程序。例如,在 Web 应用程序中,有两个互相通信的不同的程序:一个是运行在用户主机上的浏览器程序,另一个是运行在 Web 服务器主机上的 Web 服务器程序。
网络仅起传递数据的作用,自身并不会产生用户数据,因此网络不需要运行应用程序。
2)没有应用程序运行在网络核心设备上
由于网络不需要运行应用程序,因此可以看出网络核心设备不在应用层起作用。这种设计方法促进了应用程序的研发,因为研发者不需要关心网络核心设备是怎么样的。
3)需要设计的内容
- 运行在本地的程序
- 供本地程序使用的应用层协议
二、网络应用程序体系结构
即,应该遵循怎样的交互形式

1、客户机/服务器体系结构
服务器
- 总是打开的主机(任一时刻都能访问)
- 具有固定的、众所周知的 IP 地址(域名)
- 主机集群常被用于创建强大的虚拟服务器(采用主机集群)
客户机
- 同服务器端通信(否则是单机)
- 可以间断的同服务器连接(需求不是持续的)
- 可以拥有动态 IP 地址
- 客户机相互之间不直接通信
《十美元》假设教室里有一个老师和很多同学,此时有一个同学找到老师说 “老师,我需要十美元”,随后老师慷慨地给了这位同学十美元。
2、P2P 体系结构
- 没有总是打开的服务器(各个主机既是客户机又是服务器)
- 任意一对主机直接相互通信
- 对等方间歇连接并且可以改变 IP 地址
例如:Gnutella
- 优点:自扩展性
- 缺点:难以管理
《十美元》假设教室里有很多同学,每个同学身上持有不同币种的货币。此时有一个同学对其他所有人大喊一声 “我需要十美元”,那么身上有十美元的同学说 “我有十美元”,并把自己的十美元给那个需要的同学。
3、客户机/服务器和 P2P 混合的体系结构
该体系结构中,服务器只是一个信息的提供者,并不是真实的数据提供者。
优点:能够定向找到目标。
举例 1:Napster
文件直接在对等方之间交换
- 文件搜索通过服务器
- 中心服务器记录对等方内容
- 对等方查询中心服务器来决定要求的文件位置
举例 2:即时讯息
两个聊天用户之间是 P2P
- 注册、查询通过服务器
- 用户上线时要在中心服务器上进行注册
- 用户与中心服务器联系以找出在线伙伴
《十美元》假设教室里有一个老师和很多同学,每个同学身上持有不同币种的货币,并且把自己的持有情况报告给了老师。此时有一个同学找到老师说 “老师,我需要十美元”,那么老师将会查询每个同学的持有情况,告诉这位同学 “XXX 身上有十美元”。随后这位同学找到 XXX 同学,XXX 同学把自己的十美元给这位需要的同学。
三、进程通信
进程:运行在端系统中的程序。
- 客户端进程:发起通信的进程。
- 服务器进程:等待联系的进程。
注意:具有 P2P 体系结构的应用程序既有客户进程和服务器进程。
1、进程通信的类型
(1)同一主机上的两个进程通过内部进程通信机制进行通信

- 通过读/写文件进行通信
- 通过内存进行通信
- 通过消息对列进行通信
- 通过网络层进行通信:127.0.0.1 回环地址/本机地址
(2)不同主机上的进程通过交换报文相互通信
- U 盘
- 网络

2、进程与计算机网络的接口:套接字
由于应用程序需要使用传输层的服务,因此应用程序必须实现应用层。
![]()
(1)进程通过它的套接字在网络上发送和接收报文

(2)将套接字类比于门户
- 发送进程把报文推出门户
- 发送进程假定门户到另外一侧之间有运输设施,该设施可以传送报文到接收进程

(3)套接字又叫做应用程序编程接口 API
(4)用户通过 API 对传输层的控制仅限于:
- 选择传输协议
- 能设定几个参数
3、进程寻址
为了一个进程能接收报文,它需要一个标识。
主机有唯一的 32 位 IP 地址。
- 问:主机的 IP 地址足够标识进程吗?
- 答:不能。因为一台主机上能够运行许多进程。
主机上的进程标识包括 IP 地址和端口号。
常用应用程序的端口号:
- Web服务:80
- 邮件服务:25
将在第三章详细分析端口号。
四、应用层协议
交换的报文类型:比如请求报文和应答报文。
协议的三大特征:
- 语法:是指报文中的各个字段及其详细描述。
- 语义:是指包含在字段中的信息的含义。
- 异步:确定进程何时、如何发送报文及对报文进行响应。
| 公共领域协议 | 专用协议 |
|---|---|
|
|
五、可供应用程序使用的运输服务
1、应用需要什么样的服务?
| 数据丢失率 |
一些应用 (如:实时音频)能容忍一定程度的数据丢失;另一些应用(如:文件传输,telnet)需要100%可靠的数据传输。 |
|---|---|
| 定时 | 一些应用(如:因特网电话、多方游戏)要求低时延。 |
| 带宽和吞吐量 | 一些应用(如:多媒体)必须要达到所需带宽;另一些应用(弹性应用)根据需要充分利用可供使用的带宽。 |
| 安全 | 加密,数据完整性等。 |
常见应用的传输服务需求
由于不同应用对传输服务的需求不同,因此需要选用不同的传输层协议来提供服务。

2、因特网传输协议提供的服务
| TCP 服务 | UDP 服务 |
|---|---|
|
UDP 服务是一种尽力而为的服务 |
因特网应用:应用层协议,传输协议

plus、安全 TCP
| TCP 和 UDP | SSL | SSL 在应用层 | |
|---|---|---|---|
| 特点 | 没有加密;网络明文传输,如用户名和口令信息等。 |
提供加密的 TCP 连接;保证数据完整性;端点认证,即找指定的服务商备案。 |
应用程序使用 SSL 库调用 TCP 服务接口;SSL 提供套接字 API 。 |
| 位置 | 传输层。 | Security Socket Layer 作为套接字,处于应用层和传输层之间。 | SSL 在应用层。 |
网址中 https 的 s 指的就是 SSL 。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52885.html