zoukankan      html  css  js  c++  java
  • 第二章 2.1.2 进程通信与运输层、应用层协议

    计算机网络中进行通信的实际上是 ”进程“ 而不是 ”程序“,一个进程可以被认为是运行在端系统上的一个程序

      • 在同一端系统上,进程使用进程间通信机制相互通信,规则由端系统上的操作系统决定
      • 位于不同端系统上的进程,通过跨越计算机网络 交换 ”报文“ 来互相通信

    网络应用程序由成对的进程组成,这些进程通过网络互相发送报文。

      • 对每对通信进程,之一标为 ”客户“,之二标为 ”服务器“
        • 有些进程既是服务器,又是客户,如 P2P既可以上载也可以下载
        • 但在具体场景中总的来说发起通信的就是客户,响应请求的就是服务器

    套接字:又称为应用程序和网络之间的 ”应用程序编程接口(Application Programming Interface,API)“

      • 同一台主机内应用层和运输层之间的接口。
      • 应用开发者可以控制套接字在应用层端的一切,但对于该套接字的运输层端几乎没有控制权。开发者对运输层的控制仅限于:
        • 选择运输层协议
        • 定义运输层参数

    进程寻址(接收方的地址):

      • 主机地址:使用 IP 地址(一个 32 位比特的量)
      • 目的进程的标识符(接收套接字):目的地端口号(port number)

    选择运输层协议:TCP 或 UD

      • 可靠数据传输(reliable data transfer):即不允许数据丢失,与之相反的是 “容忍丢失的应用(loss-tolerant application)”
      • 吞吐量:具有吞吐量要求的应用称为 “带宽敏感的应用(bandwidth-senitive application)”,与之相反的是 “弹性应用(elastic application)”
      • 定时:即时延要求
      • 安全性:
        • 运输中的加解密
        • 数据完整性判定
        • 端点鉴别
      • TCP:面向连接、可靠
        • 传输应用层报文之前,TCP 让客户和服务器交换运输层控制信息(握手过程),然后一个 TCP 就建立了,它是 “全双工” 的,报文发送完毕即拆除连接
        • 无差错、按顺序地交付数据 
        • 拥塞机制:网络繁忙时限制发送进程或每个 TCP 连接
      • UDP:轻量级运输协议
        • 无连接,故没有握手过程
        • 不可靠也可能是乱序的
        • 无拥塞机制
      • TCP、UDP 均不提供加解密机制
      • 安全套接字层(Secure Sockets Layer,SSL):TCP的加强版,增加了安全服务:加解密、完整性、端点鉴别。
          • 强化体现在应用层:SSL 位于 TCP 上层,SSL 和 TCP 交换信息。
      • TCP 解决了可靠和安全的问题,吞吐量和定时则是当前因特网协议所未提供的功能,这些将由应用设计者来尽可能实现,但这并非有保障的。

        •  电话协议使用两种是因为如果防火墙阻挡了 UDP 协议,那么将使用备份的 TCP
      • 应用层协议:定义了运行在不同端系统上的应用程序进程如何相互传递报文
        • 交换的报文类型,例如请求报文和响应报文
        • 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
        • 字段的语义,即这些字段中包含的信息的含义
        • 一个进程何时以及如何发送报文、对报文进行响应的规则
        • 一些 该层协议 由 RFC 文档定义,位于公共域中:HTTP(超文本传输协议),遵从该规则开发的浏览器可访问遵从该规则的 Web 服务器
        • 一些 该层协议 是专用的,有意不为公共域使用,如 Skype。
        • 应用层协议 是 网络层 的一部分
        • Web 的应用层协议是 HTTP,定义了浏览器和 Web 服务器之间传输的报文格式和序列
        • 电子邮件的首要应用层协议是 SMTP(简单邮件传输协议)
  • 相关阅读:
    各个控件说明
    html常用
    abp.message
    ABP框架——单表实体流程
    AngularJS $http和$.ajax
    AngularJS ng-if使用
    AngularJS 多级下拉框
    AngularJS 计时器
    AngularJS table循环数据
    Python之待学习记录
  • 原文地址:https://www.cnblogs.com/suui90/p/15442827.html
Copyright © 2011-2022 走看看