【网络技术联盟站】网络工程师深入篇之网络基础知识

2021-01-13 10:03:15 浏览数 (1)

一. 以太网基础:

1. 常见传输介质:

(1)同轴电缆(有线电视):

(2)双绞线(局域网网线):

(3)光纤(广域网网线):

右图中为光纤接口类型:

  • ① ST
  • ② FC
  • ③ SC
  • ④ LC (4)串口电缆 (帧中继网络):

2. 换算单位:

①最小的单位为:位(bit),表示形式为 0 和 1

②第二小的单位:字节(Byte),一个标准英文字母占一个字节位置,8 个 bit;一个标准汉字占二个字节位置,16 个 bit

③比 比 TB 还大的单位有:还有 PB、EB、ZB、YB 、NB、DB,一般人不常使用

  • 1TB=1024GB;
  • 1GB=1024MB;
  • 1MB=1024KB;
  • 1KB=1024Byte;
  • 1Byte=8bit

3. 以太网 MAC 地址:

MAC 地址总共为 48bits,前 24bit 为各个厂商的唯一标识;后 24bits 为每个厂商为此网卡提供的唯一的身份标识。 例如:E8-4E-56-19-01-72

4. cmd 命令:

  • Net view—查看当前局域网中有哪些主机
  • Hdwwiz----安装系统硬件、、、、
  • Nslookup---查看 DNS 解析
  • route add 10.253.251.0 mask 255.255.255.0 -p 192.254.1.1—配置静态路由
  • route delete 10.253.251.0 mask 255.255.255.0 -p 192.254.1.1—删除静态路由
  • route print------查看路由
  • nslookup wwww.baidu.com-------------------查看域名对应的 IP
  • 保存日志:ping –t 10.1.1.1 > D:ping.txt
  • 清空 dns 缓存:ipconfig /flushdns
  • 清空 arp 缓存:ARP-D
  • 释放 IP/获取 IP:ipconfig /release;ipconfig /renew
  • 脚本生成:
代码语言:javascript复制
ping 192.168.1.1 -n 10
ping www.baidu.com -n 10
ping www.163.com -n 10
pause
  • ping:
    • -t 连续 ping
    • -l 定义包大小
    • -n 定义发送的次数

5. 接口地址:

(1)一个接口可以借用环回口的接口地址:

代码语言:javascript复制
[Huawei-GigabitEthernet0/0/1]ip address unnumbered interface LoopBack 0

(2)一个接口可以配置一个主 IP 地址和多个从 IP 地址:

❝ 注:此功能适用于一台交换机一条链路上来但存在多个网关的情况,子接口只能用于 802.1q封装

代码语言:javascript复制
[Huawei-GigabitEthernet0/0/1]ip add 172.16.1.1 24
[Huawei-GigabitEthernet0/0/1]ip add 172.16.2.1 24 sub
[Huawei-GigabitEthernet0/0/1]ip add 172.16.3.1 24 sub

6. 系统管理:

(1 ) 文件管理命令:
  • dir:查看 flash 中的文件
  • pwd:显示当前所处目录
  • more:查看文本文档
  • cd:切换目录(cd .. 回到父路径)
  • mkdir:创建新的目录 rmdir:删除一个目录
  • copy:复制文件
  • move:移动文件
  • rename:重命名文件
  • 删除文件命令:
  • Display startup:查看启动配置
  • Startup saved-configuration:配置下次启动的配置文件
  • Compare configuration:比较当前配置与下次启动的配置
(2 ) 系统管理命令:
  • startup system-software vrp5.5.cc:配置下次启动的系统

7. 网络三层架构:

网络三层架构为核心层分布层(汇聚层)接入层

8. CSMA/CD :

载波侦听多路访问/冲突检测技术:共享式网络(HUB)中存在冲突域,所有的主机共享一根总线型链路(例如接 Hub 集线器),当同一时刻两台或两台以上的主机同时发送数据会产生数据冲突,解决数据冲突的技术为 CSMA/CD(Carrier Sense Multiple Access/CollisionDetection)。

