计算机网络 应用层

应用层概述

应用层协议原理

应用层协议的实现,只需要写出能够运行在不同的端系统(服务器、手机、电脑等)和通过网络彼此通信的程序。因为网络核心设备(路由器、交换机等,不包括端系统设备)并不在应用层上起作用,只在网络层及下面层次起作用,所以不需要为网络核心设备写对应的应用程序,即 开发应用程序的时候只需要考虑适配端系统,不需要考虑网络核心设备。

应用层协议定义

  • 应用进程交换的报文类型,请求还是响应?

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

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

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

应用层的功能及重要协议

  • 文件传输、访问和管理 ( FTP

  • 电子邮件 ( SMTP、POP3、IMAP

  • 虚拟终端 ( HTTP

  • 查询服务和远程作业登录 ( DNS

网络应用模型

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

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

  1. 永久提供服务

  2. 永久性访问地址/域名

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

  1. 与服务器通信,使用服务器提供的服务

  2. 间歇性接入网络

  3. 可能使用动态|P地址

  4. 不与其他客户机直接通信

工作流程

  1. 服务器处于接收请求的状态。

  2. 客户机发出服务网请求,并等待接收结果。

  3. 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机。

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

P2P模型(Peer-to-peer )

思想 :整个网络中传输的内容不再保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权力和义务都是大体对等的。

特点

  • 不存在永远在线的服务器

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

  • 任意端系统/节点之间可以直接通讯

  • 节点间歇性接入网络

  • 节点可能改变P地址

  • 可扩展性好

  • 网络健壮性强

应用 :PPlive,Bittorrent,电驴

DNS协议

DNS协议概述

  • DNS协议就是用来将域名解析到IP地址 的一种协议

  • DNS协议基于UDP协议的,端口号53

  • 采用客户/服务端模式(C/S) 运行在通信的端系统之间

  • 可以输入 nslookup 命令来查询域名对应的IP地址

域名组成

域名组成概述

  • 如"www.sIna.com.cn"是一个域名,从严格意义上讲,"sina.com.cn"才被称为域名(全球唯一),而"www"是主机名,"主机名.域名" 称为完全限定域名(FQDN) 。一个域名下可以有多个主机,域名全球唯一,那么"主机名.域名"肯定也是全球唯一的

  • 举例:以" sina. com. cn”域名为例,一般管理员在命名其主机的时候会根据其主机的功能去命名

DNS树状结构图

  • 根域 .

  • 顶级域名 :cn, us, jp, hk, uk

  • 商业顶级域 :com商业机构,gov政府机构, mil军事机构, edu教育机构 ,org民间组织架构, net互联网

  • **一级域名 ** 自定义域名(全球唯一)

  • 二级域名 自定义域名(全球唯一)

  • 三级域名 自定义域名(全球唯一)

  • ......

  • 举例 :www.baidu.com。其中:.为根域,com为顶级域,baidu为一级域名,www为主机名

DNS解析

  • 按照查询方式 分类

  • 递归查询 :客户机向本地DNS服务器査询发起的为递归査询

  • 迭代查询 :本地DNS服务器与根等其他DNS服务器的解析过程

  • 按照查询内容 分类

  • 正向解析:已知域名,解析IP地址

  • 反向解析:已知IP地址,解析域名

  • 举例 :解析www.baidu.com的IP地址

DNS服务器

DNS服务器主要有4种类型的域名服务器,分别是 根域名服务器顶级域名服务器权限域名服务器本地域名服务器

根域名服务器 :最高层次的域名服务器。全世界一共有13 个根域名服务器,每个根域名服务器并不是单个服务器,而是服务器集群

顶级域名服务器 :管理在该顶级域名服务器注册的所有二级域名。收到DNS查询请求时,给出相应回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址 )。

权限域名服务器 :负责一个区的域名服务器。

本地域名服务器 :不算层次结构,特点是里主机比较近,当主机和另一台比较近的主机通信时,就不用走那些更高级的服务器了。

高速缓存

为了提高DNS的查询效率并减少因特网上的DNS查询报文数量,在域名服务器中广泛的的使用了高速缓存。当一个DNS服务器接收到DNS查询结果时, 它能将该DNS信息缓存在高速缓存中。这样, 当另一个相同的域名查询到达该DNS服务器时, 该服务器就能够直接提供所要求的IP地址, 而不需要再去向其他DNS服务器询问。因为主机名和IP地址之间的映射不是永久的,所以DNS服务器将在一段时间后丢弃高速缓存中的信息。

DNS解析一般流程

  1. 浏览器输入我们我们需要访问的域名 例如:www.baidu.com

  2. 查询浏览器缓存,看是否有之前访问的记录,例如IP地址等信息。若有,直接访问此IP;若无,执行下一步

  3. 查询本机缓存,查本机的Host文件,看是否有记录,例如IP地址等信息。若有,直接访问此IP;若无,执行下一步

  4. 客户机向其本地域名服务器发出DNS请求报文(递归查询)。

  5. 本地DNS服务器收到请求后,查询本地缓存,若没有该记录, 则以DNS客户的身份向根域名服务器发出解析请求报文(迭代查询),这里的本地DNS服务器一般是接入网络的运营商的服务器。

  6. 根域名服务器收到请求后,判断该域名属于 .com 域,将对应的顶级域名服务器 dns.com 的IP地址返回给本地DNS服务器。

  7. 本地域名服务器向顶级域名服务器 dns.com 发出解析请求报文(迭代查询)。

  8. 顶级域名服务器 dns.com 收到请求后,判断该域名属于 baidu.com 域,,因此将对应的授权域名服务器 dns.baidu.com 的IP地址返回给本地DNS服务器。

  9. 本地DNS服务器向授权域名服务器 dns.baidu.com 发起解析请求报文(迭代查询)。

  10. 授权域名服务器 dns.baidu.com 收到请求后,将查询结果返回给本地DNS服务器。

  11. 本地DNS服务器将查询结果保存到本地缓存,同时返回给客户端。

DHCP协议

DHCP协议概述

  • DHCP(动态主机配置协议) ,是简化主机IP地址配置管理的TCP/IP标准协议

  • 协议端口:UDP 67/68

  • 作用:自动分配 IP地址,并提供安全、可靠、简单的TCP/IP网络配置

  • DHCP优点:减少工作量、避免IP冲突、提高地址利用率

  • DHCP工作模型:客户机/服务器

DHCP工作

  • 工作模型:C/S结构

  • 使用的端口:67/68

  • 使用的传输层协议:UDP

DHCP原理

  • 也称为DHCP的租约过程 ,分为4个步骤
  1. 客户机发送 DHCP Discovery广播包
  • 客户机广播请求IP地址 (包含客户机的MAC地址)
  1. 服务器响应 DHCP Offer广播包
  • 服务器响应 提供的IP地址(但无子网掩码、网关等参数)
  1. 客户急发送 DHCP Request广播包
  • 客户机选择IP (也可以理解为:确认使用哪个IP)
  1. 服务器发送 DHCP ACK广播包
  • 服务器确定了租约 ,并提供网卡详细参数 、IP、掩码、网关、DNS、租期等

主机新加入网络时,获取IP的流程

  1. 新的机器加入网络时,会使用0.0.0.0作为源地址,发送广播 discover报文,查询网络上有哪些 DHCP server

  2. DHCP服务器接收到 DHCP Discover报文后,回应offer报文,提供IP地址(可能包含DNS等其他信息)给请求方

  3. 请求方根据收到的offer报文,选择一个 DHCP server,并选择它提供的IP地址。然后广播 Request报文,向 DHCP Server请求该IP地址,同时向本地网络(尤其是其他 DHCP Server)公告自己已经选择了某个 DHCP Server的某个IP地址

  4. DHCP Server回应ACK报文,将IP地址分配给 Client端(特殊情况: DHCP Server在发送Offer报文和接收到 Request的短暂时间内把IP分配给了其他主机)

DHCP续约

  • 续约过程 :当50% 租期过后,客户机会再次发送 DHCP Request 包进行续约,如果服务器无响应则继续使用,并在87.5% 租期过后再次发送 DHCP Request 包进行续约,如果仍然无响应释放IP地址 。之后,重新发送 DHCP Discovery 广播包来获取IP地址,当无任何服务器响应时 ,自动给自己分配—个IP169.254.x.x/16,属于全球统一无效地址,用于临时的内网通信

客户机命令

ipconfig /release 释放IP(取消租约,或者改为手动配置P,也可以释放租约)
ipconfig /renew   重新获取IP(有IP时,发送 request续约,无IP时发送 Discovery重新获取P)

FTP协议

FTP协议概述

  • 文件传输协议FTP(File transfer protocol)提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力

  • 简单文件传送协议TFTP(Trivial File Transfer Protocol):使用UDP协议实现,用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大文件传输服务。(了解

FTP服务器和用户端

  • FTP是基于 **客户/服务器(C/S) ** 的协议。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。

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

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

FTP工作原理

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

控制连接 :用来传输控制信息(如连接请求、传送请求等)。在整个会话期间一直保持打开状态

数据连接 :用来完成文件的传输。在文件传输结束时关闭连接

数据连接有两种传输模式:

主动模式 (PORT):“服务器”的20端口 连接“客户端”随机开放的端口。

被动模式 (PASV):“客户端”连接“服务器”随机开放的端口 ,具体端口自行协商而定(一般端口>1024)

FTP传输模式

文本模式 :ASC模式,以文本序列传输数据;

二进制模式 :Binary模式,以二进制序列传输数据。

电子邮件相关协议

电子邮件的信息格式

电子邮件系统的组成结构

下面简单介绍电子邮件的收发过程。

  1. 发信人调用用户代理来撰写和编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。

  2. 发送端邮件服务器将邮件放入邮件缓存队列中, 等待发送。

  3. 运行在发送端邮件服务器的SMTP客户进程, 发现邮件缓存中有待发送的邮件, 就向运行在接收端邮件服务器的SMTP服务器进程发起建立TCP连接。

  4. TCP连接建立后, SMTP客户进程开始向远程SMTP服务器进程发送邮件。当所有待发送邮件发完后, SMTP就关闭所建立的TCP连接。

  5. 运行在接收端邮件服务器中的SMTP服务器进程收到邮件后, 将邮件放入收信人的用户邮箱, 等待收信人在方便时进行读取。

  6. 收信人打算收信时,调用用户代理,使用POP3(或MAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回(如果邮箱中有来信的话)。

简单邮件传送协议(SMTP)

SMTP 规定了在两个相互通信的SMTP进程 之间应如何交换信息负责发送邮件的SMTP进程就是SMTP客户 , 负责接收邮件的进程就是SMTP服务器 SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)SMTP 使用 TCP连接 , 端口号是25C/S

  • 缺点

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

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

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

多用途网际邮件扩充(MIME)

使电子邮件系统可以支持声音、图像、视频多种国家语言等等。使得传输内容丰富多彩。

邮局协议(POP3)

邮局协议 POP,是一个非常简单且功能有限的邮件读取协议。现在使用的是它的第三个版本POP3。POP3采用的是“ ”(Pull)的通信方式,当用户读取邮件时,用户代理向邮件服务器发出请求,“拉”取用户邮箱中的邮件。

POP 使用C/S 的工作方式,使用TCP连接 ,端口号为110

POP3的工作方式 :1.下载并保留(在服务器上)   2.下载并删除容

网际报文存取协议(IMAP)

IMAP协议比POP协议复杂。当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。

IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件 , 还允许只读取邮件中的某一个部分 (先看正文,有WF的时候再下载附件)。

基于万维网的电子邮件

只要与用户代理接触的环节使用 HTTP 协议

HTTP协议

万维网概述

  • 万维网 www(World Wide Web)是一个大规模的、联机式的信息存储空间, 是无数个网络站点和网页的集合。在这个空间中,一个有用的事物称为一个 “资源”,并由一个全域“统一资源定位符 ”(URL )唯一标识资源(文字、视频、音频等)。

  • URL一般形式:

<协议>://<主机>:<端口>/<路径> 例:http://www.pku.edu.cn

http 域名

ftp   IP地址

URL不区分大小写

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

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

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

HTTP协议概述

  • **超文本传输协议(HTTP) **

  • HTTP协议定义了浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档, 以及服务器怎样把文档传送给浏览器。

注:浏览器可以只下载文本部分。若用户点击图像、声音、视频等资源请求按钮时再进行下载相应资源。

用户单击鼠标后所发生的事件按顺序如下(以访问清华大学的网站为例)

  1. 浏览器分析链接指向页面的URL(http:/www.tsinghua.edu.cn/chn/index.html)

  2. 浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址。

  3. 域名系统DNS解析出清华大学服务器的IP地址。

  4. 浏览器与该服务器建立TCP连接(默认端口号为80)。

  5. 浏览器发出HTTP请求:GET/chn/index.html。

  6. 服务器通过HTTP响应把文件 index html 发送给浏览器。

  7. 释放TCP连接。

  8. 浏览器解释文件 index. html, 并将Web页显示给用户。

HTTP协议特点

HTTP协议是无状态 的。但是在际工作中,一些万维网站点常常希望能够识别用户, 使用 Cookie 实现(Cookie是存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如“123456”)的访问记录)从而提供个性化服务。

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

HTTP协议的连接方式

  • 非持久连接每个网页元素对象(如JPEG图形、Fash等)的传输都需要单独建立一个TCP连接 。也就是说请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT (一个RTT用于TCP连接, 另一个RTT用于请求和接收文档)。每个对象引用都导致2×RTT的开销, 此外每次建立新的TCP连接都要分配缓存和变量, 使万维网服务器的负担很重

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

  • 持久连接 又分为非流水线流水线 两种方式。对于非流水线方式, 客户在收到前一个响应后才能发出下一个请求 , 服务器发送完一个对象后,其TCP连接就处于空闲状态, 浪费了服务器资源。HTTP/1.1的默认方式是使用流水线的持久连接 。这种情况下, 客户每遇到一个对象引用就立即发出一个请求, 因而客户可以逐个地连续发出对各个引用对象的请求 。如果所有的请求和响应都是连续发送的, 那么所有引用的对象共计经历1个RTT延迟, 而不是像非流水线方式那样,每个引用都必须有1个RTT延迟。这种方式减少了TCP连接中的空闲时间, 提高了效率

  1. 非流水线 : 客户发出一个对象请求后,等收到响应后才能发出下一个对象请求。

  2. 流水线 :客户可以同时发出多个对象的请求。

HTTP协议的报文结构

HTTP报文 分为 请求报文响应报文

HTTP报文是面向文本 的, 因此在报文中的每一个字段都是一些ASCll码串。

附录

本章常用中英文对照

  • Server farm 服务器集群

  • Infrastructure 基础设施,或基础架构

  • Self-scalability 自扩展性

  • Timing 实时性

  • Connection-oriented service 面向连接的服务

  • Base HTML file 基本HTML文件

  • Stateless protocol 无状态协议

  • RTT (round-trip time ) 往返时间

  • User agents 用户代理

  • Mail servers 邮件服务器

  • Top-level domain (TLD) servers 顶级域名服务器

  • Authoritative DNS servers P161 权威域名服务器

  • Iterative queries 迭代查询

  • Resource records (RRs) 资源记录

  • Nonpersistent HTTP 非持久HTTP,或非坚持HTTP

  • Persistent HTTP 持久性HTTP,或坚持的HTTP

  • Peer-to-Peer (P2P) Network 对等网络

  • Socket programming 套接字编程

posted @ 2021-11-08 16:01  FreeK0x00  阅读(320)  评论(0编辑  收藏  举报