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

目录

[1. 网络应用的体系结构](#1. 网络应用的体系结构)

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

[3. 对等体(P2P)体系结构](#3. 对等体(P2P)体系结构)

[4. C/S 和 P2P 体系结构的混合体](#4. C/S 和 P2P 体系结构的混合体)

Napster

即时通信

[5. 进程通信](#5. 进程通信)

[6. 分布式进程通信需要解决的问题](#6. 分布式进程通信需要解决的问题)

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

[8. 问题2:传输层提供的服务](#8. 问题2:传输层提供的服务)

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

层面信息代表(Socket)

[9. TCP 套接字(Socket)详解](#9. TCP 套接字(Socket)详解)

[10. TCP socket](#10. TCP socket)

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

[UDP Socket](#UDP Socket)

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

[13. UDP socket](#13. UDP socket)

[14. 套接字(Socket)](#14. 套接字(Socket))

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

[16. 应用层协议](#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
相关推荐
孤寂大仙v1 小时前
【计算机网络】传输层TCP协议——协议段格式、三次握手四次挥手、超时重传、滑动窗口、流量控制、
网络协议·tcp/ip·计算机网络
gadiaola14 小时前
【计算机网络】第2章:应用层—DNS
网络·计算机网络
Britz_Kevin1 天前
从零开始的云计算生活——第十四天,困难重重,安全管理。
计算机网络·安全·云计算·#linux·#安全管理·#防火墙
丰锋ff1 天前
计算机网络第一章计算机网络概述(竟成)
网络·计算机网络
gadiaola2 天前
【计算机网络】第1章:概述—协议层次及服务模型
网络·计算机网络
尬尬_2 天前
【计算机网络】IPv6和NAT网络地址转换
网络·计算机网络·智能路由器
魔性的哈哈@2 天前
实验三 企业网络搭建及应用
计算机网络·ip
打倒焦虑2 天前
计算机网络学习20250528
计算机网络
August_._2 天前
【网络通信】详解网络通信、实现 CS / BS架构 通信
java·websocket·网络协议·tcp/ip·计算机网络·架构·intellij-idea