【嵌入式编程学习】网络编程预备知识
法师经常会遇到很多刚入门的小伙伴,不知道买了wifi模块要怎么使用,也不知道板载的4G模块和网口怎么用,这一期呢,法师就带大家快速入门网络编程,把你已经吃灰的板子利用起来。
在写代码之前,我们要先明白以下几个概念,因为在我们编写代码建立网络连接的时候,IP和端口号是必须知道的参数。
什么是IP地址?
通俗的来说,IP地址就好比你的家庭住址,每家每户对应一个地址一个门牌号,而IP就是我们的网络地址,我们可以通过这个地址来找到我们的电脑。所以IP地址具有地域性和独一性。
什么是端口?
当我们跟外部通信的时候,需要用端口号来区分不同的程序,所以用端口号来代替某一个程序。
什么是DNS服务器?
DNS服务器是用来解析域名的,也就是网址,把一个具体的网址解析成IP,比如把www.baidu.com解析成202.108.22.5,如果你发现你的板子ping百度的IP可以ping通,但是ping百度网址不行,就是DNS设置错误了。
TCP的基本知识
TCP是一个安全的链接,因为发送一次都有返回。
TCP的三次握手和四次握手
三次握手和四次握手指的是在开始传输的时候三次握手,在结束传输的时候四次握手,课本上的大串概念我就不说了,初学阶段只需要了解一个大概流程就好,有时候面试会问,咱们通过四个截图来了解下这个概念。
三次握手
对上图的简单解释:
四次握手
对上图的简单解释:
最后一个知识点,OSI模型。OSI模型即(Open System Interconnect)的缩写。OSI定义了网络互连的七层框架(应用层,表示层,会话层,传输层,网络层,数据链路层,物理层)如下图,因为每一层都很复杂,我们只要记住这个模型,了解每一层的作用就可以了。
应用层 |
为计算机用户提供应用接口和服务,也为用户提供网络服务 |
表示层 |
将应用层的数据转换和翻译 |
会话层 |
拿到表示层的数据后,建立连接并记录 |
传输层 |
主要通过socket来找到对应的程序并实现数据传输 |
网络层 |
IP协议层,处理数据包,通过网络层来找到对方的计算机并发送给对方,类似于快递转运中心 |
数据链路层 |
控制网络层和物理层之间的通信 |
物理层 |
处理网络的硬件传输介质 |