[计算机网络]-应用层

应用层概述

参考模型中的各层一般都满足“应用下层的服务,为上层提供服务”,但应用层较为特殊,因为应用层没有上层,所以应用层直接为模型外的用户提供服务,应用层是最靠近用户的一层

应用层特点

  • 没有应用层,就没有网络通信支持
  • 参考模型中唯一的一层,不需为它的上层服务
  • 它向参考模型之外的用户提供服务
  • 网络应用程序可被分为两大类
    • 直接网络应用程序 Browser , e-mail ,FTP , Telnet
    • 间接网络应用程序 Word , resource manager , (via Redirector)

重定向器(Redirector)

  • 置于应用中的一种小软件
  • 是透明的
  • 间接网络应用都是通过重定向器实现网络功能

主要的直接应用

传统经典的应用

DNS,电子邮件E-mail,万维网World wide web,文件传输ftp,远程登陆telnet

新应用

微信,多媒体,App


域名系统DNS概述

在互联网中,直接使用IP地址作为机器的绝对地址是行不通的,具体原因有2点:1.计算机可能常常地更换IP地址,所以,通过IP地址去访问某台机器就会发生问题。2.IP地址难于记忆,且毫无规律。因此,我们只需要通过一个有规律性且永久不会更换的名字来标识某个IP地址,就可以解决上述问题,这就是我们所说的域名

但是在传输数据的过程中,或是为数据加上MAC地址,或是为文件加上IP地址,却从来没有为数据加上过域名,因此我们必须使用域名系统DNS,来将一个个名字映射到对应的IP地址

ARPANET时代,有一个文件hosts.txt,列出了当时网络上所
有的主机和它们对应的IP地址(当网络很小的时候,可以工
作得很好),这份文件如今依然存在于电脑的
“C:\Windows\System32\drivers\etc\hosts” 路径下。但是随着互联网发展,用一份文件映射所有IP地址和域名变得不现实,因此才产生了如今的域名系统

域名系统DNS

(Domain Name System)

DNS是分层次的,基于域的命名方案,且采用了分布式数据
库系统来实现

DNS系统

DNS首先将整个互联网分成250个顶级域,每个顶级域被分为多个子域,子域仍可以继续划分出更多子域,所有这些域最终将会形成一棵树,树上的叶子代表没有子域的域

顶级域由ICANN负责管理,顶级域分为两类:通用域(.com,.edu…)以及国家域(.jp,.cn,.nl…)

顶级域名由ICANN委任的注册机构负责运行

顶级域名

中国(.cn)二级域名

域名含义域名含义域名含义
ac研究机构gd广东bj北京
co商业公司gx广西tj天津
or非盈利性组织sc四川eb河北
net提供网络服务的单位gz贵州sx山西
edu教育和科研单位yn云南nm内蒙古
go政府机构xz西藏en河南
ha海南sn陕西ln辽宁
ah安徽gs甘肃jl吉林
jx江西qh青海hl黑龙江
sd山东nx宁夏sh上海
fj福建xj新疆js江苏
hn湖南hb湖北zj浙江
(获得一个二级域名无需到ICANN申请),只需要到运行顶级域名的注册机构去检查带申请名字是否可用,并且不是别人商标即可申请

域名(Domain Names)

每个域的名字是:

从它向上到根(未命名)的路径,各个部分间用圆点隔开

  • 域名可以是绝对的,也可以是相对的,绝对域名总是以圆点
    结束(如: eng.sun.com. )
    • 相对域名必须在一定的上下文环境中被解释出来才有意义,从而唯一地确定其真实的含义
    • 绝对域名和相对域名都引用了域名树中一个特定的节点,以及它下面的所有节点
  • 域名是大小写无关的( case insensitive )
  • 各组成部分的名字最多有 63 个字符长,整个路径不超过 255个字符
  • 没有规则限制同时在两个或多个顶级域名下的注册 (如:
    sony.com and sony.nl)—这可能导致域名抢注
  • 每个域自己控制它下面的域(子域)的划分
    • 例如:日本的 ac.jp 和 co.jp 分别对应于 edu 和com
    • 荷兰却不这样区分,它把所有的都放在nl之下
    • 要创建一个新的域,创建者必须得到该新域的上级域的许可,一旦创建成功,该新域可以创建子域,而无需征得上级域的同意
  • 域名遵循的是组织的边界而不是物理网络的边界

资源记录

每个域无论是单主机域还是顶级域,都有一组跟它相关联的资料记录,当一个解析器将域名传递给DNS时,DNS返回的是与这个资源相关联的资源记录,所以DNS的主要功能,是将域名映射到资源记录上去

