DJ2-1 应用层协议原理

目录

1. 研发一个网络应用程序

2. 网络应用程序体系结构

3. 进程通信

4. 进程与计算机网络的接口 - 套接字

5. 进程寻址

6. 应用层协议

7. 应用需要什么样的服务?

8. 因特网传输协议提供的服务

9. 安全 TCP


DJ2-1 应用层协议原理_第1张图片

1. 研发一个网络应用程序

1)研发网络应用程序的核心

写出能够运行在不同的端系统并通过网络彼此通信的程序,例如,Web:Web 服务器软件和浏览器软件通信。

网络仅起传递数据的作用,自身并不会产生用户数据,因此网络不需要运行应用程序。

2)没有应用程序运行在网络核心设备上

由于网络不需要运行应用程序,可以看出网络核心设备不在应用层起作用。这种设计方法促进了应用程序的研发,因为研发者不需要关心网络核心设备是怎么样的。

3)设计内容

  • 本地程序
  • 供本地程序使用的应用层协议

2. 网络应用程序体系结构

即,应该遵循怎样的交互形式。

1)客户机/服务器体系结构

2)P2P 体系结构

3)客户机/服务器和 P2P 混合的体系结构

1)客户机/服务器体系结构

服务器

  • 总是打开的主机(任一时刻都能访问)
  • 具有固定的、众所周知的 IP 地址(域名)
  • 主机集群常被用于创建强大的虚拟服务器(采用主机集群)

客户机

  • 同服务器端通信(否则是单机)
  • 可以间断的同服务器连接(需求不是持续的)
  • 可以拥有动态 IP 地址
  • 客户机相互之间不直接通信

《十美元》假设教室里有一个老师和很多同学,此时有一个同学找到老师说 “老师,我需要十美元”,随后老师慷慨地给了这位同学十美元。

2)P2P 体系结构

  • 没有总是打开的服务器(既是客户机又是服务器)
  • 任意一对主机直接相互通信
  • 对等方间歇连接并且可以改变 IP 地址

例如:Gnutella

  • 优点:自扩展性
  • 缺点:难以管理

《十美元》假设教室里有很多同学,每个同学身上持有不同币种的货币。此时有一个同学对其他所有人大喊一声 “我需要十美元”,那么身上有十美元的同学说 “我有十美元”,并把自己的十美元给那个需要的同学。

3)客户机/服务器和 P2P 混合的体系结构

该体系结构中,服务器只是一个信息的提供者,并不是真实的数据提供者。

优点:能够定向找到目标。

举例 1:Napster

文件直接在对等方之间交换

  • 文件搜索通过服务器
  • 中心服务器记录对等方内容
  • 对等方查询中心服务器来决定要求的文件位置

举例 2:即时讯息

两个聊天用户之间是 P2P

  • 注册、查询通过服务器
  • 用户上线时要在中心服务器上进行注册
  • 用户与中心服务器联系以找出在线伙伴

《十美元》假设教室里有一个老师和很多同学,每个同学身上持有不同币种的货币,并且把自己的持有情况报告给了老师。此时有一个同学找到老师说 “老师,我需要十美元”,那么老师将会查询每个同学的持有情况,告诉这位同学 “XXX 身上有十美元”。随后这位同学找到 XXX 同学,XXX 同学把自己的十美元给这位需要的同学。

3. 进程通信

进程:运行在端系统中的程序。

  • 客户进程:发起通信的进程。
  • 服务器进程:等待联系的进程。

注意:具有 P2P 体系结构的应用程序既有客户进程和服务器进程。

1)同一主机上的两个进程通过内部进程通信机制进行通信。

DJ2-1 应用层协议原理_第2张图片

  1. 通过读/写文件进行通信
  2. 通过内存进行通信
  3. 通过消息对列进行通信
  4. 通过网络层进行通信:127.0.0.1 回环地址/本机地址

2)不同主机上的进程通过交换报文相互通信。

  1. U 盘
  2. 网络

4. 进程与计算机网络的接口 - 套接字

由于应用程序需要使用传输层的服务,因此应用程序必须实现应用层。

1)进程通过它的套接字在网络上发送和接收报文

DJ2-1 应用层协议原理_第3张图片

2)将套接字类比于门户

  • 发送进程把报文推出门户
  • 发送进程假定门户到另外一侧之间有运输设施,该设施可以传送报文到接收进程

DJ2-1 应用层协议原理_第4张图片

3)套接字又叫做应用程序编程接口 API 。

4)用户通过 API 对传输层的控制仅限于:

  • 选择传输协议
  • 能设定几个参数

5. 进程寻址

为了一个进程能接收报文,它需要一个标识。

主机有唯一的 32 位 IP 地址。

  • 问:主机的 IP 地址足够标识进程吗?
  • 答:不能。因为一台主机上能够运行许多进程。

主机上的进程标识包括 IP 地址和端口号

常用应用程序的端口号:

  • Web服务:80
  • 邮件服务:25

将在第三章详细分析端口号。

6. 应用层协议

1)交换的报文类型,如请求报文和应答报文。

2)报文类型的语法:报文中的各个字段及其详细描述。

3)字段的语义,即包含在字段中的信息的含义。

4)进程何时、如何发送报文及对报文进行响应。

公共领域协议 专用协议
  • 由 RFC 文档定义
  • 可供大家使用
  • 例如:HTTP,SMTP
  • 例如: KaZaA,Skype

7. 应用需要什么样的服务?

数据丢失率

一些应用 (如:实时音频)能容忍一定程度的数据丢失;另一些应用(如:文件传输,telnet)需要100%可靠的数据传输。

定时

一些应用(如:因特网电话、多方游戏)要求低时延。

带宽和吞吐量

一些应用(如:多媒体)必须要达到所需带宽;另一些应用(弹性应用)根据需要充分利用可供使用的带宽。

安全

加密,数据完整性等。

常见应用的传输服务需求

由于不同应用对传输服务的需求不同,因此需要选用不同的传输层协议来提供服务。

DJ2-1 应用层协议原理_第5张图片

8. 因特网传输协议提供的服务

UDP 服务是一种尽力而为的服务。

TCP 服务 UDP 服务
  1. 面向连接的服务:在客户机程序和服务器程序之间必须建立连接
  2. 可靠的传输服务:接收和发送进程间
  3. 流量控制:发送方不会淹没接收方
  4. 拥塞控制:网络出现拥塞时抑制发送进程
  5. 没有提供:时延保证,最小带宽保证
  1. 不可靠数据传输
  2. 没有提供:建立连接,可靠性,流量控制,拥塞控制,时延和带宽保证

因特网应用:应用层协议,传输协议

DJ2-1 应用层协议原理_第6张图片

9. 安全 TCP

TCP 和 UDP SSL SSL 在应用层
特点

没有加密;网络明文传输,如用户名和口令信息等。

提供加密的 TCP 连接;保证数据完整性;端点认证,即找指定的服务商备案。

应用程序使用 SSL 库调用 TCP 服务接口;SSL 提供套接字 API 。

位置 传输层。 Security Socket Layer 作为套接字,处于应用层和传输层之间。 SSL 在应用层。

网址中 https 的 s 指的就是 SSL 。

你可能感兴趣的:(计算机网络,网络,网络协议,学习)