网络入门学习

1 以太网帧分为EthernetII帧格式和802.3帧格式

1.1 EthernetII帧格式

6byte(目的MAC地址)+6byte(源MAC地址)+2byte(类型字段)+数据字段+4byte(FCS校验字段)

目的MAC地址

源MAC地址

类型

数据

FCS

Sou-MAC

Des-MAC

Type

DaTa

FCS

类型0x0800

IP数据报

类型0x86dd

IPv6数据报

以太网II帧中的各个字段: 

       Des-MAC:  指明帧的接收者, 6byte

       Sou-MAC:  源地址是发送方的48比特的MAC地址, 6byte 

       Type:     此字段用于识别上层协议, 2byte。

       数据:     以太网II 的数据有效长度范围是46~1500字节。

       FCS:      用来校验损坏的帧, 4byte。

1.2.1  EthernetII的包结构如下图

 (图中Type:为0x0800,代表上层为IP)

         

1.2   802.3帧格式

6byte(目的MAC地址)+6byte(源MAC地址)+2byte(长度字段)+数据字段+4byte(FCS校验字段)

目的MAC地址

源MAC地址

长度

DSAP

SSAP

CTRL

ORG CODE

PID

数据

FCS

Sou-MAC

Des-MAC

length

DSAP

SSAP

CTRL

ORG CODE

类型

DaTa

FCS

<-----------------802.3MAC------------>

6byte

6byte

2byte

<----------802.2LLC-------->

1byte

1byte

<------802.2SANP---->

1byte

3byte

2byte

38-1492byte

4byte

类型0x0800

IP数据报

类型0x86dd

IPv6数据报

下面解释IEEE 802.3 LLC帧中的各个字段:

    Des-MAC:  指明帧的接收者, 6byte

    Sou-MAC:  源地址是发送方的48比特的MAC地址, 6byte

    Length:    表示后续数据字节长度,但不包含FCS检验码, 2byte。

    DSAP:     (Destination Service Access Point,目标服务接入点)1字节,8 位比特。值为0Xaa.

    SSAP:     (Source Service Access Point,来源服务接入点)1字节,8位比 特。值为0Xaa

    CTRL:     “控制”字段,指定LLC帧的类型,值为3,占1个字节  

    ORG CODE:  代表机构代码 值为0,占3个字节

    PID:       和EthernetII的类型字段一样也是类型字段,用于识别上层协议, 2byte

    数据:      802.3帧格式的数据有效长度范围是38-1492字节。

    FCS:       用来校验损坏的帧, 4byte。

1.2.1  802.3包结构如下图

2  ICMP报文的格式

类型    1byte

代码     1byte

检验和    2byte

标识符

序号

数据

解释: ICMP报文包含两个包为:request(请求)包和reply(响应)包,它们总是成对出现。

类型8,代码0:表示回显请求(ping请求)。

类型0,代码0:表示回显应答(ping应答)

检验和字段:包括数据在内的整个ICMP数据包的检验和

标识符(Identifier):区分不同的ICMP会话。

序号(Sequence):保证ICMP报文的成对出现。

2.1  ICMP包结构如下图

Identifier区分不同的ICMP会话,Identifier的号不一样

Sequence保证ICMP报文的成对出现它们序号都是一样的

TCP报文的格式

Destination port

Source port

sequence number

Acknowledgment Number

Header length

reserve

Code bit(flags)

Wimdows

URG

ACK

PSH

RET

SYN

FIN

Checksum

Urgent

Option

Data

Destination port:源端口为分配的随机数,16位

Source port:目的端口为协议指定的端口,指定上层协议。16位

sequence number:建立连接的序号  32位

Acknowledgment Number:表示用来确认连接序号的序号。32位

Header length:首部长度指示何处是数据开始,4位

reserve:保留字段,6位 

