type
status
date
slug
summary
tags
category
icon
password

网络应用的体系结构Application Layer

客户-服务器模式(CS模式)

服务器:一直运行,固定的IP地址和周知的端口号,响应资源
客户端:主动与服务器通信,与互联网有间歇性的连接,可能是动态IP地址,不直接与其他客户端通信,请求资源
缺点:可扩展性差,客户端太多了会难以响应;可靠性差:完全依赖服务器
设有数据中心:托管大量主机,常被用于创建强大的虚拟服务器搜索引擎

P2P体系结构(peer to peer)

peer:对等体
服务器:几乎没有一直运行的服务器
任意端系统之间都可以进行通信,每一个节点既是客户端又是服务器
参与的主机间歇性连接且可以改变IP地址
缺点:难以管理
自拓展性:每个新peer节点都为系统增加服务能力,当然也带来新的服务请求
迅雷

Napster

文件搜索:全局
文件传输:P2P

进程通信

进程:在主机上运行的应用程序,不同主机通过交换报文(message)来通信(使用OS提供的通信服务,按照应用协议交换报文)
客户端进程:发起通信的进程
服务端进程:等待连接的进程

分布式进程通信需要解决的问题

  • 问题1
    • 进程标识和寻址的问题(服务用户)
      标识:SAP
      主机:唯一的32位IP地址(在哪个终端设备上?)
      传输层协议:TCP或者UDP(在这个终端设备上的哪里?)
      端口号Port
      一个进程用IP+port标识端节点
      本质上,一对主机进程之间的通信由两个端节点构成
  • 问题2
    • 传输层-应用层是如何提供服务的(服务)
      位置:层间界面的SAP
      形式:应用层间接口API
      层间接口必须携带的信息:
    • 要传输的报文(本层的SDU)
    • 谁传的?对方的应用进程的标识:IP+TCP/UDP端口号
    • 传给谁?对方的应用进程的标识:IP+TCP/UDP端口号
    • 传输层实体:根据这些信息进行报文段的封装,包括段头和数据部分
      减少层间传输的信息量:连续传输没有必要每次都传输IP和端口号
      用一个代号标识通信的双方或单方
    • TCP socket
      • TCP服务:两个进程通信之前需要建立连接,两个进程通信会持续一段时间,通信关系稳定
      • 可以用一个整数表示两个应用实体之间的通信关系,在本地标识
      • 穿过层间接口的信息量最小、易于操作系统管理
      • TCP socket:一个本地标识四元组,包含源IP、源端口、目标IP、目标端口
    • UDP socket
      • UDP服务:两个进程通信之前不需要先建立连接,每个报文都是独立传输的,前后报文可能给不同的分布式进程
      • 只能用一个整数表示本应用实体
      • 穿过层间接口的信息量最小、易于操作系统管理
      • UDP socket:本IP、本端口
      • 传输报文时必须提供对方IP和端口号
  • 问题3
    • 如何使用传输层提供的服务,实现应用进程之间的报文交换(用户使用服务)
      定义应用层协议:报文格式、解释、时序等
      编制程序,使用OS提供的API,调用网络基础设施提供通信服务传报文,实现应用时序等
      应用层协议:
    • 交换的报文类型:请求和应答报文
    • 各种报文类型的语法
    • 字段的语义:字段取值的含义
    • 进程何时、如何发送报文及对报文响应

应用需要传输层提供什么样的服务

数据丢失、延迟、吞吐、安全性
数组Computer Networking Notes
  • Giscus