工作原理:
  1. 终端设备不停地检测共享线路的状态。如果线路空闲,则可以发送数据;如果线路不空闲,则等待一段时间后继续检测(检测时间由退避算法决定)。
  2. 如果有另外一个设备同时发送数据,两个设备发送的数据会产生冲突。
  3. 终端设备检测到冲突之后,马上停止发送自己的数据,并发送特殊阻塞信息,以强化冲突信号,使线路上其他站点能够尽早检测到冲突。
  4. 终端设备检测到冲突后,等待一段时间后再进行数据发送(延时时间由退避算法决定)

❝ 注:CSMA/CD 的工作原理可简单总结为:先听后发、边发边听、冲突停发、随机延迟后重发。

9. Wireshark:

(1)过滤源 ip、目的 ip。在 wireshark 的过滤规则框 Filter 中输入过滤条件。如查找目的地址为 192.168.101.8 的包,ip.dst==192.168.101.8;查找源地址为 ip.src==1.1.1.1

(2)端口过滤。如过滤 80 端口,在 Filter 中输入,tcp.port==80,这条规则是把源端口和目的端口为 80 的都过滤出来。使用 tcp.dstport==80 只过滤目的端口为 80 的,tcp.srcport==80 只过滤源端口为 80 的包;

(3)协议过滤比较简单,直接在 Filter 框中直接输入协议名即可,如过滤 HTTP 的协议;

10. 时间值:

11. 接口类型:

100Base-FX是在光纤上实现的100 Mbps以太网标准,其中F指示光纤,IEEE标准为802.3u。快速以太网目前制定的三种有关传输介质的标准之一,另外两种是 100BASE-T4、100BASE-TX。

类似这样的在百度百科上都可以查到。BASE 是基带宽度。-fx 是线缆类型,f 是光纤,T 是双绞线。也就是说,**-**后面这些都是线缆类型。

具体,100Base-TX 和 100Base-T 是从属关系。

100Base-T 简称快速以太网技术,其协议标准是 IEEE 802.3u,其中的 T 代表双绞线、光纤 传输介质。

100Base-T 定义了 3 种不同的物理层协议,分别是:100Base-TX、100Base-T4 和 100Base-FX。

其中,标识符分三段,

  • 第一段,100 是传输速度;
  • 第二段,Base 代表“基带”,信令的一种;
  • 第三段,是关于网络段类型的阐述,
    • “TX”属于双绞线网络段类型,具有两对高质量双绞线,基于 ANSI(美国国家标准化组织)制定的数据级双绞线物理介质标准;
    • “T4”也属于双绞线网络段类型,它是具有 4 对电话线路级双绞线;
    • “FX”属于光纤链路网络段类型。

其中,“TX”和“FX”均为 ANSI 制定的物理介质标准,统称为“100Base-X”。

COMBO 口么也是千兆口,但是需要配模块,可以用光模块,也可以用电口。

光口就是可以接光纤,电口就是跟 GE 一样了,所以叫 COMBO 口。

二. 分层模型:

为了降低网络设计的复杂度,将协议进行了分层设计。

互联网模型大体上分为:

  • OSI 七层模型
  • TCP/IP 模型
  • IPX/SPX 模型
  • SNA 模型

1. OSI 七层 模型:

开放式系统互联参考模型,国际标准化组织 ISO 于 1948 年提出了 OSI 模型。

七层→应用层:OSI 参考模型中最靠近用户的一层,为应用层序提供网络服务;

六层→表示层:提供各种用于应用层数据的变法和转换功能,确保仪的系统的应用层发送的数据能够被另一个系统的应用层识别。(数据表示、加密,图片、文档、文字);

五层→会话层:负责建立、管理和终止表示层实体之间的通信回话,该层的通信有不同设备中的应用程序之间的服务和请求相应。(通信设备可能存在多个会话);

四层→传输层:提供面向连接(TCP)或非面向连接(UDP)的数据传递以及进行重传前的差错检测;

三层→网络层:提供逻辑地址,供路由器确定路径;

