应用层概述、基本原理

天涯浪子 提交于 2020-01-27 04:37:03

网络应用体系结构

  • 客户机/服务器结构(Client-Server,C/S)
  • 点对点结构(peer-to-peer,P2P)
  • 混合结构(Hybrid)
1.客户机/服务器结构

在这里插入图片描述

  • 服务器

    • 7*24小时提供服务
    • 永久性访问地址/域名
    • 利用大量服务器实现可拓展性
  • 客户机

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

在这里插入图片描述

2.P2P

在这里插入图片描述

  • 没有永远在线的服务器
  • 任意端系统/节点之间可以直接通信
  • 节点间歇性接入网络
  • 节点可能改变IP地址
  • 优点:高度可伸缩
  • 缺点:难于管理
3.混合结构

例:软件Napster
在这里插入图片描述

  • 文件传输使用P2P结构
  • 文件的搜索采用C/S结构——集中式
    • 每个节点向中央服务器登记自己的内容
    • 每个节点向中央服务器提交查询请求,查找感兴趣的内容

网络应用的基础:进程间通信

进程: 主机上运行的程序
同一主机上运行的进程间通信: 进程间通信机制;操作系统提供
不同主机上运行的进程间通信: 消息交换
客户机进程: 发起通信的进程
服务器进程: 等待通信请求的进程

套接字:socket
在这里插入图片描述

  • 进程间通信利用socket发送/接收消息实现
  • 类似寄信
    • 发送方将消息送到门外邮箱
    • 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外
    • 接收方从门外获取消息
  • 传输基础设施向进程提供API
    • 传输协议的选择
    • 参数的设置

寻址进程

  • 不同主机上的进程间通信,那么每个进程必须拥有标识符
  • IP地址:寻址主机(注:仅IP地址不足以定位进程,因为同一主机上可能同时有多个进程需要通信)
  • 端口号:为主机上每个需要通信的进程分配一个端口号(HTTP Server:80;Mail Server:25)
  • 进程的标识符:IP地址+端口号

应用层协议

  • 网络应用需遵循应用层协议
  • 公开协议
    • 有RFC定义
    • 允许互操作
    • HTTP,SMTP……
  • 私有协议
    • 多数P2P文件共享应用

协议内容

  • 消息的类型 (请求消息;响应消息)
  • 消息的语法/格式(消息中有哪些字段;每个字段如何描述)
  • 字段的语义(字段中信息的含义)
  • 规则(进程何时/如何发送/响应消息)

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

  • 数据丢失/可靠性
    • 某些网络应用能够容忍一定的数据丢失:网络电话
    • 某些网络应用要求100%可靠的数据传输:文件传输;telnet
  • 时间/延迟
    • 有些应用只有在延迟足够低时才“有效”
    • 网络电话/网络游戏
  • 带宽
    • 某些应用只有在带宽达到最低要求时才“有效”:网络视频
    • 某些应用能够适应任何带宽——弹性应用:Email

Internet传输层服务类型模型

  • TCP服务
    • 面向连接:客户机/服务器进程间需要建立连接
    • 可靠的传输
    • 流量控制:发送方不会发送速度过快,超过接收方的处理能力
    • 拥塞控制:当网络负载过重时能够限制发送方的发送速度
    • 不提供时间/延迟保障
    • 不提供最小带宽保障

在这里插入图片描述

  • UDP服务
    • 无连接
    • 不可靠的数据传输
    • 不提供:可靠性保障、流量控制、拥塞控制、延迟保障、带宽保障

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!