谁都能看懂的网络模型知识
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及其它可以联网的用户设备)都可称为一个站点。
完,各位共勉~
以上是关于谁都能看懂的网络模型知识的主要内容,如果未能解决你的问题,请参考以下文章