- 以太网概述:
- 计算机局域网传输模式,标准10M/s,快速100M/s(RL8201),千兆1000M/s(88E11)以及万兆。成本低,速率高,抗干扰强。
- 接口RJ45,RJ11,SC光纤
- 按照UDP/TCP协议发送,加上ip参数,以及mac的前导码构成mac协议层。
- 以太网数据格式。
- 应用层(为应用程序提供服务)
- 表示层(数据格式转化,数据加密)
- 会话层(建立,管理和维护会话)
- 传输层(建立端口连接tcp/udp UDP)
- 网络层(IP选址和路由选择,ip地址,掩码。 IP层)
- 数据链路层(提供介质访问和链路管理,实际的数据传输格式。MAC层)
- 物理层(物理接口,原始bit数据传输通路。设备)
0x55+...0x55+0xd5+0x00+...0xFF...0XFF+0x0800+0x4500+0x0032+0x0000+0x4000+0x4011+0x0000+0xc0a8+0x017b+0xc0a8+0x0166+0x0007+0x5001+0x0032+0x2a(50-8)
3、MAC帧类似SRIO的协议包。这个协议包由帧头加IP+UDP构成以太网的前导码,再加数据的模式。
-
- 前导码:用7个55构成,用于数据同步。帧起始标志位,0xd5,类似于sav,标志数据开始发送。
- 以太网帧头(14byte),目的mac(6byte)地址可以分为单播地址、组播地址和广播地址。单播地址:第一个字节是0,比如00-00-00-11-11-11,一般用于唯一设备地址。组播,第一个字节为1,一般用于标志同属一组的多个地址。广播地址:所有bit都是11,同一网段都能接收数据。+源mac地址(6bype)。+2(byte)长度/类型,如果两个字节长度小于1536,就是以太网的字节长度。如果大于1536就表示该以太网属于哪个上层协议,例如0x0800就代表ip协议。0x0808就代表ARP协议。
- 数据段:最小是46字节,最大1500字节。之所以限制最大长度,是因为如果多网络传输,会导致其他网络变差。多网络会根据到来的优先级排序,还有就是数据缓存代价。
- 帧检验序列(4byte),crc校验。帧间隙(IFG)也就是单包之间默认是96bit time。
- IP协议 TCP/IP协议簇
IP协议规定了数据传输时的基本单元和格式,位于mac帧格式的数据段,由ip首部和数据字段组成。
由bit定义,共20个字节,其具体格式由版本,首部长度,服务类型,总长度,以及标识符,标志,片偏移。以及生存时间,协议,首部检验和。再加源IP地址,目的IP地址,以及可选字段和数据。
1、4位IP版本号,0100代表ipv4,0110代表ipv6。首部长度:单位时byte,没有可选字段时,设置成5。服务类型:前三个字段为优先级,被忽略。4位TOS字段,最后一位固定位0.如果服务类型为0,默认一般服务。总长度:16bit,包括ip首部和数据。以字节为长度,理论上可以传输65535字节,但实际最大设置成1500字节。标识:16bit,通常每发一包数据,报文值加1。标志:3bit,第一位保留。第二位表示禁止分片,第三位表示更多分片。片偏移:13bit,接收方进行数据包重组时用来表示分片的顺序。不分片的话,该13bit为0。生存时间:8bit,ttl域防止丢失的数据包无休止传播。一般设置成64/128,只能转发这么多次。协议类型:TCP:16,UDP:17。首部校验和:对首部进行判断。
校验和:每16bit为1组。对各个单元进行反码加法运算。高位加到低位。如果仍出现仅为,就将和分为高16bit和低16bit进行累加。最后将数据和的反码加到校验和字段。
UDP协议
源端口号,+目的端口号。+UDP长度,以及UDP校验和。
UDP校验和时需要加入ip首部进行校验,一般接收方不检测。
以太网通信实验,类似于Srio发送。
只缓存真正有效数据,需要对标志位进行判断后,再提取数据。
发送就是将数据按照以太网协议发送。用状态机组包发送。