数据帧、IP数据包、TCP、UDP报文格式详解----网络通信原理

这篇具有很好参考价值的文章主要介绍了数据帧、IP数据包、TCP、UDP报文格式详解----网络通信原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


物理层

物理层是TCP/IP模型的最底层,物理层定义其设备的物理特性、电气特性等,比如网络接口卡、中继器、集线器、网线、无线电
物理层作用确保设备之间连接正常,包括建立、维护和断开物理连接等,物理层传输数据是通过电信号中的高低电压和低电压,也就是0101010的比特流。

数据链路层

数据链路层位于物理层和网络层之间
主要功能:逻辑连接的建立、维护、拆除,物理寻址,差错校验等,完成同网段的互通。
数据帧格式,网络通信基础,tcp/ip,网络,服务器


以太网

  • 我们平常使用的网络设备,数据链路都是Ethernet,所以通常使用的网络都称之为以太网。
  • 以太网中可以同时连接多个设备,所以又称为广播型网络
    数据帧格式,网络通信基础,tcp/ip,网络,服务器

以太网数据帧格式
数据帧格式,网络通信基础,tcp/ip,网络,服务器
在以太网数据传输时是通过MAC地址来区分数据来自哪里,去往哪里。
MAC地址 全球唯一的一个地址、物理地址、网卡地址。
MAC地址的组成:前24bit(厂商编号)+后24bit(厂商具体生产的网卡号) 一共 48bit(bit代表0或 1)
8个bit(位)为一个字节

  • 目的地址:接收主机的MAC地址
  • 源地址:发送数据主机的MAC地址
  • 类型:表示上层在处理数据时用的什么协议,在此处标记出来
  • 数据:就是用户发出来的数—图片 文字 文档
  • 帧校验序列:他是核对用的,主要是查看数据是否被破坏,数据是好的话就接收
  • 整个数据帧最大是多少: 6+6+2+1500+4 =1518个字节
  • 整个数据帧最小是多少:6+6+2+46+4=64个字节

eNSP抓包实验

在以太网数据通信过程中,来自网络层的数据包会在在数据链路层装上MAC头部尾部帧校验序列,其中MAC头部就包含目标主机和自己的MAC地址,那么计算机是如何知道对方主机的MAC地址呢。我们通过抓包来观察通信流程。
数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 以太网内的两台主机在第一次通信时,发送方并不知道接收方的mac地址,所以在通信前会以广播的形式发送一个ARP包询问192.168.1.2主机的mac地址,当主机192.168.1.2收到这个请求包时会回复给主机192.168.1.1自己的mac地址,同时在以太网中的其它主机也会收到ARP包,但是打开看并不是给自己的就会将这个包丢弃掉。
  • 主机192.168.1.1在收到目标主机的MAC地址后,才会进行数据帧的封装,封装完成后进行传输数据。
    数据帧格式,网络通信基础,tcp/ip,网络,服务器

网络层

  • 网络层位于OSI模型的第三层
  • 作用:定义网络设备的逻辑地址,俗称网络层地址(如IP地址),在不同网段之间选择最佳路径转发数据
  • 协议:IP、ICMP、ARP、IPX、AppleTalk等协议

IP数据报格式
数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 每一个位置为一个字段,如版本字段、首部长度字段、标识符字段等
  • IP数据包的单位是32bit,即4字节,每一行的内容是32bit
  • IP报头的固定部分为20字节,分为5行,每一行的32bit(4字节)
  • 每个括号里的数字代表用多少二进制数来表示这个地段
  • IP报包有两部分组成:固定部分和可选项部分

首部由两部分组成:固定部分和可变部分
首部:固定部分(20个字)+可选项(0-40个字节,一般情况没有)

  • 版本:指的是IP地址的版本(IPV4,IPV6)

  • 首部长度:此数据包的部长度一共是多少,有没有可选项数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 优先级与服务类型:表示数据包是否需要优先传递。如果有值为1如果没有值为0数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 总长度:表示的是整个数据包的大小,也就是首部+数据

  • 标识符:表示数据包的编号,每一个数据包都有一个唯一的编号

  • 标志、端偏移量:将拆开的数据包进行组合

  • TTL值:数据生命周期当此值得数字变为0时,该数据包就被丢弃,每经过一台路由器TTL值减1

  • 协议号:数据包在网络中传递是所用的协议。

