热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

应用层协议与网络应用

网络应用的体系结构1、客户机服务器(Client-Server,CS)服务器:7*24小时提供服务永久访问地址域名利用

网络应用的体系结构

1、客户机/服务器(Client-Server, C/S)

服务器:


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

客户机:


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

2、点对点结构(Peer-to-peer,P2P)


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

3、混合结构(Hybrid)

Napster


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

网络应用的进程间通信
进程:
主机上运行的程序
客户机进程:发起通信的进程
服务器进程:等待通信请求的进程
注意:采用P2P架构的应用同样存在客户机进程/服务器进程之分

同一主机上运行的进程:


  • 进程间通信机制
  • 操作系统提供

不同主机上运行的进程:


  • 消息交换

套接字:Socket


  • 进程间通信利用scoket发送/接收消息实现
  • 类似于寄信
  • 发送方将消息送到门外邮箱
  • 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的门外
  • 接收方从门外获取消息

传输基础设施向进程提供API


  • 传输协议的选择
  • 参数的设置

如何寻址进程?


  • 不同主机上的进程间通信,那么每个进程必须拥有标识符
  • 如何寻址主机?——IP地址
  • 主机有了IP地址之后,并不足以定位进程,因为同一主机上可能同时有多个进程需要通信

端口号


  • 为主机上每个需要通信的进程分配一个端口号
  • HTTP Server:80
  • Mail Server:25

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

应用层协议


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

应用层协议的内容


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

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


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

Internet提供的传输服务
在这里插入图片描述


推荐阅读
author-avatar
多米音乐_34067977
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有