RT-Thread网络编程学习笔记

文件传输协议  时间:2021-01-15  阅读:()

一、在QEMU上运行RT-Thread下载RT-Thread源码,下载链接下载RT-Thread源码,下载链接按照官方指导文档一步步操作就可以在模拟器QEMU上讲RT-Thread跑起来,并在虚拟的SD卡加载FATFS,文件系统正常体验:二、安装和配置TAP网卡按照官方文档指导安装tap-windows并且配置TAP:三、在QEMU上运行RT-Thread网络功能重新编译运行QEMU:四、Socket背景知识BSDSocket相关APIsocket创建一个socket套接字bind绑定套接字listen开始监听accept接受连接请求connect建立连接send面向连接的发送数据(tcp)recv面向连接的接收数据(tcp)sendto无连接的发送数据(udp)recvfrom无连接的接收数据(udp)closesocket关闭socketshutdown关闭socket某一个通道gethostbyname通过域名获取主机的IP地址等信息getsockname获取本地主机的信息getpeername获取连接的远程主机的信息ioctlsocket设置套接字控制模式五、利用wireshark工具抓包六、ICMP(PING)包过程ICMP是"InternetControlMessageProtocol"(网络控制报文协议)的缩写,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息.
控制消息是指:网络通不通、主机是否可达、路由是否可用等网络本身的消息.
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用.

我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已.
比如我们经常使用的用于检查网络通不通的Ping命令,这个"Ping"的过程实际上就是ICMP协议工作的过程.
ICMP层区分不是很明显,一般划分在IP层中通过IP包来封装ICMP数据,在实际传输中数据包的格式一般都是IP包+ICMP包的格式,具体格式如下:IP首部(20字节)+8位类型+8位代码+16位校验和+ICMP首部其他部分(7个字节)+数据.
ping原理:七、开发TCP客户端程序和上位机服务器通信通过menuconfig使能tcpclientsample,系统会自动将tcpclient测试程序编译进工程,通过msh可以调用这个接口,创建一个clientsocket,并尝试连接输入的IP端口:通过TCP调试工具建立一个tcp服务端,IP和端口与上述对应,即可监听到我们上面创建的这个client连接,并且可以正常地收发数据:如上面截图,服务端可以接收到client发送的数据,跟测试程序设计相同:八、开发UDP客户端程序和上位机服务器通信示例代码的功能是向输入的IP地址发送10条消息,发送完毕即退出:九、TCP三次握手与四次分手TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.
3.
4.
16而端口号为80,那么得到的套接字为192.
3.
4.
16:80.
IP协议虽然能把数据报文送到目的主机,但是并没有交付给主机的具体应用进程,而端到端的通信才是应用进程之间的通信.

TCP报文的格式如下图所示:TCP的三次握手,意思就是建立连接的时候客户端与服务器之间需要三次数据包的交流.

客户端发送给服务器一个请求连接数据包,即发送了一个指向服务器目标端口的一个SYN位为1的TCP报文.
服务器接收到客户端的连接请求之后,会回应一个SYN位为1的TCP报文,表示同意连接.
并且,会把ACK位也置1表示确认收到上次消息.
客户端接收到服务器的同意连接的数据包之后,还要回复一个ACK为1的TCP报文,表示确认收到.
TCP的四次挥手,意思就是释放连接的时候客户端与服务器之间需要四次数据包的交流.

客户端发送给服务器一个请求释放连接的数据包,即发送了一个指向服务器目标端口的一个FIN位为1的TCP报文,表示客户端没有数据要发送了,但是仍然可以接收数据;并且ACK位也为1,表示对上次传输数据结果的确认.
并且之后处去等待状态,等待服务器的两次回应.

服务器接收到客户端的释放连接请求之后,会先回应一个ACK位为1的报文,表示确认收到.
但是,这时服务器可能还有数据没有发送完成,继续发送数据.

服务器发送完数据之后,发送一个FIN为1的TCP报文,表示我也没有要发送的数据了,你可以释放连接了.
当然ACK位仍然为1.
客户端接收到服务器的同意释放连接的数据包之后,回复一个ACK为1的TCP报文,表示确认收到.
十、UDP包分析UDP协议的主要作用是将数据压缩成数据包的形式,一个典型的数据包就是一个二进制数据的传输单位,每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据.