二层→数据链路层:将比特组合成字节,再将字节组合成针,使用链路层地址(以太网使用 MAC 地址)来访问介质,并进行差错检测。

一层→物理层:在设备之间传输比特流,规定了电平、速度、和电缆针脚;

2. TCP/IP 四层模型:

TCP/IP 时 20 世纪 70 年代中期美国国防部为 APPANET 开发的网络体系协议,所有协议基于此类标准进行开发,此协议为所有厂商制定网络设备提供了一套完整的系统标准。

注:也有人将 TCP/IP 分为 5 层模型。

3. OSI 与 与 TCP/IP 对比图:

三. 数据封装:

  1. 数据在高层称之为:数据单元
  2. 到达传输层,再数据单元前封装协议头,称之为:数据段
  3. 到达网络层,封装 IP 头部,称之为:数据包
  4. 到达网络接口层,封装 MAC 地址,称之为:数据帧
  5. 最终传输到物理介质,称之为:比特流

1. 四层传输层协议:

传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是:

  • 传输控制协议 TCP(Transmission Control Protocol)
  • 用户数据包协议(User Datagram Protocol)
(1 )TCP:

① TCP 报文: Transmission Control Protocol,传输控制协议,TCP 是一种面向连接的传输层协议,提供可靠地传输服务。

❝ 注:因为存在 Options 选项,所以 TCP 头长度不固定,最小为 20 字节,最大为 60 字节

  • Source Port :2Byte,源端口号
  • Destination Port :2Byte,目标端口号
  • Sequence Number :4Byte,序列号,在 TCP 传送的数据流中,每一个字节都有一个序号,每发送一次数据包都会携带一个序列号
  • Acknowledge Number :4Byte,确认序列号,如果收到对端的一个数据包,会查看包中的序列号,并将序列号 对端 ACK 值的总和作为确认序列号返回给对端,表示此序列号的数据包已经收到,并期待收到下一个标识数据包的序列号是多少
  • Header Length :头部长度
  • Resv :6Byte,保留位,供往后应用,默认为 0
  • URG :紧急比特 URG,当 URG=1 时,注解此报文应尽快传送,而不要按本来的列队次序来传送。与“紧急指针”字段共同应用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,使接管方可以知道紧急数据共有多长
  • ACK :确认比特 ACK,默认为 0,如果 ACK=1 时,确认序列号有效位,表明该数据包包含确认信息
  • PSH :急迫比特 PSH,默认为 0,当 PSH=1 时,表示通知接收端立即将数据提交给用户进程,不要在缓存中停留,等待更多的数据
  • RST :复位比特 RST,默认为 0,当 RST=1 时,注解呈现严重错误,必须开释连接,然后再重建传输连接。
  • SYN: :同步比特 SYN, 当为 1 时,表示对端请求建立连接,TCP 三次握手第一次时 SYN为 1
  • FIN: :终止比特 FIN,为 1 时,表示数据发送完毕,请求断开连接
  • Window: :2Byte,滑动窗口大小,,默示报文段发送方的接管窗口,单位为字节。此窗口告诉对方,“在未收到我的确认时,你可以或许发送的数据的字节数至多此窗口的大小。”
  • Checksum: :校验和
  • Urgent Pointer: :紧急指针,当 URG=1 时,注解此报文应尽快传送,而不要按本来的列队次序来传送。与“URG”字段共同应用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,使接管方可以知道紧急数据共有多长
  • Options : 选项值,那些需要使用同步动作的程式如 Telnet 要处理好终端的交互模式就会使用到 option 来指定资料封包的大小因为 telnet 使用的资料封包都很少但又需要即时回应。Option 的长度为 0,或 32bit 的整倍数,如果不足则填充到满

② TCP 三次握手 :

a) 主机 A 想要访问服务器 A,发送 SYN 数据报文:

  • SYN 位置为 1
  • Sequence Number 为 a

