网络基础(二)---------应用层的基础知识

应用层(会话层以上的分层)在TCP/IP的分层中,我们将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用层的身上。

应用层的模式

  • 客户机/服务器结构(C/S)
  • 点对点结构(P2P)
  • 混合结构(Hybrid)

C/S结构:按照功能不同将主机划分为客户机和服务器,服务器用来提供服务,客户机使用服务器提供的服务。
服务器:

  • 7*24小时提供服务
  • 永久性访问地址/域名
  • 利用大量服务器实现可扩展性

客户机:

  • 与服务器通信,使用服务器提供服务
  • 间歇性接入网络
  • 可能使用动态IP地址
  • 不会与其他客户机直接通信

例如:
这里写图片描述
P2P结构:例如文件共享下载服务
特点:

  • 没有永远在线的服务器
  • 任意端系统/节点之间可以直接通讯
  • 节点间歇性接入网络
  • 节点可能改变IP地址

混合结构:Napster(一款可以在网络中下载自己想要的MP3文件的软件。它同时能够让自己的机器也成为一台服务器,为其它用户提供下载。)

  • 文件传输使用P2P结构
  • 文件的搜索采用C/S结构-集中式

例如:
这里写图片描述

认识应用层协议

【应用层】虽然发送方知道自己发送的是什么东西、转化成字节数组之后有多长,但接收方肯定不知道,所以应用层的网络协议诞生了,他规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里必须记录消息体的长度等一系列信息,以方便接收方能够正确的解析发送方发送的数据。

再次整理一下流程:

发送方发送消息 ->

接收方首先根据协议规定的消息头长度(比如30),取出30个字节 ->

再根据协议规定的消息头编码方式(比如UTF-8),将这30个字节转换为对应数据,也就是得到消息头 ->

再根据协议规定的消息头中的特定位置记录有消息体的长度(比如200),从而在这30个字节之后再取出200个字节 ->

再根据协议规定的消息头中的特定位置记录有消息体的编码方式(比如UTF-8),对这200个字节进行转换,从而得到与发送方发送时一模一样的数据。

所以说,应用层的网络协议,他旨在让你更方便的应用从网络中接收到的数据,至于数据的传递,没有类似http协议的东西,你也可以直接在两台电脑间开干,只不过传来传去就是一堆1和0组成的字节数组,如果你认为能够看得懂,那也就可以不使用协议了。

常见的应用层协议

1)HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)

是一种最基本的客户机/服务器的访问协议。浏览器向服务器发送请求,而服务器回应相应的网页,用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

2)FTP协议(File Transfer Protocol,文件传输协议)

基于客户服务器模式,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端,提供交互式的访问 面向连接 ,使用TCP/IP可靠的运输服务,主要功能:减少/消除不同操作系统下文件的不兼容性

3)SMTP 协议(简单邮件传送协议,用户发信到邮件网关的传输协议)

面向连接 的Client/Server模式,
基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件

4)DNS协议(域名解析协议)

DNS是一种用以将域名转换为IP地址的Internet服务。

5)MQ协议(消息队列)

消息从发送者到接收者的方式也有两种。一种我们可以称为即时消息通讯,也就是说消息从一端发出后(消息发送者)立即就可以达到另一端(消息接收者),这种方式的具体实现就是我们已经介绍过的RPC(当然单纯的http通讯也满足这个定义);另一种方式称为延迟消息通讯,即消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端。 这个容器的一种具体实现就是消息队列。

6)JDBC协议
利用Tcp/Ip协议,是应用层的协议,和FTP,HTTP同一个级别。DBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

7)WebServices协议使用的是SOAP协议(imple object access protocol,简单对象访问协议)

SOAP协议= HTTP协议+ XML数据格式,Soap建立在http上,是用http传送xml而已;
SOAP是一种简单的基于XML的协议,它使应用程序通过HTTP来交换信息;
SOAP 用于应用程序之间的通信;
SOAP消息的构成:
① 必需的Envelope元素,可把此 XML 文档标识为一条SOAP消息;
②可选的Header元素,包含头部信息;
③必需的Body元素,包含所有的调用和响应信息;
④ 可选的Fault元素,提供有关在处理此消息所发生错误的信息;

猜你喜欢

转载自blog.csdn.net/daboluo521/article/details/80381921
今日推荐