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,实现设备的远程控制.

华纳云E5处理器16G内存100Mbps688元/月

近日华纳云商家正式上线了美国服务器产品,这次美国机房上线的产品包括美国云服务器、美国独立服务器、美国高防御服务器以及美国高防云服务器等产品,新产品上线华纳云推出了史上优惠力度最高的特价优惠活动,美国云服务器低至3折,1核心1G内存5Mbps带宽低至24元/月,20G ddos高防御服务器低至688元/月,年付周期再送2个月、两年送4个月、三年送6个月,终身续费同价,有需要的朋友可以关注一下。华纳云...

特网云(198元/月),高质量云虚拟主机低至0.16元/天,裸金属服务器仅需10.5元/天

特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。官方网站:https://www.56dr.com/ 10年老品牌 值得信赖 有需要的请联系======================特网云推出多IP云主机...

A400:36元/季,16.8/月kvm架构,线路优质,延迟低

A400互联是一家成立于2020年的商家,主要推行洛杉矶服务器采用kvm架构,线路优质,延迟低,稳定性高!全场产品对标腾讯云轻量,服务器线路有有美国洛杉矶cn2_gia、香港cn2+cmi,目前推行的vps服务器均为精心挑选的优质线路机房,A400互联推出了夏季优惠洛杉矶5折、香港7折促销活动,质量可靠,价格实惠!二:优惠码洛杉矶五折优惠码:20210620香港cn2七折优惠码:0710三、优惠方...

文件传输协议为你推荐
广东虚拟主机如果营业执照上的注册地址是属于广东地区对客户的虚拟主机或者域名的地有没有限制?域名备案查询如何查网站备案信息vpsVPS是干嘛用的?com域名空间域名和空间是什么意思虚拟主机推荐谁能推荐个性价比高的虚拟主机?网站域名空间网站域名和空间免费网站空间免费网站空间哪个好虚拟主机管理系统什么虚拟主机管理系统支持W和linux操作系统虚拟主机管理系统虚拟主机管理系统那一家好?论坛虚拟主机我要做个论坛,是用虚拟主机呢?还是用空间?除论坛外还有好及个单页,还带数据库。
域名城 windows虚机 最便宜的vps 本网站服务器在美国维护 vps.net 博客主机 主机屋免费空间 地址大全 亚洲小于500m 52测评网 jsp空间 怎样建立邮箱 创建邮箱 贵阳电信测速 工信部网站备案查询 永久免费空间 防cc攻击 ledlamp rewritecond SmartAXMT800 更多