TCP/IP协议与HTTP协议的关系
最近开始学习计算机网络的相关知识,对与HTTP、TCP、IP协议的关系还不是太清楚,所以回顾下图解HTTP书上的讲解。书上通过一个HTTP通讯过程来说明HTTP协议和TCP协议、IP协议和DNS服务的关系。下面先简单介绍下IP协议、TCP协议和DNS服务。
IP(Internet Protocol)网际协议
- IP(Internet Protocol) 网际协议位于网络层,几乎所有使用网络的系统都会用到IP协议。IP协议的作用是把各种数据包传送给对方。为了保证传输的可靠性,我们需要IP地址和MAC地址。
- IP地址指明了节点被分配到的地址,MAC地址是网卡所属的固定地址。IP地址可变换,MAC地址基本不会更改,两者之间可以配对。
- IP间的通讯依赖于MAC地址。在网络上,通信的双方都在同一局域网内的情况是十分少见的,通常是经过多台计算机和网络设备进行中转才能连接上对方。而在中转时,会利用下一站中转设备MAC地址来搜索下一个中转目标。此时采用ARP协议解析地址,根据通信方的IP地址反查出MAC地址进行通讯。
TCP协议
- TCP协议位于传输层,提供可靠的字节流服务。
- 为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理,这样能更容易传输大数据。而且TCP协议能够确认数据最终是否送达到对方(三次握手策略)。
DNS域名解析服务
- DNS服务是位于应用层的协议。它提供域名与IP地址之间的解析服务。
- 计算机可以有IP地址,也可以有主机名和域名,如 blog.youkuaiyun.com。用户为了方便通常使用主机名或域名来访问对方的计算机,而不直接使用IP地址。但对于计算机来说,要理解这样的名字并不容易。所以使用DNS协议通过域名查找IP地址,或通过IP逆向查找域名。
下面举例说明各种协议与HTTP协议的关系
- 假设客户端发出了我想浏览https://www.example.cnWeb页面,则会有以下通信过程
- 客户端请求DNS服务得到www.example.cn对应的IP地址,假设是 192.168.xxx.xxx
- HTTP协议职责——生成针对目标Web服务器的HTTP请求报文(应用层)
- TCP协议职责——将HTTP报文按序号分割成多个分割成报文段,把每个报文段可靠地传给对方(传输层)
- IP协议职责——搜索对方的地址,一边中转一边传送。(网络层)
- TCP协议职责——从对方那里接收到报文段,按序号重组到达的报文段(传输层)
- HTTP协议职责——对Web 服务器请求的内容的处理
- 请求的处理结果也同样利用TCP/IP通信协议向用户回传。