应用层协议

文章目录

  • 应用协议
    • 应用层协议概要
    • 远程登录
    • 文件传输
    • 电子邮件协议SMTP
    • WWW

应用协议

应用层协议概要

到此为止所介绍的IP协议、TCP协议以及UDP协议是通信最基本的部分,它们属于OSI参考模型中的下半部分。

本文章开始介绍应用协议,主要是指OSI参考模型中第5层、第6层、第7层上半部分的协议,如下图:
在这里插入图片描述
应用协议的定义
利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等。能够让这些应用进行特定通信处理的正是应用协议。

TCP和IP等下层协议是不依赖于上层应用类型、适用性非常广的协议。而应用协议则是为了实现某种应用而设计和创造的协议。

例如,远程登录等应用经常使用的TELNET协议,它的支持基于文字的命令与应答,通过命令可以执行各种各样的其它应用。

应用协议与协议的分层
网络应用由不同的用户和软件供应商开发而成。为了实现网络应用的功能,在应用之间进行通信时将其连接的网络协议是非常重要的。应用之间交互的信息叫做消息。应用协议定义这些消息的格式以及使用这些消息进行控制或操作的规则。设计师和开发人员根据所开发模块的功能和目的,可以利用现有的应用协议,也可以自己定义一个新的应用协议。

应用可以直接享用传输层以下的基础部分。因为开发者只要关心选用哪种应用协议、如何开发即可,而不必担心应用中的数据该以何种方式发送到目标主机等问题。这些也是得益于网络层的功劳。

应用协议相当于是OSI中第5,6,7层的协议
TCP/IP的应用层涵盖了OSI参考模型中第5,第6,第7层的所有功能,不仅包含了管理通信连接的会话层功能、转换数据格式的表示层功能,还包括与对端主机交互的应用层功能在内的所有功能。

远程登录

什么叫做远程登录?实现从自己的本地计算机登录到网络另一端计算功能的应用就叫做远程登录。通过远程登录到通用计算机或UNIX工作站以后,不仅可以直接使用这些主机上的应用,还可以对这些计算机进行参数设置。远程登录主要使用TELNET和SSH两种协议。

TELNET
TELNET利用TCP的一条连接,通过这一条连接向主机发送文字命令并在主机上执行。本地用户好像直接与远端主机内部的Shell相连着似的,直接在本地进行操作。

TELNET可以分为两类基本服务。一是仿真终端功能,二是协商选项机制。如下图:
在这里插入图片描述

TELNET经常用于登录路由器或高性能交换机等网络设备进行相应的设置。通过TELNET登录主机或路由器等设备时需要将自己的登录用户名和密码注册到服务端。

选项
TELNET中除了处理用户所输入的文字外,还提供选项的交互和协商功能。例如,为实现仿真终端(NVT,Network Virtual Terminal)所用到的界面控制信息就是通过选项功能发送出去的。而且,乳腺癌他所示TELNET中的行模式或透明模式两种模式的设置,也是通过TELNET客户端与TELNET服务端之间的选项功能进行设置的。
在这里插入图片描述

SSH
SSH是加密的远程登录系统。TELNET中登录时无需输入密码就可以发送,容易造成通信窃听和非法入侵的危险。使用SSH后可以加密通信内容。即使信息被窃听也无法破解所发送的密码、具体命令以及命令返回的结果是什么。

SSH还包括很多非常方便的功能:

  • 可以使用更强的认证机制。
  • 可以转发文件。
  • 可以使用端口转发功能。

端口转发是指将特定端口号所收到的消息转发到特定的IP地址和端口号码的一种机制。由于经过SSH连接的那部分内容被加密,确保了信息安全,提供了更为灵活的通信。

在这里插入图片描述

文件传输

FTP是在两个相连的计算机之间进行文件传输时使用的协议。
FTP是通过怎样的机制进行文件传输的呢?它使用两条TCP连接:一条用来控制,另一条用于数据(文件)的传输。
如下图:
在这里插入图片描述

电子邮件协议SMTP

在这里插入图片描述
提供电子邮件服务的协议叫做SMTP(Simple Mail Transfer Protocol)。SMTP为了实现高效发送邮件内容,在其传输层使用了TCP协议。

早期电子邮件是在发送端主机与接收端主机之间直接建立TCP连接进行邮件传输的。

MIME
MIME:Multipurpose Internet Mail Extensions,广泛用于互联网并极大地扩展了数据格式,还可以用于WWW和NetNews中。

很长一段时间里,互联网中的电子邮件只能处理文本格式的邮件。不过现在,电子邮件所能发送的数据类型已被扩展到MIME,可以发送静态图像、动画、声音、程序等各种形式的数据。鉴于MIME规定了应用消息的格式,因此在OSI参考模型中它相当于第6层表示层。

MIME基本上由首部和正文(数据)两部分组成。首部不能是空行,因为一旦出现空行,其后的部分将被视为正文(数据)。如果MIME首部的“Content-Type”中指定“Multipart/Mixed”,并以“boundary=”后面字符作为分隔符,那么可以将多个MIME消息组合成为一个MIME消息。这就叫做multipart。即,各个部分都由MIME首部和正文(数据)组成。

