首页 > 其他 > 详细

2-应用层

时间:2020-07-14 14:41:48      阅读:55      评论:0      收藏:0      [点我收藏+]

应用程序体系结构

  • c/s 结构:FTP telnet web email
  • p2p 结构:bitTorrent skype
  • p2sp 结构:迅雷

进程间通信

  • 本机进程通信:参考资料
    1. 管道
      • 分类:匿名管道/.命名管道
      • 特点:单向传输、简单、效率低下
    2. 消息队列
      • 特点:共享介质、需要多次拷贝、不适合大型数据传输
    3. 共享内存
      • 特点:共享内存空间,无需拷贝,两个虚拟内存映射到同一块物理内存
    4. 信号
      • 特点:无具体消息,只能发送特定信号
  • 不同机器的进程通信
    1. Socket

应用层协议内容

  • 消息类型 type
  • 消息语法 syntax
  • 字段语义 semantics
  • 规则 rules

网络服务的服务需求

  • 可靠性
  • 带宽
  • 时延

传输层服务模型

  • TCP
    • 面向连接
    • 可靠传输
    • 流量控制
    • 拥塞控制
    • 不提供延迟保障
    • 不提供最小带宽保障
  • UDP
    • 无连接
    • 不可靠的数据传输

特定网络应用及协议

  • HTTP (HyperText Transfer Protocol 超文本传输协议)

    • 类型:请求-响应类型

    • 使用 URL(Uniform Resource Locator 统一资源定位器)寻址

    • 版本

      • 1.0:RFC 1945 默认非持久性连接,最多允许传输一个对象
      • 1.1:RFC 2068 默认持久性连接,可传输多个对象
    • 传输服务:TCP

    • 端口:80

    • 无状态:服务器不维护任何过去的信息

    • 消息类型

      • 请求消息

        技术分享图片

        1. 方法的类型

          • HTTP/1.0:GET POST HEAD

          • HTTP/1.1:GET POST HEAD PUT DELETE TRACE CONNECT

            描述
            请求指定的页面信息,并返回实体主体
            类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
            向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改
            从客户端向服务器传送的数据取代指定的文档的内容
            TE
            ECT
            ONS
            E
            H
      • 响应消息

        技术分享图片

        1. 响应消息类型

          ,服务器收到请求,需要请求者继续执行操作
          ,操作被成功接收并处理
          向,需要进一步的操作以完成请求
          端错误,请求包含语法错误或无法完成请求
          器错误,服务器在处理请求的过程中发生了错误
    • 保持状态的额外机制

      • Cookie
        • 组成
          1. HTTP响应详细的cookie头部行
          2. HTTP请求消息的cookie头部行
          3. 保存在客户端主机上的cookie文件,由浏览器管理
          4. Web服务器端的后台数据库
      • Token
  • SMTP POP IMAP

    • 应用场景:Email

      • 构成组件
        • 邮件客户端
        • 邮件服务器
        • SMTP协议
        • POP3/IMAP/HTTP协议
    • 将邮件上传至服务器:SMTP协议

      技术分享图片

      • 类型:命名-响应交互模式

      • 用途:邮件服务器之间传递信息,推式协议

      • 端口:25

      • 传输层类型:TCP

      • 消息类型

        • 命名:ASCII文本
        • 响应:状态代码和语句
      • 约束:只能包含7位ASCII码

      • 使用持久性连接

      • 多媒体拓展

        技术分享图片

    • 从服务器获取邮件:POP3/IMAP/HTTP等拉式协议

      • POP3:认证/授权 和 下载 | 无状态
      • IMAP:可以操作服务器上存储的消息
      • HTTP:邮件web,163/QQ Mail等
  • DNS

    • 目的:实现域名到IP地址的映射

    • 使用分布式的层次结构

      技术分享图片

    • 查询方式

      1. 递归查询
      2. 迭代查询
    • DNS记录

      • 格式 (name, value, type, ttl)
        • Type = A (主机域名->IP地址)
        • Type = NS (域->该域权威域名解析服务器的主机域名)
        • Type = CNAME (域名的别名->真实域名)
        • Type = MX (邮件服务器)
    • DNS协议

      • 协议类型:查询-回复类型

      • 格式

        技术分享图片

  • P2P 应用

    • 特点
      • 无服务器
      • 端系统直接通向
      • 节点阶段性接入Internet
      • 节点可能更换IP地址
    • BitTorrent
      • 文件划分为256KB的chunk
      • 节点加入torrent
      • 下载的同时,节点需要向其他节点上传chunk
      • 节点可能加入或离开
      • 一旦获取到完整的文件,可离开torrent或留下
    • 层次式覆盖网络
      • 介于集中式索引和泛洪查询之间的方法
      • 每个节点或者是一个超级节点或被分配一个超级节点
        • 节点与超级节点之间保持TCP连接
        • 超级节点对之间维持TCP连接
      • 超级节点负责跟踪子节点的内容

Socket编程

  • 网络程序设计接口

    技术分享图片

  • Socket API

    WSAStartup: 初始化socket库(仅对WinSock)
    WSACleanup: 清楚/终止socket库的使用 (仅对WinSock)
    socket: 创建套接字
    connect:“连接”远端服务器 (仅用于客户端)
    closesocket: 释放/关闭套接字
    bind: 绑定套接字的本地IP地址和端口号(通常客户端不 需要)
    listen: 置服务器端TCP套接字为监听模式,并设置队列 大小 (仅用于服务器端TCP套接字)
    accept: 接受/提取一个连接请求,创建新套接字,通过新 套接 (仅用于服务器端的TCP套接字)
    recv: 接收数据(用于TCP套接字或连接模式的客户端 UDP套接字)

    recvfrom: 接收数据报(用于非连接模式的UDP套接字)

    send: 发送数据(用于TCP套接字或连接模式的客户端 UDP套接字)
    sendto:发送数据报(用于非连接模式的UDP套接字)

    setsockopt: 设置套接字选项参数

    getsockopt: 获取套接字选项参数

2-应用层

原文:https://www.cnblogs.com/YuanJieHe/p/13298556.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!