HTTP与TCP/IP协议(一)

      web使用一种名为HTTP的协议作为规范,完成客户端和服务器端的通信。通常使用的网络是在TCP/IP协议族的基础上运作的。而HTTP属于它内部的一个子集。

      计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标,由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定。不同的硬件,操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议。像这样把与互联网相关的协议集合起来总称为TCP/IP。

     TCP/IP协议族最重要的一点是分层管理,优势有二:1)改动简单。若是需要变动,只需要把变动的层替换即可;2)设计简单。每一层只需要考虑分配给自己的任务,不需要管其他层的工作。

   TCP/IP协议族按层次分别分为四层:应用层,传输层,网络层,数据链路层。下面就简单描述每一层的作用:

    应用层:决定向用户提供应用服务时通信的活动。比如FTP和DNS就是其中两类。

    传输层:提供处于网络连接中的两台计算机之间的数据传输。包括TCP协议和UDP协议。

     网络层:用于处理在网络上流动的数据包。该层规定了通过怎样的路径,即传输路线到达对方的计算机,并把数据包发送给它。

    链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、网卡,以及光纤等物理可见部分。

    用电路的概念去了解:链路层相当于电路中的硬件,网络层相当于电路中的路线,传输层类似电压差,决定电流流向,最后是应用层体现电路的作用。




         利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行沟通。发送端从应用层往下走,接收端则往应用层往上走。我们用HTTP举例来说明:

      1.作为发送端的客户端在应用层(HTTP协议)发出一个HTTP请求。

      2.在传输层(TCP协议)会把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。

     3.在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。通过ARP(Address Resolution Protocol,地址解析协议)把IP地址解析成对应的MAC地址后转发给链路层。

     4.接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。


       发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部信息去掉。

你可能感兴趣的:(HTTP与TCP/IP协议(一))