阿拉善右旗今日大新闻
主页 > 金融新闻 > 文章列表

轻松学习http,让枯燥的内容变得生动有趣:TCP IP通信

发布日期:2020-06-30 00:42   来源:未知   阅读:

#学浪计划##2020毕业季##新作者扶植计划第二期##我要上头条#

在之前的分享中,小唐给大家介绍了TCP/IP四层模型和TCP的三次握手。TCP/IP四层模型和三次握手是实现数据通信和传输的准备阶段。本篇文章介绍的将会是实现数据通信和传输的进行阶段。

关于对TCP/IP四层模型和TCP的三次握手的学习,你可以阅读以下两篇文章:《TCP三次握手》、《TCP/IP四层模型》。

在正式的讲解TCP/IP传输的时候,小唐仍然会使用浏览器和服务器之间的数据传输和通信来举例,不过这一次的例子和以往的例子有着一些不一样。如下图:

客户端和服务器之间TCP三次握手的实现

我们的浏览器要开始和服务器进行数据传输和通信了。首先,浏览器如果要和服务器之间建立起可靠的TCP连接,就得在浏览器和服务器双方之间打三次招呼,确保是建立的可靠的TCP连接。

那么,为什么在进行了三次打招呼之后,就能确保客户端和服务端是可靠的TCP连接了呢?这和三次打招呼的内容有关,打招呼的内容主要是由SYN消息和ACK消息组成。SYN消息是计算机科学领域对建立TCP/IP连接规定的握手消息。主要由发送方发给接收方(上图中我们的浏览器和服务器都可以是发送方)。ACK消息是计算机科学领域对某一台主机收到SYN消息所规定的作为收到SYN消息的回应消息。ACK消息是一个传输控制符号,表明接收方接到的消息是准确无误的。

因此,客户端想要和服务器建立起可靠的TCP通信,首先就得给服务器发送SYN消息,表明想要和服务器建立通信;服务器收到SYN消息后对客户端发送ACK消息,告诉客户端可以建立通信并表明自己收到的数据是正确的,同时,服务器也会给客户端发送一个SYN消息表明想要和客户端建立通信;客户端用ACK消息回应。这时基于TCP的可靠性连接就建立起来了。客户端和服务器之间开始进行了正式的数据传输。

接下来,小唐将会完善上图,给大家引入TCP/IP四层模型,并给大家介绍数据的传输过程是怎么通过TCP/IP四层模型来实现的。

TCP/IP四层模型实现的TCP/IP通信

作为发送方,如果要把某些数据发送给接受方,按照TCP/IP的四层模型规定。发送的数据就会从传输层开始被打包,然后流转到网络层再一次进行打包,之后流转到数据链路层进行第三次打包。这样的打包方式叫做数据的三层打包,而实现数据的三层打包的数据流向叫做自顶向下的数据传输流。经过数据的三层打包后流转到了数据链路层,数据链路层会检查数据的三层打包的每一层标签是否正确,检查之后数据链路层就把数据包抛到互联网中进行传输,当数据进入互联网的一瞬间,数据传输就正式开始了。在互联网中能传输的数据的基本单位其实就是数据包。数据包在互联网中传输的过程叫做互联网数据传输流。很快,我们的数据包到达了接受方那里。

作为接受方,它可以在互联网传输流中拿出发送给自己的数据包,之后数据包就会从接受方的数据链路层开始拆包,数据链路层把数据包拆开后,会把数据包发给网络层拆包,网络层拆完过后会发给传输层拆包。传输层拆包完过后就能看见真实的数据了。这样的拆包方式叫做数据的三层拆包,实现三层拆包的数据流叫做自底向上的数据传输流。

在接下来的文章中,小唐将会给大家介绍关于HTTP的三层打包和三层拆包的那些事,尽请期待小唐的下一篇文章吧。