首页 > 编程知识 正文

以太网各种协议详解大全,以太网使用的协议

时间:2023-05-04 00:51:56 阅读:157982 作者:790

主板处于复位状态时,做好一系列准备。

1、从EEROM读取板的MAC地址(事先写在地址0xFAto0xFF上)。

2、配置PHY寄存器,读取该寄存器值,核对当时寄存器配置合理(全双工、自协商等)。

3、稍等片刻,稳住以太网。 然后,启动DHCP协议,获取该基板的IP地址。 其中,PC是服务器,板是客户端。

4、获取主板的IP地址后,即可正常通信。 在发送数据之前,首先验证ARP(IP地址和MAC地址绑定)和ping (ping ) icmp协议、网络链接是否成功)是否要求成功。 如果成功了,就可以传输我们真正关心的数据。

以太网协议MAC层

引线框: 55

帧开始: 5D

或类型:0x0800是IP帧;0x0806是ARP帧;

以太网IP协议

版本: 4头部长: 5; 服务类型: 00总长: UDPdata 8UDPheader 20IPheader; 时间到生命: 80; 协议: 11--UDP/IP,10--ICMP/PINGN;

Ethernetchecksum :运算时,首先将那里的值设定为0,在运算结果出来后再追加结果。

以太网UDP格式

UDP端口有几个特殊的东西。 68--BOOT客户端既用于DHCP,也用于67--BOOT服务和DHCP。 校验和: UDP的校验和可以设置为0。 计算的话很麻烦。

动态主机配置协议DHCP

http://zh.wikipedia.org/wiki/动态主机配置协议

1.DHCP消息格式介绍一下DHCP的消息格式。 如图1所示,

op(1) )。

htype(1)。

Hlen(1) )。

hops(1)。

传输id (4)。

密码(2)。

法兰(2)。

ciaddr(4) )。

颐达(4)。

ydzt(4) )。

giaddr(4)。

字符(16 )。

名称(64 )。

文件(128 )。

Options(variable )

(图1 DHCP消息格式)

lop :在client发送给服务器的数据包的情况下,设定为1,反之设定为2;

l Htype :硬件类别,以太网为1;

l Hlen :硬件长度,以太网为6;

l Hops :需要通过路由发送数据包时,给各站加1,在同一网络内时为0;

l Transaction ID :事务ID是用于在客户端和服务器之间匹配请求和相应消息的随机数。

l Seconds :指在用户指定的时间,从开始获取和更新地址起的时间;

从Lflags:0-15bits开始,如果最左边的bit为1,则server通过广播将包发送到客户端,指示其馀的bit尚未使用;

l Ciaddr :用户IP地址;

l Yiaddr :客户的IP地址;

Lydzt:bootstrap进程使用的IP地址;

l Giaddr :转发代理(网关) IP地址;

l chaddr :客户端的硬件地址;

以Lsname:0x00结尾的可选服务器的名称;

l File :启动文件名;

l Options :供应商id和可选参数字段

动态配置协议(DHCP )是局域网的网络协议,使用UDP协议工作,主要有两个用途。

自动为用户分配内部网络或网络服务提供商的IP地址

作为向内部网络管理者集中管理所有计算机的手段

HCP操作分为四个基本流程:请求IP租赁、提供IP租赁、选择IP租赁和确认IP租赁。

DHCP发现程序

UDPSrc=0.0.0.0

sport=68d est=255.255.255.255 dport=67

OP

HTYPE

HLEN

希望号

0x01

0x01

0x06

p>0x00

XID

0x3903F326

SECS

FLAGS

0x0000

0x0000

CIADDR

0x00000000

YIADDR

0x00000000

SIADDR

0x00000000

GIADDR

0x00000000

CHADDR

0x00053C04

0x8D590000

0x00000000

0x00000000

192 octets of 0's. BOOTP legacy

Magic Cookie

0x63825363

DHCP Options

DHCP option 53: DHCP Discover

DHCP option 50: 192.168.1.100 requested

DHCP 发现 (DISCOVER)[编辑]

客户在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该客户实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。

客户也可以申请它使用的最后一个IP地址(在下面的例子里为192.168.1.100)。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该服务器是授权的还是非授权的。 授权服务器会拒绝请求,使得客户立刻申请一个新的IP。非授权服务器仅仅忽略掉请求,导致一个客户端请求的超时,于是客户端就会放弃此请求而去申请一个新的IP地址。

