【TCP/IP】五层网络模型详解(以及封装分用讲解)

各位看官,大家早安午安晚安呀~~~

如果您觉得这篇文章对您有帮助的话

欢迎您一键三连,小编尽全力做到更好
欢迎您分享给更多人哦

今天我们来学习【Java】并发编程实战:单例模式 + 阻塞队列的终极实现指南

前言:
随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。
网络互连:将多台计算机连接在一起,完成数据共享。
数据共享本质是 网络数据传输 ,即计算机之间通过网络来传输数据,也称为 网络通信
根据网络互连的规模不同,可以划分为局域网和广域网。

1.局域网和广域网

1.1.局域网(LAN)

局域网:又称为内网和私网即。Local Area Network,简称LAN
Local 即标识了局域网是本地,局部组建的一种私有网络。
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。

1.2.广域网

广域网,即 Wide Area Network,简称WAN
通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的 局域网都属于其子网。

1.3.IP地址和端口号

这个我们大家肯定都不陌生:描述了一个主机在互联网上面的地址
一般用4个字节(32位数字表示地址)
一般来说,IP地址会表示成4个0~255之间的十进制数字,然后用三个点进行分割(点分十进制)
打开cmd,输入ipconfig

具体IPV4和IPV6的区别,以及NAT机制如何拯救了IPV4一把,DNS(域名解析系统)的诅咒,大家可以看下面这个视频

IPV4和IPV6

网络通信,更具体一点,是网络主机中的不同进程间(有自己的端口号),基于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用 IP 地址来标识。(来自于主机上面的哪一个应用程序就需要端口号来识别)
端口号:区分一个主机不同应用程序(两个字节)
范围0~65535,0一般不使用,1~1023这个范围的端口号,系统留作特殊用途,我们的写的程序不应该占用!
一个端口号只能被一个程序绑定,但是一个程序可以绑定多个端口
一些知名端口号
3306:mysql服务器
22:ssh
80:http
443:https
23:telent
实际应用中IP和端口号都是成对出现的
1.4.五元组
TCP/IP 协议中,用五元组来标识一个网络通信:
1. IP :标识源主机
2. 源端口号:标识源主机中这次通信发送数据的进程
3. 目的 IP :标识目的主机
4. 目的端口号:标识目的主机中该这通信接收数据的进程
5. 协议:标识发送进程和接收进程双方约定的数据格式(按照什么协议进行)

2.协议

我们在学习网络的时候很多都是在学习协议
协议,网络协议的简称,网络协议是网络通信(即网络数据传输) 经过的所有网络设备 都必须共同遵从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
数据以什么形式进行传播?
网络上传输数据本质上是通过光/电信号来传输数据的,就像低电平表示0,高电平表示1(都是二进制数据)。信号一般远端通过光纤进行传输,然后“猫”把光信号转换成电信号传给路由器,路由器把电信号转换成无线电波,然后电子设备进行接收
简而言之:
光纤(光)→ 光猫(转电信号)→ 路由器(发射Wi-Fi无线电波)→ 手机(接收无线电波)

2.1协议分层

在网络环境里面,我们遇到的问题会十分复杂,所以我们如果把这些复杂的情况全放在一个协议里面,那这个网络协议就太复杂了

2.2.协议分层的好处

1.协议分层之后上层和下层就进行了封装

使用上层协议就不需要过多关注下层

使用下层协议也不徐亚过多的关注上层(你把工作完成后的结果交给领导就好了)

2.每一层协议都可以进行灵活替换

譬如你汇报不同的工作也可以找不同的领导进行汇报

就像外卖小哥可以找美团或者饿了么都行

2.3.OSI七层网络模型和TCP/IP五层网络模型

TCP/IP 是OSI的简化版本

图解

对于TCP/IP 五层协议我再进行解释一下

就拿快递举例

5层:应用层:关注这个数据的具体信息(快递里面的东西)

4层:传输层:只关注发送人和收件人(源端口和目的端口,所以说一般快递就算中转也不会触及到这一层)

3层:网络层:只关注原地址和目的地址(源IP和目的IP,一般来说一直不会变),进行路径规划(如果使用NAT机制,私网IP就会先变成路由器的公网IP)

路径规划:郑州到深圳有很多路径可以选择,但是数据链路层只关注相邻两个节点譬如(郑州到漯河)

2层:数据链路层:只关注相邻两个节点数据传输情况一般通过快递中转站都会改变这个地址,源mac地址和目标mac地址)

第一层:物理层:譬如使用的光纤是啥规格,网络通信的硬件设备是什么情况(就像公路,铁路)
 

下面两个B站的视频大家可以进行参考

关于路由器和交换机的mac地址关系说明

交换机和路由器的关系

网络设备所在分层(一般情况):

     对于一台 主机 ,它的 操作系统 内核实现了从传输层到物理层的内容,也即是 TCP/IP 五层模型的 四层
    对于一台 路由器 ,它实现了从网络层到物理层,也即是 TCP/IP 五层模型的 下三层
    对于一台 交换机(也叫二层设备 ,它实现了从数据链路层到物理层,也即是 TCP/IP 五层模型的 下两层。
注意:我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在 TCP/IP 五层模型的下两层)、三层路由器(工作在TCP/IP 五层模型的下三层)。
实际上:现在的路由器和交换机的功能越来越强大!甚至说一些高端的交换机也有路由功能。或者路由器交换机可能还会支持更加复杂的操作,甚至工作在传输层或者应用层。

3.封装分用

封住和分用:描述了网络通信过程中基本的数据传输流程(就是TCP/IP五层网络模型一步一步进行加载荷和去载荷的过程)

3.1.封装:

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation)。封装上这一层协议要加上的载荷
譬如:小明给小刚发送QQ发送“hello”为例子
     
进行封装的过程急加速给数据添加更多辅助信息的过程(就是加载荷的过程)
快递运送的时候,给鞋还得加个盒子再加个袋子呢

上层协议到下层协议层层给数据报添加报头的过程就叫“封装”

3.2.分用

数据发送出去后还要经过一系列的交换机和路由器转发,当数据到达小刚的电脑时,它的电脑就会对以上数据进行“分用”操作,把上面的数据报进行层层解析!

小刚(接收方)

这里不是到小刚的主机才进行分用,经过路由器就会分用到网络层,拿到IP地址,决定接下来如何进行传输

经过交换机:就会封装分用到数据链路层(源mac和目的mac的变化)

总之:封装就是应用层数据发送到网络上时,通过各层协议层层给这个数据加载荷的过程

分用就是去载荷拿到信息的过程。

上述就是TCP/IP】五层网络模型(以及封装分用讲解)的全部内容了。

能看到这里相信您一定对小编的文章有了一定的认可。

有什么问题欢迎各位大佬指出
欢迎各位大佬评论区留言修正~~

您的支持就是我最大的动力​​​!!!