在TCP/IP协议族中与HTTP密不可分的有3个协议,分别是IP、TCP和DNS。下面简单介绍下这3种协议。
1、IP协议
IP(Internet Protocol)网际协议位于网络层,几乎所有使用网络的系统都会用到 IP 协议。TCP/IP 协议族中的 IP 指的就
是网际协议,"IP"和"IP地址"是不同的,"IP"其实是一种协议的名称。
IP 协议的作用是把各种数据包传送给对方,而要保证确实传送到对方那里,则需要两个重要的条件, IP 地址和 MAC地址(Media Access Control Address)。IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址可以和 MAC 地址进行配对。IP 地址可变换,但 MAC地址基本上不会更改。
ip间的通信依赖于mac地址,在信息传输中,有时候由于中转太多,因此会采用ARP协议(解析地址的协议),通过ip地址就可以反查出对应的mac地址。
![](https://img-hello-world.oss-cn-beijing.aliyuncs.com/44f8188cc4cadafcc38aefac880a6644.png)
2、TCP协议
TCP 位于传输层,提供可靠的字节流服务。TCP协议为了更容易传送大数据,把大块数据分割成以报文段为单位的数据包进行管理,并且能够确认数据最终是否送达到对方。
为了保证传输的可靠性,TCP协议采用了三次握手的策略。TCP协议把数据包发送出去后,会向对方确认是否成功送达,握手过程中使用了TCP的标志——SYN和ACK。
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束,这就是**三次握手**。若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
3、DNS服务
DNS(Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名到 IP 地址之间的解析服务。
计算机可以被赋予IP地址,也可以被赋予主机名或域名。由于主机名或域名比IP更容易记忆,用户通常使用主机名或者域名来访问对方的计算机,而不是直接使用IP地址访问(例如访问百度,使用的是www.baidu.com)。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务,从而实现通过域名或主机名访问的效果。
4、HTTP与这几个协议的关系
通过这张图来了解下 IP 协议、TCP 协议和 DNS 服务在使用HTTP 协议的通信过程中各自发挥了哪些作用。