“Content-Type”定义了紧随首部信息的数据类型。以IP首部为例,它就相当于协议字段。下表是一些具有代表性的“Content-Type”,如下图:
在这里插入图片描述
在这里插入图片描述

WWW

互联网的蓬勃发展
万维网(WWW,World Wide Web)是将互联网中的信息以超文本(超文本用以显示文本及与文本相关的内容)形式展现的系统。也叫做Web。可以显示WWW信息的客户端软件叫做Web浏览器(有时也简称浏览器)。目前人们常用的Web浏览器包括微软的Internet Explorer、Mozilla基金会的Firefox、Google公司的Google Chrome、Opera软件公司的Opera以及Apple公司的Safari等。

借助浏览器,人们不需要考虑该信息保存在哪个服务器,只需要轻轻点击鼠标就可以访问页面上的链接并打开相关信息。

在这里插入图片描述
WWW基本概念
WWW定义了3个重要的概念,它们分别是访问信息的手段与位置(URI,Uniform Resource Identifier)、信息的表现形式(HTML,HyperText Markup Language)以及信息转发(HTTP,HyperText Transfer Protocol)等操作。

URI
URI你就可以理解成平常的URL,主要是用来表示资源路径的。
在这里插入图片描述
其中主机名表示域名或IP地址,端口号表示传输端口号。省略端口号时,则表示采用http的默认端口80。路径是指主机上该信息的位置。

这种表示方法可以唯一地标识互联网中特定的数据。不过,由于用http方案展现的数据随时都有可能发生变化,所以即使将自己喜欢的页面的URI(URL)记住,也不能保证下次是否还能够访问到该页。

HTML
HTML是记述Web页的一种语言(数据格式)。它可以指定浏览器中显示的文字、文字的大小和颜色。此外,不仅可以对图像或动画进行相关设置,还可以设置音频内容。

HTTP
当用户在浏览器的地址栏输入所要访问Web页的URL以后,HTTP的处理就会开始。HTTP中默认使用80端口。它的工作机制,首先是客户端向服务器的80端口建立一个TCP连接,然后在这个TCP连接上进行请求和应答以及数据报文的发送。
在这里插入图片描述
HTTP中常用的有两个版本,一个HTTP1.0,另一个是HTTP1.1。在HTTP1.0中每一个命令和应答都会触发一次TCP连接的建立和断开。而从HTTP1.1开始,允许在一个TCP连接上发送多个命令和应答(这种方式叫做长连接Keep-alive)。由此,大量地减少了TCP连接的建立和断开操作,从而也提高了效率。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Cookie
Web应用中为了获取用户信息使用一个叫做Cookie的机制。Web服务器用Cookie在客户端保存信息(多为“用户名”和“登录名”等信息)。Cookie常被用于保存登录信息或网络购物中放入购物车的商品信息。

从Web服务器检查Cookie可以确认是否为同一对端的通信。从而存放于购物车里的商品信息就不必要再保存到服务器里面了。

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

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

相关文章

Leetcode—191.位1的个数【简单】

2023每日刷题&#xff08;二十七&#xff09; Leetcode—191.位1的个数 实现代码 int hammingWeight(uint32_t n) {int ans 0;for(int i 0; i < 32; i) {if(n & ((long long)1 << i)) {ans;}}return ans; }运行结果 翻转比特1思路 就解法一的代码实现来说&am…

Reeds-Shepp曲线

汽车都有一个最小转向半径&#xff0c;Reeds-Shepp曲线由几段半径固定的圆弧和一段直线段拼接组成&#xff0c;而且圆弧的半径就是汽车的最小转向半径。从起始点到目标点的路径长度是指汽车中心运动轨迹的长度&#xff0c;也就是所有圆弧的弧长和直线段的长度之和。 当环境中…

recycleView(三)动态修改背景色

效果图 1.关键代码 1. // 定义一个变量来记录滑动的距离var scrollDistance 0// 在RecycleView的滑动监听器中更新滑动的距离binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {override fun onScrolled(recyclerView: RecyclerView, …

C++算法:矩阵中的最长递增路径

涉及知识点 拓扑排序 题目 给定一个 m x n 整数矩阵 matrix &#xff0c;找出其中 最长递增路径 的长度。 对于每个单元格&#xff0c;你可以往上&#xff0c;下&#xff0c;左&#xff0c;右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外&#xff08;即不允…

写一下关于部署项目到服务器的心得(以及遇到的难处)

首先要买个服务器(本人的是以下这个) 这里我买的是宝塔面板的,没有宝塔面板的也可以自行安装 点击登录会去到以下页面 在这个界面依次执行下面命令会看到账号和密码和宝塔面板内外网地址 sudo -s bt 14点击地址就可以跳转宝塔对应的内外网页面 然后使用上述命令提供的账号密…

C语言 预处理详解

