tcp协议
https://blog.csdn.net/sinat_36629696/article/details/80740678
DNS协议
如果说ARP协议是用来将IP地址转换为MAC地址,那么DNS协议则是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。
我们都知道,TCP/IP中使用的是IP地址和端口号来确定网络上某一台主机上的某一个程序,不免有人有疑问,为什么不用域名来直接进行通信呢?
- 因为IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理。
- IP地址对于用户来说不方便记忆,但域名便于用户使用,例如www.baidu.com这是百度的域名。
查询原理
DNS查询分为递归和迭代两种方式。递归查询是指服务器会替代源地址进行查询,类似于代理的工作方式。迭代查询是指服务器回给客户端的信息中,RA不置位,并携带有其他DNS服务器的信息,让客户端再向其他服务器发起查询,由于internet上的根服务器压力巨大,所以根服务器都是不接受递归查询的,因此internet上的查询过程基本上都是迭代的。
递归查询
机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
迭代查询
本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询。
域名服务器分类
根域名服务器:最高层次的域名解析服务器,也是最重要的域名解析服务器。本地域名解析服务器无法解析的域名就会向根域名解析服务器求助。顶级域名服务器:负责管理该顶级域名服务器下注册的二级域名。权限域名服务器:负责一个区的域名解析工作。本地域名服务器:当一个主机发起DNS请求时,首先请求的就是本地域名解析服务器。
HTTP协议:
HTTP是基于传输层的TCP协议,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。下图所示TCP连接的三次握手。
在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。一个重要的概念是面向连接,既HTTP在传输完成之间并不断开TCP连接。在HTTP1.1中(通过Connection头设置)这是默认行为。