资源记录的组成

  • 域名(Domain name):
    • 指出这条记录适用于哪个域,通常每个域有多条记录,而数据库则保存了多个域的信息
    • 域名字段是匹配查询条件的主要关键字
    • 记录在数据库中的顺序是无关紧要的
  • 生存期(Time to Live):指示该条记录的稳定程度
    • 极稳定的信息会被分配一个很大的值,如 86400 (一天时间的秒数)
    • 非常不稳定的信息会被分配一个很小的值,如60 (1分钟)
  • 类别(Class):对于互联网信息,它总是 IN
  • 类型(Type):指出了这是什么类型的记录(A标识IPv4,AAAA表示IPv6…)
  • 值(Value):类型对应的值,可以是数字,可以是ASCII码等等

域名服务器

资源记录存储在资源服务器中,整个互联网需要多台而不是一台域名服务器,DNS名字空间被分割成不相交的区域(zones),每个区域包含域名树的一部分,也包含一台主域名服务器( primary name server )。

主域名服务器从自己硬盘的一个文件中读取信息,次域名服
务器( secondary name servers )分享这些信息

根域名服务器

最重要的域名服务器;存储所有顶级域名的名字和IP
  • 无论是哪个本地域名服务器,无论何时,只要它无法回答一个查询请求,它都会向根域服务器求救 (for help)
  • 全球有 13 根域服务器,它们的名字分别是a to m(前13 个字母)
  • 全球还有多台根域名服务器的镜像,以便各个国家就近找到一个根域名服务器救急

电子邮件

电子邮件系统通常由两部分组成
  • 用户代理(UA):让用户能够阅读和发送邮件
    • 本地程序,提供命令行或图形界面,让用户和电子邮件系统交互
  • 消息传输代理 (MTA):将消息从源端送到目标端
    • 通常是系统守护进程,即运行在后台的进程,在系统中传递电子邮件,又被称为邮件服务器

电子邮件的体系结构

电子邮件体系结构

用户首先在UA编辑好邮件然后提交,接下来邮件会被提交到发方的邮件传输代理(MTA),接下来发方的邮件传输代理将会把邮件传输到收方的MTA上,最终邮件将被从收方的MTA传送到收方的用户代理

用户代理-UA

UA通常是一个程序,一般称为电子邮件阅读器,常见的UA有: Gmail,outlook,foxmail…

用户代理完成的功能

  • 入境邮件的显示
  • 归档:垃圾邮件、某重要人物的邮件
  • 邮件处置:回复、转发、删除、保存……
  • 自动响应
  • 签名块
  • 邮件列表(mailing-list):本地、传输代理

电子邮件消息格式

ASCII 电子邮件信息通常采用 RFC 822
  • 消息由一个基本的信封(RFC821)、一些头域、一个空行和消息体组成。
  • 每个头域(逻辑地)由一行ASCII文本组成,包括域名、一个冒号,对于大多数头域来说,还包括一个值
  • RFC822是几十年前设计的,没有区分信封域和头域
  • 虽然 RFC 5322作了修正,但是因为RFC822已经广泛使用,完全重新设计是不可能的
  • 用户可以发明新的消息头以供自己私人使用,只要这些消息头以 X-开头

消息头

RFC 822

信头字段目的
To收信人地址
CC抄送:另一个收信人地址
BCC密送:收信人地址,但其它收信人看不到这个收信人的地址。
From邮件作者
Sender发信人
Received沿线各转运代理增加的线路
Return path回邮地址

RFC 5322新增

信头字段目的
Date发信日期
Reply-To回邮地址
Subject主题
Comments备注
Keywords关键字,用来进一步搜索邮件
In-Reply-To被当前邮件回复的邮件的ID
References几乎同In-Reply-To一样
Encrypted加密邮件的加密类型

MIME 多用途互联网邮件扩展

(the Multipurpose Internet Mail Extensions)

RFC5322无法处理带有重音符的语言(如法语)、非拉丁字母(如俄语)、不带字母的语言(如汉语,日语)、完全不包含文本的消息(如视频)的邮件,为此提出了MIME来解决此问题

MIME的基本思想是继续使用 RFC822格式,但是在消息体中
增加了结构,且为非ASCII消息定义了编码规则
– 由于没有偏离 RFC822,MIME消息可以使用现有的程序和协议来发送
– 只有接收和发送的程序必须要改变

