0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全硬件TCP/IP协议栈学习笔记(第五天:全硬件TCP/IP协议应用层学习)

学FPGA,慢慢来 2017-12-18 10:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

继续昨天的

设置端口TX/RX存储信息,每个端口的基地址和屏蔽地址在这里确定并保存。W5500有一个通用寄存器,8个Socket寄存器去,以及对应每个Socket的收/发缓存区。每一个Socket的发送(接收)缓存区都在一个16KB的物理发送(接收)内存中,初始化分配为2KB。无论给每个Socket分配多大的收/发缓存,都必须在16位的偏移地址范围内(从0x0000到0xFFFF)W5500有一个16KB发送内存用于Socket_n的发送缓存区,以及一个16KB的接收内存用于Socket_n接收缓存区。发送初始缓存被分配给了每个Socket发送缓存(2KB x 8 = 16KB),初始化分配的2KBSocket发送缓存,可以通过使用Socket发送缓存大小寄存器重新分配。一旦所有的Socket发送缓存大小寄存器配置完成,16KB的发送内存就会按照配置分配给每个Socket的发送缓存,并按照从Socket0到7顺序分配。16KB的发送内存中分配了对应的发送缓冲区,用于为来自主机传输的数据做缓存。读取内存同理。

四.应用层协议开发

以太网的应用层包括支撑协议和应用协议两部分

支撑协议:域名服务系统(DNS),简单网络管理协议(SNMP)等,典型应用包括Web浏览,电子邮件,文件传输访问,远程登陆等。

应用协议:超文本传输协议(HTTP),简单邮件传输协议(SMTP),文本传输协议(FTP),简单文件传输协议(TFTP)和远程登陆(Telnet)。

五.实例开发

1.TCP是TCP/IP体系中面向连接的传输层协议,他使用IP作为网络层,提供全双工的可靠交付的服务。(W5500在内部利用软件实现了TCP/IP协议栈,即内部结构包含了物理层,数据链路层,网络层和传输层)TCP建立通信的两端,一段称为服务器端,指网络中能为用户提供服务的计算机系统,另一端为客户端,是与服务器相对应的,接受服务的一端,为客户提供本地服务的程序。

这是一个通过互联网进行交互的C/S模型,他是一个最典型最常用的通讯结构。此时服务器处于守候状态,并侦听客户端的请求。客户端发出请求,并请求经互联网发送给服务器,一旦服务器接收到这个请求,就可以执行请求所制定的任务,并将执行的结果经互联网互联网回送给客户。

TCP协议通过三个报文段完成连接的建立,这个过程叫做三次握手

第一次握手:建立连接时,客户端发送SYN包(TCP/IP建立连接时使用的握手信号客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。)(seq = j)到服务器,并进入SYN_SEND状态,等待服务器确认。

第二次握手:服务器收到SYN包,必须确认客户的SYN(ack = j + 1),同时自己也发送一个SYN包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack = k + 1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

建立一个链接需要三次握手,但是终止一个链接要四次挥手,这是由于TCP的半关闭造成的。

1.第一次挥手:主动方发出了FIN位的报文,表示主动终止从本地到远端的单向连接;此时,主动方进入FIN_WAIT1状态,意思就是说他在等着远端的FIN报文。

2.第二次挥手:远端收到FIN后,会立即发送ACK;主动方接收到ACK之后,进入FIN_WAIT2状态,所以FIN_WAIT1状态持续时间非常短;此时远端进入CLOSE_WAIT状态,一条单向连接终止了,但另一条还没有,处于HALF_CLOSE连接状态。

3.第三次挥手:当远端进行了必要的数据发送之后,他会发送FIN,表示从他出发的单向连接也要关闭;同时他进入LAST_ACK状态。

4.第四次挥手:主动方收到FIN之后,回应一个ACK;远端进入CLOSED状态,连接关闭;主动方进入TIME_WAIT状态;确保最后一个ACK没有丢失,防止新连接占用刚刚关闭的主动方的地址端口,使网络中流浪的老连接的分组被误认为新连接的分组。

