2 应用层 - 应用层协议原理

article/2025/9/9 1:40:07

应用层协议原理

  • 一、网络应用程序体系结构
    • 客户机/服务器 体系结构
    • 纯P2P 体系结构
    • 客户机/服务器与P2P的混合
  • 二、进程通信
    • 客户机和服务器进程
    • 套接字(socket)
      • 进程与套接字关系
    • 进程寻址
      • 进程识别信息(两部分)
    • 用户代理(user agent)
  • 三、应用层协议
  • 四、应用程序所需要的服务
      • 应用程序需要什么样的运输服务?
  • 因特网运输协议提供的服务
    • TCP服务
      • 面向连接的服务
      • 可靠的传输服务
      • 拥塞控制
      • 未提供的服务
    • UDP服务

主要内容:

  • 应用层概念:应用层协议、客户机与服务器、进程、套接字和运输层接口。
  • 应用程序:Web、电子邮件、域名系统DNS及P2P对等文件共享。
  • 开发网络应用程序的方法:套接字API编程

一、网络应用程序体系结构

应用程序体系结构:规定如何在各种端系统上组织引用,由研发者设计。
三种类型:

  • 客户机/服务器
  • 对等(P2P)
  • 客户机/服务器与P2P的混合

客户机/服务器 体系结构

在这里插入图片描述

服务器:

  • 总是打开
  • 为多个客户机提供请求提供服务
  • 永久的IP地址
  • 可扩展为服务器场(主机群集)

客户机:

  • 总是打开或间歇打开
  • 向服务器发出请求
  • 具有动态的IP地址
  • 彼此之间不直接通信

如Web应用程序:总是打开的Web服务器为运行在客户机主机上的浏览器的请求提供服务(接收客户机请求,并发送响应结果)。

纯P2P 体系结构

  • 无(最少)打开的服务器
  • 任意端系统(对等方)可以直接通信
  • 对等方间歇地连接,IP地址不固定

例:文件分发、因特网电话等
其特点为:可扩展度高难以管理

未来P2P应用面临的三个主要挑战:

  • ISP友好:受制于“非对称”宽带应用
  • 安全性
  • 激励

客户机/服务器与P2P的混合

Napster:MP3文件共享应用程序。

  • P2P:对等方直接交换MP3文件
  • 服务器注册/定位:
    • 对等方在中心服务器上注册内容
    • 对等方查询相同的中心服务器以定位内容

即时讯息:

  • P2P:两个用户直接聊天
  • 服务器检测/定位:
    • 用户在线时,向中心服务器注册其IP地址
    • 用户联系中心服务器以找到聊天伙伴的IP地址

二、进程通信

进程(process):在主机上运行的程序。
进程通信:

  • 同一主机中两个进程间的通信:由操作系统控制;
  • 不同主机中进程间的通信:通过网络交换报文进行。
    • 发送进程:产生报文并向网络发送;
    • 接收进程:接收报文,并回送报文。

在这里插入图片描述

客户机和服务器进程

网络应用程序由成对的进程组成,并通过网络相互发送报文
根据功能分别标示为客户机和服务器

  • 客户机进程:发起通信的进程。
  • 服务器进程:等待其他进程联系的进程。

例如:Web应用程序中,一个客户机浏览进程向某个Web服务器进程发起联系,交换报文。
又如:一个P2P文件共享系统中,文件从一个对等方的进程传输到另一个对等方中的进程。

P2P结构的应用程序也可分别看成是客户机进程或服务器进程。
对等方A(客户机)请求对等方B(服务器)发送某个文件。

套接字(socket)

套接字:同一台主机内应用层与运输层之间的接口。
也叫应用程序和网络之间的应用程序接口API,是在网络上建立网络应用程序的可编程接口。
在这里插入图片描述

进程与套接字关系

进程类似房子,套接字是进程的门。
进程通过套接字在网络上发送和接收报文。

  • 发送进程:把报文推出门(套接字)
  • 传送报文:通过下面网络把报文传送到目的进程门口。
  • 接收进程:通过其门(套接字)接收报文。

应用程序开发者可以控制套接字应用层端的全部
对套接字的运输层端几乎不能控制(只能选择运输层协议、设定几个运输层参数等)。
应用程序开发者选择了一个运输层协议,则应用程序就建立在由该协议提供的运输层服务之上。如TCP协议。

进程寻址

主机上的进程可以有多个。
网络中有多个主机,每个主机上有多个进程

  • 进程识别信息:表示哪台主机上的哪一个进程
    源主机上的进程向目的主机上的进程发送报文时,应带有接收进程的识别信息(标识)。
  • 进程寻址:根据进程识别信息找到相应进程。
    在这里插入图片描述

进程识别信息(两部分)

  • 主机名称或地址:网络中的哪一个主机
    因特网中,用IP地址标识(32位/64位,全球唯一)
  • 进程的标识:主机中的哪一个进程
    因特网中,采用端口号标识(port number)

