计算机网络-应用层

域名系统web

域名系统

DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每一个站点只保留它本身的那部分数据。数据库

域名具备层次结构,从上到下依次为:根域名、顶级域名、二级域名。浏览器

 

DNS 可使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数状况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须本身处理超时和重传从而保证可靠性。在两种状况下会使用 TCP 进行传输:安全

  • 若是返回的响应超过的 512 字节(UDP 最大只支持 512 字节的数据)。
  • 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。

文件传送协议

FTP 使用 TCP 进行链接,它须要两个链接来传送一个文件:服务器

  • 控制链接:服务器打开端口号 21 等待客户端的链接,客户端主动创建链接后,使用这个链接将客户端的命令传送给服务器,并传回服务器的应答。
  • 数据链接:用来传送一个文件数据。

根据数据链接是不是服务器端主动创建,FTP 有主动和被动两种模式:网络

  • 主动模式:服务器端主动创建数据链接,其中服务器端的端口号为 20,客户端的端口号随机,可是必须大于 1024,由于 0~1023 是熟知端口号。

 

  • 被动模式:客户端主动创建数据链接,其中客户端的端口号由客户端本身指定,服务器端的端口号随机。

 

主动模式要求客户端开放端口号给服务器端,须要去配置客户端的防火墙。被动模式只须要服务器端开放端口号便可,无需客户端配置防火墙。可是被动模式会致使服务器端的安全性减弱,由于开放了过多的端口号。分布式

动态主机配置协议

DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的连网方式,用户再也不须要手动配置 IP 地址等信息。学习

DHCP 配置的内容不只是 IP 地址,还包括子网掩码、网关 IP 地址。网站

DHCP 工做过程以下:编码

  1. 客户端发送 Discover 报文,该报文的目的地址为 255.255.255.255:67,源地址为 0.0.0.0:68,被放入 UDP 中,该报文被广播到同一个子网的全部主机上。若是客户端和 DHCP 服务器不在同一个子网,就须要使用中继代理。
  2. DHCP 服务器收到 Discover 报文以后,发送 Offer 报文给客户端,该报文包含了客户端所须要的信息。由于客户端可能收到多个 DHCP 服务器提供的信息,所以客户端须要进行选择。
  3. 若是客户端选择了某个 DHCP 服务器提供的信息,那么就发送 Request 报文给该 DHCP 服务器。
  4. DHCP 服务器发送 Ack 报文,表示客户端此时可使用提供给它的信息。

 

远程登陆协议

TELNET 用于登陆到远程主机上,而且远程主机上的输出也会返回。

TELNET 能够适应许多计算机和操做系统的差别,例如不一样操做系统系统的换行符定义。

电子邮件协议

一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。

邮件协议包含发送协议和读取协议,发送协议经常使用 SMTP,读取协议经常使用 POP3 和 IMAP。

 

1. SMTP

SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 能够发送二进制文件。MIME 并无改动或者取代 SMTP,而是增长邮件主体的结构,定义了非 ASCII 码的编码规则。

 

2. POP3

POP3 的特色是只要用户从服务器上读取了邮件,就把该邮件删除。

3. IMAP

IMAP 协议中客户端和服务器上的邮件保持同步,若是不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种作法可让用户随时随地去访问服务器上的邮件。

经常使用端口

应用 应用层协议 端口号 传输层协议 备注
域名解析 DNS 53 UDP/TCP 长度超过 512 字节时使用 TCP
动态主机配置协议 DHCP 67/68 UDP  
简单网络管理协议 SNMP 161/162 UDP  
文件传送协议 FTP 20/21 TCP 控制链接 21,数据链接 20
远程终端协议 TELNET 23 TCP  
超文本传送协议 HTTP 80 TCP  
简单邮件传送协议 SMTP 25 TCP  
邮件读取协议 POP3 110 TCP  
网际报文存取协议 IMAP 143 TCP  

Web 页面请求过程

1. DHCP 配置主机信息

  • 假设主机最开始没有 IP 地址以及其它信息,那么就须要先使用 DHCP 来获取。

  • 主机生成一个 DHCP 请求报文,并将这个报文放入具备目的端口 67 和源端口 68 的 UDP 报文段中。

  • 该报文段则被放入在一个具备广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。

  • 该数据报则被放置在 MAC 帧中,该帧具备目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机链接的全部设备。

  • 链接在交换机的 DHCP 服务器收到广播帧以后,不断地向上分解获得 IP 数据报、UDP 报文段、DHCP 请求报文,以后生成 DHCP ACK 报文,该报文包含如下信息:IP 地址、DNS 服务器的 IP 地址、默认网关路由器的 IP 地址和子网掩码。该报文被放入 UDP 报文段中,UDP 报文段有被放入 IP 数据报中,最后放入 MAC 帧中。

  • 该帧的目的地址是请求主机的 MAC 地址,由于交换机具备自学习能力,以前主机发送了广播帧以后就记录了 MAC 地址到其转发接口的交换表项,所以如今交换机就能够直接知道应该向哪一个接口发送该帧。

  • 主机收到该帧后,不断分解获得 DHCP 报文。以后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。

2. ARP 解析 MAC 地址

  • 主机经过浏览器生成一个 TCP 套接字,套接字向 HTTP 服务器发送 HTTP 请求。为了生成该套接字,主机须要知道网站的域名对应的 IP 地址。

  • 主机生成一个 DNS 查询报文,该报文具备 53 号端口,由于 DNS 服务器的端口号是 53。

  • 该 DNS 查询报文被放入目的地址为 DNS 服务器 IP 地址的 IP 数据报中。

  • 该 IP 数据报被放入一个以太网帧中,该帧将发送到网关路由器。

  • DHCP 过程只知道网关路由器的 IP 地址,为了获取网关路由器的 MAC 地址,须要使用 ARP 协议。

  • 主机生成一个包含目的地址为网关路由器 IP 地址的 ARP 查询报文,将该 ARP 查询报文放入一个具备广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧转发给全部的链接设备,包括网关路由器。

  • 网关路由器接收到该帧后,不断向上分解获得 ARP 报文,发现其中的 IP 地址与其接口的 IP 地址匹配,所以就发送一个 ARP 回答报文,包含了它的 MAC 地址,发回给主机。

3. DNS 解析域名

  • 知道了网关路由器的 MAC 地址以后,就能够继续 DNS 的解析过程了。

  • 网关路由器接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据转发表决定该 IP 数据报应该转发的路由器。

  • 由于路由器具备内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,所以路由表中已经配置了网关路由器到达 DNS 服务器的路由表项。

  • 到达 DNS 服务器以后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。

  • 找到 DNS 记录以后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,而后放入 IP 数据报中,经过路由器反向转发回网关路由器,并通过以太网交换机到达主机。

4. HTTP 请求页面

    • 有了 HTTP 服务器的 IP 地址以后,主机就可以生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。

    • 在生成 TCP 套接字以前,必须先与 HTTP 服务器进行三次握手来创建链接。生成一个具备目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。

    • HTTP 服务器收到该报文段以后,生成 TCP SYN ACK 报文段,发回给主机。

    • 链接创建以后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。

    • HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。

    • 浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,以后进行渲染,显示 Web 页面。

相关文章
相关标签/搜索