b) 服务器 A 收到主机发送的 SYN 报文后,回复 ACK 确认报文:

  • SYN 位置为 1、ACK 位置为 1
  • Acknowledge Number 为 a 1
  • Sequence Number 为 b- ACK 位置为 1
  • Acknowledge Number 为 b 1
  • Sequence Number 为 a 1

c) 主机 A 收到回复后,发送 ACK 报文确认

  • ACK 位置为 1
  • Acknowledge Number 为 b 1
  • Sequence Number 为 a 1

③ TCP 四次挥 手:

a) 主机 A 传输完数据,想要断开与服务器 A 的连接,会发送一个 FIN、ACK 报文:

  • Fin 位置为 1、ACK 位置为 1
  • Sequence Number 为 a
  • Acknowledge Number 为 b(为前期主机 A 发送的实际数据 Sequence Number 传输的数值 1)

❝ 注:此处的 ACK 置位表示前期实际的数据已经接收到

b) 服务器 A 收到主机 A 发送的 FIN 数据包,回复 ACK 报文:

  • ACK 位置为 1
  • Acknowledge Number 为 a 1
  • Sequence Number 为 b

c) 如果服务器 A 也传输完数据,会发送一个 FIN、ACK 报文:

  • Fin 位置为 1、ACK 位置为 1
  • Sequence Number 为 b 1
  • Acknowledge Number 为 a 1

d) 主机 A 收到服务器 A 的 FIN 数据包,发送 ACK 确认报文,seq 为 a 1,ack 为 b 1,(表示已收到服务器 A 的 FIN 序列号为 b 的数据包)

❝ 注 1 :为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?

这是因为服务端的 LISTEN 状态下的 SOCKET 当收到 SYN 报文的建连请求后,它可以把 ACK 和 SYN(ACK 起应答作用,而 SYN 起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的 FIN 报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭 SOCKET,也即你可能还需要发送一些数据给对方之后,再发送 FIN 报文给对方来表示你同意现在可以关闭连接了,所以 TCP 传输是一种全双工的模式,两端的传输都是相互分开的,TCP 断开也是相互独立的,它这里的 ACK 报文和 FIN 报文多数情况下都是分开发送的。

❝ 注 2 :为什么 TIME_WAIT 状态还需要等 2MSL 后才能返回到 CLOSED 状态?

这是因为虽然双方都同意关闭连接了,而且握手的 4 个报文也都协调和发送完毕,按理可以直接回到 CLOSED 状态(就好比从 SYN_SEND 状态到 ESTABLISH 状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的 ACK 报文会一定被对方收到,因此对方处于 LAST_ACK 状态下的 SOCKET 可能会因为超时未收到 ACK 报文,而重发 FIN 报文,所以这个 TIME_WAIT 状态的作用就是用来重发可能丢失的 ACK 报文。

④ TCP 可靠传输:

TCP 在传输过程中使用序列号和确认号进行包的确认

a) 发送端首次发送数据包,Seq 序列号为一个生成数值,ACK 为 1(首次发送)

b) 接收端接收到数据包,并希望得到下一个数据包(Seq 1),此时数据包中的的 Seq 为 1用于确认收到发送端 ACK 为 1 的数据包,并将本端发送包的中 ACK 置为 Seq 1,表示期待接收到下个数据包的序列号

c) 发送端收到接收端的 TCP 确认包好,查看包中的 ACK 为 11,表示下个包的序列号,此时发送下一个包,并将 ACK 变为 2,表示第二次发送。

⑤滑动窗口机制:

滑动窗口,在 TCP 建立之后传输数据时,用于管理数据流控的标识符。接收端在接收数据时会建立一个缓存区,并将缓冲区的大小标识符值放于 TCP 头部的 Window 中,表示接收端目前缓存区可以接收的最大数据位多少。滑动窗口的作用用于接收端告诉发送端自己可以一次性接收的数据大小为多少。

a) 主机 A 想服务器发起连接,传输数据给服务器 A

b) 服务器 A 回复 ACK 信息,同时携带窗口大小为 3