常用的应用程序被指派固定的端口号
Web服务进程(HTTP协议):80
邮件服务进程(SMTP协议):25
创建一个新的网络应用程序时,必须分配一个新的端口号,不能重复

用户代理(user agent)

是用户与网络应用程序之间的接口。
如:

  • Web应用的用户代理:是一些浏览器软件
    一个通过套接字收发报文,并提供用户接口的进程
  • 电子邮件应用程序用户代理:是“邮件阅读器”。
    允许用户进行邮件的撰写和阅读

三、应用层协议

定义了运行在不同端系统上的应用程序进程间传递报文的格式和方法
具体内容:

  • 各种报文类型及其语法:报文类型如请求报文和响应报文;报文中的各个字段及描述
  • 字段的语义:字段包含信息的含义
  • 时序:进程何时、如何发送报文及对报文进行响应的规则。

四、应用程序所需要的服务

应用程序间通信:由运输协议跨越网络将发送进程的报文传输到接收进程的门户
需要使用运输协议所提供的服务
运输协议有多种,提供的服务不同。
在这里插入图片描述

应用程序需要什么样的运输服务?

  • 可靠的数据传输(无数据丢失)
    • 数据不能丢失的应用:如文件传输、金融事务等。
    • 能容忍数据丢失的应用:如多媒体应用。
  • 带宽(数据传输率)
    • 带宽敏感的应用:需要特定的带宽才能正常工作。
    • 弹性应用:使用的带宽多或少影响不大。
  • 定时(数据传输的时间限制)
    • 交互式实时应用:对时间敏感,要求时延小,如,因特网电话、视频会议及多方游戏等。
    • 非实时应用:时延无限制,时延低更好
  • 安全性

在这里插入图片描述

因特网运输协议提供的服务

两个运输层协议:

  • 用户数据报协议UDP
  • 传输控制协议TCP
    每个协议为调用它们的应用程序提供不同的服务模型。
    在创建一个新的因特网应用时,要选择其中一个。

TCP服务

两个方面:
面向连接的服务
可靠的传输服务

面向连接的服务

三阶段

  • 建立连接(握手过程):
    客户机程序和服务器程序之间互相交换控制信息,在两个进程的套接字之间建立一个TCP连接
  • 传输报文:
    连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
  • 拆除连接:
    应用程序报文发送结束。

可靠的传输服务

通信进程可以无差错、按适当顺序交付发送的数据
没有数据丢失和重复

拥塞控制

当发送方和接收方之间的网络出现拥塞事,会抑制发送进程速率。
对整个网络有益
拥塞控制还会试图限制每个TCP链接,达到公平共享网络带宽的目的

未提供的服务

TCP和UPD都没有提供任何加密机制
安全套接字层(Secure Socket Layer, SSL)

  • 属于应用层协议,位于应用层协议与TCP之间;
  • 提供了加密、数据完整性、端点鉴别等功能,实现进程间安全通信

不确保最小传输速率:发送进程受拥塞控制机制制约;
不提供时延保证:数据传输等时间不确定。
TCP协议能保证交付所有的数据,但并不保证这些数据传输的速率以及期待的传输时延

UDP服务

提供最小服务模式运行

  • 无连接:两个进程通信前没有握手
  • 不可靠数据传输:不保证报文能够被接收,或收到的报文是乱序到达
  • 没有拥塞控制机制:发送进程可以任何速率发送数据
  • 不提供时延保证

在这里插入图片描述


http://chatgpt.dhexx.cn/article/jO1GpBeC.shtml

相关文章

HTTP协议:当下最主流的应用层协议之一,你确定不了解一下吗?

一.HTTP协议的含义 http是什么? 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。‘超’可以理解为除了文本之外的图片,音频和视频,和一些其…

计算机网络应用层协议分析总结

 1、应用层协议原理 1.1、网络应用程序体系结构 C/S结构,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可能有时打开,也可能总是打开。C/S结构之下,客户机之间…

物联网应用层协议

物联网连接的七层协议如上图所示,从下往上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 应用层网络协议(DHCP)是一种使网络治理员能够中心治理和自动分配IP网络地址的通信协议。IP网络中,每…

6、应用层协议

