域名系统web
DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务。这里的分布式数据库是指,每一个站点只保留它本身的那部分数据。数据库
域名具备层次结构,从上到下依次为:根域名、顶级域名、二级域名。浏览器
DNS 可使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。大多数状况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须本身处理超时和重传从而保证可靠性。在两种状况下会使用 TCP 进行传输:安全
FTP 使用 TCP 进行链接,它须要两个链接来传送一个文件:服务器
根据数据链接是不是服务器端主动创建,FTP 有主动和被动两种模式:网络
主动模式要求客户端开放端口号给服务器端,须要去配置客户端的防火墙。被动模式只须要服务器端开放端口号便可,无需客户端配置防火墙。可是被动模式会致使服务器端的安全性减弱,由于开放了过多的端口号。分布式
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的连网方式,用户再也不须要手动配置 IP 地址等信息。学习
DHCP 配置的内容不只是 IP 地址,还包括子网掩码、网关 IP 地址。网站
DHCP 工做过程以下:编码
TELNET 用于登陆到远程主机上,而且远程主机上的输出也会返回。
TELNET 能够适应许多计算机和操做系统的差别,例如不一样操做系统系统的换行符定义。
一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。
邮件协议包含发送协议和读取协议,发送协议经常使用 SMTP,读取协议经常使用 POP3 和 IMAP。
SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 能够发送二进制文件。MIME 并无改动或者取代 SMTP,而是增长邮件主体的结构,定义了非 ASCII 码的编码规则。
POP3 的特色是只要用户从服务器上读取了邮件,就把该邮件删除。
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 |
假设主机最开始没有 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 转发表中安装默认网关。
主机经过浏览器生成一个 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 地址,发回给主机。
知道了网关路由器的 MAC 地址以后,就能够继续 DNS 的解析过程了。
网关路由器接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据转发表决定该 IP 数据报应该转发的路由器。
由于路由器具备内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,所以路由表中已经配置了网关路由器到达 DNS 服务器的路由表项。
到达 DNS 服务器以后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。
找到 DNS 记录以后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,而后放入 IP 数据报中,经过路由器反向转发回网关路由器,并通过以太网交换机到达主机。
有了 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 页面。