计算机网络基础(第二篇:应用层)

域名系统(DNS)

域名系统(Domain Name System,DNS)属于应用层的协议,实际上我们无时无刻不在应用它。每当我们在浏览器的地址栏输入类似www.csdn.com这样一个网址,一按回车键就可以看到对应的网页呈现出来,这个过程离不开DNS。顾名思义,域名系统的功能实际上就是完成了对咱们用户更友好的网址到服务器IP地址的一个映射。简言之,DNS提供了主机名IP地址之间相互转换的服务。DNS是一个分布式数据库,每个站点只保留它自己的那部分数据。

域名可以分为三个层次:根域名、顶级域名、二级域名。

在这里插入图片描述

DNS可以使用UDP或者TCP进行传输,端口都为53。一般情况使用UDP进行传输,这就要求域名解析器和域名服务器都必须自行处理超时和重传从而保证可靠性。以下两种情况会使用TCP进行传输:

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

动态主机配置协议

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

DHCP配置的内容:IP地址、DNS 服务器的 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报文,表示客户端此时可以使用提供给它的信息。
    在这里插入图片描述

文件传输协议

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,因特网协议的第五层,即应用层。 FTP底层使用 TCP 传输而非 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

为了完成文件的传送,需要建立两个连接

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

根据数据连接是否是服务器主动建立,FTP有主动被动两种模式:

  • 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为20,客户端的端口号随机,但必须大于1024,因为0~1023是熟知端口号。在这里插入图片描述
  • 被动模式:客户端主动建立数据连接,其中客户端端口号由客户端自己指定,服务器端的端口号随机分配。在这里插入图片描述
    主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙,但是被动模式会导致服务器的安全性减弱,因为开放了过多的端口号。

电子邮件协议

电子邮件系统包括三部分:用户代理、邮件服务器以及邮件协议。

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

1.SMTP

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

2.POP3

POP3的特点是只要用户从服务器上读取了邮件,就把该邮件删除。最新版本的POP3可以不删除邮件。

3.IMAP

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


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帧中;
  • 该帧的目的地址是发送DHCP请求主机的MAC地址,交换机具有自学习能力,之前主机发送了广播帧之后就记录下了它的MAC地址到其转发接口的交换表项,因此现在交换机知道应该向哪个接口发送该帧;
  • 主机收到该帧后,不断向上分解终得到DHCP报文。根据DHCP报文设置它的IP地址、子网掩码和DNS服务器的IP地址,并在其IP转发表中安装默认网关。

    1.MAC地址也称为以太网地址物理地址硬件地址,它是一个用来确认网络设备位置的位址。MAC地址用于在网络中唯一标识一个网卡。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。
    2.子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个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地址,发送给生成ARP查询报文的主机。

3.DNS解析域名

  • 拿到了网关路由器的MAC地址之后,我们就看一继续DNS解析过程了;
  • 网关路由器接收到包含DNS查询报文的以太网帧后,分解出IP数据报,并根据转发表决定该IP数据报应该转发的路由器;
  • 到达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服务器的SYN ACK报文段,并向服务器发送确认报文;
  • 建立其连接后,浏览器生成HTTP GET报文,并交付给HTTP服务器;
  • HTTP服务器从TCP套接字中读取HTTP GET报文,生成一个HTTP响应报文,将Web页面内容放入报文主体中,发回给主机;
  • 浏览器收到HTTP响应报文后,解析出Web页面内容,之后进行渲染,呈现出Web页面。

常用端口

在这里插入图片描述

此博文整理自:https://github.com/CyC2018/CS-Notes/blob/master/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%20-%20%E5%BA%94%E7%94%A8%E5%B1%82.md

发布了21 篇原创文章 · 获赞 0 · 访问量 529

猜你喜欢

转载自blog.csdn.net/CiaoTigre/article/details/104875404