MIME增加的消息头
HeaderMeaning
MIME-Version标识MIME版本
Content-Description描述邮件包含的内容
Content-ID唯一标识符
Content-Transfer-Encoding传输过程中编码方式
Content-Type邮件内容的类型和格式(目前定义了七种类型:文本,图片,视频,音频,应用…每个类型还有一个或多个子类型)

简单邮件传输协议SMTP

(Simple Mail Transfer Protocol)

上文讲述了如何编写邮件,接下来进行的就是邮件的传输,邮件的传输通过简单邮件传输协议实现,这是一个简单的 ASCII 协议

源机与目标机(SMTP守护进程在监听)的25端口建立TCP连接
。如果消息不能被投递,则向消息的发送方返回一个错误报告(包含了不能投递消息的第一部分)

SMTP传输步骤

  1. 连接建立 在端口 25
  2. 数据交换
    • 客户机(作为客户)等待服务器(作为服务器)首先开始通话
    • 服务器首先发送一行文本,给出它自己的标识,并且告诉客户机是否已准备好接收邮件
    • 如果服务器没有准备好,则客户机释放连接,以后再重试
    • 如果服务器愿意接收电子邮件,则客户机申明发信人和收信人
    • 如果服务器确实存在这样的收信人,则服务器指示客户可以发送了
    • 客户发送消息,服务器回发确认
  3. 连接释放

SMTP存在的问题

  • 没有认证,导致容易接收垃圾邮件
  • 传输的是ASCII消息而不是二进制数据,需要编码,效率低下
  • 邮件是明文,涉及邮件安全问题

通过上述流程不难发现,保证邮件发送成功的前提是发送端与接收端成功建立TCP连接,这就需要接收端与发送端设备需要在发送时都保持开机状态,但这是不现实的,收方不可能一直在线,而如果收方不在线,发方就无法发送邮件

最后的投递

为解决上述问题,就需要在邮件服务提供商ISP的一台机器上运行一个消息传输代理(message transferagent); 这台机器可以一天24小时运行,随时都可以接收邮件

然后设计一个协议,允许用户在上线后和消息传输代理MTA联系,然后把邮件从ISP那里拷贝到用户,早期使用的协议是POP-3协议,即邮局协议3版本,改进版本为IMAP。协议的作用范围在接收端用户和代理服务器之间

POP3

  • 当用户启动邮件阅读器的时候,POP3开始工作
  • 用户呼叫ISP(除非已有一个连接),然后与MTA在110端口
    建立TCP连接
  • 一旦连接建立, POP3协议按顺序经历三种状态
    • 授权(Authorization)处理用户登录的过程
    • 事务(Trnsactions)用户收取电子邮件,并将邮件标记为删除
    • 更新(Update)将标为删除的电子邮件删除

POP3协议不适合应用于移动端收发邮件,因为在移动端收发邮件会导致POP3将邮件标记为删除,无法在其他客户端查看,这个问题,在IMAP中得到了解决

IMAP

  • IMAP 假设所有的电子邮件都永久地保存在服务器上的多个邮箱中(解决了移动端删除的问题)
  • IMAP 提供了阅读消息或阅读部分消息的机制
  • IMAP 服务器在143端口监听而不是110端口
  • IMAP 也可以接收外发的邮件 (这点跟 POP3不同)
  • IMAP 有更多的命令,更复杂

WebMail优点

  • 无需安装专用的UA,只要能够上网登录浏览器,就可以使用
  • 无需配置,打开浏览器即可
  • 收发双方无需同时在线,只需通过浏览器登录各自代理服务器,使用HTTP
  • 两个代理服务器之间邮件的传递仍然采用SMTP

万维网WWW

Web即万维网,是World Wide Web的简称。

Web 是web网页的集合( collection of web pages),每个页面包含了指向其他页面的链接(超级链接),浏览器 –显示阅读web页面的程序

组成部分

  • 资源,web页面,Resource (html)
  • 统一资源定位器:URL
  • 通信协议HTTP

客户端

