计算机网络基础小记 05 - 应用层 - 网络应用概述

网络应用的体系结构

位于网络边缘

  1. 客户端/服务器结构(Client-Server,C/S)
  2. 点对点结构(Peer-to-Peer,P2P)
  3. 混合结构(Hybrid)

客户端/服务器结构

服务器:

  1. 7 * 24 小时提供服务
  2. 永久性访问地址/域名
  3. 利用大量服务器实现可扩展性

客户端:

  1. 与服务器通信,使用服务器提供的服务
  2. 间歇性接入网络
  3. 可能使用动态 IP 地址
  4. 不会与其他客户机直接通信

纯 P2P 结构

  1. 没有永远在线的服务器
  2. 任意端系统/节点之间可以直接通讯
  3. 节点间歇性接入网络
  4. 节点可能改变 IP 地址

优点:高度可伸缩

缺点:难于管理

混合结构

文件传输使用 P2P 结构,文件搜索采用 C/S 结构

  • 每个节点向中央服务器登记自己的内容
  • 每个节点向中央服务器提交查询请求,查找感兴趣的内容

网络应用进程通信

进程:主机上运行的程序

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

  • 进程间通信机制,由或作系统提供

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

  • 消息交换,发起通信的进程为客户机进程,等待通信请求的进程为服务器进程

套接字 Socket

不同主机的进程间通信可以利用 socket 发送/接收消息

类比寄信,发送方将消息送到邮箱(buffer),依赖传输基础设施(socket)将消息传到接收方所在主机,并送到对方邮箱(buffer),接收方从门外获取消息

传输基础设施向进程提供 API:传输协议的选择、参数的设置

如何寻址进程

不同主机上的进程间通信,每个进程必须要标识符

  • 寻址主机 —— IP 地址
  • 寻址主机的进程 —— 端口号,HTTP Server:80;Mail Server:25
  • 进程的标识符:IP 地址 + 端口号

应用层协议

网络应用需要遵循的协议 —— 应用层协议

  • 公开协议:由 RFC 定义,允许互操作,HTTP、SMTP……
  • 私有协议:多数 P2P 文件共享应用

消息的类型:请求消息 or 响应消息

消息的语法/格式:消息中有哪些字段,每个字段如何描述

字段的含义:字段中信息的含义

规则:进程何时发送/响应消息?进程如何发送/响应消息?

网络应用的需求

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

  1. 数据丢失/可靠性:

    某些网络应用能容忍一定程度的数据丢失,如网络电话、音视频

    某些网络应用要求100%可靠的数据传输,如文件传输、telent

  2. 时间/延迟:

    有些应用只有在延迟足够低时才“有效”,如:网络游戏/网络电话

  3. 带宽:

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

    某些应用能够适应任何带宽 —— 弹性应用:Email

Internet 提供的传输服务

Internet 提供的传输服务有两种:TCP 服务、UDP 服务

功能 TCP 服务 UDP 服务
连接 面向连接:C/S 进程间需要建立连接 无连接
数据传输 可靠的数据传输 不可靠的数据传输
流量控制 有,发送方发送速度不会超过接收方的处理能力
拥塞控制 有,当网络负载过重时能够限制发送方的发送速度
延迟保障
带宽保障

常见网络应用使用的传输层服务:

Web/Email/SSH/FTP:TCP

互联网电话:UDP

流媒体:TCP/UDP