小唐IT实用技术讲解 让枯燥的内容变得生动有趣:TCP/IP通信的简单实现,轻松学习http

【小唐IT实用技术讲解 让枯燥的内容变得生动有趣:TCP/IP通信的简单实现,轻松学习http】#学浪计划##2020毕业季##新作者扶植计划第二期##我要上头条#
在之前的分享中 , 小唐给大家介绍了TCP/IP四层模型和TCP的三次握手 。 TCP/IP四层模型和三次握手是实现数据通信和传输的准备阶段 。 本篇文章介绍的将会是实现数据通信和传输的进行阶段 。
关于对TCP/IP四层模型和TCP的三次握手的学习 , 你可以阅读以下两篇文章:《TCP三次握手》、《TCP/IP四层模型》 。
在正式的讲解TCP/IP传输的时候 , 小唐仍然会使用浏览器和服务器之间的数据传输和通信来举例 , 不过这一次的例子和以往的例子有着一些不一样 。 如下图:
小唐IT实用技术讲解 让枯燥的内容变得生动有趣:TCP/IP通信的简单实现,轻松学习http
文章图片
客户端和服务器之间TCP三次握手的实现
我们的浏览器要开始和服务器进行数据传输和通信了 。 首先 , 浏览器如果要和服务器之间建立起可靠的TCP连接 , 就得在浏览器和服务器双方之间打三次招呼 , 确保是建立的可靠的TCP连接 。
那么 , 为什么在进行了三次打招呼之后 , 就能确保客户端和服务端是可靠的TCP连接了呢?这和三次打招呼的内容有关 , 打招呼的内容主要是由SYN消息和ACK消息组成 。 SYN消息是计算机科学领域对建立TCP/IP连接规定的握手消息 。 主要由发送方发给接收方(上图中我们的浏览器和服务器都可以是发送方) 。 ACK消息是计算机科学领域对某一台主机收到SYN消息所规定的作为收到SYN消息的回应消息 。 ACK消息是一个传输控制符号 , 表明接收方接到的消息是准确无误的 。
因此 , 客户端想要和服务器建立起可靠的TCP通信 , 首先就得给服务器发送SYN消息 , 表明想要和服务器建立通信;服务器收到SYN消息后对客户端发送ACK消息 , 告诉客户端可以建立通信并表明自己收到的数据是正确的 , 同时 , 服务器也会给客户端发送一个SYN消息表明想要和客户端建立通信;客户端用ACK消息回应 。 这时基于TCP的可靠性连接就建立起来了 。 客户端和服务器之间开始进行了正式的数据传输 。
接下来 , 小唐将会完善上图 , 给大家引入TCP/IP四层模型 , 并给大家介绍数据的传输过程是怎么通过TCP/IP四层模型来实现的 。
小唐IT实用技术讲解 让枯燥的内容变得生动有趣:TCP/IP通信的简单实现,轻松学习http
文章图片
TCP/IP四层模型实现的TCP/IP通信
作为发送方 , 如果要把某些数据发送给接受方 , 按照TCP/IP的四层模型规定 。 发送的数据就会从传输层开始被打包 , 然后流转到网络层再一次进行打包 , 之后流转到数据链路层进行第三次打包 。 这样的打包方式叫做数据的三层打包 , 而实现数据的三层打包的数据流向叫做自顶向下的数据传输流 。 经过数据的三层打包后流转到了数据链路层 , 数据链路层会检查数据的三层打包的每一层标签是否正确 , 检查之后数据链路层就把数据包抛到互联网中进行传输 , 当数据进入互联网的一瞬间 , 数据传输就正式开始了 。 在互联网中能传输的数据的基本单位其实就是数据包 。 数据包在互联网中传输的过程叫做互联网数据传输流 。 很快 , 我们的数据包到达了接受方那里 。
作为接受方 , 它可以在互联网传输流中拿出发送给自己的数据包 , 之后数据包就会从接受方的数据链路层开始拆包 , 数据链路层把数据包拆开后 , 会把数据包发给网络层拆包 , 网络层拆完过后会发给传输层拆包 。 传输层拆包完过后就能看见真实的数据了 。 这样的拆包方式叫做数据的三层拆包 , 实现三层拆包的数据流叫做自底向上的数据传输流 。
在接下来的文章中 , 小唐将会给大家介绍关于HTTP的三层打包和三层拆包的那些事 , 尽请期待小唐的下一篇文章吧 。


    推荐阅读