【计算机网络概述】第二章:应用层:2.1 应用层原理

简介: 【计算机网络概述】第二章:应用层:2.1 应用层原理

学习目标:

客户端/服务器模式

peer to peer 模式(对等模式)

前言

      在第一章的内容中,我们学习了计算机网络的大体轮廓,因为在计算机网络中,我们需要记住非常多的专有名词,所以在第一章中,我们需要进行非常多的记忆。第一章还是非常重要的。

一、一些网络应用的例子

      比如,我们所使用的E-mail,Web服务器,文本信息,远程登陆,P2P文件共享(基于P2P模式下),即时通信,多用户网络游戏,流媒体的应用(YouTobe,Hulu,Netfix),Internet电话,实时电视通信,社交网络,搜索功能等一些例子。

二、如何部署网络应用

2.1 编程

  • 在不同的端系统中应用;
  • 通过网络基础设施进行服务,应用进程之间彼此通信;
  • 比如说是:Web,我们需要进行客户端与服务器之间的通信,Web软件与服务器软件进行通信。

2.2 网络核心中没有应用层软件

  • 网络核心中没有应用层功能
  • 网络应用只在端系统中存在,快速网络开发和应用。

三、网络应用模型

3.1 客户端/服务器模式

      在客户端/服务器模式下,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。

3.1.1  客户端/服务器模式的功能流程:

  1. 服务器处于接受请求的状态;
  2. 客户端发出服务请求,并等待处理结果;
  3. 服务器在收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。

3.1.2 客户端与服务器的地位对等吗

      答案是不对等的,因为在进行对话中,客户端程序必须知道服务器程序的地址,客户机上一般不需要特殊的硬件和复杂的操作系统。而在服务器中运行的软件则是专门进行提供某种服务的程序,可同时处理多个进程或本地客户的要求,被动地等待并接收各地客户的请求。因此,服务器程序不需要知道客户程序的地址。

3.1.3 客户/服务器模型的主要特点

  • 网络中各个计算机的地位是不平等的,整个网络的管理系统由少数服务器担当,因此网络中的管理非常集中和方便;
  • 客户机相互之间不能直接通信;
  • 可扩展性不高。
  • 固定的IP地址(也可能是不固定的)和众所周知的端口号(约定)

3.2 P2P模式

3.2.1 为什么会有P2P模式?

      不难看出,在C/S模式中,服务器的性能好坏决定了整个系统的性能,当大量用户请求服务时,服务器就必然成为系统的瓶颈。P2P模式的思想是整个网络中的传输内容不再被保存在中心服务器上,每一个节点都同时具有下载、上传的功能,其权利和义务都是大体对等的。

3.2.2 P2P模式的优点

  • 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个节点上,大大提高了系统效率和资源利用率。
  • 多个客户机之间可以直接共享文档。
  • 可扩展性好,传统服务器有响应和带宽的限制,因此只接受一定数量的请求。
  • 网络健壮性强,单个节点失效不会影响其他部分的节点。

3.2.3 P2P模型的缺点

      在获取服务的同时,还要给其他节点提供服务,因此会占用较多的内存,影响整机的速度。

3.3 易错知识点

      在未建立前,服务器在某一个端口上监听。客户端是连接的请求方,客户端必须事先知道服务器的地址才能发出连接请求,而服务器则从客户端发来的数据包中获取客户端的地址。一旦连接建立,服务器就能响应客户端请求的内容,服务器也能主动发送数据给客户端,用于消息的通知,比如一些错误的消息。

      客户机的作用是根据用户需求向服务器发出服务请求,并将服务器返回的结果呈现给客户,因此客户机是面向用户的,服务器是面向任务的

3.4 C/S和P2P体系结构的混合体

我们来举一些例子:

即时通信

在线检测:集中C/S模式

  • 当用户上线时,向中心服务器注册其IP地址,用户与中心服务器联系,以找到其在线好友的位置。

两个用户之间聊天:P2P模式

Napster

