应用层基础

应用层也称为应用实体,它由若干个特定应用服务元素和一个或多个公用应用服务元素组成。

网络应用的实例:互联网流行的应用层协议

  • HTTP
  • FTP
  • SMTP / POP3 /IMAP
  • DNS

编程:网络应用程序

  • Socket API

体系结构

客户-服务器(C/S)体系结构

服务器:

  • 一直运行
  • 固定的IP地址和周知的端口号(约定)
  • 扩展性差

客户端:

  • 主动与服务器通信

  • 与互联网有间歇性的连接

  • 可能是动态IP 地址

  • 不直接与其它客户端通信

对等体(P2P)体系结构

特点:

  • (几乎)没有一直运行的服务器

  • 任意端系统之间可以进行通信,并且每一个节点既是客户端又是服
    务器

  • 参与的主机间歇性连接且可以改变IP 地址

缺点:

  • 难以管理

也有C/S和P2P体系结构的混合体:

  • Napster

相关概念

  1. 数据丢失率
    • 有些应用则要求100%的可靠数据传输(如文件)
    • 有些应用(如音频)能容忍一定比例以下的数据丢失
  2. 吞吐
    • 一些应用(如多媒体)必须需要最小限度的吞吐,从而使得应用能够有效运转
    • 一些应用能充分利用可供使用的吞吐(弹性应用)
  3. 延迟
    • 一些应用出于有效性考虑,对数据传输有严格的时间限制
  4. 安全性
    • 机密性
    • 完整性
    • 可认证性

进程通信

进程标示和寻址问题

进程为了接收报文,必须有一个标识即:SAP(发送也需要标示)

  • 主机:唯一的32位IP地址
    • 仅仅有IP地址不能够唯一标示一个进程;在一台端系统上有很多应用进程在运行
  • 所采用的传输层协议:TCP or UDP
  • 端口号(Port Numbers)

传输层-应用层提供服务所传递的信息

  • 层间接口必须要携带的信息
    • 要传输的报文(对于本层来说:SDU)
    • 谁传的:对方的应用进程的标示:IP+TCP(UDP) 端口
    • 传给谁:对方的应用进程的标示:对方的IP+TCP(UDP)端口号
  • 传输层实体(tcp或者udp实体)根据这些信息进行TCP报文段(UDP数据报)的封装
    • 源端口号,目标端口号,数据等
    • 将IP地址往下交IP实体,用于封装IP数据报:源IP,目标IP

如果Socket API 每次传输报文,都携带如此多的信息,太繁琐易错,不便于管理

  • 用个代号标示通信的双方或者单方:Socket
  • 就像OS打开文件返回的句柄一样

如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用

  1. 定义应用层协议:报文格式,解释,时序等
  2. 编制程序,通过API调用网络基础设施提供通信服务传报文,解析报文,实现应用时序等