Linux:网络基础(协议、数据的封装与分用)(一)


1. 协议

1.1 协议的概念

协议的概念

协议是双方约定同一种语言,从而可以进行沟通

网络协议

那么网络协议就是通信双方在约定通信时使用的一种数据格式,从而进行网络通信

碎片知识:网络是按照区域进行划分的,可以划分为局域网、城域网和广域网。

1.2 协议的分层

网络是有分层结构的,每一个分层当中有不同的网络协议,不同的网络协议完成不同的事情,不同的分层都有自己要完成的事情。

再说协议的分层之前,我们先来看看网络协议簇和网络的体系结构

网络协议簇:顾名思义,就是由很多网络协议组成,称之为协议簇。

体系结构:体系结构规定了网络的分层以及每一个分层所要完成的功能,以及每一个分层所拥有的协议,还规定了每一个分层与自己上下层之间的关系。

1.2.1 OSI 七层模型

对于该模型,我们只需要记住七个字即可:物数网传会表应

物理层数据链路层网络层传输层
会话层表示层应用层

由于划分的太繁琐,因此在工业当中并没有广泛的应用。

1.2.2 TCP/IP四层(五层)模型

分层作用
应用层程序员写的代码都是应用层的代码,换句话来说,程序员都是工作在这一层的
传输层端与端之间的传输,端指的是端口(端点)
网络层IP地址管理和路由选择,该层的典型设备是路由器
数据链路层网络数据帧的传输,负责相邻设备之间的传输,典型的设备是交换机
物理层将二进制数据转化成为光电信号,并进行传输,典型的设备是集线器

四层和五层的区别就是四层模型没有物理层,其他的都有。

2. 数据的封装与分用

2.1 数据的流向

就拿个简单的例子来说把,张三在地区A用手机里的微信给在地区B的李四发了一条消息,在这个过程中,首先,微信是一个应用程序,由它产生的数据也是应用数据,我们知道这些应用数据、应用程序都存在于应用层的,所以微信的消息也是微信这个程序产生的一条数据,那么,这条消息是如何到达李四的手机上的呢?

其实也不难理解,根据TCP/IP五层模型,这条消息首先从张三手机网络上的应用层->传输层->网络层->数据链路层->物理层(该过程统称为网络协议栈),到物理层之后,这条消息被转为光电信号从光缆中传输到李四所在地区B,然后再被李四的手机所捕获到,再经过物理层->数据链路层->网络层->传输层->应用层,最终被李四所接收到,这就是一个宏观上的数据的流向。

总结一下就是

网络数据的转发,需要先经历自己的网络协议栈,进而通过网络将数据转化为光电信号传输到对端机器中去。

对端机器收到数据之后,需要经历自己的机器网络协议栈的层层向上提交,一直将数据提交到应用程序当中。

2.2 ip,端口的本质和作用

① ip地址

我们通常所说的ip地址,基本上都是ipv4版本的ip地址,ipv4的地址本质上是一个uint32_t的整数,它的范围也就是(0~232),也就是最多有42亿多个ip地址,并且这些地址通常都是按照点分十进制的方式来表示的,举个例子就是192.168.32.2

它是以点来分隔出了四部分,即每个部分只占用了一个Byte,换句话说每一个部分的每一个数字的范围都是(0~255)。

它的作用就是可以在网络中唯一标识一台主机,一个公网ip只能被一台机器所占有,并且一个机器可以拥有多个ip地址。

这里需要注意的是,ip地址中有三段地址是不能进联网的,但是是可复用的,被称为私网ip。

② 端口

端口的本质就是以一个uint16_t的整数,范围是 [0~65535] (也就是216)。

它的作用就是在一台机器中唯一的标识一个进程,它所引申出来的含义就是:一个端口只能被一个进程所绑定,并且一个进程可以绑定多个端口。

2.3 数据的封装和分用

之前也讲了网络数据的流动,是需要经过网络协议栈的,那么,网络协议栈在进行数据转发的时候,到底做了哪些事情呢?

还是用之前的那个张三给李四发消息的例子,现在具体一点,张三给李四发送了一个"abcdef"的消息,现在我们来具体的看一下网络协议中具体做了哪些事情。

首先看发送方,如下图

在这里插入图片描述

再看接收方:

在这里插入图片描述

整体来看就是

在这里插入图片描述

2.4 常见的问题

① 一条网络数据需要网络转发的时候,需要具备哪些条件?

解答:网络数据中需要包含五元组信息,{源ip地址,源端口,目的ip,目的端口,协议},网络数据中是一定是要存在五元组信息的,否则网络就没有办法进行转发。

② 对于接收方而言,所有的网络数据都是需要经历网络协议栈的,但是,怎么去区分网络数据到底是哪一个应用数据的?

解答:我们可以通过前面所提到的端口来对其进行区分。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
嵌入式Linux网络体系结构与TCP/IP协议栈的关系密切,是嵌入式设备网络通信功能的核心组成部分。 嵌入式Linux网络体系结构是指整个嵌入式设备上的网络通信架构,包括网络接口、网络协议栈、网络驱动等。其中,TCP/IP协议栈是网络协议的核心部分。TCP/IP协议栈是一组网络协议的集合,包括IP协议、TCP协议、UDP协议等。它是实现网络通信的基础,负责数据包的传输和路由。 在嵌入式Linux网络体系结构中,网络接口是设备与网络连接的接口,负责将数据包传输到网络中。网络驱动是设备与操作系统之间的桥梁,负责控制网络设备的硬件和软件。TCP/IP协议栈则是在操作系统内核中实现的软件模块,负责处理网络数据包的封装、解析、传输和路由。 嵌入式Linux网络体系结构与TCP/IP协议栈的紧密结合,使得嵌入式设备能够进行网络通信。通过网络接口和网络驱动,嵌入式设备可以与网络进行连接,并通过TCP/IP协议栈实现数据的传输和交换。TCP/IP协议栈提供了可靠的数据传输机制,保证了数据的完整性和准确性。同时,它还提供了灵活的路由算法,使得数据能够在复杂的网络中传输。 总之,嵌入式Linux网络体系结构与TCP/IP协议栈是嵌入式设备网络通信的核心组成部分。它们共同实现了设备与网络的连接和数据的传输,为嵌入式设备提供了强大的网络通信功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值