当编号为1时,表示上层用的是ICMP协议—是网络层的协议
当编号为6时,表示上层用的是 TCP协议–传输层的协议
当编号为17时,表示上层用的是 UDP协议–传输层的协议

  • 首部校验和:是用来做数据包核对用的,确定数据包是否是完整,如果是就接收,如果不是完整的数据包,不接收该数据包,让重新发送(整个过程不需要我们来做,设备自己进行计算)
  • 源地址:发送方IP地址
  • 目标地址:接收方IP地址
  • 可选项:他是一个可变长度,取值范围:0-40个字节 一般数据包中不是加该选项的,什么情况下加该选项:当想要传输用户 密码 软件使用场景是会用到该字段
  • 数据:他是应用层发出的数据-----在数据包中体现,单独看不到

科来抓包分析ip数据报格式

数据帧格式,网络通信基础,tcp/ip,网络,服务器

ICMP协议概述

  • ICMP(internet Control Message Protocol),网络控制消息协议
  • 位于OSI模型第三层,即网络层

作用:在IP网络中发送控制消息,提供可能发生在通信环境中的各种问题的反馈,从而为网络连通性测试以及网络故障定位提供有效的指示信息。

ICMP协议封装:ICMP协议属于网络层协议

  • 传输ICMP信息时,要先封装ICMP头部
  • 然后在封装IP头部
  • 最后再交给数据链路层
    数据帧格式,网络通信基础,tcp/ip,网络,服务器

eNSP抓包实验

数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • Echo Request,请求报文
  • Echo Reply,相应报文

常见的ping反馈结果

  • 连接建立成功,Reply from目的地址
  • 目标主机不可达,Destination host unreachable
  • 请求超时,Request timed Out

出现Destination host unreachable一般是本机网络配置出现问题
出现Request timed Out可能是目标主机或者传输路径出现问题

ARP协议概述

ARP(address resolution protocol):地址解析协议

  • ARP协议属于OSI模型的第三层(网络层)
  • 主要作用:基于目标IP地址获得对应目标的MAC地址,从而完成数据帧的二层头部封装,实现数据的快速转发

ARP报文类型

  • ARP请求报文,源设备以广播的方式发送,向所有设备请求MAC地址
  • ARP回应报文,目标设备以单播的方式回应,直接返回给原设备

ARP核心工作表

  • ARP表,包含的IP地址与MAC地址的对应关系条目
  • ARP条目分为静态和动态的两种类型
  • 动态ARP条目的存活时间是1200s

任何设备发数据的原理

  • 任何设备在发数据包之间,都会检查ARP表,查看包含去往目标IP地址时所使用的的MAC地址
  • 如果ARP表包含目标IP地址对应的条目,则使用目标MAC地址封装数据
  • 如果ARP表不包含目标IP地址对应的条目,则发送ARP请求,获得目标的MAC

eNSP抓包实验

数据帧格式,网络通信基础,tcp/ip,网络,服务器
数据帧格式,网络通信基础,tcp/ip,网络,服务器
数据帧格式,网络通信基础,tcp/ip,网络,服务器

请求主机会根据收到的ARP回应包实施更新ARP表
数据帧格式,网络通信基础,tcp/ip,网络,服务器

传输层

  • 传输层:传输层位于网络层和应用层之间

  • 作用:传输层提供端到端的连接(不同端口号,代表不同的应用程序)
    数据帧格式,网络通信基础,tcp/ip,网络,服务器
    数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • TCP(Transmission Control Protocol)

  • 传输控制协议

  • 可靠的、面向连接协议

  • 传输效率低(建立连接需要很长的时间)

  • UDP(User Datagram Protocol)

  • 用户数剧报文协议

  • 不可靠的、无连接的服务

  • 传输效率高(无需建立连接、速度快)


TCP协议

数据帧格式,网络通信基础,tcp/ip,网络,服务器
TCP报文分为两部分:TCP头部,数据部分

  • TCP头部可能含有可选项内容,因此TCP报头的长度是不确定的
  • 报头不包含任何可选字段,则长度为20字节,报头最大长度为60字节

TCP报文头部内容

  • 源端口:源端口和IP地址的作用是标识报文的发送地址
  • 目的端口:指明接收方计算机上的应用程序接口(源端口是随机的,目标端口是固定的,一般指服务器。一共有65535个端口号,其中0-1024是常用的端口 )
  • 序列号和确认号:在TCP传送一个数据包时,它会把这个数据包放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。TCP通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组,从而保障数据传输的完整。如果一个报文段的起始序号为158,此报文段数据部分的大小为100字节,则下一个报文段的序号为258。
  • 首部长度:此报文的长度是多少,有没有可选项
  • 保留:为将来定义新的用途保留,现在一般置0
  • 控制位
    URG=1 代表紧急指针开启紧急指针:特别着急的数据段优先传递
    ACK=1 代表同意建立连接
    PSH=1 代表开启缓冲区(临时存放数据的)
    RST=1 数据没有传输完成断开了,在次请求建议连接
    SYN=1 代表请求建立连接
    FIN=1 代表请求断开连接
  • 窗口大小:代表数据在发送之前,设备间需要协商,依照最小单位为准发送数据
  • 校验和:此校验和是对整个TCP报文段,包括TCP头部和TCP数据部分

