应用层概述

应用层对应用程序的通信提供服务。

应用层协议定义:

  • 应用进程交换的报文类型(请求/响应)

  • 各种报文类型的语法,如报文中的各个字段及其详细描述。

  • 字段的语义,即包含在字段中的信息的含义。

  • 进程何时、如何发送报文,以及对报文进行响应的规则。

应用层的功能:文件传输、访问和管理;电子邮件;虚拟终端;查询服务和远程作业登录

应用层的重要协议:FTP、SMTP、POP3、DNS


网络应用模型

客户/服务器模型(Client/Server)

服务器:提供计算服务的设备。

​ 1、永久提供服务。

​ 2、永久性访问地址/域名。

客户机:请求计算服务的主机。

​ 1、与服务器通信,使用服务器提供的服务。

​ 2、间歇性接入网络。

​ 3、可能使用动态IP地址。

​ 4、不与其他客户机直接通信。

应用:Web、文件传输FTP、远程登录、电子邮件。

P2P模型(Peer-to-peer)

不存在永远在线的服务器

每个主机既可以提供服务,也可以请求服务。

任意端系统/结点之间可以直接通讯。

结点间歇性接入网络。

结点可能改变IP地址。

可拓展性好,网络健壮性强。


DNS 域名系统

Domain Name System

DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用 53 号端口。

域名

级别最低的域名写在最左边,级别最高的顶级域名写在最右边。

顶级域名(Top Level Domain,TLD)

1、国家顶级域名。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国。

2、通用顶级域名。常见的有“.com”(公司)、“.net”(网络服务机构)、“.org”(非营利性组织)和“.gov”(国家或政府部门)等。

3、基础结构域名。这种域名只有一个,即 arpa,用于反向域名解析,因此又称反向域名。

DNS服务器

根域名服务器

最高层次的域名服务器,所有的根域名服务器都知道所有的顶级域名服务器的IP地址。

不管是哪个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先要求助于根域名服务器。

因特网上有 13 个根域名服务器。

通常它并不直接把待查询的域名直接转换成IP地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器。

顶级域名服务器

负责管理在该顶级域名服务器注册的所有二级域名。

权限域名服务器

每台主机都必须在权限域名服务器处等登记。

权限域名服务器总能将其管辖的主机名转换为该主机的IP地址。

本地域名服务器

当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。


域名解析过程(递归查询&迭代查询)

域名解析是指把域名映射成为 IP 地址或把 IP 地址映射成域名的过程。

前者称为正向解析,后者称为反向解析。

为了提高DNS的查询效率,在域名服务器中广泛使用了高速缓存。


文件传输协议 FTP

文件传送协议(File Transfer Protocol):提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力。

FTP 是基于客户/服务器(C/S)的协议,使用TCP可靠的传输服务。

用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。

依照FTP协议提供服务,进行文件传送的计算机就是 FTP服务器。

连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。

FTP工作原理

FTP服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求

工作步骤如下:

1、打开熟知端口 21 (控制端口),使客户进程能够连接上。

2、等待客户进程发连接请求。

3、启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止。

4、回到等待状态,继续接收其他客户进程的请求。

控制连接和数据连接

FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21),一个是数据连接(端口号20)。

控制进程和数据传送进程都属于从属进程。

  • 控制连接在整个会话期间一直保持打开状态。

  • 数据连接在文件传送完毕之后会关闭。

数据连接有两种传输模式:主动模式 PORT 和 被动模式 PASV。

主动方式使用 TCP 20端口,被动方式由服务器和客户端自行协商决定(端口 > 1024)。


电子邮件

电子邮件系统的组成结构

1、用户代理(User Agent,UA)

用户与电子邮件系统的接口。

用户代理向用户提供一个很友好的接口来发送和接收邮件。

用户代理应当具有撰写、显示和邮件处理的功能。

通常情况下,用户代理是一个运行在PC上的程序,常见的有 Outlook、Foxmail。

2、邮件服务器

发送和接收文件,同时向发信人报告邮件传送的情况。

采用客户/服务器方式工作,必须能够同时充当客户和服务器。

3、邮件发送协议和读取协议

邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,如SMTP。

邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3。

电子邮件格式

多用途网际邮件扩充 MIME

