当前位置: 首页 > news >正文

【计算机网络】第2章:应用层—应用层协议原理

目录

1. 网络应用的体系结构

2. 客户-服务器(C/S)体系结构

3. 对等体(P2P)体系结构

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

Napster

即时通信

5. 进程通信

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

7. 问题1:对进程进行编址(addressing)

8. 问题2:传输层提供的服务

需穿过层间的信息(层间接口)

层面信息代表(Socket)

9. TCP 套接字(Socket)详解

10. TCP socket

11. 问题2:传输层提供的服务-层间信息代码

UDP Socket

12. UDP之上的套接字(Socket)

13. UDP socket

14. 套接字(Socket)

15. 问题 3:如何使用传输层提供的服务实现应用

16. 应用层协议


1. 网络应用的体系结构

可能的应用架构:

  • 客户-服务器模式(C/S: Client/Server)
  • 对等模式(P2P: Peer To Peer)
  • 混合体:客户-服务器和对等体系结构

2. 客户-服务器(C/S)体系结构

服务器:

  • 一直运行
  • 固定的 IP 地址和周知的端口号(约定)
  • 扩展性:服务器场
    • 数据中心进行扩展
    • 扩展性差

客户端:

  • 主动与服务器通信
  • 与互联网有间歇性的连接
  • 可能是动态 IP 地址
  • 不直接与其它客户端通信


3. 对等体(P2P)体系结构

  • (几乎)没有一直运行的服务器
  • 任意端系统之间可以进行通信
  • 每一个节点既是客户端又是服务器
    • 自扩展性:新 peer 节点带来新的服务能力,也带来新的服务请求
  • 参与的主机间歇性连接且可以改变 IP 地址
    • 难以管理
  • 例子:Gnutella, 迅雷


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

Napster
  • 文件搜索:集中
    • 主机在中心服务器上注册其资源
    • 主机向中心服务器查询资源位置
  • 文件传输:P2P
    • 任意 Peer 节点之间传输文件
即时通信
  • 在线检测:集中
    • 用户上线时向中心服务器注册 IP 地址
    • 用户联系中心服务器查找在线好友位置
  • 用户间聊天:P2P
    • 两个用户直接通信

5. 进程通信

进程:在主机上运行的应用程序

  • 在同一个主机内:使用进程间通信机制通信(操作系统定义)
  • 不同主机:通过交换报文(Message)来通信
  • 使用 OS 提供的通信服务
  • 按照应用协议交换报文
  • 借助传输层提供的服务

客户端进程:发起通信的进程
服务器进程:等待连接的进程

注意:P2P 架构的应用也有客户端进程和服务器进程之分


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

  1. 进程标示和寻址问题(服务用户)
  2. 传输层-应用层提供服务方式(服务)
    • 位置:层间界面的 SAP(TCP/IP:socket)
    • 形式:应用程序接口 API(TCP/IP:socket API)
  3. 如何使用传输层服务实现应用(用户使用服务)
    • 定义应用层协议:报文格式、解释、时序等
    • 编制程序,使用 OS API 调用网络设施传报文

7. 问题1:对进程进行编址(addressing)

  • 进程接收报文必须标识 SAP(发送同理)
  • 主机:唯一 32 位 IP 地址(但不足以唯一标识进程)
  • 需额外标识:
    • 传输层协议:TCP/UDP
    • 端口号(Port Numbers)
  • 知名端口号示例
    • HTTP: TCP 80
    • Mail: TCP 25
    • FTP: TCP 21(注:原图标注为 TCP 2,实际应为 21)
  • 进程唯一标识IP地址 + 端口号(端节点)
  • 本质:主机间通信由 2 个端节点构成

8. 问题2:传输层提供的服务

需穿过层间的信息(层间接口)
  • 要传输的报文(本层 SDU)
  • 对方应用进程标识:
    • 目标 IP + TCP/UDP 端口号
  • 传输层实体(TCP/UDP)据此封装:
    • TCP 段/UDP 数据报(含源/目标端口号)
    • 将 IP 地址交 IP 实体封装数据报(源/目标 IP)
层面信息代表(Socket)
  • Socket 作用
    • 避免每次携带完整 4 元组信息(繁琐易错)
    • 用户通过代号(socket)标识通信方
    • 类似 OS 文件句柄:操作句柄=操作文件
  • TCP Socket 特性
    • 需预先建立连接(会话关系稳定)
    • 用整数本地标示通信关系
    • 层间接口携带信息量最小
    • 本质代表 4 元组:(源IP, 源端口, 目标IP, 目标端口)

