9.物联网LWIP,ip数据报,udp数据报,tcp数据报

这篇具有很好参考价值的文章主要介绍了9.物联网LWIP,ip数据报,udp数据报,tcp数据报。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一。ip协议原理(网络层)

1.网络地址转换NAT

        我们上网是通过运营商向我们提供的IP地址来上网的,并不是自身的IP地址,所以这就需要网络地址转换NAT的帮助。即内网访问外网所需要的ip转换装置。

2.ip数据报

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

(1)版本

         占据4bit空间,定义IPv4与ipv6,对应的值分别为4与6

(2)首部长度

        占4bit空间,单位字,最大记录 60个字节的数据(15*4=60)

(3)服务类型(TOS)

        占据 8bit空间,包含在 IPv4首部中,表示不同类型的ip数据报。通过TOS可以更好的选择数据报的传递路径。

(4)数据报长度

        占据 16bit空间,以字节为单位, IP 数据报的理论最大长度为 65535字节,实际小于1500字节。注意最小需要46字节,所以不够时需要填充字符。

(5)标识

        数据报可能会分片,所以会需要表示是那一片,以便恢复。

(6)标志

        第一位未使用,第二位为0表示允许分片,第三位为0表示整个数据报最后一个分片。

(7)分片偏移量

        占据 13bit空间,表示当前分片所携带的数据在整个 IP 数据报中的相对偏移位置(以 8 字节为单位)

(8)生存空间

        该字段用来确保数据报不会永远在网络中循环,即在路由器中每传递一次TTL减一,如果为零表示数据已到期,需丢弃。

(9)上层协议

        字段的值指示了 IP 数据报的数据部分应交给哪个特定的传输层协议。例如,值为 6表明数据部分要交给 TCP,而值为 17表明数据要交给 UDP。

(10)首部检验和

        占据 16bit空间,判断首部是否出错。

(11)源ip与目标ip

(12)数据区域

        数据字段包含要交付给目标 IP 地址的运输层(TCP 协议或 UDP 协议) ,也可以承载其他类型的报文如,ICMP报文。

如何分析ip数据包?

        使用抓包工具,wireshark

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议       

二。UDP协议原理(传输层)

1.UDP封装

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

         传输层就是在网络层ip报的基础上继续封装,类似于快递包装,数据链路层同理。那么到别人的主机下,自然就是拆解的过程。

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

(1)源端口:在需要对方回信时选用。不需要时可用全0。

(2)目的端口:交付报文需要用到

(3)总长度: UDP用户数据报的长度,其最小值是8(仅有首部),发送一个带0字节数据的UDP数据报是允许的。

(4)校验和:差错检验

三。TCP协议原理

1.报文封装

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

         同udp,区别在于tcp为可靠传输,所谓的可靠传输,就是在主机向从机发送数据,从机向接受到以后,需要向主机发送一个ACK,确认自己已经收到数据。从机向主机发送数据也是一样的。

2.报文结构

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

 (1)源端口和目标端口

        TCP 报文段都包含源主机和目标主机的端口号。两个端口号加上两个IP地址就能唯一确定一个TCP连接。

(2)序号

        序号字段用来标识从 TCP发送端向 TCP 接收端发送的数据字节流, TCP 协议会对发送或者接收的数据进行编号(按字节的形式),那么使用序号对每个字节进行计数,就能很轻易管理这些数据。 序号是 32 bit的无符号整数。

(3)首部长度

        首部长度字段占据 4bit空间,它指出了 TCP 报文段首部长度,以字节为单位,最大能记录 15*4=60 字节的首部长度

(4)标注字段

  • URG:首部中的紧急指针字段标志,如果是 1 表示紧急指针字段有效。

  • ACK:首部中的确认序号字段标志,如果是 1 表示确认序号字段有效。

  • PSH:该字段置一表示接收方应该尽快将这个报文段交给应用层。

  • RST:重新建立 TCP 连接。

  • SYN:用同步序号发起连接。

  • FIN:中止连接。

(5)窗口大小

        TCP 的流量控制由连接的每一端通过声明的窗口大小来提供,窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的数据序号,发送方根据窗口大小调整发送数据,以实现流量控制。窗口大小是一个占据 16 bit空间的字段,因而窗口最大为 65535 字节,当接收方告诉发送方一个大小为 0 的窗口时,将完全阻止发送方的数据发送。

(6)校验和

        检验和覆盖了整个的 TCP 报文段:TCP 首部和 TCP 数据区域,由发送端计算和填写,并由接收端进行验证。

(7)紧急字段

        只有当 URG标志置 1 时紧急指针才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。简单来说,本 TCP 报文段的紧急数据在报文段数据区域中,从序号字段开始,偏移紧急指针的值结束。

(8)选择字段

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

 kind=2,最大报文段长度(MSS)选项

        TCP连接初始化时,通信双方使用该选项来协商最大报文段长度。TCP模块通常将MSS设置为(MTU-40)字节(减掉的这40字节包括20字节的TCP头部和20字节的IP头部)。这样携带TCP报文段的IP数据报的长度就不会超过MTU(假设TCP头部和IP头部都不包含选项字段,并且这也是一般情况),从而避免本机发生IP分片。对以太网而言,MSS值是1460(1500-40)字节

kind=3,窗口扩大因子选项

        TCP连接初始化时,通信双方使用该选项来协商接收窗口的扩大因子。在TCP的头部中,接收窗口大小是用16位表示的,故最大为65535字节,但实际上TCP模块允许的接收窗口大小远不止这个数(为了提高TCP通信的吞吐量)。窗口扩大因子解决了这个问题。
