1. 网络应用 游戏,E-mail,流媒体,社交网络

    网络应用的体系结构

  2. 客户服务器模式(C/S)服务器是固定IP,客户端请求访问,资源在服务器。

这种架构比较差,当用户变多后,服务器要扩容,扩展性差
可靠性也差,服务器宕机就不能用了

  1. 对等模式(P2P)

文件共享系统

  1. C/S和P2P体系结构的混合体

Napster

  • 文件搜索:集中
  • 文件传输:P2P

即时通信

  • 在线检测:集中
    • 用户上线时,向中心服务器注册IP地址
    • 用户与中心服务器联系,找到其它好友的位置
  • 两个用户聊天:P2P

    进程通信

    进程通信需要解决的问题

  • 问题一:进程标示和寻址问题 发给谁,每个人要有唯一的标示(服务用户)

  • 问题二:传输层-应用层提供服务是如何(服务) 层间接口 主机IP 、TCP 还是UDP(端口号)
    • 位置:层间界面的SAP(TCP/IP:socket)
    • 形式:层间程序接口API(TCP/IP:socket API)
  • 问题三:如何使用传输层提供的服务,实现应用进程之间的应用报文,实现应用(应用层,只关注应用层怎么使用传输层提供的服务)

    传输层提供的服务

    需要穿过层间的信息

  • 层间接口必须携带的信息:

    • 发的什么,要传输的报文(对本层来说:SDU)
    • 谁发的:IP+TCP(UDP)端口
    • 发给谁:对方的IP+TCP(UDP)端口号
  • 传输层实体 根据这些信息进行TCP报文段的封装

    层间信息的代表

    TCP Socket:

    • TCP Socket 一个整数,代表我的IP、端口号,对方的IP、端口号的四元组,便于本地操作系统的管理和使用。是一个指明会话关系的本地标识。

减少层间传输的信息

层间信息代码

UDP Socket:

  • UDP服务:两个进程的通信需要之前无需建立连接
    • 每个报文到时独立传输的
    • 前后报文可能给不同的分布式进程
  • 只能用一个整数表示本应用实体的进程
  • 穿过层间接口的信息大小最小
  • UDP socket : 本地IP,本端口
  • 但是传输报文时: 必须要提供对方的IP,port
  • 接受的时候,根据目标IP、port,找到对应socket,然后找到对应进程

    如何使用传输层的服务实现应用

  • 定义应用层协议
  • 编制服务,同时调用API使用网络基础设施提供的服务

    应用层协议

  • define:运行在不同端系统上的应用进程如何相互交换报文

    • 交换的报文类型
    • 各种报文类型的语法
    • 字段的语义
    • 进程合适、如何发送报文及对报文进行相应的规则
  • 应用协议只是应用组成的一部分

应用需要传输层提供什么样的服务 可靠性 延时 吞吐量 安全性

Internet提供的服务

TCP服务

  • 可靠的传输服务
  • 拥塞控制 能感受到路径上拥塞的程度
  • 流量控制
  • 不能提供的服务:时间保证、最小吞吐保证、安全
  • 面向连接:要求客户端进程和服务器进程之间建立连接

UDP服务

  • 不可靠数据传输
  • 没有流量、拥塞控制
  • 不做可靠的服务
  • 不建立连接、速度快

SSL加密 安全TCP ->https