【嵌入式编程学习】网络编程预备知识

       法师经常会遇到很多刚入门的小伙伴,不知道买了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协议层,处理数据包,通过网络层来找到对方的计算机并发送给对方,类似于快递转运中心

数据链路层

控制网络层和物理层之间的通信

物理层

处理网络的硬件传输介质