由于SMTP只能传送一定长度的 ASCII 码,许多其他非英语国家的文字就无法传送,且无法传送可执行文件及其他二进制对象,因此提出了 多用途网络邮件扩充 MIME。

MIME 继续使用SMTP的格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

使电子邮件系统可以支持声音、图像、视频多种国家语言。

主要包括以下三部分:

1、5个新的邮件首部字段,包括 MIME 版本、内容描述、内容表示、传送编码和内容类型。

2、定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

3、定义了传送编码,可对任何内容格式进行了转换,而不会被邮件系统改变。

SMTP

简单邮件传送协议(Simple Mail Transfer Protocol,SMTP)是一种提供可靠且有效的电子邮件传输的协议。

规定了在两个相互通信的SMTP进程之间应如何交换信息。

负责发送邮件的SMTP进程就是SMTP客户,负责接收邮件的进程就是SMTP服务器。

SMTP使用TCP连接,端口号为25。

SMTP通信有以下三个阶段:1、连接建立 2、邮件传送 3、连接释放

SMTP的缺点:

1、SMTP不能传送可执行文件或者其他二进制对象。

2、SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字。

3、SMTP服务器会拒绝超过一定长度的邮件。

POP3

邮局协议(Post Office Protocol,POP)是一个非常简单但功能有限的邮件读取协议。

POP 使用客户/服务器的工作方式,在传输层使用TCP,端口号为110。

两种工作方式:1、下载并保留(在服务器)2、下载并删除。

因特网报文存取协议 IMAP

基于万维网的电子邮件


万维网(WWW)

万维网(World Wide Web,WWW)是一个分布式的、联机式的信息存储空间,

在这个空间中:一样有用的事物称为一样 “资源”,并由一个全域“统一资源定位符”(URL)标识。

