谁都能看懂的网络模型知识

Posted 嵌入式Linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁都能看懂的网络模型知识相关的知识,希望对你有一定的参考价值。


1.

网络是我们做嵌入式 避无可避的知识点,但是网络的层次很多,很多时候我们根本理解不了其中的层次和作用,今天跟我们公司的 X 总聊到这个,给我普及了一些知识,我觉得非常有用,分享给大家。


最近事情比较忙,更新文章速度没那么快,大家有问题还是到知识星球里面去找我,不是微信不对接,是消息太多,自己的事情也多,忙不过来,望见谅,觉得文章不错的,帮忙推荐下,转发下,感谢。


2.

网络模型经典图片

谁都能看懂的网络模型知识


好了,针对上面的模型,我们来举个例子说明一下

谁都能看懂的网络模型知识


下面这个图片

谁都能看懂的网络模型知识

两台 pc 通过交换机连上一个云服务器,我们假设都是通过网线来连接的。


1、物理层

物理层可以理解为硬件层,这个层的东西就是一个硬件的网口,phy 就是这个东西,这里的网络 pc 和交换机通过 phy连接,交换机也是通过 phy 和云连接。网络数据也是通过 phy 发送出去的。


我们所说的物理就是比较硬的东西,硬的东西那肯定是实际的硬件东西了,那物理层肯定就是硬件的鬼东西了。


2、数据链路层


物理层完成了数据的传输,还需要对0和1的定义进行规定(类似低电平为0,高电平为1),同时在传输0,1之后还需要对01进行分组如8bit为一个字节多少字节为一个包之类。这就是链接层的功能。

Ethenet 和 Wifi 基本就是属于这个层次。所以 wifi 协议其实就是解决的一个链路和物理层的问题,在更往上的网络层和传输层一般就是 TCP/IP 协议。

3、网络层

链路层说明把路打通了,可以在上面开车了,那不能随便开车啊,开车没有交通规则那就是要命的,所以就出现了网络层,出现了一些规范性的东西来规范在这条路上的车神们。




3.1 IP协议



目前广泛采用的是IPv4协议,这个协议规定,网址由32个bit组成



谁都能看懂的网络模型知识


这就要用到另一个参数"子网掩码"(subnet mask)






4、传输层

我们用网络的东西 ,都会记得有一个 socket ,这个层次就完成了,socket 的东西。到这个层次,就可以通过 socket 来发送数据了。还包装了一些简单的协议,比如 TCP,UDP。


socket 就相当于发动机,有了发动机,就可以创造出不同的车子,汽车,卡车,电动车,当然还会有玛莎拉蒂和布拉迪威龙。



传输层的作用就是建立一条规范,使得两台设备上多个任务之间的相互通信能够正常进行,而不需要区分数据到底是来自于哪个程序而能直接接收。这个实现方式就是,我们添加了一个参数,这个参数被称为“端口”(port)。每个任务拥有自己 port,只接受对应 port 的数据,以此来区分数据。

4.1 UDP协议

包含端口号最简单的实现就是UDP协议,他的格式几乎就只是在数据前加上发送端口和接收端口而已。

4.2 TCP协议

UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。


5、应用层

有了汽车,就出现了各种运输公司,什么中通,顺丰就应运而生了。所以这就是应用层了。


应用层的东西就是根据之前的层次来封装一些场景应用,比如我们正常的网址,就是 http协议。

谁都能看懂的网络模型知识

其他还有 ftp 等等之类的,具体还是看上面那个图,看起来还是非常不错的。


3.

经过上面的层次封装之后,如果我们要发送数据就变成了这样。

谁都能看懂的网络模型知识

然后接收端和发送端的对应解析大概是这样的,发送的时候每一层就封装上自己的东西,接收的时候,每一层就剥离掉其他层次,拿到自己那一层的数据。

谁都能看懂的网络模型知识


AP :类似 wifi 也就是无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个 AP。

STA:类似手机  每一个连接到无线网络中的终端(如笔记本电脑、PDA及其它可以联网的用户设备)都可称为一个站点。


完,各位共勉~

 




以上是关于谁都能看懂的网络模型知识的主要内容,如果未能解决你的问题,请参考以下文章

人人都能看懂的云计算知识科普 !

小白都能看懂的JVM知识,一文带你学会JVM内存模型!

人人都能看懂的LSTM

人人都能看懂的Django REST framework

人人都能看懂的Django REST framework

小学生都能看懂的残差网络