eNSP抓包

  • 建立如图拓扑
  • 配置web服务站点
  • 客户机访问web服务

数据帧格式,网络通信基础,tcp/ip,网络,服务器


数据帧格式,网络通信基础,tcp/ip,网络,服务器
数据帧格式,网络通信基础,tcp/ip,网络,服务器

三次握手、四次挥手

三次握手
数据帧格式,网络通信基础,tcp/ip,网络,服务器
数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 第一次:主机A发送SYN请求建立连接 seq=0 syn=1
  • 第二次:主机B回应并发起连接seq=0、ack=1, ACK=1,syn=1
  • 第三次:主机A回应,seq=1、ack=1,ACK=1

数据帧格式,网络通信基础,tcp/ip,网络,服务器


四次挥手
数据帧格式,网络通信基础,tcp/ip,网络,服务器

数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 第一次:主机A请求断开连接,FIN=1、ACK=1
  • 第二次:主机B发送确认信息,ACK=1
  • 第三次:主机B请求断开连接,FIN=1、ACK=1
  • 第四次:主机A确认收到请求,ACK=1

UDP协议

DUP报文格式
数据帧格式,网络通信基础,tcp/ip,网络,服务器

  • 源端口:源端口和IP地址的作用是标识报文的返回地址
  • 目的端口:目标端口指明接收方计算机上的应用程序接口
  • 16位UDP长度:代表整个UDP的数据报是多大----8字节
  • 16位UDP校验和:是一个检查机制,在发送数据包之前检查一下数据包的完整性。
  • 数据: 就是应用所有产生的数据了

eNSP抓包

在客户机上模拟UDP发包
数据帧格式,网络通信基础,tcp/ip,网络,服务器
数据帧格式,网络通信基础,tcp/ip,网络,服务器
常见基于UDP的应用
数据帧格式,网络通信基础,tcp/ip,网络,服务器文章来源地址https://www.toymoban.com/news/detail-785871.html

到了这里,关于数据帧、IP数据包、TCP、UDP报文格式详解----网络通信原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SCTP, TCP, UDP, IP, ICMP都在哪一层?(TCP/IP网络通信协议学习)

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

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

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

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

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

    2024年02月05日
    浏览(48)
  • 网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报

    欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《网络编程》 传输层及其以下的机制由内

    2024年01月16日
    浏览(69)
  • 完整版:TCP、UDP报文格式

    目录 TCP报文格式 报文格式 报文示例 UDP报文格式 报文格式 报文示例 报文格式 图1 TCP首部格式 字段 长度 含义 Source Port 16比特 源端口,标识哪个应用程序发送。 Destination Port 16比特 目的端口,标识哪个应用程序接收。 Sequence Number 32比特 序号字段。TCP链接中传输的数据流中每

    2024年02月13日
    浏览(45)
  • 全面解析UDP协议(特点、报文格式、UDP和TCP的区别)

    UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。 特点 无连接:UDP通信

    2024年02月08日
    浏览(60)
  • TCP/IP协议专栏——分片报文详解——网络入门和工程维护必看

    一个链路层数据报能承载的最大数据量称为最大传送单元(MTU)。 因为IP数据报(IP头+DATA)被封装在链路层数据报中,故链路层的MTU严格地限制着IP数据报的长度, 而且在IP数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的MTU. 例如,以太网的MTU为15

    2024年01月19日
    浏览(64)
  • 网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解

    目录 前文链接(系列助学, 也为后文学习做铺垫, 可按需读取) 一. 再谈HTTP再理解 二. HTTP对比学习HTTPS HTTP和HTTPS的区别如下: 三.TCP协议  (三次握手四次挥手细节过程理解在之前的博文中有详细图解) tcp缓冲区概念的引入  (解释流量控制): 确认应答(ACK)机制的理解 (编序号)

    2023年04月09日
    浏览(63)
  • LwIP系列(3):以太网帧、IP、TCP、UDP、IGMP、ICMP帧格式详解

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

    2024年02月14日
    浏览(49)
  • 网络通信(Socket/TCP/UDP)

    Socket(又叫套接字)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接协议,客户端的IP地址,客户端的端口,服务器的IP地址,服务器的端口。 一个Socket是一对IP地址和端口。 Socket可以看

    2024年01月22日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包