计算机网络-自顶向下方法(6E),CH2-应用层

应用层协议原理

应用程序体系结构

  1. 客户-服务器结构
    • 数据中心:配备了大量的主机
  2. P2P体系结构
    • 对位于数据中心的专有服务器有最小的(或者没有)依赖
    • 应用程序在间断连接的主机对之间使用直接通信,这些主机被称为对等方
    • 有自拓展性
    • 挑战
      • ISP友好:大多数住宅ISP(DSL和电缆ISP),下载比上载多得多
      • 安全性:因为高度分布和开放
      • 激励:用户资源提供带宽、存储和计算资源

进程通信

  • 进程通过套接字(socket)这个软件接口向网络发送报文和从网络接收报文
  • 套接字是应用程序和网络之间的API,开发者可以完全控制应用层端,但对网络端控制权限仅限于:选择运输协议、设定几个运输层参数
  • 进程寻址
    • 定义:主机的地址、在目的主机的接收进程的标识符
    • IP地址 + 端口号

选择运输层服务

四个维度考量

  1. 可靠的数据传输
    • 分组在计算机网络中可能丢失(eg: 分组使路由器缓存溢出分组的某些比特损坏后可能被丢弃)
    • 敏感:文件传输、电子邮件、web文档、即时通讯(这个可以容忍吧)
    • 容忍丢失:多媒体应用
  2. 吞吐量
    • 可用吞吐量:发送进程能向接受进程交付比特的速率
    • 有一些自适应编码技术可以根据当前可用带宽进行相应速率的编码
    • 带宽敏感:多媒体应用
    • 弹性应用:文件传输、电子邮件、web文档
  3. 定时
    • 敏感:多媒体应用,即时通讯
    • 容忍高时延:件传输、电子邮件、web文档
  4. 安全性
    • 运输层提供机密性、数据完整性和端点鉴别等服务

      Internet提供的运输服务,TCP&UDP

      TCP

      - 面向连接的服务:全双工的TCP连接
      - 可靠的数据传送服务:无差错,按照适当顺序交付所有发送的数据
      - 拥塞控制机制  -SSL(Secure Sockets Layers,安全套接字层):TCP的加强,在应用层实现 ### UDP
      - 无连接
      - 不可靠:可能是乱序到达的,可能不到达
      - 没有拥塞控制机制,UDP的发送端可以以任意速率向网络层注入数据 ### Internet运输协议不提供的服务
      - 不提供任何定时或带宽保证
      

应用层协议

  • 定义了:
    • 交换的报文类型,例如请求报文和相应报文
    • 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
    • 字段的语义:这些字段中包含的信息的含义
    • 一个进程何时以及如何发送报文,对报文进行响应的规则

HTTP