c) 主机 A 收到 ACK 确认信息后,发现窗口大小为 3,于是连续发送窗口大小为 3 的容量的数据包给服务器 A

d) 服务器 A 收到数据包后,内存满,此时读取一个数据包,内存剩余为 1,此时发送 ACK确认,窗口大小为 1

e) 主机 A 收到后,发送窗口大小为 1 的数据包给服务器 A

(2 )UDP :

User Datagram Protocol,用户数据包协议,UDP 是一种面向无连接的传输层协议,传输可靠性没有保证。当应用程序对传输可靠性不高时,但是对传输速度和延迟要求较高时,可以使用 UDP 协议来替代 TCP 协议在传输层控制数据的转发。

UDP 头部仅占 8Byte,传输数据时没有确认机制。UDP 适合于实时数据传输,如语音和视频通信。相比于 TCP,UDP 的传输效率更高、开销更小、但是无法保障数据传输的可靠性,保证数据的完整性是依靠应用层的服务对数据提供保证的。

  • Source port:源端口号
  • Destination port:目标端口号
  • Length:长度
  • Checksum:校验和
(3 ) 端口号:

主机使用端口号表示不同的网络服务。其中:0-1023 为知名端口号;1024-65535 为动态端口号

常见协议端口号:

名称

端口号

FTP

TCP20(传输端口)/TCP21(控制端口)

HTTP

TCP80

Telnet

TCP23

SSH

TCP22

HTTPS

TCP443

BGP

TCP179

PPTP

TCP1723

TFTP

UDP69

RIP

UDP520

2. 三层网络层封装:

(1 )IPv4 包格式:

Version :4bit,表示 IP 协议版本号。目前的版本号是 4,即 IPv4。版本号规定了数据报的格式。版本不同,其数据报格式也有所不同,如 IPv6 的报文结构就和 IPv4 的结构不同。

IHL : 4bit,报文头长度 HLEN,表示报文头长度(行数)。报文每行长度为固定 4Byte,所以报文头长度以 4 Byte 为单位计算。除 IP 选项(IP Options)和填充(Padding)字段可以不存在外,其他各字段必须存在。这些必须存在的字段是 5 个 4 Byte,共 20 Byte 长。因此,报文头长度值一般是 5 。又由于报文头长度必须是 32bit的整数倍,所以当一个含有 IP 选项字段的 IP 数据报不是 32bit 的整数倍时,由填充字段用 0 补足,由于存在 Option 选项,所以 IHL 不固定,为 20 到 60 字节

TOS :8bit,Type of Service,服务类型,指示对本数据报的处理方式。它主要用来指示数据报的优先权及传输类型。QoS 技术就是使用此字段对数据进行标记优先级的。

Total Length :16bit,数据包总长度,以 Byte 为单位表示整个 IP 数据报长度,包括报文头及其携带的数据,可以表示最大值为 65535,所以三层 MTU 最大为65535

Identifier :16bit,标识字段,是发送者赋予数据报的标识符,接收者利用这个信息和源地址判断收到的分组属于哪个数据报,以便进行重组。因此,在分片时,该域必须不加修改地复制到各分片的报文头中。

Flags :3bit,标志位,只有低两位有效。第一 bit 为 0 时表示该分片是最后一片,如果该位是 1 表示后面还有分片。第二 bit 为 0 时表示可以对数据报进行分片,如果该位是 1 表示数据报不能分片。当该位设置为 1 而帧长度不匹配又必须分片时,设备就会将数据报丢弃并返回错误信息。

Fragment Offset: :片偏移,指示本分片数据在初始数据报数据区中的偏移量,偏移量以8 Byte 为单位,重组时分片顺序由片偏移提供。

Time To Live :生存时间,简称 TTL,8bit,用来控制数据报在网络中存在的时间。目前TTL 的值并不代表时间,而是代表经由路由器的个数。数据报每经过一台路由器时,路由器将 TTL 值减 1,一旦 TTL=0,系统就丢弃该数据报,并返回错误信息。这样避免了路由出现环路时数据报在路由器之间无休止地循环。

