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

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

  💓个人主页: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 的增强版本 。

相关文章:

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

💓个人主页:mooridy 💓专栏地址:《计算机网络:自定向下方法》 大纲式阅读笔记 关注我🌹,和我一起学习更多计算机的知识 🔝🔝🔝 目录 1. 应用层协议原理 1.1 …...

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

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

精益数据分析(27/126):剖析用户价值与商业模式拼图

精益数据分析(27/126):剖析用户价值与商业模式拼图 在创业和数据分析的领域中,每一次深入学习都是一次成长的契机。今天,我们继续秉持共同进步的理念,深入研读《精益数据分析》,剖析用户价值的…...

Neo4j 常用查询语句

Neo4j 常用查询语句 Neo4j 是一个图数据库,查询语言是 Cypher,它类似于 SQL 但针对图形数据进行了优化。Cypher 语法直观易懂,适合用来处理图数据。本文将介绍一些 Neo4j 中常用的查询语句,帮助你快速掌握图数据的操作方法。 一…...

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…...

DataStreamAPI实践原理——计算模型

引入 Apache Flink 是一个框架和分布式处理引擎,用于在 无边界 和 有边界 数据流上进行有状态的计 算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。Flink可以处理批数据也可以处理流数据,本质上,流处理…...

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

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

【人工智能】Python中的深度学习模型部署:从训练到生产环境

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着深度学习在各个领域的应用日益增多,如何将训练好的深度学习模型高效地部署到生产环境中,成为了开发者和数据科学家的重要课题。本文将…...

Rule.resource作用说明

1. 说明 作用 Rule.resource 用于定义哪些文件需要被当前规则处理。它是对传统 test、include、exclude 的更底层封装,支持更灵活的匹配方式。 与 test/include/exclude 的关系 test: /.js$/ 等价于resource: { test: /.js$/ } include: path.resolve(__dirname, ‘…...

C++如何设计线程池(thread pool)来提高线程的复用率,减少线程创建和销毁的开销

线程池的基本概念与多线程编程中的角色 线程池,顾名思义,是一种管理和复用线程的资源池。它的核心思想在于预先创建一定数量的线程,并将这些线程保持在空闲状态,等待任务的分配。一旦有任务需要执行,线程池会从池中取出…...

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

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

Maxscale实现Mysql的读写分离

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

以运营为核心的智能劳动力管理系统,破解连锁零售、制造业排班难题

在连锁零售、制造业、物流等劳动力密集型行业中,排班与考勤管理不仅是人力资源管理的核心环节,更是直接影响企业运营效率、成本控制与合规风险的关键场景。尤其在当前经济环境下,企业面临用工成本攀升、政策合规趋严、业务波动频繁等多重挑战…...

c++_csp-j算法 (5)

动态规划 介绍 动态规划(Dynamic Programming)是一种常用的解决优化问题的算法设计技术,常用于解决具有重叠子问题和最优子结构性质的问题。动态规划算法通过将问题划分为子问题,解决子问题并将子问题的解保存起来,最终构建出原问题的解。在本节中,我们将详细介绍动态规…...

sql server tempdb库的字符集和用户库字符集不一样

执行2个表用not in 关联,但是提示这个错误 消息 468,级别 16,状态 9,第 74 行 无法解决 equal to 运算中 "Latin1_General_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。 对比2个表字段字符集都是&…...

Spring Boot 启动生命周期详解

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

蓝桥杯 20. 压缩变换

压缩变换 原题目链接 题目描述 小明最近在研究压缩算法。他知道,压缩时如果能够使数值很小,就能通过熵编码得到较高的压缩比。然而,要使数值变小是一个挑战。 最近,小明需要压缩一些正整数序列,这些序列的特点是&a…...

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

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

YOLO改进实战:添加SOCA注意力机制提升目标检测性能

## 目录 1. **注意力机制简介** 2. **SOCA模块的核心原理** 3. **YOLOv5添加SOCA的完整步骤** 4. **实验效果与性能对比** 5. **SOCA的改进优势与创新性** --- ### 一、注意力机制简介 注意力机制(Attention Mechanism)模仿人类视觉的选择性关注特性,通过动态…...

Python爬虫实战:获取网yi新闻网财经信息并做数据分析,以供选股做参考

一、引言 在财经领域,股市信息对投资者意义重大。网yi新闻作为知名新闻资讯平台,其股市板块蕴含丰富的最新股市热点信息。然而,依靠传统人工方式从海量网页数据中获取并分析这些信息,效率低下且难以全面覆盖。因此,利用爬虫技术自动化抓取相关信息,并结合数据分析和机器…...

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

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

IPOF方法学应用案例:动态电压频率调整(DVFS)在AIoT芯片中的应用

案例:动态电压频率调整(DVFS)在AIoT芯片中的应用 一、背景知识 继上一篇IPOF(Input-Process-Output-Feedback)方法学简介, 这一篇我们给出一个IPOF在集成电路芯片领域的一个应用场景。 动态电压频率调整&…...

Vue 3新手入门指南,从安装到基础语法

作为一名前端新手,你可能听说过Vue.js的简单与强大,但面对框架的安装和一堆新概念,可能会觉得无从下手。别担心!这篇文章将带你从零开始,完成Vue3的安装,并通过简单示例掌握核心语法。无论你是完全零基础&a…...

反爬加密字体替换机制解析

加密字体替换是网站反爬虫的常用技术之一,其核心是通过自定义字体文件对关键数据(如数字、文字)进行动态渲染,使源码中显示的字符与用户实际看到的内容不一致。下面从技术原理、实现类型和破解方法三个方向展开分析,并…...