假设TCP头部中的接收通告窗口大小是N,窗口扩大因子(移位数)是M,那么TCP报文段的实际接收通告窗口大小是N*2M,或者说N左移M位。

四。tcp的握手与重发

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议

 观察上述图片,我们得到以下结论。

1.一共有十条线,每条线都是一次t数据报发送。

2.包括SYN开始连接,ACK确认码,FIN关闭连接字段,mss窗口最大尺寸(单位不是字节)。

具体解释每一条数据流的功能

(1)client向server发送SYN开始连接字段,标号为1000

(2)server向client发送SYN开始连接字段,标号为8000,并返回ACK=1001(表示标号1000已经接受,下一次请发送1001标号)

(3)client发送ACK=8001表示已经接受8000标号的数据

注意:这就是tcp连接的三次握手

(4)-(6)client与server相互发送数据,每次都需要发送ack表示接受到的数据标号

(7)client向server发送FIN字段(表示连接结束),ACK8011(表示已经接受8011)

(8)server向client发送ACK1022(表示已经接受1021)

(9)server端如果有数据要发送,会继续发送,如果没有,那么发送FIN字段(表示连接结束)

(10)client向server发送ack8012表示接受,tcp连接结束。

五。TCP流控机制

1.滑动窗口时序

1.TCP报头有个字段叫window,表示自己还有多少缓存区。不可超发数据。

9.物联网LWIP,ip数据报,udp数据报,tcp数据报,tcp/ip,网络,网络协议文章来源地址https://www.toymoban.com/news/detail-690145.html

到了这里,关于9.物联网LWIP,ip数据报,udp数据报,tcp数据报的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP/UDP/TCP/IP网络协议

    OSI模型定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI模型各层的通信协议,大致举例如下表所示: 层次 常见协议 应用层 HTTP、SMTP、SNMP、FTP、Telnet、SIP、SS

    2024年04月11日
    浏览(33)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(53)
  • LWIP协议与TCP/IP

             a. 例如: LWIP 这个东西是干什么用的 :他就是一个裁剪后保持大部分TCP/IP功能的协议。用少量的资源消耗实现一个较为完整的TCP/IP协议栈,其中“完整”主要指的是TCP协议的完整性,实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。此外LwIP既可以

    2023年04月23日
    浏览(29)
  • SCTP, TCP, UDP, IP, ICMP都在哪一层?(TCP/IP网络通信协议学习)

    TCP/IP网络通信协议最早是由 罗伯特·卡恩 (Robert E. Kahn)和 文顿·瑟夫 (Vinton G. Cerf)于1972年提出的,它是一个实际的协议栈。 OSI七层网络通信协议最早是 由国际标准化组织 (ISO)于1977年提出的,它是一个理论模型。TCP/IP网络通信协议由于其简单性和实用性,成为 事实上

    2024年01月22日
    浏览(37)
  • Java网络编程之IP,端口号,通信协议(UDP,TCP)

    ① C/S :客户端/服务器 在用户本地需要下载安装客户端程序,在远程有一个服务器端程序。 优点:画面精美,用户体验好 缺点:用户需要下载更新 ② B/S :浏览器/服务器 只需要一个浏览器,用户通过指定网址访问对应的服务器。 优点:不需要开发客户端,只需要页面+服务

    2024年02月03日
    浏览(49)
  • 【网络编程】TCP/IP协议(互联网的基石)

    (꒪ꇴ꒪ ),Hello我是 祐言QAQ 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍 快上🚘,一起学习,让我们成为一个强大的攻城狮! 送给自己和读者的一句鸡汤🤔: 集中起来的意志可以击穿顽石! 作者水平很有限,如果发现错误,请在评论区指

    2024年02月10日
    浏览(33)
  • 嵌入式TCP/IP协议栈-LwIP

    LWIP是一个轻量级的TCP/IP协议栈,其全称为Lightweight IP,它专门为小型嵌入式系统设计,具有占用资源少、易于移植、可裁剪性高等特点。 LWIP的设计目的是为嵌入式设备提供一个高效的TCP/IP协议栈,以便这些设备可以方便地访问Internet或局域网。它支持IPv4和IPv6协议,并实现了

    2024年02月09日
    浏览(37)
  • 【网络通信】探索UDP与TCP协议、IP地址和端口号的奥妙

    🌺 个人主页: Dawn黎明开始 🎀 系列专栏: 网络奇幻之旅 ⭐ 每日一句:往前走,朝着光 📢 欢迎大家:关注 🔍 +点赞 👍 +评论📝+收藏⭐️ 文章目录 📋前言 一.网络通信 1.1网络通信协议 1.2TCP/IP协议中的四个层次 二.UDP协议 2.1定义 2.2UDP连接的交互过程 三.TCP协议 3.1定义

    2024年02月05日
    浏览(34)
  • LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解

    TCP/IP 本质上是软件协议,而LwIP也是对软件协议进行解析处理,所以我们有必要了解下以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式,这样在代码中,才能有的放矢。 以太网帧是最底层的原始数据,帧框架如下图所示: 其中【前同步码】和【以太网尾部】我们在抓包的时候,并不

    2024年02月14日
    浏览(35)
  • 网络协议分析(一)(C语言实现---ethernet、arp、ip、icmp、udp、tcp)

    以太网协议是一种局域网通信协议,它通过物理层和数据链路层的协同工作,使用媒体访问控制地址和载波监听/冲突检测协议来实现计算机之间的稳定数据传输。在数据传输过程中,以太网会将数据封装成数据帧,并根据目标MAC地址来识别需要接收数据的计算机。通过这种方

    2024年02月06日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包