Protocol :8bit,协议,表示该数据报携带的数据是由哪个上层协议封装的,也就是指示传输层的协议类型。如最常见的协议类型是 TCP 或 UDP。

Header Checksum :16bit,头校验和,用于保证 IP 头数据的完整性。

Address: :分为源 IP 地址和目的 IP 地址,各占 32bit,表明数据的来源及其到达的 76EE的地。

Padding: :当 IP 报文头长度不是 32bit 的整数倍时,填充 0 来凑齐 32bit 整数倍,没有实际意义。

Data: :来自第 4 层的数据段。

❝ 注:标识(Identification)标志(Flags)、**片偏移(Fragment Offset)**这 3 个字段与 IP 报文的传输有关。IP 数据报是网络层的数据单元,它需要被封装在第二层的数据帧中来传输。互联网是由各种二层规范不同的网络互联起来的产物,这些不同的网络的帧格式及帧长度各不相同。例如,以太网的帧和令牌环的帧在结构和长度上都不相同。IP 数据报在某个二层网络中能够被完全封装,到另一个二层网络中就未必可以。因此,IP 数据报有可能被分割,称为"分片(Fragmenting)",当数据到达目的地时还要对分片进行重组。上述 3 个字段正是用于对分片和重组进行控制的。

(2 )IPv4 地址 有类 分类:
  • A 类:1-126/8 A 类私网地址:10.0.0.0/8
  • B 类:128-191/16 B 类私网地址:172.16.0.0/16-172.31.255.255/16
  • C 类:192-223/24 C 类私网地址:192.168.0.0/16-192.168.255.255/24
  • D 类:224-239(组播地址)
  • E 类:240-255(保留实验)

其中:127.0.0.0-127.255.255.255.255 为回环地址。

(3)分片 :

通常要传输的IP报文的大小超过最大传输单位MTU(Maximum Transmission Unit)时就会产生 IP 分片情况。IP 分片通常发生在网络环境中。比如说,在以太网(Ethernet)环境中可传输最大 IP 报文大小(MTU)为 1500 字节。而传输的报文大小要比 1500 字节(不包括以太协议的首部和尾部 18 个字节)大,这个时候就需要利用到分片技术,经分片后才能传输此报文。另外,使用 UDP 很容易导致 IP 分片,而很难强迫 TCP 发送一个需要进行分片的报文。并在 IP 数据包中采用 identification 标号flags 置位符Fragment Offset 偏移量 用来标识此分片数据包。

网络层外面还会加上数据链路层的封装,经过数据链路层封装之后,才是一个数据包最终的大小。要注意,MTU 只是限制了一个数据包经过网络层的封装后,不要超过 1500 字节,一个数据包最终是多少,是不能一概而论的,不同的数据链路层会在“网络层 1500 字节”的基础上加上不同的头部,比如:以太网会在网络层的基础上加上 14 字节头部和 4 字节的FCS 尾部,所以,一个以太网数据帧最终的大小是 1518 字节,当数据链路层为 HDLC 时,它会在网络层前面加上 4 字节的 HDLC 的头部和 4 字节的 FCS 校验,所以,一个 HDLC 链路的数据包是 1508 字节,当数据链路层为 PPP 时,它会在网络层前面加上 4 字节的 PPP 的头部和 4 字节的 FCS 校验,所以,一个 PPP 链路的数据包是 1508 字节。

需要注意的是,MTU 只会影响到数据发出方向,对收入的数据,是没有 MTU 限制的,但是,我们建议将链路两端的 MTU 设置为一样大小的,因为网络通讯都是有来有回的,一个大与接口 MTU 的数据收进来,如果又要从这个接口返回去,则入向收到的是一个完整的包,而出向会对这个数据分片,虽然不会影响通信,但这种双向数据结构不匹配的通讯模型并不是很合理。

❝ 注:三层中的 Total Length 为 16bit,所以最大可以表示 65535 字节,所以三层的最大数为655535 字节,二层最大表示的数为 1518,所以实际数据包的大小为 1518

