计算机网络 | 应用层(1)--应用层协议原理

news2025/4/28 9:28:59

  💓个人主页:mooridy
💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记
关注我🌹,和我一起学习更多计算机的知识
🔝🔝🔝

目录

1. 应用层协议原理

1.1 网络应用程序体系结构

客户 - 服务器体系结构

对等(P2P, peer to peer)体系结构

1.2 客户与服务器

进程寻址

1.3 套接字

1.4 可供应用程序使用的运输服务

可靠数据传输 (reliable data transfer)

吞吐量

定时

安全性

1.5 因特网提供的运输服务

TCP

面向连接服务

可靠的数据传送服务

拥塞控制机制

UDP

SSL(Secure Sockets Layer, 安全套接字层)


1. 应用层协议原理

1.1 网络应用程序体系结构

客户 - 服务器体系结构

  • 存在一个始终开启的主机作为服务器,用于处理众多客户主机的请求。
  • 服务器通常部署在配备大量主机的数据中心内。
  • 服务器 IP 地址固定,客户端 IP 地址可动态变化。

对等(P2P, peer to peer)体系结构

  • 用户间的报文直接在主机之间传输,无需经过中间服务器。
  • 对数据中心专用服务器依赖程度极低甚至无依赖。

1.2 客户与服务器

在进程通信会话中,主动发起通信的进程为客户(client),等待通信连接的进程为服务器(server)。

特别注意:在网络通信里,服务器一般指运行于目标主机上的进程(程序)。例如在 Web 应用中,浏览器(客户进程)与 Web 服务器(服务器进程)进行报文交换。

进程寻址

  • 目标主机:通过 IP 地址进行标识。
  • 目标主机上的指定接收进程(接收套接字):依靠端口号标识。
    • 端口号取值范围为 0 - 65535,其中 0 - 1023 属于周知端口号。例如,Web 服务器常用 80 端口,邮件服务器常用 25 端口 。

1.3 套接字

  • 进程借助套接字(socket)这一软件接口,实现与网络之间的报文收发。
  • 进程如同房子,套接字则类似于房子的门。
  • 套接字是主机中应用层与运输层之间的接口,也是应用程序与网络交互的 API。

1.4 可供应用程序使用的运输服务

可靠数据传输 (reliable data transfer)

提供确保数据准确交付的服务。

  • 容忍丢失的应用 (loss-tolerant applications):如交谈式音频 / 视频等应用,能够承受一定程度的数据丢失 。

吞吐量

保证吞吐量恒定。

  • 带宽敏感的应用 (bandwidth-sensitive applications):对吞吐量有明确要求的应用。
  • 弹性应用 (elastic applications):对吞吐量要求较低的应用。

定时

对交互式实时应用程序意义重大,例如因特网电话、虚拟环境、电话会议和多方游戏等,这些服务要求数据在严格的时间限制内完成交付。

安全性

实现数据的加密与解密。

1.5 因特网提供的运输服务

TCP

面向连接服务
  • 客户与服务器在握手阶段建立全双工的 TCP 连接。
    • 握手阶段:在应用层数据报文传输前,TCP 使客户和服务器相互交换运输层控制信息。
    • 全双工:通信双方均可同时进行数据的收发。
可靠的数据传送服务
  • 保障数据无差错、按顺序交付。
拥塞控制机制

当网络发生拥塞时,抑制发送进程的传输速率。

UDP

  • 无连接特性,无需握手阶段,效率较高。
  • 存在不可靠数据传输问题,数据可能乱序到达。
  • 不具备拥塞控制机制 。

目前因特网运输协议无法保证吞吐量和定时,但在一定程度上可满足时间敏感应用的需求。

SSL(Secure Sockets Layer, 安全套接字层)

是 TCP 的增强版本 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态

视频讲解: MuJoCo 关节角速度记录与可视化,监控机械臂运动状态 代码仓库:GitHub - LitchiCheng/mujoco-learning 关节空间的轨迹优化,实际上是对于角速度起到加减速规划的控制,故一般来说具有该效果的速度变化会显得丝…

LVGL模拟器:NXP GUIDER+VSCODE

1. 下载安装包 NXP GUIDER:GUI Guider | NXP 半导体 CMAKE:Download CMake MINGW:https://github.com/niXman/mingw-builds-binaries/releases SDL2:https://github.com/libsdl-org/SDL/releases/tag/release-2.30.8 VSCODE&…

《USB技术应用与开发》第四讲:实现USB鼠标

一、标准鼠标分析 1.1简介 1.2页面显示 其中页面显示的“”不用管它,因为鼠标作为物理抓包,里面有时候会抓到一些错误,不一定是真正的通讯错误,很可能是本身线路接触质量不好等原因才打印出来的“”。 1.3按下鼠标左键 &#x…

一、鸿蒙编译篇

一、下载源码和编译 https://blog.csdn.net/xusiwei1236/article/details/142675221 https://blog.csdn.net/xiaolizibie/article/details/146375750 https://forums.openharmony.cn/forum.php?modviewthread&tid897 repo init -u https://gitee.com/openharmony/mani…

得物业务参数配置中心架构综述

