尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

基于freertos下wifi模块的socket封装(一,网络篇)

基于freertos下wifi模块的socket封装(一,网络篇) 一网络的通信任何数据的传输都需要三个必需的元素即我认为的源从哪发送目的发送到哪长度发送内容如何表示源和目的如图所以网络传输中我们使用ip和端口来表示源目的二网络传输中的2个对象server和client浏览网站这涉及2个对象网站服务器浏览器。网站服务器平时安静地呆着浏览器主动发起数据请求。我们可以用一个很形象的例子来讲述服务器serve好比我的女神抱着不主动不拒绝的态度被动的响应请求而客户端呢就好比我是她的舔狗我得主动发送请求女神才愿意响应这个请求三UDP与TCP这个好想偷懒让大家自己去查但我想了想我懒了大家看什么。在一般的网络书籍中网络协议被分为5应用层它是体系结构中的最高层直接为用户的应用进程例如电子邮件、文件传输和终端仿真提供服务。在因特网中的应用层协议很多如支持万维网应用的HTTP协议支持电子邮件的SMTP协议支持文件传送的FTP协议DNSPOP3SNMPTelnet等等。运输层负责向两个主机中进程之间的通信提供服务。运输层主要使用以下两种协议①传输控制协议TCP(Transmission Control Protocol)面向连接的数据传输的单位是报文段能够提供可靠的交付。②用户数据包协议UDP(User Datagram Protocol)无连接的数据传输的单位是用户数据报不保证提供可靠的交付只能提供“尽最大努力交付”。网络层负责将被称为数据包datagram的网络层分组从一台主机移动到另一台主机。链路层因特网的网络层通过源和目的地之间的一系列路由器路由数据报。物理层在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。这些层对于初学者来说很难理解我们只需要知道我们需要使用“运输层”编写应用程序我们的应用程序位于“应用层”。使用“运输层”时可以选择TCP协议也可以选择UDP协议。TCP和UDP 原理上的区别TCP向它的应用程序提供了面向连接的服务。这种服务有2个特点可靠传输、流量控制即发送方/接收方速率匹配。它包括了应用层报文划分为短报文并提供拥塞控制机制。UDP协议向它的应用程序提供无连接服务。它没有可靠性没有流量控制也没有拥塞控制。为何存在UDP协议既然TCP提供了可靠数据传输服务而UDP不能提供那么TCP是否总是首选呢答案是否定的因为有许多应用更适合用UDP举个例子视频通话时使用UDP偶尔的丢包、偶尔的花屏时可以忍受的如果使用TCP每个数据包都要确保可靠传输当它出错时就重传这会导致后续的数据包被阻滞视频效果反而不好使用UDP时有如下特点① 关于何时发送什么数据控制的更为精细采用UDP时只要应用进程将数据传递给UDPUDP就会立即将其传递给网络层。而TCP有重传机制而不管可靠交付需要多长时间。但是实时应用通常不希望过分的延迟报文段的传送且能容忍一部分数据丢失。② 无需建立连接不会引入建立连接时的延迟。③ 无连接状态能支持更多的活跃客户。④ 分组首部开销较小。后续我会加入两张图片一张是面向连接的tcp流的另一张则为udp的数据包模式我们将根据这两张图片带着写出网络编程主要函数及如何将基于freertos下wifi模块的socket封装写出
返回列表