用户通过点击超链接(http://www.baidu.com)获取资源,这些资源通过“超文本传输协议(HTTP)传送给使用者。

万维网以“客户/服务器方式工作,用户使用的浏览器就是万维网客户程序,万维网文档所驻留的主机运行服务器程序。

万维网使用超文本标记语言 HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。

超文本传输协议HTTP

HTTP协议的特点:

1、HTTP是无状态的。

2、HTTP采用TCP作为传输层协议,但HTTP协议本身是无连接的(通信双方在交换HTTP报文之前不需要先建立HTTP连接)。

3、HTTP的连接方式分为持久连接(流水线、非流水线)【HTTP/1.1支持】和 非持久连接。

对于非持久连接

每个网页元素对象的传输都需要单独建立一个TCP连接。

请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间RTT(一个RTT用于TCP连接,另一个RTT用于请求和接收文档)。

每个对象引用都导致 2xRTT的开销,此外每次建立新的TCP连接都要分配缓存和变量,使万维网服务器的负担很重。

对于持久连接

指万维网服务器在发送响应后仍然保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文。

对于非流水线方式,客户在收到前一个响应后才能发出下一个请求,服务器发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。

HTTP/1.1的默认方式是使用流水线的持久连接,这种情况下,客户每遇到一个对象引用就立即发出一个请求,因而客户可以逐个地连续发出对各个引用对象的请求。所有引用的对象共计经历1个RTT延迟,提高效率。

HTTP的报文结构

HTTP是面向文本的,因此报文种的每个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。

  • 请求报文:从客户向服务器发送的请求报文。
  • 响应报文:从服务器到客户的回答。

CR表示回车,LF表示换行。

状态码:

1xx表示通知信息的,如请求收到了或正在处理。

2xx表示成功,如接受或知道了。

3xx表示重定向,如要完成请求还必须采取进一步的行动。

4xx表示客户的差错,如请求中有错误的语法或不能完成。

en">响应报文:从服务器到客户的回答。

CR表示回车,LF表示换行。

状态码:

1xx表示通知信息的,如请求收到了或正在处理。

2xx表示成功,如接受或知道了。

3xx表示重定向,如要完成请求还必须采取进一步的行动。

4xx表示客户的差错,如请求中有错误的语法或不能完成。

5xx表示服务器的差错,如服务器失效无法完成请求。

王道计算机网络 应用层整理 超详细版相关推荐

  1. 王道计算机网络 网络层整理 超详细版

    网络层功能概述 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据报. 1.路由选择与分组转发 2.异构网络互联 3.拥塞控制 数据交换方式 电路交换 在进行 ...

  2. 王道计算机网络 数据链路层整理 超详细版

    数据链路层的基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传 ...

  3. 王道计算机网络 计算机网络体系结构整理 超详细版

    计算机网络的概念 计算机网络是 互连的.自治的 计算机系统的集合. 互连:互联互通 自治:无主从关系 计算机网络是一个将分散的.具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实 ...

  4. 王道计算机网络 传输层整理 超详细版

    传输层是主机才有的层次. 传输层的功能 1.传输层提供进程和进程之间的逻辑通信.(网络层提供主机之间的通信) 逻辑通信:传输层之间的通信好像是沿着水平方向传送数据,但事实上这两个传输层之间并没有一条水 ...

  5. 王道计算机组成原理 物理层整理 超详细版

    数据通信 通信的目的是传送信息. 数据:传送信息的实体,通常是有意义的符号序列. 信号:数据的电气/电磁的表现,是数据在传输过程中的存在形式. ​ 数字信号:代表消息的参数取值是离散的. ​ 模拟信号 ...

  6. 计算机财务管理复利现值的公式,中级《财务管理》公式大全汇总(超详细版)...

    原标题:中级<财务管理>公式大全汇总(超详细版) 在学习财务管理中,大量公式的记忆就花了我们很多时间,但是如果学习整理过的公式,就会方便很多,所以我们对财务管理中常用的公式进行了系统的整理 ...

  7. Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版

    Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版 一.资源 Linux下的Redis的下载地址 二.安装与测试 上传至自己的Linux平台 解压安装包 tar ...

  8. Hadoop——MapReduce相关eclipse配置及Api调用(图文超详细版)(内含遇到错误的解决方法)

    一.前情提要 前面两篇文章我们已经成功搭建了Hadoop以及安装了Hive,Sqoop和Mysql数据库,现在我们就来利用Hadoop尝试做一个小实战,实现单词统计! 还没有搭建Hadoop成功的同学 ...

  9. Docker超详细版教程通俗易懂 -之- 入门篇

    前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...

最新文章

  1. 拨出网线后,网卡IP丢失
  2. Delphi控件之---UpDown以及其与TEdit的配合使用(比如限制TEdit只能输入数字,还有Object Inspector之组件属性的介绍)...
  3. 前序,中序,后序遍历
  4. arduino 中断例程
  5. powerbi visualization
  6. 为什么 c = tf.matmul(a, b) 不立即执行矩阵乘法?
  7. 三菱mode bus tcp通讯_绍兴三菱MR-J4-70B
  8. 在Linux下基于路由策略的IP地址控制
  9. Mac OS使用技巧之四:修改打开不同格式视频的默认播放器
  10. 《数字图像处理》实验五
  11. 金士顿u盘数据恢复软件推荐
  12. 水星网卡 linux驱动,水星网卡驱动下载_硬件驱动下载
  13. 第五章 区块链怎么玩 [25]
  14. 英语常见词根词缀大全(一)
  15. Linux 命令 大结
  16. python图片鉴黄_深夜,使用NSFW尝试一下图片鉴黄
  17. 与孔子同世之闻人少正卯
  18. 第一次实习面试感受----苦逼程序员生活初体验
  19. 嵌入式Linux红外遥控,一个简单的IAL分析(红外遥控)(转)
  20. python的return详解。

热门文章

  1. LeetCode 1124. 表现良好的最长时间段(单调栈/哈希)
  2. sklearn 机器学习 Pipeline 模板
  3. LeetCode MySQL 1285. 找到连续区间的开始和结束数字(dense_rank连续排名)
  4. LeetCode 646. 最长数对链(区间 贪心)
  5. 数据结构--位图 BitMap
  6. 贪心应用--汽车加油次数问题
  7. java上机题四取三排列_java语言特性概述
  8. python模拟qq空间登录_python selenium模拟登录163邮箱和QQ空间
  9. flutter text 最大长度_Flutter小技巧之TextField换行自适应
  10. Java中用JS那些_java web中javascript主要用哪些?