用积木思维搞定TCP/IP——LuatOS快速上手指南

TCP/IP协议虽重要,但学习曲线陡峭。LuatOS以“积木式”开发为核心理念,将网络功能模块化,让开发者通过直观组合快速掌握通信实现,告别繁琐编码。

提到网络应用,就绕不开TCP/IP——它不仅是互联网的通信基石,更像是一套精妙绝伦的“世界语”,让形态各异、遍布全球的设备能够跨越硬件和软件的差异,使用统一的规则进行对话。

相比传统开发方式,LuatOS通过高效易用的API:将复杂的协议细节封装在简洁的接口之下,开发者无需从零开始构建整个协议栈,而是可以像搭积木一样快速上手,只需专注于应用逻辑本身。

你可以在几分钟内让一块4G-Cat.1模块真正连接到云端服务器,并立刻观察到数据交互的全过程。每一个理论概念,都能通过具体的代码和硬件行为得到最直观的验证和理解。

感兴趣的朋友,关注近期的公开培训直播课。

一、TCP/IP网络模型简介

有网络应用开发经验的人,应该都听说过OSI七层模型、TCP/IP协议四层模型和TCP/IP协议五层模型。

这三种网络协议模型的说明,参考下表:

image

看了这张表之后,我们应该有以下几点认识:

都采用了分层的思想,将复杂的通信过程分解为更小、更易于管理的部分;

每一层都为其上层提供服务,并使用其下层提供的服务;

这三种网络模型,只是分层的颗粒度不一样;实际上,这三种网络模型的本质内容都是一样的。

既然本质内容是一样的,为什么还要存在三种网络模型呢?

我们简单地看一下这三种网络模型的历史:

TCP/IP

20世纪70年代(1970s)

美国国防部某个计划局,提出了建立一种通信网络的需求;美国的几个工程师大佬开发了一套通信协议,TCP和IP协议是其中的核心;当时并没有抽象出四层或者五层模型。

OSI和TCP/IP

20世纪80年代(1980s)

网络技术蓬勃发展,但各家厂商(如IBM、DEC)都有自己的私有网络协议标准,导致不同厂商的设备之间无法通信。

网络世界,需要一个“通用语言”。

国际标准化组织ISO于1984年,提出了开放系统互联OSI参考模型;

与此同时,TCP/IP的支持者也抽象出了一套自己的“术语”和“框架”来与OSI模型竞争。他们从现有的TCP/IP协议族中反向归纳、提炼出了一个更简单的分层模型。

**TCP/IP **

20世纪90年代(1990s)

OSI和TCP/IP经过一段时间协议竞争,最终TCP/IP胜出,得到广泛应用,主要有以下几点原因:

TCP/IP来自实践,简单高效,易于实现;而OSI模型过于复杂和理想化,标准制定缓慢;

TCP/IP规范(RFC文档)对所有人免费开放,鼓励了广泛的应用和创新;

美国政府规定其所有联邦机构使用的网络必须支持TCP/IP;

万维网(World WideWeb)在1991年出现,它运行在TCP/IP协议之上,Web的爆炸式普及使得TCP/IP协议成为了所有上网设备的必然选择。

最终,TCP/IP模型在实践中得到广泛应用。

至于TCP/IP四层模型和TCP/IP五层模型,二者的差别不大,主要体现在对最底层的划分不同:

四层模型隐藏了底层细节,将网络接入视为一个黑盒,更关注对软件层面的设计,不关心具体的硬件;

五层模型明确包含了物理硬件层。

四层模型和五层模型本质上是同一个东西的两种不同表述方式,所以我们接下来不纠结四层还是五层模型,而是统称为TCP/IP模型。

公开培训系列直播课也会根据不同的应用场景,决定选择四层模型还是五层模型来讲解。

二、LuatOS对TCP/IP协议栈的支持

在了解TCP/IP网络模型之后,接下来我们看一下TCP/IP协议这个概念。

TCP/IP网络模型是理论上的框架和蓝图,而TCP/IP协议是这个框架的具体实现。我们来看下面这张表格:

image

可以看到,每一层都有多个协议去实现,在所有的这些协议中,TCP和IP两种协议是其中的核心协议,所以用TCP/IP协议代指网络模型中的所有协议。

所以说,TCP/IP协议并不是两个单一的协议,而是一个协议家族,包含TCP/IP网络模型中的所有协议;所有协议协同工作,从软件上完成了互联网上的数据传输任务。

TCP/IP协议的核心工作原理,功能分层、数据封装/解封装等已整理详细介绍,感兴趣的朋友可查看文档:

https://docs.openluat.com/luatos_lesson/002_luatos_socket/

那么,LuatOS对TCP/IP协议栈的支持情况是怎样的,提供了哪些编程接口给LuatOS项目应用脚本来使用呢?

2.1 应用层

1)LuatOS协议支持:

HTTP,MQTT,FTP,WebSocket,DNS,NTP,DHCP, SSL/TLS(从OSI七层模型来看,和表示层最接近,所以此处把SSL/TLS放到TCP/IP模型中应用层)。

2)LuatOS编程接口:

socket核心库/libnet扩展库

http核心库/httpplus扩展库/httpsrv核心库

mqtt核心库

ftp核心库

websocket核心库

httpdns扩展库

dhcpsrv扩展库

udpsrv扩展库

用层提供的这些编程接口和LuatOS项目应用开发关系最为密切,这些核心库和扩展库的API文档可参考下方链接。

LuatOS最新API手册:https://docs.openluat.com/osapi/

2.2 传输层

1)LuatOS协议支持:TCP,UDP;

2)LuatOS编程接口:socket核心库/libnet扩展库。

2.3 应用层

1)LuatOS协议支持:IP,ICMP;

2)LuatOS编程接口:

socket核心库

exnetif扩展库IP_READY、IP_LOSE

在这里重点说一下exnetif扩展库,exnetif扩展库有两项核心功能。

image

2.4 数据链路层

LuatOS协议支持:

以太网、Wi-Fi、4G等网络各自的数据链路层协议;

以太网的IEEE 802.3系列;

Wi-Fi网络的IEEE 802.11系列;

4G网络的PDCP、RLC、MAC等协议。

2.5 物理层

光纤、双绞线、无线电波等传输介质。

今天的内容就分享到这里了!

posted @ 2025-10-15 17:20  电子老师傅  阅读(10)  评论(0)    收藏  举报