一、背景 现状与痛点 在目前互联网飞速发展的今天,企业对用人的要求越来越高,尤其是后端的开发同学大部分精力都要投入在对复杂需求的处理,以及代码架构,稳定性的工作中,在对比下,简单且重复的CRUD就显得…

【算法】单词搜索、最短距离

单词搜索 这道题主要考察了深度优先遍历(DFS)算法。 我们通过几个简单例子来分析一些细节问题: 1. 要搜索的单词串:abc 搜索的过程中必须按照字母顺序,首先从矩阵中的第一个元素开始搜索,遇到字母a则开始深度优先遍历&#xff0…

Python函数基础:简介,函数的定义,函数的调用和传入参数,函数的返回值

目录 函数简介 函数定义,调用,传入参数,返回值 函数的定义 函数的调用和传入参数 函数的返回值 函数简介 函数简介:函数是组织好,可重复使用,用来实现特定功能(特定需求)的代码…

基于FFmpeg命令行的实时图像处理与RTSP推流解决方案

前言 在一些项目开发过程中需要将实时处理的图像再实时的将结果展示出来,此时如果再使用一张一张图片显示的方式展示给开发者,那么图像窗口的反复开关将会出现窗口闪烁的问题,实际上无法体现出动态画面的效果。因此,需要使用码流…

【随笔】地理探测器原理与运用

文章目录 一、作者与下载1.1 软件作者1.2 软件下载 二、原理简述2.1 空间分异性与地理探测器的提出2.2 地理探测器的数学模型2.21 分异及因子探测2.22 交互作用探测2.23 风险区与生态探测 三、使用:excel 一、作者与下载 1.1 软件作者 作者: DOI: 10.…

从零开始使用SSH链接目标主机(包括Github添加SSH验证,主机连接远程机SSH验证)

添加ssh密钥(当前机生成和远程机承认) 以下是从头开始生成自定义名称的SSH密钥的完整步骤(以GitHub为例,适用于任何SSH服务): 1. 生成自定义名称的SSH密钥对 # 生成密钥对(-t 指定算法,-f 指定路径和名称…

Maxscale实现Mysql的读写分离

介绍: Maxscale是mariadb开发的一个MySQL数据中间件,配置简单,能够实现读写分离,并且能根据主从状态实现写库的自动切换,对多个服务器实现负载均衡。 实验环境: 基于gtid的主从同步的基础上进行配置 中…

Spring Boot 启动生命周期详解

Spring Boot 启动生命周期详解 1. 启动阶段划分 Spring Boot 启动过程分为 4个核心阶段,每个阶段涉及不同的核心类和执行逻辑: 阶段 1:预初始化(Pre-initialization) 目标:准备启动器和环境配置关键类&am…

数据湖DataLake和传统数据仓库Datawarehouse的主要区别是什么?优缺点是什么?

数据湖和传统数据仓库的主要区别 以下是数据湖和传统数据仓库的主要区别,以表格形式展示: 特性数据湖传统数据仓库数据类型支持结构化、半结构化及非结构化数据主要处理结构化数据架构设计扁平化架构,所有数据存储在一个大的“池”中多层架…

解决conda虚拟环境安装包却依旧安装到base环境下

最近跑项目装包装到几度崩溃,包一直没有安装到正确位置,为此写下这篇文章记录一下,也希望能帮到有需要的人。(此文章开发环境为anaconda和window) 方法一 先conda deactivate,看到(base)消失…

字节跳动开源数字人模型latentsync1.5,性能、质量进一步优化~

项目背景 LatentSync1.5 是由 ByteDance 开发的一款先进的 AI 模型,专门针对视频唇同步(lip synchronization)任务设计,旨在实现音频与视频唇部动作的高质量、自然匹配。随着 AI 技术的快速发展,视频生成和编辑的需求…

Day12(回溯法)——LeetCode51.N皇后39.组合总和

1 前言 今天刷了三道回溯法和一道每日推荐,三道回溯法也迷迷糊糊的,每日推荐把自己绕进去了,虽然是一道之前做过的题的变种。刷的脑子疼。。。今天挑两道回溯题写一下吧,其中有一道是之前做过的N皇后,今天在详细写一写…

力扣HOT100——102.二叉树层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] /*** Definition for a bi…

搭建基于火灾风险预测与防范的消防安全科普小程序

基于微信小程序的消防安全科普互动平台的设计与实现,是关于微信小程序的,知识课程学习,包括学习后答题。 技术栈主要采用微信小程序云开发,有下面的模块: 1.课程学习模块 2.资讯模块 3.答题模块 4.我的模块 还需…

RAG技术与应用---0426

大语言模型>3.10 课程中会用到python 工具箱: faiss,modelscope,langchain,langchain_community,PyPDF2 1)大模型应用开发的三种模式 提示词没多少工作量,微调又花费时间费用,RAG是很多公司招聘用来对LLM进行应用…

element-ui多个form同时验证,以及动态循环表单注意事项

多个form同时验证: validateForm(refs) {if (!refs) {return false}return new Promise((resolve, reject) > {refs.validate().then((valid) > {resolve(valid)}).catch((val) > {resolve(false)})}) }, async handleConfirm() {Promise.all([this.valid…