网络系列一 结合wireshark学习TCP/IP协议中帧,IP包,TCP包的包结构及字段意义

1. 概述

TCP/IP应该是程序员的基本功,但是之前对这个印象总是模模糊糊,花了一些时间对相关的东西进行了整理。本文介绍网络传输中的基本元素,主要包括如下内容

  • 帧的分类、结构及字段意义
  • 结合wireshark学习TCP/IP协议中帧,IP包,TCP包的包结构及字段意义
  • 序列号和确认号
  • TCP的窗口机制和可用窗口大小协商机制

2. 帧

网络上,单次传输的数据量是有限。在传输数据时,会将大数据分割若干个数据包进行传输。这个数据包称作以太帧(Frame),帧也称为协议数据单元(PDU)。不同的协议使用不同的帧格式和MTU值(Maxitum Transmission Unit 最大传输单元),帧主要有两大类:

  • IEEE 802.3 以太网标准:又分为3种类型
    • Novell raw IEEE 802.3
    • IEEE 802.2 LLC
    • IEEE 802.2 SNAP
  • Ethernet II 帧,又称为DIX帧,是最常见的帧类型,是TCP/IP网络中使用的以太网帧格式

EEE 802.3帧和Ethernet II 帧是相互兼容,它们的格式也很像,如下图:
802.3
以太网帧的大小范围(即MTU)应该是[64=46+18, 1522=1500+22],其实最开始EthernetII和802.3规定最大帧为1518,后来为支持vlan,1998年802.3ac规定最大帧为1518+4(vlan)=1522

备注:如果帧长小于64字节,则要求“填充”,以使这个帧的长度达到64字节

2.1. IEEE 802.3格式

上节图中第一行:显示IEEE 802.3 格式,各个字段意义如下:

  • 一个帧以7个字节(Preamble)的前导码和1个字节(Start of frame delimiter)的帧开始符作为帧的开始。
  • 报头包含源地址(MAC source)和目标地址的MAC地址(MAC destination),以Payload部分的长度(length (IEEE 802.3))和可选的用于说明VLAN成员关系和传输优先级的IEEE 802.1Q VLAN 标签(802.1Q tag (optional))。
  • 帧校验码(Frame check sequence )是一个32位循环冗余校验码,以便验证帧数据是否被损坏。
  • 帧间距(Interpacket gap):当一个帧发送出去之后,发送方在下次发送帧之前,需要再发送至少12个octet的空闲线路状态码。
  • 负载(Payload):帧的负载

2.2. Ethernet II 帧格式

Ethernet II 帧是事实的标准,它和IEEE 802.3 帧除了以下部分外,其他基本都相同:
1. 前序部分,802.3拆分为Preamble(7 octets)和SFD(Start of frame delimiter, 1 octet);Ethernet II只有Preamble(8 octets)。
2. 对802.3来说,类型或长度部分(Ethertype (Ethernet II) or length (IEEE 802.3)),表示的是长度,其值小于等于1500;对Ethernet II来说,表示的是类型,其值大于1536,通过值大小即可区分两种帧。另外1500 and 1536之间的数字未定义。

“802.1Q tag (optional)”是可选部分,去除这个字段后,常用的Ethernet II 帧格式如下&

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值