UDP报文的具体格式如下:源端口(2字节)+目的端口(2字节)+长度(2字节)+检验和(2字节)+数据UDP协议的通信较TCP简单了很多,减少了TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议.

UDP客户端在发送数据时并不判断主机是否可达,服务器是否开启等问题,同样它不能确定数据是否成功送达服务器.
它只是将数据简单的封了一个包,之后就丢出去了.

十一、利用ntp协议获取网络时间NTP网络时间协议(NetworkTimeProtocol),是用来同步网络中各个计算机时间的协议.
十二、通过telnet协议连接和控制设备Telnet协议是一种应用层协议,使用于互联网及局域网中,使用虚拟终端机的形式,提供双向、以文字字符串为主的交互功能.
属于TCP/IP协议族的其中之一,是Internet远程登录服务的标准协议和主要方式,常用于网页服务器的远程控制,可供用户在本地主机运行远程主机上的工作.

RT-Thread目前支持的是Telnet服务器,Telnet客户端连接成功后,将会远程连接到设备的Finsh/MSH,实现设备的远程控制.

EtherNetservers年付仅10美元,美国洛杉矶VPS/1核512M内存10GB硬盘1Gpbs端口月流量500GB/2个IP

EtherNetservers是一家成立于2013年的英国主机商,提供基于OpenVZ和KVM架构的VPS,数据中心包括美国洛杉矶、新泽西和杰克逊维尔,商家支持使用PayPal、支付宝等付款方式,提供 60 天退款保证,这在IDC行业来说很少见,也可见商家对自家产品很有信心。有需要便宜VPS、多IP VPS的朋友可以关注一下。优惠码SUMMER-VPS-15 (终身 15% 的折扣)SUMMER-...

CheapWindowsVPS:7个机房可选全场5折,1Gbps不限流量每月4.5美元

CheapWindowsVPS是一家成立于2007年的老牌国外主机商,顾名思义,一个提供便宜的Windows系统VPS主机(同样也支持安装Linux系列的哈)的商家,可选数据中心包括美国洛杉矶、达拉斯、芝加哥、纽约、英国伦敦、法国、新加坡等等,目前商家针对VPS主机推出5折优惠码,优惠后最低4GB内存套餐月付仅4.5美元。下面列出几款VPS主机配置信息。CPU:2cores内存:4GB硬盘:60G...

青云互联:洛杉矶CN2弹性云限时七折,Cera机房三网CN2gia回程,13.3元/月起

青云互联怎么样?青云互联是一家成立于2020年6月份的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。目前,美国洛杉矶cn2弹性云限时七折,美国cera机房三网CN2gia回程 13.3元/月起,可选Windows/可自定义配置。点击进入:青云互联官网青云互联优惠码:七折优惠码:dVRKp2tP (续...

文件传输协议为你推荐
虚拟空间租赁请帮忙理解:虚拟空间、租用主机、主机托管、自己架设服务器域名注册申请域名申请有什么要求中文域名注册查询域名还分中文和英文的吗,在哪里可以查到中文域名到期了?英文域名中文域名和英文域名有什么区别,越具体越好域名服务什么叫主域名服务器?网站空间域名网站空间,域名,操作asp网站空间什么是ASP空间?香港虚拟主机虚拟主机大陆的还是香港的好?合肥虚拟主机虚拟主机怎么弄!华众虚拟主机管理系统华众虚拟主机管理系统请问。华众 虚拟主机管理系统 这个问题 怎么解决 。就是后台可以开通虚拟主机 没有问题,但是 删除虚拟主机 后台显示删除成功的,但是实际在服务器上 文件夹 ftp iis站点 都没有被删除 是什么问题
vps是什么 sugarhosts 大硬盘 80vps 服务器评测 pw域名 优key debian源 镇江联通宽带 卡巴斯基官方免费版 有奖调查 idc是什么 双11秒杀 129邮箱 国外代理服务器软件 购买国外空间 空间购买 web应用服务器 国外的代理服务器 服务器防火墙 更多