从按下回车键开始

从按下回车键开始


DNS解析

DNS中文称为计算机域名系统
当我们在浏览器输入 http://www.qq.com 这个网址时,会首先将域名解析为ip地址
以下是DNS解析的步骤:

  1. 浏览器查看浏览器缓存,是否有域名对应的ip地址,有则解析成功。
  2. 查看本地(Hosts)缓存
  3. 查看路由器缓存:以上三步为客户端解析
  4. ISP(互联网服务提供商)DNS缓存查询
  5. 根域名服务器查询(全球共13台根服务器,1台主根服务器,12台辅根服务器),查询不到时会返回顶级域名主机ip地址,客户端使用此ip继续查询(.com)
  6. 顶级域名服务器查询,查询不到则返回域名主机ip地址(http://qq.com)
  7. 主域名服务器,重复查询知道找到 http://wwww.qq.com 这台主机
  8. 本地域名服务器将返回结果缓存,并给客户端
  9. 客户端拿着ip去与Web服务器建立链接

DNS是应用层协议
DNS解析为什么基于UDP协议

  1. udp无连接状态,不保证数据可靠性。TCP面向链接,可以保证数据可靠性
  2. UDP一次数据交换最短可以只有两个包,发起请求,响应数据。而TCP一次数据交换最少需要9个包,三次握手建立联系,请求数据,响应数据,四次挥手断开连接
  3. 考虑到TCP的开销太大,所以选用UDP,也因此导致全球只有13台根域名服务器

TCP的三次握手和四次挥手

  1. 三次握手
    client: 你好!在吗?
    server: 在呢!
    client: 那我开始发送数据了哦!

  2. 四次挥手
    client: 我要下线了,你还有啥要说的?
    server: 我没啥说的了
    server: 你还有啥要说的?
    client: 没了,拜拜!


计算机网络五层协议栈

  1. 应用层
    应用层直接与用户交互,主要协议有www, smtp, ftp, dns等。定义了应用进程间通信和交互的规则。虽然发送方知道自己发的什么,但接收方不知道,所以应用层协议规定了一个消息必须包含消息头和数据区。消息头定义了消息格式,长度等。以http协议为例,在chrome中,可以看到header中含有content-type,content-length等字段。如果没有应用层协议,那接受方拿到消息也不知道怎么办,怎么处理。
  2. 传输层
    传输层定义了端口到端口的通信规则。如果没有传输层协议,消息包到达一个主机时,却不知道是哪个进程的。此层的协议有TCP,IP协议。
  3. 网络层
    网络层主要解决了异构网络通信的问题。主机到主机的通信。我们都知道mac地址可以全球唯一标识一台机器,但只有以太网是基于mac地址的。所以我们引入ip地址来标识一台主机。使用ip地址通信时,传输ip数据包,ip数据包会包含在数据帧的数据区。
  4. 链路层
    链路层在物理上的表现两个相邻节点之间的数据交换。整个互联网的交互可以简化为很多交换机节点的交互。一个交换机意味着一个局域网。而局域网有多种实现。最常见的是以太网,除此之外还有令牌环绕,ATM,无线网络等。此层数据格式为数据帧,分为帧头,数据区,帧尾。以太网中的数据帧称为以太帧。
  5. 物理层
    物理层将数据帧转化为01比特流,来在光缆,双绞,无限波等介质中传播信号。只要涉及信号的调制解调。

ARP协议:IP地址与MAC地址的协作问题:
host_1广播:我是ip_1, mac_1, 我找 ip_2
host_2广播:我是ip_2,mac_2, 我找 ip_1
ARP告诉缓存:小本本记下来。

你可能感兴趣的:(计算机网络,计算机网络)