文章目录TCP/IP--七层通信先来看一下会话层以上的处理再来看一下传输层以下的处理如何理解三次握手和四次挥手TCP/IP–七层通信下面举例说明7层网络模型的功能。假设使用主机A的用户A要给使用主机B的用户B发送一封电子邮件。在七层OSI模型中如何模块化通信传输先来看一下七层通信的整体架构如下图发送端发送邮件的时候是先从应用层传输再逐次向下到物理层而当接收端接收邮件的时候是先从物理层进行接收然后逐次向上到应用层还有就是在接收端的每一层处理内容的时候都会给内容加上一个“首部信息”用来指定内容发送的信息比如说应用层写好一封邮件之后就会给内容加上一个首部信息这个首部信息可能包括邮件内容“早上好”和收件人“B”而在接收端对应的层也就是在接收端的应用层会把首部信息和发送端的发送内容相分离。因此发送端从上到下处理内容达到物理层的时候已经给内容包括七层首部信息了当接收端开始从物理层处理发送端发送来的内容的时候首先物理层会把物理层的首部信息和内容分离相当于去除了发送端发送来的内容的一层首部信息等到接收端的应用层处理内容的时候就可以去掉第七层首部信息了就相当于发送端是一层一层的包裹而接收端则是一层一层的拆封先拆最外层逐次到最里层。还有就是每一层都有每一层的通信协议有了同一个通信协议每一层才能正确的解析对方发送来的信息。注意每一层的通信协议都是相同的如下图先来看一下会话层以上的处理1.首先说一下应用层应用层可以简单的想象成是应用程序的页面比如说现在A用户想要给B用户发送一封邮件那么A用户就需要去打开自己电脑上的邮箱新建一封邮件。比如A用户新建邮件内容“早上好”收件人“B用户”。那么在接收方B用户接收到发送放的内容之后当内容被接收方的应用层处理的时候首先因为发送方的应用层和接收方的应用层使用的是同一个通信协议因此接收方能够正确解析发送方发来的数据然后接收方应用层会取出内容的首部信息得到真正的邮件信息最后接收方应用层会把邮件存储到接收方的硬盘或者其它存储器里面。并且如果接收方邮件已满会给发送方应用层返回一个错误提示信息这也是应用层干的事情。2.再来说下表示层表示层是用来提供一个“网络通用的标准数据格式”的。在邮件发送初期必须要求发送方和接收方使用的是同一个类型的邮箱比如说都是qq邮箱这样接收端才能正确解析发送端邮箱发送来的数据格式。但是这对用户来说就非常的不方便就是我如果想要给你发邮件还必须下载和你一样的邮箱客户端这太麻烦了。而表示层可以将“某个计算机特定的数据格式”转换为“网络通用的标准数据格式”这样我们只需要让每一种类型的邮箱都能够处理“网络通用的标准数据格式”就ok了。比如说现在A用户使用的是A类型的邮箱而B用户使用的是B类型的邮箱A类型的邮箱的数据格式是A数据格式B类型的邮箱的数据格式是B数据格式如果没有表示层B用户肯定是不能处理A用户发送来的数据格式的但是有了表示层之后表示层可以把A用户发送来的A数据格式转换为“网络通用的标准数据格式”而B类型的邮箱可以对“网络通用的标准数据格式”进行正确的转换可以转换成B数据格式这样就不会出现A邮箱和B邮箱的数据格式不通问题了。3.接着说下会话层会话层主要是确定采用何种连接方法的。比如说现在A用户想要给B用户发送五封邮件那么是建立一次连接一次发送五封邮件还是建立5次连接一次发送一封邮件。这个是会话层主要负责的。再来看一下传输层以下的处理4.然后是传输层传输层的作用主要是建立连接和断开连接以及当检测到目标主机上没有接收到全部的发送数据时它会重发数据。当主机A向主机B发送邮件的时候主机A会确保与主机B之间能够成功通信以便后面发送数据确保通信其实就是建立连接。当主机A成功发送数据到主机B并且主机B也全部接收了那么这个时候传输层又会负责断开连接。还有就是传输层可以重发数据比如说现在主机A给主机B发送的邮件内容是“早上好”但是主机B接收到的内容却只有“早上”后面主机A会确认主机B是否接收到了全部的数据检测结果是没有全部接收到那么这个时候主机A会把“好”重新发送给主机B。5.接着是网络层网络层主要时进行发送数据的传输层是负责连接和重发数据的。网络层的作用是在网络与网络互相连接的环境中准确的把数据从发送端主机发送到接收端主机的这个过程中目标ip地址非常重要它是找到目的主机的关键目标ip地址可以理解成我们生活中的电话号码。网络层与传输层是相互协作的关系网络层不能确保数据一定能传达到对方的主机上比如说本来的发送内容是“早上好”但是发送到接收端主机之后它只接收到了“早上”。这个时候就需要传输层起作用了需要传输层来进行重发操作。6和7.数据链路层和物理层通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。数据链路层会把传输的数据转换成0,1二进制的形式。然后就是物理层物理层可以理解成之前老的座机电话的电话线。物理层可以将0,1二进制数据转换为电压和脉冲信号进而通过物理的传输介质比如说电话线把电信号和脉冲信号通过物理介质传输到对端。主机B端的处理接收端主机B上的处理流程正好与主机A相反它从物理层开始将接收到的数据逐层发送给上一分层来进行处理从而使用户B最终在主机B上使用邮件客户端软件接收用户A发送过来的邮件并可以读取相应内容为“早上好”。如何理解三次握手和四次挥手发生场景传输层。三次握手的目的为了建立连接。四次挥手的目的为了断开连接。三次握手的流程第一次握手客户端首先给服务端发送一个信号告诉它我要建立连接了你准备好了吗第二次握手服务端给客户端发送一个信号我准备好了。第三次握手客户端给服务端发送信号真正的建立连接。为什么是三次呢要确保连接成功建立为了避免浪费资源。因为如果只有两次它是不知道客户端的状态是否是准备完成的状态的可能会连接建立失败浪费资源。四次挥手的流程第一次挥手客户端首先给服务端发送一个断开连接的信号。第二次挥手服务端给客户端发送一个连接成功断开的信号。第三次挥手服务端给客户端发送一个断开连接的信号。第四次挥手客户端给服务端发送一个连接成功断开的信号。为什么是四次呢因为TCP是全双工传输通道在两个方向都可以传输不管是从客户端向服务端还是服务端向客户端所以这里要进行四次挥手确保两个方向的连接都成功关闭了。