Web页面由 URL (Uniform Resource Locators)标识 (i.e.http://www.abcd.com/products.html)
  • 协议:http
  • 页面所在的机器的DNS 域名:www.abcd.com
  • 包含web页面的文件的名字:products.html
常见协议

应用层协议

当用户单击一个超级链接(URL)时:

  • 浏览器检查URL (读取浏览器的输入)
  • 浏览器向 DNS 服务器询问域名的IP地址
  • DNS 返回对应的 IP 地址
  • 浏览器和Web服务器建立TCP 连接(在端口 80)
  • 浏览器发送请求,要求获取文件products.html
  • Web服务器返回被请求的文件
  • TCP 连接被释放
  • 浏览器解释显示下载到本地的文件

一个web页面可能由PDF文件、GIF图标、MPEG视频、MP3歌
曲,或者其他数百种文件类型的任何一种组成

浏览器可能在解释这些文件的时候会遇到问题,不是让浏览
器越来越大,而是采用了一个更加通用的解决方案

当服务器返回一个页面,它通常也返回一些有关该页面的附
加信息,包含了页面的MIME类型,以决定如何显示该页面

有两种可能的扩展浏览器的方式

Plug-ins:代码模块,运行在浏览器的内部

Helper applications:独立的程序,浏览器只是把参数传入

两种扩展方式各有优劣,插件可以增强浏览器的功能,应用则不能,插件启动时更加迅速,但是当插件过多就会占用过多资源,导致浏览器使用缓慢

服务器端

典型的web 服务器的操作:

  • 接收来自客户的TCP连接
  • 获取所需文件的名字
  • 从本地磁盘上获取文件(静态页面)
  • 将文件返回给客户
  • 释放TCP连接

改进

  • 在内存维护一个缓存,保存最近用过的 n个文件,避免每次查找文件都要读取磁盘
  • 采用多线程服务器

多线程web服务器

如上图,客户的TCP连接中止于前端,所以应答也必须经过前端,一种解决的方法是TCP移交,TCP端点被传递给处理节点 ,所以应答可以直接向客户端发送 。

代理服务器-万维网高速缓存

代理服务器(proxy server)又称为万维网高速缓存(Web cache),它代表浏览器发出 HTTP 请求。
万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。
当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按 URL 的地址再去因特网访问该资源。

如果没有代理服务器,假定在内网内的不同客户端请求同一个数据,就需要同时大量传送完全相同的内容,浪费带宽资源。如果有代理服务器,在第一个客户端查询相关数据内容后,数据就暂时被保存在服务器中,后续客户端如果再次请求这组数据就可以直接从代理服务器获取,甚至不需要进入公网,十分高效快捷

Cookie

  • 一个小于4kB的命名串
  • 当客户请求时,web服务器除了应答外,附送一个cookie,存
  • 储存在客户机磁盘
  • 客户再访问同一个web服务器时,同时发送cookie
  • 服务器辨识出该用户,并得到它关心的一些信息
问题在于可能暴露客户隐私数据,存在安全隐患

其他应用

应用层是开放的,以TCP/IP为核心,向两端开放。应用层出不穷文件传输FTP,远程登录TELNET,多媒体,微信……

文件传输(FTP)

一种可靠的面向连接的服务,采用TCP在支持FTP的系统间传
输文件,它支持双向二进制文件和ASCII文件传输。

上载:

将文件从自己的计算机中拷贝到远程计算机上(upload)

下载:

将文件从远程计算机上拷贝到自己的计算机上。 (download)

FTP使用两条TCP连接控制

两条链接

TFTP:

一种无连接的不可靠的服务,采用UDP在支持TFTP的系统间传输文件。

Telnet

不要求远地系统创建众多的服务器,只需为每个远程登陆用
户建立一个进程,这个进程再通过创建子进程为远程登陆用
户提供各种允许的服务。

远程登陆的另外一个优点,它提供与本地登陆几乎完全相同
的用户界面

本地用户在本地终端对远地系统进行远程登陆,该远程登陆
的内部视图实际上是一个TCP连接(服务器端口:23);

将本地终端上的键盘输入逐键传到远地机;将远地机输出送回本地终端。

FTP和TELNET的传输层都用的是TCP
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到了一位名为韩老师的讲师讲授了高校的《计算机网络原理》课程。这个课程可能是关于计算机网络的基础原理和概念的讲解。然而,这个引用并没有提到谢希仁与应用层的相关信息。 引用提到了HTTP协议是一个面向事物的应用层协议,它是在万维网上进行可靠文件交换的重要基础。HTTP的默认端口是80。在计算机网络中,应用层协议负责处理应用程序之间的通信和数据交换。 引用涉及到P2P体系结构,这种网络应用中没有或只有极少数的固定服务器,而交互主要通过对等方式进行。这意味着在P2P网络中,每个节点都可以充当客户端和服务器。 根据提供的引用信息,我无法确定谢希仁与应用层的具体联系。如果您有更多相关信息,请提供给我,我将尽力为您提供更准确的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [《计算机网络-第7版-谢希仁》学习笔记:应用层](https://blog.csdn.net/qq_40378034/article/details/107440866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [计算机网络(谢希仁第7版)-应用层](https://blog.csdn.net/qq_42290128/article/details/118883627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值