文章目录
DNS域名系统
DNS是一个分布式数据库,提供了主机名和IP地址之间相互转换的服务。域名有层次结构,从上到下是:根域名、顶级域名、二级域名。
- DNS可以用TCP或者UDP传输,大部分情况下使用UDP进行传输,需要域名解析器和域名服务器都要自己处理超时和重传来保证可靠。
- 用TCP传输的情况
- 返回响应超过512字节 UDP只最大支持512字节
- 区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据)。
FTP(文件传输协议)
FTP使用TCP进行连接,它需要两个连接来传送一个文件
- 控制连接:服务器打开端口21等客户端的连接,客户端主动建立连接之后,用这个连接将客户端的命令传给服务器,并传回服务器的应答。
- 数据连接:传输一个文件数据。
主动被动模式
- 主动模式:服务端主动建立连接,服务端口20客户端口号随机,但是必须大于1024因为1~1023是熟知端口号
- 被动模式客户端主动建立数据连接,其中客户端的端口号由客户端自定义,服务端端口号随机。
动态主机配置协议(DHCP)
提供了即插即用的联网方式,用户不用手动配置IP地址等信息,DHCP还配置子网掩码,网关IP。
远程登录协议(TELNET)
TELNET用于登录到远程主机上,并且远程主机的输出也会返回
电子邮件协议
- SMTP 发送邮件
- POP3 读取邮件,从服务器上读取之后,就把该邮件删除
- IMAP 协议客户端和服务器上的邮件保持同步,如果不手动删除,那么服务器上的邮件也不会被删除,IMAP让用户可以随时随地的访问服务器上的邮件。
从浏览器输入URL到网页显示经历了什么过程
DHCP获取IP
- 由于一开始主机没有IP地址以及其他的信息,则需要从DHCP获取
- 生成一个DHCP的请求然后在经过UDP报文封装,IP数据报封装,在封装到MAC帧内
- 广播到和交换机连接到的所有设备
- DHCP服务器接收到之后,一层层的解析得到DHCP的请求。
- 根据请求,返回一个DHCP ACK报文。包含了主机IP地址,DNS服务器IP地址,默认网关IP地址,子网掩码。类似的封装到了UDP,IP,MAC帧中。
- 经过交换机并根据路由表返回给主机。
- 主机分析得到DHCP报文,然后配置主机地址,DNS地址,子网掩码并在转发表中安装默认网关。
ARP获取网关MAC
- 由于需要DNS解析域名,需要发送DNS请求,但是只知道默认网关的IP还要了解默认网关的MAC地址,需要ARP
- 根据默认网关的IP地址生成一个ARP的查询报文,封装到了一个具有广播目的地址的以太网帧,再发送给交换机,交换机将该帧转发给所有链接的设备。
- 网关路由器接收到之后不断向上解析获得ARP查询报文,发现IP是相同的,则返回一个ARP的返回报文,包含了自己的MAC地址,发给主机。
DNS解析域名
- get到了默认网关的IP地址以及MAC地址
- get到了DNS的地址,生成一个DNS的查询报文,并封装到UDP报文中,以及IP报文中。
- 然后将报文,转发到默认网关,再网关根据地址,发送给DNS服务器。
- DNS服务器解析报文,根据DNS查询报文,在数据库中查询要找的域名,找到DNS记录之后,发送DNS回答报文,再次封装之后,返回给主机。
连接
- 已知DNS解析之后的IP地址
- 浏览器向web服务器发起TCP连接请求(3次握手)
- 建立TCP连接之后发起HTTP请求
- 服务器端响应HTTP请求,处理请求,处理之后返回给浏览器html文件
- 浏览器解析HTML代码,并请求HTML代码中的资源(遇到JS等静态资源时,向服务器请求下载 建立一次HTTP连接可以请求多个资源)
- 浏览器对页面进行渲染呈现给用户(浏览器根据html和css计算渲染书,绘制到屏幕上,js会被执行)
- 传输完成,断开连接(4次挥手)