计算机网络知识总结之应用层

计算机网络基础总结之应用层

一、域名系统DNS

把域名(主机名)解析为IP地址。被设计为分布式系统

1.1、层次结构

一个域名有多个层次构成,从上到下分为顶级域名、二级域名、三级域名以及四级域名。所有域名可以画成一个域名树。

因此、域名服务器可以分为以下四类
- 根域名服务器:解析顶级域名
- 顶级域名服务器:解析二级域名
- 权限域名服务器:解析区内域名
- 本地域名服务器:也称为默认域名服务器。

区和域的概念不同,可以在一个域中划分多个区。例如在域abc.com中划分了两个区abc.com和y.abc.com。

因此就需要两个域名服务器:

1.2、解析过程

主机向本地域名服务器解析过程采用递归,而本地域名服务器向其他域名服务器可以使用递归和迭代两种方式。

  • 迭代方式:本地域名服务器向一个域名服务器请求解析之后,结果返回到本地域名服务器,如果没找到对应的ip地址,本地域名服务器继续向其他域名服务器请求解析。
  • 递归方式:结果不是直接返回,而是继续向前请求解析,最后结果才返回。

1.3、使用的运输层协议

DNS在解析的过程中使用的是UDP进行传输,因为UDP最大只支持512字节的数据,如果超过的话就需要使用TCP传输。

二、文件传输协议

FTP在运输层使用的TCP协议,并且需要建立两个并行的TCP连接:控制连接和数据连接

  • 控制连接:在整个回话期间一直打开,使用的端口是21
  • 数据连接:在数据传送完毕之后进行关闭,使用的连接端口是20、

三、远程终端协议TELNET

远程终端协议用于登陆远程主机,并且远程主机上的输出也返回。使用的TCP协议。TELNET可以适应许多计算机和操作系统的差异,例如不同操作系统的换行符定义。

四、电子邮件协议

一个电子邮件系统由三部分组成:用户代理、邮件服务器、以及邮件发送协议和读取协议。
其中发送协议常用SMTP,读取协议常用的是POP3和IMAP。

4.1、POP3

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

4.2、IMAP

IMAP协议中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除,IMAP这种做法可以让用户随时随地的去访问服务器上的邮件。IMAP协议也支持创建自定义的文件夹。

4.3、SMTP

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

五、动态主机配置协议DHCP

DHCP提供了即插即用的联网方式,永不不需要去手动配置IP地址等信息。

DHCP配置的内容不仅是IP地址、还包含默认路由IP地址、域名服务器IP地址。

DHCP的工作流程

  • 发现阶段:即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息,源IP地址为 0.0.0.0 。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
  • 提供阶段:即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息。
  • 选择阶段:即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。
  • 确认阶段:即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
  • 重新登录:以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

六、WEB页面请求过程

假设在学校网络中的一台主机mac地址为00:16:D3:23:68:8A,它与一个交换机相连,交换机与一个路由去相连。路由器与一个ISP相连,如上图ISP是comcast.net,在comcast.net中为学校提供了DNS服务,所以DNS服务器驻留在Comcast网络中而不是学校网络中。

6.1、DHCP配置主机信息

  • 1、主机最开始没有IP地址以及其其他信息只有一个mac地址,那么就需要使用DHCP来获取IP地址。
  • 2、主机生成DHCP请求报文,并将这个报文放入到目的端口为67,源端口为68的UDP报文段中。
  • 3、该报文被放入到一个具有广播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP数据报中。
  • 4、该数据被放入到MAC帧中,该帧具有目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机相连的所有设备(其他端口连接的电脑和交换机相连接的路由器)。

  • 5、连接在交换机的DHCP服务器(与交换机相连的路由器)接收到广播帧之后,不断的向上分解到IP数据报、UDP报文段、DHCP请求报文,之后生成DHCP ACK报文,该报文包含如下信息:IP地址、DNS服务器的IP地址、默认网关路由器的IP地址、子网掩码。该报文被放入到UDP报文段中,UDP报文段被放入到IP数据报中,IP数据报被放入到Mac帧中。

  • 6、该帧的目的地址是请求主机的 MAC 地址,因为交换机具有自学习能力,之前主机发送了广播帧之后就记录了 MAC 地址到其转发接口的交换表项,因此现在交换机就可以直接知道应该向哪个接口发送该帧。

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

6.2、ARP 解析 MAC 地址

  • 1、主机通过浏览器生成一个TCP套接字,套接字向HTTP服务器发送HTTP请求,为了生成该套接字,主机需要知道网站域名对用的IP地址。
  • 2、主机生成了一个DNS查询报文,查询报文具有53号端口,因为DNS服务器的端口号是53,生成UDP报文段.
  • 3、该报文段被放入到目的地址为DNS服务器IP地址的IP数据报中。
  • 4、该IP数据报被放入到一个以太网帧中,该帧发送到默认网关路由器。
  • 5、但是DHCP 过程只知道网关路由器的IP地址,为了获得网关路由器的MAC地址,需要使用ARP地址解析协议,把IP地址转换成为MAC地址。
  • 6、主机生成一个包含目的地址为网关路由器IP地址的ARP查询报文,将该 ARP 查询报文放入一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧转发给所有的连接设备,包括网关路由器。
  • 7、网关路由器接收到该帧后,不断向上分解得到 ARP 报文,发现其中的 IP 地址与其接口的 IP 地址匹配,因此就发送一个 ARP 回答报文,包含了它的 MAC 地址,发回给主机。

6.3、DNS域名解析

  • 1、知道了网关路由器的 MAC 地址之后,就可以继续 DNS 的解析过程了。
  • 2、网关路由器接收到包含DNS查询报文的以太网帧后,抽取出IP地址,并根据转发表决定IP数据报应该转发的路由器。
  • 3、因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达DNS服务器的路由表项。
  • 4、到达DNS服务器后,DNS服务器向上分解抽取出DNS查询报文,并在DNS数据库中查找带解析的域名。
  • 5、找到DNS记录后发送DNS回答报文,将该报文放入UDP报文段中,然后放入IP数据报中,通过路由反向转发回到网关路由器,并经过以太网交换机到达主机。

6.4 HTTP 请求页面

  • 1、有了 HTTP 服务器的 IP 地址之后,主机就能够生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。
  • 2、在生成 TCP 套接字之前,必须先与 HTTP 服务器进行三次握手来建立连接。生成一个具有目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。(详见计算机网络知识总结之运输层
  • 3、HTTP 服务器收到该报文段之后,生成 TCP SYNACK 报文段,发回给主机。
  • 4、连接建立之后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。
  • 5、HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。
  • 6、浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。

7、常用端口

猜你喜欢

转载自blog.csdn.net/hnuwyd/article/details/80280284