目录 1.预定义符号 2.#define 2.1#define 定义标识符 2.2#define 定义宏 2.3#define 替换规则 2.4#和## 2.4.1# 的作用 2.4.2## 的作用 2.5 带有副作用的宏参数 2.6宏和函数的对比 对比 **2.7内联函数 2.8命名约定 3.#undef **4.命令行定义 5.条件编译 常…

ElasticSearch中常见的分词器介绍

文章目录 ElasticSearch中常见的分词器介绍前言分词器的作用如何指定分词器分词器的组成分词器的类型标准分词器空格分词器简单分词器关键词分词器停用词分词器IK分词器NGram分词器正则匹配分词器语言分词器自定义分词器 ElasticSearch中常见的分词器介绍 前言 ElasticSearch是…

【C++】stack,queue和deque

stack的介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供一组特定 的成…

jupyter notebook中markdown改变图像大小

文章目录 &#x1f56e;原始图像&#x1f56e;改变图像大小&#x1f56e;使图像靠左 在 jupyter notebook中&#xff0c;导入的图片过大&#xff0c;想要改变图像的大小 &#x1f56e;原始图像 &#x1f56e;改变图像大小 复制小括号里面的内容到src后面&#xff0c;满足<…

Django的ORM操作

文章目录 1.ORM操作1.1 表结构1.1.1 常见字段和参数1.1.2 表关系 2.ORM2.1 基本操作2.2 连接数据库2.3 基础增删改查2.3.1 增加2.3.2 查找2.3.4 删除2.3.4 修改 1.ORM操作 orm&#xff0c;关系对象映射&#xff0c;本质翻译的。 1.1 表结构 实现&#xff1a;创建表、修改表、…

【ElasticSearch】学习使用DSL和RestClient编写查询语句

文章目录 DSL和RestClient的学习前言1、DSL查询文档1.1 查询分类1.2 全文检索查询1.21 全文检索概述1.2.2 基本使用 1.3 精确查询1.3.1 term查询1.3.2 range查询 1.4 地理坐标查询1.4.1 geo_bounding_box查询1.4.2 geo_distance查询 1.5 复合查询1.5.1 常见相关性算法1.5.2 算分…

WebRTC简介及使用

文章目录 前言一、WebRTC 简介1、webrtc 是什么2、webrtc 可以做什么3、数据传输需要些什么4、SDP 协议5、STUN6、TURN7、ICE 二、WebRTC 整体框架三、WebRTC 功能模块1、视频相关①、视频采集---video_capture②、视频编解码---video_coding③、视频加密---video_engine_encry…

SpringBoot系列-2 自动装配

背景&#xff1a; Spring提供了IOC机制&#xff0c;基于此我们可以通过XML或者注解配置&#xff0c;将三方件注册到IOC中。问题是每个三方件都需要经过手动导入依赖、配置属性、注册IOC&#xff0c;比较繁琐。 基于"约定优于配置"原则的自动装配机制为该问题提供了一…

Unity中全局光照GI的总结

文章目录 前言一、在编写Shader时&#xff0c;有一些隐蔽的Bug不会直接报错&#xff0c;我们需要编译一下让它显示出来&#xff0c;方便修改我们选择我们的Shader&#xff0c;点击编译并且展示编译后的Shader后的内容&#xff0c;隐蔽的Bug就会暴露出来了。 二、我们大概回顾一…

Python 潮流周刊#26:requests3 的现状

△点击上方“Python猫”关注 &#xff0c;回复“1”领取电子书 你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。本周刊开源&#xff0c;欢迎投稿[1]。另有电报频道[2]作为副刊&#xff0c;补充发布更加丰富的资讯。 &#…

每天一点python——day66

#每天一点Python——66 #字符串的分隔 #如图&#xff1a; #方法①split()从左开始分隔&#xff0c;默认空格为分割字符&#xff0c;返回值是一个列表 shello world jisuanji#首先创建一个字符串 list1s.split() print(list1)#输出结果是&#xff1a;[hello, world, jisuanji]注…

No179.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

python实现炒股自动化,个人账户无门槛量化交易的开始

本篇作为系列教程的引子&#xff0c;对股票量化程序化自动交易感兴趣的朋友可以关注我&#xff0c;现在只是个粗略计划&#xff0c;后续会根据需要重新调整&#xff0c;并陆续添加内容。 股票量化程序化自动交易接口 很多人在找股票个人账户实现程序化自动交易的接口&#xff0…

【笔记】结合P02项目——maven继承与聚合

maven的继承关系 P02项目大概是这个样子&#xff0c;下图展示的是其父工程 父工程配置了parent依赖springb-boot-starter-parent&#xff0c;子工程配置其parant为父工程 子工程引用common子工程 maven的版本锁定 管理子工程的版本号问题 父工程添加dependencyManageMent…

【Docker】Docker 网络

引言 Docker是一个开源的应用容器引擎&#xff0c;它允许开发者将应用及其依赖打包到一个可移植的容器中&#xff0c;然后发布到任何流行的Linux机器或Windows机器上&#xff0c;也可以实现虚拟化。Docker的主要优势之一是其网络功能&#xff0c;而网络功能的核心就是网络驱动…