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

BuyVM新设立的迈阿密机房速度怎么样?简单的测评速度性能

BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...

SpinServers(月89美元) 2*e5-2630L v2,美国独立服务器

SpinServers服务商也不算是老牌的服务商,商家看介绍是是2018年成立的主机品牌,隶属于Majestic Hosting Solutions LLC旗下。商家主要经营独立服务器租用和Hybrid Dedicated服务器等,目前包含的数据中心在美国达拉斯、圣何塞机房,自有硬件和IP资源等,商家还自定义支持用户IP广播到机房。看到SpinServers推出了美国独服的夏季优惠促销活动,最低月...

raksmart:年中大促,美国物理机$30/月甩卖;爆款VPS仅月付$1.99;洛杉矶/日本/中国香港多IP站群$177/月

RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...

文件传输协议为你推荐
美国vps服务器美国VPS服务器中,Linode和FDC哪个好? 哪个更快更稳定电信主机租用请问放个服务器在电信机房一般要什么配置?租金多少?虚拟主机推荐谁能推荐个性价比高的虚拟主机?台湾主机香港,美国,台湾,韩国,日本主机到底哪个好php虚拟空间普通网站需要多大空间?本人新手php学习者,想买个虚拟空间用来放自己做的一些企业站,只是练习用途asp网站空间谁有能申请免费的ASP空间网站?深圳网站空间深圳网站设计 哪家好一些?虚拟主机评测麻烦看一下这些虚拟主机商那个好?论坛虚拟主机最近想买虚拟主机,用来做论坛。青岛虚拟主机虚拟主机在什么地方买好?又便宜?
个人域名注册 免费二级域名申请 如何注销域名备案 2014年感恩节 debian7 777te 元旦促销 hostloc 带宽租赁 免费的asp空间 dnspod 帽子云排名 如何登陆阿里云邮箱 97rb 万网服务器 博客域名 重庆联通服务器托管 google搜索打不开 沈阳idc phpinfo 更多