9. TCP 套接字(Socket)详解

  • 定义:面向连接服务(TCP)的本地意义标示
  • 4 元组(源IP, 源端口, 目标IP, 目标端口)
  • 核心特性
    • 唯一指定一个会话(两进程间)
    • 应用通过此标示与远程程序通信
    • 无需每次发送报文指定完整 4 元组
  • 优势
    • 类似 OS 文件句柄(替代目录名/文件名)
    • 简单高效,便于管理

10. TCP socket

11. 问题2:传输层提供的服务-层间信息代码

UDP Socket
  • UDP服务特性
    • 无需预先建立连接
    • 每个报文独立传输
    • 前后报文可能发送至不同分布式进程
  • 本地标识
    • 仅需一个整数表示本应用实体
    • 原因:报文可能传输至不同进程(无固定通信关系)
  • 层间接口信息
    • 最小化信息量
    • UDP Socket内容:本机IP + 本机端口
  • 传输要求
    • 发送报文时必须提供目标IP及端口
    • 接收报文时,传输层需上传发送方的IP及端口

12. UDP之上的套接字(Socket)

  • 无连接服务(UDP)的Socket定义
    • 本地意义的2元组标识:(本机IP, 本机端口)
      • 指定应用所在的端节点(end point)
  • 发送数据时的优势
    • 使用预创建的本地Socket(标识ID),避免每次发送都重复指明本机IP和端口
  • 关键限制
    • 发送报文时必须显式指定目标IP和UDP端口(另一端点)

13. UDP socket

14. 套接字(Socket)

  • 进程向套接字发送报文或从套接字接收报文
  • 套接字 <-> 门户
    • 发送进程将报文推出门户,发送进程依赖于传输层设施在另外一侧的门将报文交付给接受进程
    • 接收进程从另外一端的门户收到报文(依赖于传输层设施)

15. 问题 3:如何使用传输层提供的服务实现应用

  • 定义应用层协议:报文格式,解释,时序等
  • 编制程序,通过 API 调用网络基础设施提供通信服务传报文,解析报文,实现应用时序等

16. 应用层协议

  • 定义了:运行在不同端系统上的应用进程如何相互交换报文
    • 交换的报文类型:请求和应答报文
    • 各种报文类型的语法:报文中的各个字段及其描述
    • 字段的语义:即字段取值的含义
    • 进程何时、如何发送报文及对报文进行响应的规则
  • 应用协议仅仅是应用的一个组成部分
    • Web 应用:HTTP 协议,web 客户端,web 服务器,HTML

公开协议

  • 由 RFC 文档定义
  • 允许互操作
  • 如 HTTP, SMTP

专用(私有)协议

  • 协议不公开
  • 如:Skype

相关文章:

  • 机器学习-线性回归基础
  • Emacs 折腾日记(二十六)——buffer与窗口管理
  • 接口自动化测试(六)
  • Windows10家庭版添加本地安全策略(需要联网)
  • 【JavaWeb】基本概念、web服务器、Tomcat、HTTP协议
  • 彻底卸载安装的虚拟机VMware Workstation软件
  • 「动态规划::状压DP」网格图递推 / AcWing 292|327(C++)
  • 什么是生成式人工智能?
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • PostgreSQL的聚集函数
  • PostgreSQL 修改表结构卡住不动
  • 使用grpc建立跨语言通讯
  • day31 5月29日
  • 【测试】设计测试⽤例方法
  • 尚硅谷redis7 74-85 redis集群分片之集群是什么
  • Java ThreadLocal 应用指南:从用户会话到数据库连接的线程安全实践
  • dis css port brief 命令详细解释
  • UDS TP层参数
  • AXI 协议补充(二)
  • HarmonyOS开发:Image使用详解
  • 罗湖网站建设优化/seo小白入门教学
  • 广州艾迪网站建设/seo研究所
  • 做网站的网页设计用cdr吗/如何免费创建自己的网站平台
  • 广州 美容 公司 网站建设/免费创建网站
  • 凤阳县建设局网站/谷歌seo是指什么意思
  • 做直播网站用什么网上空间好/上海seo外包公司