计算机网络——应用层(1)

计算机网络——应用层(1)

  • 小程一言
    • 专栏链接: [link](http://t.csdnimg.cn/ZUTXU)
  • 协议原理
    • 内容
    • 原理小结
    • 体系结构
      • 分类——重点已标注
    • 进程通信
      • 常见形式
    • 因特网运输服务
      • TCP(传输控制协议)
      • UDP(用户数据报协议)

小程一言

我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。
面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,

专栏链接: link

在这里插入图片描述

协议原理

计算机网络应用层协议是在网络中实现不同应用程序之间通信和数据传输的规则和约定。它们定义了数据的格式、传输方式、错误检测和纠正等内容,以确保不同应用程序之间的互操作性和数据传输的可靠性
在这里插入图片描述

内容

  1. 数据格式:应用层协议定义了数据的格式,包括数据的结构、编码方式、数据类型等。这些格式规定了数据的组织方式,以便接收方能够正确地解析和处理数据。
  2. 数据传输方式:应用层协议规定了数据的传输方式,包括数据的发送和接收过程、数据的传输速率、数据的传输顺序等。这些规定确保了数据能够在网络中正确地传输和接收。
  3. 错误检测和纠正:应用层协议通常包括错误检测和纠正机制,以确保数据在传输过程中能够正确地被接收。这些机制可以检测并纠正数据传输中可能出现的错误,从而提高数据传输的可靠性。
  4. 数据处理和应用逻辑:应用层协议还定义了数据的处理和应用逻辑,包括数据的处理方式、数据的存储和检索方式、应用程序之间的通信方式等。这些规定确保了不同应用程序之间能够正确地交换数据并进行相应的处理。

原理小结

应用层协议的原理是为了确保不同应用程序之间能够正确地进行数据交换和通信,并且能够保证数据传输的可靠性和正确性。通过规定数据的格式、传输方式、错误检测和纠正等内容,应用层协议能够实现不同应用程序之间的互操作性和数据传输的可靠性。
在这里插入图片描述

体系结构

网络应用程序的组织结构和设计模式,用于实现特定功能或提供特定服务。

分类——重点已标注

  1. 客户端-服务器体系结构:这是最常见的网络应用程序体系结构之一。在这种体系结构中,客户端应用程序通过网络与服务器应用程序进行通信,客户端发送请求,服务器响应请求并提供所需的服务或数据。这种体系结构可以分为两层、三层或多层结构,根据应用程序的复杂程度和需求来设计。
  2. 对等体系结构(P2P):在对等体系结构中,所有计算机都可以充当客户端和服务器,它们之间可以直接通信,而不需要中央服务器。对等网络通常用于文件共享、视频会议和即时通讯等应用。
  3. 三层体系结构:这种体系结构将应用程序分为用户界面层、业务逻辑层和数据存储层。用户界面层负责与用户交互,业务逻辑层处理应用程序的逻辑和功能,数据存储层负责数据的存储和管理。这种体系结构通常用于大型企业应用和Web应用。
  4. RESTful体系结构:REST(Representational State Transfer)是一种基于HTTP协议的软件架构风格,它使用标准的HTTP方法(如GET、POST、PUT、DELETE)来实现资源的访问和操作。RESTful体系结构通常用于构建Web服务和API。
  5. 微服务体系结构:微服务是一种架构风格,将应用程序拆分为一组小型、独立的服务,每个服务都可以独立部署和扩展。这种体系结构有助于提高应用程序的灵活性、可维护性和可扩展性。
    在这里插入图片描述

进程通信

不同进程之间进行数据交换和信息传递的过程。在多进程系统中,不同的进程可能需要相互协作、共享数据或者进行通信,因此进程通信是非常重要的。

常见形式

a. 管道(Pipe):管道是一种最基本的进程通信机制,它可以在父子进程或者兄弟进程之间进行通信。管道是一种单向通信机制,分为无名管道和有名管道两种。无名管道只能用于具有亲缘关系的进程之间通信,而有名管道可以用于无亲缘关系的进程之间通信。

b.消息队列(Message Queue):消息队列是一种进程间通信的方式,允许一个进程向一个队列中发送消息,而另一个进程从队列中接收消息。消息队列可以实现多对多的通信,不同进程之间的关系比较灵活。

c.共享内存(Shared Memory):共享内存是一种高效的进程通信方式,它允许多个进程共享同一块内存区域。通过共享内存,多个进程可以直接访问共享的数据,而不需要进行数据的复制和传输。不过需要注意的是,共享内存需要进行同步和互斥操作,以避免数据的冲突和不一致性。

d.信号量(Semaphore):信号量是一种用于进程同步和互斥的机制,它可以用于解决进程之间的竞争和资源的分配问题。通过信号量,可以实现进程之间的互斥和同步,确保多个进程能够有序地访问共享资源。

5.套接字(Socket):套接字是一种网络编程接口,它允许不同主机上的进程进行通信。套接字可以用于实现进程间的网络通信,包括TCP和UDP等协议。
在这里插入图片描述

因特网运输服务

因特网提供的运输服务主要是指TCP(传输控制协议)和UDP(用户数据报协议)这两种主要的传输层协议。这两种协议提供了不同的运输服务,适用于不同的应用场景。

TCP(传输控制协议)

可靠性:TCP提供可靠的数据传输服务,通过序号、确认和重传机制来确保数据的可靠性传输。
有序性:TCP保证数据的有序传输,确保数据在接收端按照发送端的顺序进行重组。
流量控制:TCP使用滑动窗口机制来进行流量控制,确保发送方和接收方之间的数据传输速率适应对方的处理能力。
拥塞控制:TCP通过拥塞窗口和拥塞避免算法来进行拥塞控制,避免网络拥塞导致的性能下降。
TCP适用于对可靠性要求较高的应用场景,例如文件传输、电子邮件、Web浏览等。

在这里插入图片描述

UDP(用户数据报协议)

无连接:UDP是一种无连接的传输协议,不需要建立连接就可以进行数据传输。
不可靠性:UDP不提供数据的可靠传输,数据可能丢失、重复或者无序到达。
低延迟:UDP的无连接特性和简单的数据传输机制使得它具有较低的传输延迟。

UDP适用于对实时性要求较高、对可靠性要求较低的应用场景,例如音视频流媒体、在线游戏等。

除了TCP和UDP之外,因特网还提供了其他一些运输服务,例如SCTP(流控制传输协议)、DCCP(数据报拥塞控制协议)等,这些协议提供了不同的运输服务特性,可以根据具体的应用需求来选择合适的传输协议。
在这里插入图片描述

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

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

相关文章

简易机器学习笔记(十)Windows下 PaddlePaddle配置CUDA加速环境

前言 大伙既然都来做这个了,那配个CUDA环境肯定是必不可少的了吧(笑) 最前面的最前面, 流程 确定当前设备支持的CUDA版本安装CUDA Toolkit 和 GPU版的Paddlepaddle下载cuDNN Archive手动放置配套的cuDNN到指定文件夹测试 1.确…

kubectl命令中常用的缩写

在kubectl的学习中,经常见到一些缩写,干脆整理一番,统一学习更加方便记忆。 一览表 简称全称中文释义举例nsnamespace命名空间kubectl get namespace 等价于 kubectl get ns-A--all-namespaces全部命名空间kubectl get pods --all-namespac…

机械配件移动商城课程概述

项目介绍 开发准备 任务 开源库介绍 框架搭建 工具类

Mac上安装 Node.js 的版本管理工具 n,以及 n 使用,的使用

安装 最近刚更换 Mac 本进行项目的开发,刚上手 Mac 本还不是很熟练,需要安装 Node.js 的包管理工具 在 Windows 上我是实用的 nvm 来管理的 Node 版本,但是我尝试下载 Nvm ,发现下载安装后的 Nvm 无法使用,提示 “Th…

性能优化-OpenMP基础教程(五)-全面讲解OpenMP基本编程方法

本文主要介绍OpenMP编程的编程要素和实战,包括并行域管理详细实战、任务分担详细实战。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础教程 🎀C…

宏基因组序列分析工具EukRep

文章:Genome-reconstruction for eukaryotes from complex natural microbial communities | bioRxiv 仓库:patrickwest/EukRep: Classification of Eukaryotic and Prokaryotic sequences from metagenomic datasets (github.com) 推荐使用conda进行安…

开启Android学习之旅-3-Android Activity

Android Activity 本文总结《第一行代码 Android》第3版的内容 环境: Android Studio Giraffe | 2022.3.1 Patch 3 Activity 是什么? Activity 简单将就是UI界面,包含两部分 Activity 类 和应用布局文件,如果是 Compose 则另说&…

DS|图(连通与生成树)

题目一:DS图 -- 图的连通分量 题目描述: 输入无向图顶点信息和边信息,创建图的邻接矩阵存储结构,计算图的连通分量个数。 输入要求: 测试次数t 每组测试数据格式如下: 第一行:顶点数 顶点…

【Linux进程】 进程的理解

目录 前言 1. 系统管理 2. 进程 2.1 概念 2.2 进程的调度 2.3 描述进程-PBC 3. 查看进程 4. 通过系统调用获取进程标示符 前言 在计算机科学领域,进程是一种重要的概念,在日常学习中也经常遇到进程这个概念,那么进程到底是什么&#x…

tkinter实现一个简易窗口

tkinter目录 1. 最简易的窗口2. 加了标签、按钮、输入框,并且按钮连接了函数 1. 最简易的窗口 import tkinter as tkwindow tk.Tk()window.title(我的窗口) # 设置窗口名 window.geometry(500x300) # 设置窗口长宽label tk.Label(window, text文字文字文字, bg…

Vue3中使用动态组件

文章目录 使用方式:使用场景: 在 Vue 3 中,动态组件是一种允许在运行时动态切换组件的机制。Vue 3 提供了 元素以及 is 特性来实现动态组件的切换。 使用方式: 1、使用 元素 在模板中使用 元素,通过 is 特性来动态切换…

CSS基础笔记-01CSS概述

文章目录 前言CSS是什么CSS的作用CSS语法添加CSS的方法 前言 CSS是什么?有什么作用?怎么编写CSS?怎样添加CSS?本文对CSS的四个方面作了学习并形成学习笔记。 CSS是什么 CSS (Cascading Style Sheets,层叠…

CentOS 多节点一键免密登录

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

解决2023新版Edge浏览器页面加载不出来问题

2023年推出的新版Edge浏览器为用户带来了更好的性能和用户体验。然而,有一些用户反馈称他们在使用新版Edge浏览器时遭遇了页面加载不出来的问题。本篇博客将详细介绍如何解决这个问题,以确保您能够顺畅地使用新版Edge浏览器浏览网页。 1、清除缓存和Coo…

使用 Python 进行贝叶斯优化

一、介绍 贝叶斯优化是一种先进的技术,用于优化评估成本高昂的函数。该策略为全局优化提供了原则性策略,强调探索(尝试新领域)和开发(尝试看起来有前途的领域)之间的平衡。 二、什么是贝叶斯优化&#xff1…

Mysql 分割字符串,一行变多行,@rownum,mysql.help_topic

1 前言 朋友最近遇到一个比较棘手的 sql 问题,让我帮忙看看: 他有两张表 testa 和 testb ,一个表存的日期,另一个表存字符串例如 2023-11-01,2023-11-02,如何将这两张表关联起来,只查 testa 表的数据&#…

streamlit 入门demo

一、介绍 Streamlit 是一个用于创建数据应用程序的 Python 库,它致力于简化从数据脚本到可部署应用程序的整个过程。通过 Streamlit,你可以使用熟悉的 Python 语言创建交互式的、美观的数据应用,而无需深入了解前端开发。 二、优势和特点 简…

分布式基础概念

分布式基础概念 1 微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API。这些服务围绕业务能力来构建,并通过完全自动化部署机制…

AUTOSAR从入门到精通-漫谈autosar软件架构(七)

目录 前言 原理 AUTOSAR软件开发现状 Autosar分层架构 基础软件层(BSW)

【Path的使用】Node.js中的使用Path模块操作文件路径

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:Node.js 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续前进的勇…