【计算机网络概述】第二章:应用层:1.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

相关推荐
->yjy18 分钟前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ1 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络
战术摸鱼大师7 小时前
计算机网络-理论部分(二):应用层
计算机网络
C++忠实粉丝10 小时前
计算机网络socket编程(2)_UDP网络编程实现网络字典
linux·网络·c++·网络协议·计算机网络·udp
勤奋的小王同学~13 小时前
(计算机网络)期末
服务器·网络·计算机网络
小镇敲码人1 天前
【计算机网络实验】之静态路由配置
网络·计算机网络·智能路由器
代码欢乐豆1 天前
计算机网络在线测试-概述
计算机网络
helloWorldZMY1 天前
超文本传输协议(HTTP)与超文本传输安全协议(HTTPS)
网络协议·计算机网络·http·https
helloWorldZMY1 天前
传输控制协议(TCP)和用户数据报协议(UDP)
网络协议·tcp/ip·计算机网络·udp