前言
想要了解TCP / IP 七层网络模型如何工作,首先要知道,这七层网络是什么?往下走
Ps:这里所说的七层网络模型,实际上是五层,为什么呢?OSI 七层模型既复杂又不实用,所以 OSI 七层模型没有落地、实现。实际的网络组建是五层网络模型~
感兴趣的可以了解一下多出的两层(这两层介于应用层和传输层之间~),如下:
---------------------------
应用层...
---------------------------
表示层:将固有的数据格式和网络标准格式进行转换.
---------------------------
会话层:通信管理。负责建立和断开通信,管理传输层以下分层.
---------------------------
传输层...
一、五层网络模型分别是什么?(通俗理解)
1.1应用层
简单来说,可以理解为咱们生活中所看到的应用程序;
1.2传输层
端到端传输,传输层主要关注端口的信息,好比发快递主要关注的是收件人,寄件人信息;
1.3网络层
点到点传输,主要关注传输的路径,好比快递公司需要规划快递路径
1.4数据链路层
相邻结点之间的传输,主要关注路径中的各相邻结点,好比快递路途中的“中转站”;
1.5物理层
底层基础设施,一些硬件方面的东西,例如运快递时所经过的铁路,公路;
二、如何工作?
实际上是,封装和分用的过程,什么又是分装和分用?往下看你就清楚了~
假设场景:主机A通过微信给主机B发送了“What do you mean?”这个消息...
首先是封装过程:
2.1、应用层形成协议报文
假设微信内部约定好一个应用协议——把用户输入的字符串构造成约定好的应用层协议报文,如下图:
随后,微信就会把这个数据报交给传输层协议,进行下一步处理,如何交给传输层呢?传输层是操作系统内核实现,会提供一些API,就可以通过这写API把数据交给传输层(操作系统内核);
2.2、传输层添加TCP报头
传输层有很多协议,最典型的便是TCP协议;
TCP协议就是在原数据(载荷部分(payload))的基础上加上TCP报头(这里有很多信息,最关键的就是源端口和目的端口),如下图:
之后,传输层又会将这个数据交给网络层;
2.3、网络层添加IP报头
IP协议在解析的时候,会把TCP数据报视为一个整体,将这个整体作为载荷部分,之后再加上IP报头(数据有很多,但是最关键的就是源IP和目的IP),如下图:
构造完IP数据报后,IP协议把整个数据交给数据链路层;
2.4、数据链路层添加帧头帧尾
数据链路层最典型的就是“以太网”, 这个协议即管理数据链路层,又管理物理层,以太是什么,其实也就是指传输的介质;以太网这个协议会在数据包的头部和尾部分别加上帧头(主要存放源mac地址和目的mac地址)和帧尾(主要进行校验和);如下图
这里的“报、包、段、帧”字眼可以不用太纠结,就像Java中可以管方法叫函数,管函数叫方法一样~;
接下来就交给了物理层;
2.5、物理层通过解析进行传输
数据组织好后,通过物理层的设备(网卡),就可以将上述二进制流,转化成光信号(光纤)/ 电信号(网线)进行传输
这个过程,数据由上到下,层层叠加信息的过程就是封装;
最后是分用过程:
此处省略中间传输过程,假设数据到达了接收端主机B;