DHCPOFFER

UDP Src=192.168.1.1
sPort=67 Dest=255.255.255.255 dPort=68

OP

HTYPE

HLEN

HOPS

0x02

0x01

0x06

0x00

XID

0x3903F326

SECS

FLAGS

0x0000

0x0000

CIADDR

0x00000000

YIADDR

0xC0A80164

SIADDR

0x00000000

GIADDR

0x00000000

CHADDR

0x00053C04

0x8D590000

0x00000000

0x00000000

192 octets of 0's. BOOTP legacy

Magic Cookie

0x63825363

DHCP Options

DHCP option 53: DHCP Offer

DHCP option 1: 255.255.255.0 subnet mask

DHCP option 3: 192.168.1.1 router

DHCP option 51: 1 day IP lease time

DHCP option 54: 192.168.1.1 DHCP server

DHCP提供 (OFFER)[编辑]

当DHCP服务器收到一个来自客户的IP租约请求时,它会提供一个IP租约。DHCP为客户保留一个IP地址,然后通过网络广播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。

服务器基于在CHADDR字段指定的客户硬件地址来检查配置。这里的服务器,192.168.1.1,将IP地址指定于YIADDR字段。

DHCPREQUEST

UDP Src=0.0.0.0
sPort=68 Dest=255.255.255.255 dPort=67

OP

HTYPE

HLEN

HOPS

0x01

0x01

0x06

0x00

XID

0x3903F326

SECS

FLAGS

0x0000

0x0000

CIADDR

0x00000000

YIADDR

0x00000000

SIADDR

0x00000000

GIADDR

0x00000000

CHADDR

0x00053C04

0x8D590000

0x00000000

0x00000000

192 octets of 0's. BOOTP legacy

Magic Cookie

0x63825363

DHCP Options

DHCP option 53: DHCP Request

DHCP option 50: 192.168.1.100 requested

DHCP option 54: 192.168.1.1 DHCP server.

DHCP请求 (REQUEST)[编辑]

当客户PC收到一个IP租约提供时,它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给客户的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中,这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。

DHCPACK

UDP Src=192.168.1.1
sPort=67 Dest=255.255.255.255 dPort=68

OP

HTYPE

HLEN

HOPS

0x02

0x01

0x06

0x00

XID

0x3903F326

SECS

FLAGS

0x0000

0x0000

CIADDR (Client IP Address)

0x00000000

YIADDR (Your IP Address)

0xC0A80164

SIADDR (Server IP Address)

0x00000000

GIADDR (Gateway IP Address switched by relay)

0x00000000

CHADDR (Client Hardware Address)

0x00053C04

0x8D590000

0x00000000

0x00000000

192 octets of 0's. BOOTP legacy

Magic Cookie

0x63825363

DHCP Options

DHCP option 53: DHCP ACK

DHCP option 1: 255.255.255.0 subnet mask

DHCP option 3: 192.168.1.1 router

DHCP option 51: 1 day IP lease time

DHCP option 54: 192.168.1.1 DHCP server

DHCP确认 (Acknowledge,ACK)[编辑]

当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候,TCP/IP配置过程就完成了。

该服务器响应请求并发送响应给客户。整个系统期望客户来根据选项来配置其网卡。

 

 

ARP协议解码详解

ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。

IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。

硬件类型

协议类型

硬件地址长度

协议长度

操作类型

发送方的硬件地址(0-3字节)

源物理地址(4-5字节)

源IP地址(0-1字节)

源IP地址(2-3字节)

目标硬件地址(0-1字节)

目标硬件地址(2-5字节)

目标IP地址(0-3字节)

(图1 ARP/RARP报头结构)

l 硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1;

l 协议类型字段指明了发送方提供的高层协议类型,IP为0800(16进制);

l 硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;

l 操作字段用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;

l 发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;

l 发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;

l 发送方IP(0-1字节):源主机硬件地址的前2个字节;

l 发送方IP(2-3字节):源主机硬件地址的后2个字节;

l 目的硬件地址(0-1字节):目的主机硬件地址的前2个字节;

l 目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;

l 目的IP(0-3字节):目的主机的IP地址。

ICMP (PING)协议

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文(见图表,ICMP报文的结构和几种常见的ICMP报文格式),IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。RFC定义了13种ICMP报文格式,具体如下:

0 响应应答(ECHO-REPLY)

8 响应请求(ECHO-REQUEST)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。