目录 HTTP协议(超文本传输协议) FTP协议(文件传输协议) POP3协议(收邮件) SMTP协议(发邮件) DHCP协议(动态主机配置) DNS协议(地址解析&…

磁盘挂载 nvme

解决AWS 挂载、解决挂载完重启就消失等问题 linux上的盘和window的有区别,磁盘空间必须挂载在目录上,要不然没用 对与新增的硬盘、SSD固态硬盘、挂载到linux上的操作如下: df -h     #显示目前在Linux系统上的文件系统的磁盘使用情…

k8s数据挂载

nfs挂载 如果采用nfs挂载的方式,我们只需要将需要挂载的mysql-data目录指定nfs 的server和server的目的路径 ,如下,挂载到本机的/data/dev/mysql, 采用nfs的形式: volumes:- name: mysql-datanfs:server: localhostpath: /data/dev/mysql- na…

CentOS7磁盘挂载

1、查看磁盘是否存在 fdisk -l 或 fdisk -l |grep dev 通过下图可以看出有四块磁盘(/dev/vdb、/dev/vdc、/dev/vdd、/dev/vde)共计4T需要挂载 2、进入分区工具设置(以磁盘/dev/vdc为例) fdisk /dev/vdc 依次输入以下选项 n p 回车 回车 t 8e …

云服务器挂载硬盘

系统CentOS7.5 联通的沃云服务器 步骤:先分区-格式化-挂载 1、使用 “fdisk -l” 命令查看硬盘情况: 画红色线的是数据盘,大小有64.4G左右,已经分区好了,所以在这里不用再分区了! 注意:如果提示“Disk /dev/vdb doesn’t contain a valid partition table”说明这块硬盘…

Docker容器挂载

docker的理念:将应用和环境打包成一个镜像!通过镜像启动容器运行 问题:在容器中存储的程序数据是需要持久化的,不能容器删了数据也随之删除。比如,安装一个MySQL容器,在其中存储了大量数据,结果…

在LINUX-DEBIAN系统下挂载新硬盘的方法

LINUX-DEBIAN系统下挂载新硬盘的方法。 总共六个部分,一起来看看吧,非常简单的。 一、fdisk -l 查看硬盘的使用情况,也就是哪些硬盘没有挂载 下面显示的,三块硬盘,其中二和三是没有挂载的。 二、df -h 查看挂载情况…

挂载命令

1.mount命令基本格式 linux所有存储设备都必须挂载使用,包括硬盘 命令名称:mount命令所在路径:/bin/mount执行权限:所有用户 mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] \ 设备文件名 挂载点# \:代表这一行没有…

vue挂载

一个人能力太小,聚沙成塔,抱团取火,分享知识,帮助学习, 有愿意或者有问题一起钻研,新人也好,老手也好,希望在这个寒冬下,尽力生活, 欢迎 一起 qq群&#xff0…

Linux文件系统挂载的概念

文章目录 20230518 文件系统挂载 挂载(mounting)是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。 一般来说,当计算机关机时&#xff0c…

iscsi挂载

服务端创建大小为1G的虚拟块设备 dd if/dev/zero of/root/virt_block_dev bs1M count1024 ---------------------------------------linux--------------------------------------- 服务端安装步骤(initiator-address以网段赋值,允许该网段的所有主机连接)&#x…

linux Nas挂载

文章目录 一、NAS服务端1. 首先查看服务器上是否有nfs和rpc相关软件2. 设置共享3. 使配置生效:4. 查看所有可挂载5. rpcbind启和动nfs6.配置防火墙7. 查看防火墙的状态8. 启动防火墙9. 开放端口10. 重新启动防火墙11. 查看已开放的端口 二、客户端(应用服务器)2.1.查看空间分布…

手把手教你挂载

文章目录 挂载是什么,我们为什么要挂载一步步演示挂载演示环境一些知识点挂载步骤Parted命令挂载 挂载是什么,我们为什么要挂载 在我看来,Linux下的硬盘挂载,相当于是windows的分配盘符。 Linux下一切皆文件,所以&…

何为挂载(mount)?

在操作系统的Lab中,我们用bximage创建了一个1.44mb的软盘镜像img 然后为了将我们编译好的汇编程序写入该镜像,使用了如下命令: sudo mount -o loop XX.img /mnt/floppy sudo cp 汇编程序 /mnt/floppy sudo umount /mnt/floppy这其中发生了什…

挂载(mount)

Linux中,所有的数据都是由文件的形式呈现的,整个Linux中使用的是目录树架构,但其实,我们所有的数据都是放置在磁盘分区中的,所以如何结合目录树结构与磁盘中的数据呢?这就牵扯到挂载了。 挂载:利…

它拖慢你的网速,还泄露你的个人隐私,学一招治治它

你可能有一种感觉,虽然5G时代已经来了,但网速并没有快得很明显。 你可能还有一种困扰,在手机上随便搜一个商品,几分钟后竟然接到了推销电话。 但你有没有想过,这两件事的幕后黑手,是同一个? …

三步带你解决Docker拉取镜像报错:x509: certificate has expired or is not yet valid

报错信息: ...... 47a32314928e: Waiting f1bef6c845ef: Waiting b7403b550949: Waiting 313a800f9488: Waiting f45c5939b598: Waiting docker: Get https://registry-1.docker.io/v2/: x509: certificate has expired or is not yet valid.报错信息翻译过来的意思…