HTTP与TCP/IP --- TCP/IP四层模型

Posted 小样5411

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP与TCP/IP --- TCP/IP四层模型相关的知识,希望对你有一定的参考价值。

前言

本文主要是阅读《图解HTTP》做的总结,拿这本书做一个入门还是不错的,两天就能看完,书一共有11章节(书很小,案例生动形象通俗)

TCP/IP四层模型

我们天天在使用的互联网是在TCP/IP协议簇基础上运作的,而HTTP属于它内部的子集。不论是TCP/IP还是HTTP,他们都是计算机与网络设备通信约定的一种规则,我们把这种规则称之为协议。如果通信没有规矩,每个厂商都自己拟定规则,那网络通信就要适配各种规则,将会变得非常麻烦,而都遵守一个规则,那就方便很多了,下面我们说说在网络通信中非常重要的一个协议,那就是TCP/IP协议

TCP/IP协议中重要的一点是分层,按层次可分为四层:应用层、传输层、网络层和数据链路层。如下图,在网络通信过程中,客户端(发送请求)会从应用层开始从上往下走,然后传向服务器端会从下往上走,服务端处理完客户端的请求,就会返回响应结果,再从上往下,从下往上回到客户端。

比如我们输入一个地址,按回车,那么首先就会通过DNS协议(域名解析协议)进行域名解析,然后在应用层产生要访问某个Web页面的HTTP请求,然后为了传输方便,传输层用TCP协议会将应用层的HTTP请求报文进行分割,分割是为了更快的进行数据传输,并对各个报文进行处理(如标记序号及端口号等),然后传给网络层,网络层用IP协议增加目的地的MAC地址后转发给链路层,链路层是物理设备,客户端链路层的物理设备(路由器等)会进行路由转发等操作,将请求报文转发到服务器的物理设备上,然后按之前的逆向过程执行,比如再传到网络层,服务器的IP协议会将对应MAC地址获取到IP地址,然后服务器传输层的TCP协议将分割的报文段按照标记序号重组传给应用层,应用层的HTTP协议进行对重组恢复的HTTP请求内容处理,从而访问到服务器上得资源,然后服务器处理后做出响应传回去。

下面是路由转发过程,IP地址会通过ARP协议(地址解析协议),解析IP地址对应的MAC地址,MAC地址是网卡所对应的固定地址,中间转发多次,最后就转发到IP地址对应的物理设备。这也就是我们家为啥要装个路由器的原因,你访问任何网站都是要进行路由转发才能访问到对应网站,然后对应网站再处理你的请求,给你响应出页面。

TCP/IP传送数据的整个过程图解
首先说明的是,你输入一个网址,或者点一个网站,都会从客户端向网站对应的服务器发送HTTP请求,也就是数据报文,然后对应网站服务器处理你的请求再响应返回给你,你点的网站就会显示出效果了。分三部分,先建立连接,就是试探一下能不能连,三次握手连接,然后进行请求和响应,最后不用就四次挥手断开连接,如下两图。

关于TCP/IP三次握手和四次挥手可以见这篇优秀文章:彻底明白TCP的三次握手与四次挥手

关于TCP/IP四层模型,先写这么多入门一下,其实这本图解HTTP通俗易懂的讲了请求整个过程,然后再详细讲了请求报文中的数据报内容,主要就是请求响应过程,然后请求有请求报文,响应有响应报文,报文里面都含了很多数据信息,这本书入门还是很友好的,推荐可以先读一读,谢希仁的计算机网络经典,但可以先入门再读经典的。

以上是关于HTTP与TCP/IP --- TCP/IP四层模型的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP四层与五层模型 概论与详解

OSI七层与tcp/ip四层

OSI七层与tcp/ip四层

TCP/IP 开胃菜 之 HTTP

TCP/IP四层网络模型与OSI七层网络模型

TCP/IP四层模型和OSI七层模型的概念