文件搜索:集中

  • 主机在中心服务器上注册其资源
  • 主机向中心服务器查询资源位置

文件传输:P2P

  • 任意peer结点之间

3.5 进程通信

进程:在主机上运行的应用程序

客户端进程:发起通信的进程

服务器进程:等待连接的进程

进程中通信可以分为两种在同一主机内通信在不同主机内通信

  1. 在同一主机内,使用进程间通信机制通信(操作系统定义)
  2. 不同主机,通过交换报文来通信:使用OS提供的通信服务;按照应用协议交换报文,借助传输层提供的服务。

注意:不管是C/S模式,还是P2P模式,其架构的应用都有客户端进程和服务器进程之分。

3.6 分布式进程通信应该解决的问题

3.6.1 进程标识和寻址问题

进程为了接收报文,必须要有一个标识,即:SAP(发送也需要标识)

  • 主机:唯一的32位IP地址,但是仅有一个IP地址无法唯一地标识一个进程,在一台端系统上有很多应用进程在进行。
  • 所采用的传输层协议:TCP 和 UDP
  • 端口号                                                                                                                                    

一些知名的端口号有:HTTP:tcp80,FTP:tcp21,SMTP:tcp25,POP:tcp110

之前说,一个进程无法只通过一个IP地址进行标识,所以要通过IP+port(端口)来进行标识。

本质上,一对主机之间的通信要有两个端结点构成。

3.6.2 传输层提供的服务-需要穿过层间的信息

层间接口需要携带的信息:

  • 要传输的报文(对于本层来说:SDU)
  • 谁传的:对方的应用进程的标示:IP+TCP(UDP) 端口
  • 传给谁:对方的应用进程的标示:对方的IP+TCP(UDP)端口号

传输层实体根据这些信息进行数据报的封装,但是在封装过程中,会不会觉得很麻烦呢?是的,比较麻烦。

3.6.3 如何使用传输层提供的服务实现应用

  1. 定义应用层协议:报文格式,解释,时序等;
  2. 编写程序,通过API调用网络应用设施提供通信服务传报文,解析报文,实现应用时序等。

3.7 Socket

      为了解决上述的问题,并且每一次传输,都携带如此多的信息,太繁琐易错,不便于管理,所以我们可以采用一个编号来表示通信的双方或者单方。

3.7.1 TCP的Socket

TCP的Socket是一个四元组,包括:源IP,源port,目标IP,目标port

3.7.2 UDP的Socket

UDP的Socket是一个二元组,包括:本IP,本port

相关文章
|
19天前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
145 0
|
6月前
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
221 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
16天前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
237 11
|
28天前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
121 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
181 7
|
5月前
|
监控 应用服务中间件 Linux
掌握并发模型:深度揭露网络IO复用并发模型的原理。
总结,网络 I/O 复用并发模型通过实现非阻塞 I/O、引入 I/O 复用技术如 select、poll 和 epoll,以及采用 Reactor 模式等技巧,为多任务并发提供了有效的解决方案。这样的模型有效提高了系统资源利用率,以及保证了并发任务的高效执行。在现实中,这种模型在许多网络应用程序和分布式系统中都取得了很好的应用成果。
135 35
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
146 18
|
5月前
|
机器学习/深度学习 算法 测试技术
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
本文探讨了基于图的重排序方法在信息检索领域的应用与前景。传统两阶段检索架构中,初始检索速度快但结果可能含噪声,重排序阶段通过强大语言模型提升精度,但仍面临复杂需求挑战
140 0
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
|
4月前
|
安全 Java 程序员
分析Muduo网络库源码中的TcpServer组件工作原理
简言之,TcpServer 在 Muduo 中的角色,就是一位终极交通指挥员,它利用现代计算机网络的魔法,确保数据如同车辆一般,在信息高速公路上自由、安全、高效地流动。
45 0
|
7月前
|
机器学习/深度学习 数据可视化 PyTorch
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
494 7
深入解析图神经网络注意力机制:数学原理与可视化实现