http协议,tcp协议,ip协议,dns服务之前的关系和区别
长期以来都有一个问题,大家都在说http协议,tcp协议,ip协议,他们之间到底什么区别,有什么用,没人告诉我,最近看了这本《图解http》明白了一些,以下图片摘自这本书
一、理解一个传输流再去扩展
用http举例来说,首先作为发送端的客户端在应用层(http协议)发出一个想看某个web页面的http请求。
接着,为了传输方便,在传输层(tcp协议)把从应用层处收到的数据(http请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层。
在网络层(ip协议),增加作为通信目的地的mac地址后转发给
。这样一来,发往网络的通信请求就准备齐全了。
接收端端服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的http请求。
二、与http关系密切的协议:ip,tcp和dns
ip协议:从上图中,可以知道,ip协议属于网络层,可能有人会把“ip”和“ip协议”搞混,“ip”其实是一种协议的名称, ip协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是ip地址和mac地址
ip地址指明了被分配到地址,mac地址是指网卡所属的固定位置,ip地址可变换,但mac地址基本上不会更改
tcp协议:按层次分,tcp协议位于传输层,提供可靠的字节流服务,字节流服务指的是为了传输方便,将大块数据分割成以报文段为单位的数据包进行管理。
dns:dns服务是和http协议位于应用层的协议,它提供域名到ip地址之间的解析服务
下面这张图了解下ip协议,tcp协议和dns服务在使用http协议的通信过程中发挥了哪些作用