网络应用的基本原理

Scroll Down

网络应用的基本原理

网络应用的特点

网络应用与单机应用有哪些本质性的不同?

网络应用需要有网络的环境,部分应用运行在源主机上,部分应用运行在目的主机上,通过网络进行交互

网络应用的进程间通信

进程?

  • 主机上运行的程序

同一主机上运行的进程之间如何通信?

  • 进程间通信机制

不同主机上运行的进程间如何通信?

  • 消息交换

套接字:Socket

  • 进程间通信使用socket发送/接收消息实现

    image-20200131114330786

如何寻址进程?

  • 不同主机上的进程间通信,那么每个进程必须拥有标识符

  • 如何寻址主机?-----IP地址

    有了IP地址还不够,同一个主机可能运行多个进程,所以需要一个额外的标识符即端口号

  • 进程的标识符 = IP地址+端口号

应用层协议

  • 网络应用都需要遵循应用层协议

  • 公开协议

    由RFC(Request For Comments)定义,遵循相同的协议允许互相操作,例如:http协议,标准化是互联网飞速发展的重要因素

  • 私有协议

    一些P2P的文件共享应用,为了保密和安全着想

应用层协议的内容

  • 消息的类型(type)

    请求消息/响应消息

  • 消息的语法(syntax)/格式

    消息中有哪些字段?

    每个字段如何描述

  • 字段的语义(semantics)

    字段中信息的含义

  • 规则(rules)

    进程何时发送/响应消息

    进程如何发送/响应消息

网络应用对传输层服务的需求

  • 数据丢失/可靠性

    某些网络应用能够容忍一定的数据丢失:网络电话

    某些网络应用要求100%可靠的数据传输:文件传输,银行交易

  • 时间/延迟

    某些网络应用只有延迟足够低时才有效:网络电话/网络游戏

  • 带宽

    某些应用只有在带宽达到最低要求时才有效:网络视频

    某些网络应用可以适配低带宽:email

Internet提供的传输服务:TCP/UDP

  1. TCP服务

    面向连接:客户机/服务器进程间需要建立连接,是全双工类型协议

    可靠的传输

    流量控制:发送发不会发送速度过快,导致淹没接收方

    拥塞控制:当网络负载过重时能够限制发送发的发送速度

    不提供时间/延迟保障

    不提供最小带宽保障

  2. UDP服务

    无连接

    不可靠的数据传输

    不提供:

    ​ 可靠性保障

    ​ 流量控制

    ​ 拥塞控制

    ​ 延迟保障

    ​ 带宽保障