第二天:实现gec6818开发板,Ubuntu,PC主机之间通过桥接模式相互ping通,实现tftp代替rx命令传输文件,实现网络编程tcp协议Ubuntu和开发板之间通信

连接开发板

用网线连接宿主机和开发板

服务器运行在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

猜你喜欢

转载自blog.csdn.net/xqmids99/article/details/133122210