identification 标号:16bit,ID 域对于每个分片都是一致的,这样才能在重新组装的时候识别出来自同一个 IP 报文的分片。在 IP 头里面,16 位识别号唯一记录了一个 IP 包的 ID(ipid),具有同一个 ID 的 IP 分片将会重新组装。

flags 置位符:3bit,标志着该分片后面是否还有新的分片。

Fragment Offset 偏移量:13bit,记录了某 IP 片相对整个包的位置。

(3 )三层 MTU :

①三层 最大 包 长:

三层网络 IPv4 报文实际可表示长度为 655535 字节,而最大长度为 1500Byte(称为 MTU)

②三层最小包长:

最小包长为 46Byte,不够使用垫片填充。

❝ 注: :存在最小数据包大小的原因为如果 A 主机发送的数据帧很小,很快完成数据帧的发送,二两台冲突主机相距很远,再主机 A 发送的数据帧传输到 B 的前一刻,B 开始发送数据帧,这样,当 A 的数据帧到达 B 时,B 检测到冲突,于是发送冲突信号。假如 B 的冲突信号传输到 A 之前,A 的数据帧已经发送完毕,那么 A 将检测不到冲突而误认为已发送成功,因此必须有最小包长的限制。当一个包不足 64Byte(数据封装到二层时)时,将使用 bit 填充数据部分到 64Byte。

(4 ) 协议号:

网络层数据包的包格式里面有个很重要的字段叫做协议号,协议号是存在于 IP 数据报的首部的 20 字节的固定部分,占有 8bit.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的 IP 层知道将数据部分上交给哪个处理过程。也就是协议字段告诉 IP 层应当如何交付数据。

协议号用于表示三层网络层上层为何种网络协议。

常见协议号:

协议名称

协议号

ICMP

1

IGMP

2

TCP

6

EGP

8

IGP

9

UDP

17

IPv6

41

GRE

47

NARP

54

OSPF

89

VRRP

112

L2TP

115

3. 二层数据帧封装:

数据帧封装分为两种帧格式封装,一种为Ethernet_II定义格式;一种为IEEE802.3定义格式。

❝ 注:如何区分数据包使用哪种格式:

① 当数据包的长度大于或等于 1536Byte 时为 Ethernet_II 协议封装。

② 当数据报的长度小于或等于 1500Byte 时为 IEEE802.3 协议封装。

(1 )Etherne_II 帧格式:
  • 6Byte 的目标 MAC 地址
  • 6Byte 的源 MAC 地址
  • 2Byte 的 Type 类型(0x0800 为 IP;0x0806 为 ARP;0x8847 为 MPLS)
  • 46Byte-1500Byte 的 Data
  • 4Byte 的 FCS 校验
(2 )IEEE802.3 帧格式:
  • 6Byte 的目标 MAC 地址
  • 6Byte 的源 MAC 地址
  • 2Byte 的 Length 长度表示符
  • 3Byte 的 LLC 链路控制子层:
    • 1Byte 的 D.SAP
    • 1Byte 的 S.SAP
  • 5Byte 的 S.NASP
    • 3Byte 的 Org Code
    • 2Byte 的 Type
  • 38Byte—1492Byte 的 Data 数据
  • 4Byte 的 FCS 校验位

❝ 注:IEEE802.3 帧长度值小于等于 1500

IEEE802.3 数据帧抓包:

(3 )二层 MTU :

在 Ethernet_II 封装数据帧中:

  • 数据帧最小为 64Byte

46Byte 的数据单元 2Byte 的 Type 6Byte 的 D_MAC 6Byte 的 S_MAC 4Byte 的 FCS 校验位

  • 数据帧最大为 1518Byte : 1500Byte 的数据单元 2Byte 的 Type 6Byte 的 D_MAC 6Byte 的 S_MAC 4Byte 的 FCS 校验位
(4 )Type 标识:

Type类型

Type标识

IPv4

0x0800

IPv6

0x86DD

ARP

0x0806

MPLS

0x8847

802.1Q

0x8100

0 人点赞