连接开发板
用网线连接宿主机和开发板
服务器运行在ubuntu上,模拟云端服务器
客户端运行在开发板上,采集数据并且发送到服务器端
服务器与客户端两个设备必须处于同一网段
Ubuntu改IP
1.在关机状态下,进入虚拟机 ->设置 —》网络适配器 》选择 桥接模式 并且勾选复制物理网络连接状态(要连上网线)
2.在网络适配器中,只勾选PC与开发板连接在同一个网段的那个网卡,避免多网卡的干扰
点击更多设置:
只勾选PC与开发板连接在同一个网段的那个网卡(是WiFi还是以太网),避免多网卡的干扰:
如果适配器中没有网卡显示,以管理员程序运行虚拟机
如果还是没有,就找到vmware的安装程序,右键以管理员程序运行,会提示你修复 卸载 xxx 选择修复
如果失败,记得关闭防火墙和杀毒软件
3 修改ubuntu的ip
修改完之后,可以使用命令ifconfig查看当前网络配置
开发板改IP
因为开发板是没有无线网卡的,所以我们需要将开发板与电脑直连,连接开发板的电脑直接桥接到有线网卡
没有路由功能,不能自动分配ip
需要手动分配ip,将ip固定,将电脑上有线网的ip跟开发板的ip改为同一个网段
使用命令ifconfig来修改开发板的ip
ifconfig eth0 172.2.1.110 netmask 255.255.255.0
配置完后,可以相互ping通时,就表示连接成功(有时间返回)
上午设置完开发板ip后,重启之后就没有了
如果想要一劳永逸,将设置开发板ip的命令写入启动脚本中
vi /etc/profile
写入设置ip的命令
移动光标到 ifconfig eth0 up这个语句的后面
按下i建,切换到输入模式
输入命令
ifconfig eth0 172.2.1.110 netmask 255.255.255.0
按下esc键,切换到命令模式
:wq 保存退出
:w 保存
:q 退出
:x保存退出
:q! 不保存强制退出
重启之后就会重新执行profile
reboot
网络协议栈的层次模型
协议栈
协议 是指通信双方约定好的通信方式
功能模块的划分 以及 功能模块的接口
协议栈 是一组相关协议的集合
网络协议栈
OSI七层协议
应用层 程序及接口
表示层 对数据进行转换、加密与压缩
会话层 建立、管理和终止会话
传输层 提供可靠的端到端的报文传输与差错控制
网络层 将分组从源端发送送目的端,提供网络互联
数据链路层 将分组数据封装成帧,提供节点到节点方式的传输
物理层 在物理媒介上传输比特,提供机械和电气的约束
TCP/IP四层模型
应用层
传输层
网络层
链路层
应用层(用户态)
用于规定对网络应用的协议
一般可以由通信双方自行约定
传输层(内核态)
主要负责数据传输方式与协议
常见的有三种 TCP UDP TDP
TCP:
传输层 控制 协议
是一种,面向连接的传输层协议
它可以提供可靠的通信
可靠:
数据无误,无丢失,无失序,无重复
TCP是怎样实现可靠的通信?
TCP是面向连接的协议
通信双方已经连接在一起了,才进行通信
面向连接:通信之前,需要先建立连接
TCP三次握手
例子:
你出去找工作
你:(发起连接请求,第一次握手)
我想要一个10k,包吃住,不加班的工作
hr:我有一个10k,包吃住,不加班的工作(应答请求,第二次握手)
我要一个会java,数据库,会项目管理的研究生
你:是的,我是一个会java,数据库,会项目管理的研究生(第三次握手)
连接成功
断开连接
TCP四次挥手
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
思考一下,为什么连接时是三次握手,断开确是四次挥手?
在关闭连接时,客户端发送关闭请求(第一次),服务器接收后应答请求(第二次)
但是此时服务器并没有结束传输(服务器尚未发送结束报文),所以并没有断开连接
直到服务器传输完了,发送了结束报文(第三次),客户端接收到结束报文之后,会再次应答服务器(第四次)
UDP协议
用户 数据报 协议
是不可靠的无连接的协议
在发送数据前不需要进行连接
没有连接也就不需要对方的应答
管杀不管埋
发送端发送数据出去后,不管接收端是否接收到
TDP协议
TCP OVER UDP 在UDP基础上进行TCP控制
思考一下,TCP和UDP这两种协议,分别适用与那些网络场所
两者的特点:
TCP 面向连接的通信 字节流
可靠通信
通信前确保连接
应答机制与串口机制
实时性交较差
比如:文字聊天,文件传输
UDP:无连接的通信
可靠性较差
实时性强:
网络直播 一对多的通信
网络层(内核态)
用来标识网络中 的节点 以及网络包路由的协议
路由表
IP
ICMP
IGMP
…
硬件层(网络硬件)
驱动程序和物理连接 ===》网卡驱动和网口
实例:gec6818开发板和Ubuntu之间实现单向或双向TCP网络通信
使用tftp协议下载文件(解决rx命令传输太慢问题)
tftp只能传输文件
1 切换到虚拟机,进入tftpboot
cd ~/tftpboot
2 在使用前,记得先打开我们的tftp
第一次用:
sudo service tftpd-hpa start
重启
sudo service tftpd-hpa restart
3 将你要传输的文件复制或者移动到tftpboot中
eg:
cp /mnt/hgfs/share/1.mp3 ~/tftpboot/1.mp3
cp /mnt/hgfs/linux_share/2.bmp ~/tftpboot/2.bmp
4 在开发板终端(SecureCRT)上输入指令来获取文件
eg:
tftp -gr 文件名(1.MP3)172.2.1.10(Ubuntud的ip)
tftp -gr 2.bmp 172.2.1.10
e tftpd-hpa restart
3 将你要传输的文件复制或者移动到tftpboot中
eg:
cp /mnt/hgfs/share/1.mp3 ~/tftpboot/1.mp3
cp /mnt/hgfs/linux_share/2.bmp ~/tftpboot/2.bmp
4 在开发板终端(SecureCRT)上输入指令来获取文件
eg:
tftp -gr 文件名(1.MP3)172.2.1.10(Ubuntud的ip)
tftp -gr 2.bmp 172.2.1.10