应用层
应用层
域名系统DNS
DNS概述
- DNS是一个分布式数据库,提供了主机名和IP地址之间相互转换的服务。分布式指的是每个站点仅保留它自己的那部分数据
Internet域名结构
- 层次结构,从上至下依次为:根域名、顶级域名、二级域名
域名服务器
- 一个服务器所负责管辖的范围叫做区(zone)
- 每一个区设置的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射
- DNS可以使用UDP或者TCP进行传输,端口号位53.大多数情况下使用UDP传输
DNS劫持(DNS Hijacking)
- 通过劫持DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果。比如将
nuist.edu.cn
的IP修改为某黄色网站IP,给学生带来不好的冲浪体验。或者修改为黑客的钓鱼网站,窃取用户个人信息
DNS污染(DNS Pollution)
- 又名域名服务器缓存污染或者域名服务器快照侵害。指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址,这是一种DNS缓存投毒攻击。由于DNS查询没有任何的认证机制,且基于无连接不可靠的UDP协议,因此DNS的查询很容易被篡改
文件传送协议FTP
FTP概述
- FTP是因特网上使用得最广泛的文件传送协议
- FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
- FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件
基本工作原理
- FTP通过TCP连接,并通过两个连接来传送一个文件
- 控制连接:服务器打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答
- 数据连接:用来传送一个文件数据
- 根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式
- 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号
- 被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机
- 主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号
简单文件传送协议TFTP
- TFTP 是一个很小且易于实现的文件传送协议。
- TFTP 使用客户服务器方式和使用 UDP 数据报,因此 TFTP 需要有自己的差错改正措施。
- TFTP 只支持文件传输而不支持交互。
- TFTP 没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。
- TFTP 的主要特点是
- 每次传送的数据 PDU 中有 512 字节的数据,但最后一次可不足 512 字节。
- 数据 PDU 也称为文件块(block),每个块按序编号,从 1 开始。
- 支持 ASCII 码或二进制传送。
- 可对文件进行读或写。
- 使用很简单的首部。
远程终端协议TELNET
- TELNET 是一个简单的远程终端协议,也是因特网的正式标准
- 用户用 TELNET 就可在其所在地通过 TCP 连接注册(即登录)到远地的另一个主机上(使用主机名或 IP 地址)
- TELNET 能将用户的击键传到远地主机,同时也能将远地主机的输出通过 TCP 连接返回到用户屏幕。这种服务是透明的,因为用户感觉到好像键盘和显示器是直接连在远地主机上
- 现SSH协议更加安全(基于非对称加密的公私钥体系)也更加流行,反正我是没用过TELNET协议
- SSH协议基于一组完备的加密算法
- 密钥交换算法(RSA、DH…)
- 认证算法(RSA、DSA…)
- 加密数据算法(AES…)
- MAC算法(SHA系列…)
需要有一些密码学基础的铺垫,可以阅读我讲解基础密码学的文章入门,SSH协议实现细节暂不做介绍
万维网WWW
概述
- 万维网 WWW (World Wide Web)并非某种特殊的计算机网络
- 万维网是一个大规模的、联机式的信息储藏所
- 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息
- 万维网是分布式超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充
工作方式
- 万维网以客户服务器方式工作
- 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器
万维网解决的问题
- 怎样标志分布在整个因特网上的万维网文档
- 使用统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档
- 每一个文档在整个因特网的范围内具有唯一的标识符 URL
- 用何协议实现万维网上各种超链的链接
- 超文本传送协议 HTTP (Hyper-Text Transfer Protocol)
- 怎样使各种万维网文档都能在因特网上的各种计算机上显示出来,同时使用户清楚地知道在什么地方存在着超链
- 超文本标记语言 HTML (Hyper-Text Markup Language)使得万维网页面的设计者可以很方便地用一个超链从本页面的某处链接到因特网上的任何一个万维网页面,并且能够在自己的计算机屏幕上将这些页面显示出来
- 怎样使用户能够很方便地找到所需的信息
- 为了在万维网上方便地查找信息,用户可使用各种的搜索工具(即搜索引擎)
统一资源定位符URL
- 统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示
- URL 的一般形式是:<协议>://<主机>:<端口>/<路径> (HTTP协议默认端口80,可忽略不写)
超文本传送协议HTTP
- HTTP 是面向事务的客户服务器协议
- HTTP 1.0 协议是无状态的(stateless)
- HTTP 协议本身也是无连接的,虽然它使用了面向连接的 TCP 向上提供的服务
- HTTP 1.1 开始,一次TCP连接建立后,可以持续进行报文传输(短连接 -> 长连接)
万维网的文档
超文本标记语言HTML
- 超文本标记语言 HTML 中的 Markup 的意思就是“设置标记”
- HTML 定义了许多用于排版的命令(即标签)
- HTML 把各种标签嵌入到万维网的页面中。这样就构成了所谓的 HTML 文档。HTML 文档是一种可以用任何文本编辑器创建的 ASCII 码文件
动态万维网文档
- 静态文档是指该文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。
- 动态文档是指文档的内容是在浏览器访问万维网服务器时才由应用程序动态创建。
- 动态文档和静态文档之间的主要差别体现在服务器一端。这主要是文档内容的生成方法不同。而从浏览器的角度看,这两种文档并没有区别。
万维网的信息检索系统
- 全文检索搜索
- 全文检索搜索引擎是一种纯技术型的检索工具。它的工作原理是通过搜索软件到因特网上的各网站收集信息,找到一个网站后可以从这个网站再链接到另一个网站。然后按照一定的规则建立一个很大的在线数据库供用户查询
- 分类目录搜索
- 分类目录搜索引擎并不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述等信息,经过人工审核编辑后,如果认为符合网站登录的条件,则输入到分类目录的数据库中,供网上用户查询。
电子邮件
概述
- 电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用
- 电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取
- 电子邮件不仅使用方便,而且还具有传递迅速和费用低廉的优点
- 一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议
简单邮件传送协议SMTP
- SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主体的结构,定义了非 ASCII 码的编码规则
电子邮箱的信息格式
- 一个电子邮件分为信封和内容两大部分
- RFC 822 只规定了邮件内容中的首部(header)格式,而对邮件的主体(body)部分则让用户自由撰写
- 邮件内容的首部
- “To:”后面填入一个或多个收件人的电子邮件地址。用户只需打开地址簿,点击收件人名字,收件人的电子邮件地址就会自动地填入到合适的位置上
- “Subject:”是邮件的主题。它反映了邮件的主要内容,便于用户查找邮件
- 抄送 “Cc:” 表示应给某某人发送一个邮件副本
- “From” 和 “Date” 表示发信人的电子邮件地址和发信日期。“Reply-To” 是对方回信所用的地址
- 邮件内容的首部
邮件读取协议POP3和IMAP
- POP3
- POP3 的特点是只要用户从服务器上读取了邮件,就把该邮件删除。但最新版本的 POP3 可以不删除邮件
- IMAP
- IMAP 协议中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件
基于万维网的电子邮件
- 电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议
- 两个邮件服务器之间的传送使用 SMTP
- 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议
通用因特网邮件扩充MIME
MIME 并没有改动 SMTP 或取代它
MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则
用人话说就是MIME充当适配器,将传送内容进行正确编码(打破只能是ASCII编码的局限性),保证人类看懂