计算机网络第二章--应用层

第二章--应用层

第二章--应用层
第二章--应用层
  • 应用层协议原理
    • 网络应用程序体系结构
      • 客户机/服务器体系结构C/S
        • 服务器Server
          • 总是打开的主机
          • 具有固定的、众说周知的IP地址
          • 主机群集常被用于创建强大的虚拟服务器
        • 客户机Client
          • 同服务器端通信
          • 可以间断的同服务器连接
          • 可以拥有动态IP地址
          • 客户机相互之间不直接通信
      • 纯P2P体系结构Peer-to-Peer
        • 没有总是打开的服务器
        • 任意一对主机直接相互通信
        • 对等方间歇连接并且可以改变IP地址
        • 优点:自扩展性
        • 缺点:难以管理
      • 客户机/服务器和P2P混合的体系结构
    • 进程通信
      • 进程:运行在端系统中的程序
      • 同一主机上的进程:通过内部进程通信机制进行通信
      • 不同主机上的进程:通过交换报文相互通信
    • 套接字--进程与计算机网络的接口
      • 进程通过它的套接字在网络上发送和接受报文
      • 套接字又叫做应用程序编程接口API
    • 进程寻址
      • 一个进程为了能接受报文,它需要一个标识
      • 这个标识包括IP地址和端口号
    • 应用层协议
      • 协议
        • 报文类型:请求报文、响应报文等
        • 报文语法:各个字段及其详细描述
        • 字段语义:包含在字段中的信息的含义
      • 公共领域协议:HTTP,SMTP
      • 专用协议:KaZaA,Skype
    • 运输协议提供的服务
      • TCP服务
        • 面向连接的服务:在客户机程序和服务器程序之间必须建立连接
        • 可靠的传输服务
        • 流量控制:发送方不会淹没接收方
        • 拥塞控制:网络出现拥塞时抑制发送进程
        • 没有提供:时延保证、最小带宽保证
      • UDP服务
        • 不可靠数据传输
        • 没有提供:建立连接,可靠性,流量控制,拥塞控制,时延和带宽保证
  • Web应用和HTTP协议
    • Web
      • 一个Web网页由许多对象组成,每个对象就是一个文件,它可以是HTML文件,JPEG图像等等
      • 每个对象被一个URL(统一资源定位符)寻址
      • URL:https(协议)://geminiplanet.cn(主机名)/index.html(路径名)
    • HTTP
      • 超文本传输协议
      • Web的应用层协议
      • HTTP是无状态协议
    • 使用TCP
      • 客户端初始化一个与HTTP服务器80端口的TCP连接(创建套接字
      • HTTP服务器接受来自客户的TCP连接请求,建立连接
      • Browser(HTTP client)和Web服务器(HTTP server)交换HTTP消息(应用层协议消息)
      • 关闭TCP连接
    • 端口号16位(0-65535)
      • HTTP:80
      • 邮件服务SMTP:25
      • TelNet:23
      • SSH:22
      • FTP:21
      • 上层需要的服务,是本层无法确保的:传输层不能向上一层提供时延保证
    • HTTP连接
      • 非持久HTTP连接
        • 每个TCP连接上只传送一个对象
        • 2RTT + transmit time
        • 1.a 客户端初始化TCP连接
        • 1.b 服务器建立连接
        • 2. 客户端发送HTTP请求
        • 3. 服务器接受请求,发送响应消息
        • 4. 服务器结束TCP连接
        • 5. 客户端解析响应消息
      • 持久HTTP
        • 一个TCP连接上可以传送多个对象
        • 不带流水线:每个引用对象经历1个RTT
        • 带流水线:所有引用对象只经历1个RTT
    • HTTP报文格式
      • 分为请求报文(request)和响应报文(response)
      • 请求行:GET,POST,HEAD
    • Cookies
      • Cookie头部行在HTTP响应消息
      • Cookie头部行在HTTP请求消息
      • Cookie文件保存在用户主机中并被用户浏览器管理
      • Cookie也保存在Web站点的后端数据库
    • Web缓存(代理服务器)
      • 代表起始服务器满足HTTP请求
      • 用户配置浏览器:Web访问经由缓存
      • 所有HTTP请求指向缓存
        • 对象在缓存中:缓存器返回对象
        • 对象不在缓存中:缓存器向服务器发出请求,接受对象后转发给客户机
      • 作用 Why need it?
        • 减少对客户机请求的响应时间
        • 减少内部网络与接入链路上的通信量
        • 能从整体上大大降低因特网上的Web流量
      • 条件GET方法
        • 证实缓存器中的对象是否为最新
        • 缓存器:在请求报文中包含对象最后修改时间 if-modified-since:<date>
        • 服务器:如果对象是最新的则响应报文中不包含对象 HTTP/1.0 304 Not Modified
  • FTP文件传输协议
    • 客户端发起建立FTP服务器端口号21之间的TCP控制连接
    • 客户在建立的控制连接上获得身份认证
    • 客户在建立的控制连接发送命令来浏览远程主机的目录
    • 当服务器接收到1个文件传输命令时,在服务器端口号20创建1个与客户的TCP数据连接
  • SMTP,POP3,IMAP
    • 电子邮件
      • 用户代理user agents
      • 邮件服务器mail servers
      • 简单邮件传送协议SMTP和邮件接收协议POP3
    • SMTP
      • 客户使用TCP来可靠传输邮件消息到服务器端口号25
      • 1. 使用用户代理编写邮件
      • 2. 用户代理发送邮件到相应的邮件服务器
      • 3. 邮件服务器的SMTP客户端建立到另一个的邮件服务器的SMTP服务端的TCP连接
      • 4. SMTP客户在TCP连接上发送邮件消息
      • 5. 接收者服务器存放邮件消息到邮箱
      • 6. 接受者调用用户代理读取邮件
    • POP3
      • 身份认证阶段
      • 从服务器获取邮件消息
    • IMAP
      • 保存所有邮件消息在一个位置:服务器
      • 允许用户在服务器的各文件夹中管理邮件消息
  • DNS 域名系统
    • 提供功能
      • 主机名到IP地址的转换
      • 主机别名
      • 邮件服务器别名
      • 负载分配
    • 查询方式
      • 递归查询--名字解析的负担交给被查询的名字服务器
      • 迭代查询--被查询的名字服务器回复可以被查询的名字服务器的IP地址
  • CDN 内容分发网络
    • 将多份拷贝存储在地理上分散的不同站点来提供服务
    • 用户向CND请求内容
      • 被定向到附近的拷贝,取得内容
      • 如果网络路径拥塞,则可能选择其他拷贝