Web使用名为HTTP的协议作为规范,完成从客户端到服务端等一系列运作流程。而协议是指规则的约定。可以说Web是建立在HTTP上通信的
TCP/IP协议族
计算机与网络设备要相互通信,双方就必须基于相同的规则。我们把这种规则称之为协议
通常使用的网络是在TCP/IP协议族的基础上运行的,而HTTTP属于它内部的一个子集
分层管理
TCP/IP协议族按照分层可以分为4层:应用层、传输层、网络层、数据链路层
应用层
应用层决定了向用户提供应用服务时通信的活动
传输层
传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
有两个不同的协议:TCP、UDP
网络层
网络层用来处理在网络上流动的数据包。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方
数据链路层
用来处理连接网络的硬件部分
负责传输的IP协议
IP协议位于网络层。IP协议的作用是把数据包传送给对方。要保证数据包确实传送给对方,就需要满足各类条件。其中最重要的就是:IP地址和MAC地址
- IP地址指明了节点被分配的地址
- MAC地址是指网卡所属的固定地址
确保可靠性的TCP协议
TCP属于传输层,提供可靠的字节流服务。为了保证数据准确的发送到目标处,TCP协议采用三次握手策略。
TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag)——SYN(synchronize)和ACK(acknowledgement)。
- 发送端首先发送一个带SYN标志的数据包给对方
- 接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息
- 最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束
负责域名解析的DNS服务
DNS服务和HTTP协议一样位于应用层,它提供从域名到IP地址的解析服务。
各协议的关系
图片取自《图解HTTP》