第二章 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(简单邮件传输协议)
原文地址:https://www.cnblogs.com/suui90/p/15442827.html