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

蓝速数据(58/年)秒杀服务器独立1核2G 1M

蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...

3元/首月香港便宜vps究竟是什么货。

便宜的香港vps多少钱?现在国外VPS主机的价格已经很便宜了,美国VPS主机最低一个月只要十几元,但同样免备案的香港VPS价格贵不贵呢?或者说便宜的香港VPS多少钱?香港vps主机价格要比美国机房的贵一些,但比国内的又便宜不少,所以目前情况是同等配置下,美国VPS比香港的便宜,香港VPS比国内(指大陆地区)的便宜。目前,最便宜香港vps低至3元/首月、18元/月起,今天云服务器网(www.yunt...

Sharktech($49/月),10G端口 32GB内存,鲨鱼机房新用户赠送$50

Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...

文件传输协议为你推荐
租用虚拟主机想做网站租用虚拟主机谁能推荐我一下哪家的稳定,价格便宜。美国免费主机谁告诉我哪有免费的虚拟主机?中文域名注册查询中文域名注册怎么查询com域名空间我想注册个.com域名和买一个100M空间。免费国内空间网站免费空间(国内的)那里有?域名服务域名服务有何作用?如何设置?域名备案买域名要备案吗asp虚拟空间怎样在一个虚拟空间里放上一个ASP和一个PHP的网站网站空间免备案免备案网站空间哪个好虚拟主机mysql在虚拟主机如何打开数据库?
美国仿牌空间 网站保姆 patcha tightvnc 京东商城双十一活动 免空 空间论坛 cdn加速是什么 中国电信宽带测速网 网游服务器 国外ip加速器 新世界服务器 优酷黄金会员账号共享 华为云盘 免费的域名 万网主机 贵州电信 hosting24 magento主机 更多