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

无法忍受旧版不兼容PHP7+主题 更换新主题

今天父亲节我们有没有陪伴家人一起吃个饭,还是打个电话问候一下。前一段时间同学将网站账户给我说可以有空更新点信息确保他在没有时间的时候还能保持网站有一定的更新内容。不过,他这个网站之前采用的主题也不知道来源哪里,总之各种不合适,文件中很多都是他多年来手工修改的主题拼接的,并非完全适应WordPress已有的函数,有些函数还不兼容最新的PHP版本,于是每次出现问题都要去排查。于是和他商量后,就抽时间把...

提速啦(900元/月),杭州BGP E5-2665/89*2 32核 48G 100G防御

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑提速啦的市场定位提速啦主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。提速啦的售后保证提速啦退款 通过于合作商的友好协商,云服务器提供3天内全额退款,超过3天不退款 物理机部分支持当天全额退款提速啦提现 充...

LOCVPS洛杉矶CN2线路KVM上线,洛杉矶/香港云地/香港邦联7折

LOCVPS发来了新的洛杉矶CN2线路主机上线通知,基于KVM架构,目前可与香港云地、香港邦联机房XEN架构主机一起适用7折优惠码,优惠后最低美国洛杉矶CN2线路KVM架构2GB内存套餐月付38.5元起。LOCPVS是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。...

文件传输协议为你推荐
域名空间代理现在代理域名空间赚钱吗虚拟主机代理请问虚拟主机的代理和虚拟主机分销有什么区别?分销的主机是不是可以把主机分给多个用户使用?我用的ResellerClub代理!!com域名注册.com的域名注册需要什么证件和资料吗?成都虚拟空间五星网络隶属于成都冠一科技有限公司,虚拟空间购买了不到一个月不能访问2次,质量真差啊!jsp虚拟空间jsp虚拟主机有支持的吗100m网站空间100M网站空间可以存多少张图片和多少文字?网站空间价格域名空间一般几钱?1g虚拟主机网站空间1G是多少M,网站空间用1G虚拟主机够吗。价格多少,数据库和网站有什么关系山东虚拟主机青岛网络公司哪家好云南虚拟主机大家觉得云南天成科技服务器租用给力吗?
org域名 成都主机租用 谷歌域名邮箱 香港ufo namecheap kddi 亚洲小于500m 双线主机 北京双线 qq对话框 重庆双线服务器托管 能外链的相册 备案空间 成都主机托管 godaddy空间 网站加速 七牛云存储 汤博乐 上海联通 hdchina 更多