由于我们的工程中使用他作为客户端使用,所以我们先看其作为TCP客户端的数据收发

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA设计
    +关注

    关注

    9

    文章

    431

    浏览量

    28250
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DPE5500/W5500—SPI 接口以太网协议芯片

    DPE5500是一款SPI接口的以太网协议芯片,适用于单片机系统实现以太网通讯。DPE5500集成了硬件TCP/
    发表于 05-21 17:46

    EtherNet/IPTCP/IP 塔讯智能网关储能PACK产线集中管控

    新能源储能行业作为工业自动化领域的高前景主流赛道,产线中多协议设备共存是普遍现象,AB罗克韦尔EtherNet/IP协议与标准TCP/IP
    的头像 发表于 03-27 15:48 383次阅读
    EtherNet/<b class='flag-5'>IP</b>转<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b> 塔讯智能网关储能PACK产线集中管控

    疆鸿智能ETHERNET IP转MODBUS TCP:通讯“绝杀”,让PLC秒懂设备话

    疆鸿智能ETHERNET IP转MODBUS TCP:通讯“绝杀”,让PLC秒懂设备话 车间一台关键设备突然离线。PLC不断报“连接超时”,产线停摆。 设备端是MODBUS TCP协议
    的头像 发表于 03-20 15:13 303次阅读
    疆鸿智能ETHERNET <b class='flag-5'>IP</b>转MODBUS <b class='flag-5'>TCP</b>:通讯“绝杀”,让PLC秒懂设备话

    TCP/IP(Socket)协议深度剖析

    TCP/IP协议作为互联网通信的基础架构,其核心机制Socket编程承载着全球数据交换的使命。本文将深入剖析这一协议的七架构、三次握手与四
    的头像 发表于 03-03 17:06 857次阅读

    工业级4G路由器:TCP/IP与UDP协议,解锁工业物联网高效传输新范式

    /以太网能力,正重新定义工业数据传输的边界。其核心优势,在于对TCP/IP与UDP协议的深度适配,为不同场景提供精准的通信解决方案。    ‌TCP/
    的头像 发表于 01-19 18:25 373次阅读
    工业级4G路由器:<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>与UDP<b class='flag-5'>协议</b>,解锁工业物联网高效传输新范式

    疆鸿智能一键打通EtherCAT转Modbus TCP/IP,汽车制造链透明

    疆鸿智能一键打通EtherCAT转Modbus TCP/IP,汽车制造链透明 一、案例背景 在现代汽车制造体系中,各生产环节常采用异构的工业网络协议。以某新能源汽车焊装车间为例,其机
    的头像 发表于 01-06 15:37 358次阅读

    如何使用苏培Ethernet/IP总线网关与汇川AM400系列PLC通讯

    Ethernet/IP是一个面向工业自动化应用的工业应用层协议。它建立在标准UDP/IPTCP/IP
    的头像 发表于 12-15 17:45 1344次阅读
    如何使用苏培Ethernet/<b class='flag-5'>IP</b>总线网关与汇川AM400系列PLC通讯

    为什么会有TCP/IP协议

    见了面,完全不能交流信息。因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此而生。TCP/IP不是一个协议,而是一个
    发表于 12-03 06:28

    Profinet转TCP/IP工业智能网关破解S7-1200与TCP/IP摄像头视觉通讯壁垒的方案

    某汽车零部件工厂的自动化装配车间需实现产线流程视觉监控与质量追溯。车间以西门子S7-1200 PLC作为核心控制器(支持Profinet协议),负责产线节拍控制、设备联动及异常响应;同时部署TCP
    的头像 发表于 11-02 13:52 1884次阅读
    Profinet转<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>工业智能网关破解S7-1200与<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>摄像头视觉通讯壁垒的方案

    快速掌握TCP/IP?LuatOS新手入门指南

    想快速上手TCP/IP通信却不知从何开始?LuatOS为开发者提供了简洁高效的开发路径。通过本指南的实操步骤,你将发现,实现网络连接其实比想象中更简单。 提到网络应用,就绕不开TCP/IP
    的头像 发表于 10-15 17:27 874次阅读
    快速掌握<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>?LuatOS新手入门指南

    rtthread网络接口设备 轻量级tcp/ip 堆栈 这两个冲突吗?

    需要使用 lwip 上图中 网络接口设备 需要使能么? 上图中 网络接口设备 是干嘛用的?是一个比lwip 功能弱的tcp/ip 协议么?
    发表于 09-18 06:16

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与物联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudio 软件作为工业级零代码开发平台,其内置的 TCP
    的头像 发表于 08-03 22:20 1447次阅读
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>协议</b>深度剖析

    什么是Modbus TCP协议

    TCP/IP协议,通过以太网进行通信,并支持多个设备同时访问同一个Modbus TCP服务器。 一、
    的头像 发表于 07-23 17:18 5066次阅读
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>

    全网最全学习Zephyr开发教程资料汇总-从基础文档视频到上手实操示例

    Zephyr作为一款开源且极具灵活性与可扩展性的实时操作系统(RTOS),拥有原生的 BLE 协议、完整的 Net 协议,涵盖 TCP/
    发表于 07-04 11:13

    生物制药自动化升级:Modbus TCP与Ethernet/IP协议转换实践

    Ethernet/IP),直接通信存在障碍。为此通过稳联技术的Modbus TCP与Ethernet/IP网关,实现两种协议的无缝转换,确保数据实时交互和设备精准控制。 1、打开RSL
    的头像 发表于 06-17 18:34 804次阅读
    生物制药自动化升级:Modbus <b class='flag-5'>TCP</b>与Ethernet/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>转换实践