Code bit(flags):标志,6位        

           URG:  紧急指针位,当这位置1时,代表数据是紧急的,需加速处理,此时Urgent字段                                才有效,才会指向数据。

           ACK    确认位,当这位置1时,用来确认SYN。

           PSH    不会把数据放入TCP缓存,直接交给应用程序处理。

           RET    重置TCP连接。

           SYN    置1时,表示请求建立连接

           FIN    请求释放连接

Wimdows:窗口大小,16位,用于向对方通告当前本机的接受缓冲区的大小。

Checksum: 校验和字段长度,16bit,校验范围包括段首部、数据以及伪首部

Urgent:紧急指针字段,当Flags字段中的URG位置1时这个字段才有效。

3.1  TCP的数据包结构:


 

3.2  TCP的三次握手

下面数据包是TCP三次握手过程:

      (1)请求建立连接:12.1.1.2请求和12.1.1.1建立连接,发送sequence number:0,绝对值为:fb 81 02 65,Syn被设置为1.下图:

      (2)确认请求:12.1.1.1给12.1.1.2确认,发送sequence number:0,绝对值为:6b 33 90 a9,Acknowledgment number:1,绝对值为:fb 81 02 66(这个值是前面一步的sequence number:绝对值加1),Syn被设置为1,Acknowledgment被设置为1.如图:

(3)完成请求:12.1.1.2给12.1.1.1确认,发送sequence number:1,绝对值为:fb 81 02 66,Acknowledgment number:1,绝对值为:6b 33 90 aa (这个值是前面一步的sequence number:绝对值加1), Acknowledgment被设置为1.这样就完成了三次握手。如图:

4  UDP报文的格式

Source port

Destination port

length

Checksum

Data

Destination port: 目的端口,目的主机上请求应用程序的端口

Source port:源端口,发送数据主机上应用程序的端口

length:长度是指包括报头和数据部分在内的总字节数。

Checksum:校验和,UDP报头和UDP数据字段两者的校验和

4.1 UDP的数据包结构:

5 IP报文的格式

Version

Header Length

Priority&Type of service

Total Length

Identification

Flags

Flagment Offset

Time To Live

Protocol

Head Checksum

Source Address

Destination Address

Option

Data

5.2  IP报文说明

IP报头前5块为必选,因此,IP包最少20字节。

Version(版本):字段标明了IP 协议的版本号,目前的协议版本号为4。下一代IP 协议的版本号为6,长度为4位。

Header Length(报头长度):表示32位字长的报头长度,长度为4位。

Priority&Type of service(优先级和服务类型):用来指定特殊的数据包处理方式。长度为8位,字段前3 位为优先级字段,后5位为DSCP(包含4 位TOS 字段和1 位未用位。4 位TOS 分别代表最小时延、最大吞吐量、最高可靠性和最小费用)。

Total Length(总长度):是整个IP 数据报长度,包括数据部分,长度为16位。

Identification(标识符):通常与标记字段和分片字段一起用于数据包的分段,这个字段标记分片属于那个数据包,长度为16位;

Flags(标志字段):用于标志一份数据报是否要求分段;长度为3位,第1位保留位,不使用,第2位是DF位,当DF为1时,表示路由器不允许分段处理,为0时,表示允许分段。第3位是MF位,当MF为1时,表示数据将分段,且每个小段这一位都置为1,最后一个除外。

Fragment Offset(分段偏移):用于指明分段起始点相对于报头起始点的偏移量,确保接收者按照正确的顺序重组数据包,长度为13位。

Time To Live(存活期):用于防止产生路由环路,防止数据包在网络上无休止地被传输;长度为8位,思科路由器位值128,Windows值255,每经过一台路由器,TTL被减1,当该值减到0时,将丢弃该数据包。

Protocol(协议):定义上层协议的类型。长度为8位。

Header Checksum(报头校验和):针对IP报头的纠错字段。

Source Address(源地址):表示发送者数据包源点的IP地址,长度为32位;

Destination Address(目标地址):表示发送者目标的IP地址,长度为32位;

Options(可选项):主要用于测试,长度为0或32位。

5.3 IP数据包如下图

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yjun89

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值