реклама на сайте
подробности

 
 
> Порядок байт Ethernet, IP
Vitali_o
сообщение Jan 16 2018, 17:11
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 3-10-11
Пользователь №: 67 509



стоит задача отсылать/принимать IP пакеты используя FPGA Xilinx xaui 10G,
в спецификации описан хедер Ethernet фрэйма:
55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(48 бит) SOURCE_ADDRESS(48 бит) LENGTH(16 бит)

вопрос: порядок байт слева направа будет:
55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(47:0) SOURCE_ADDRESS(47:0) LENGTH(15:0)
или
55 55 55 55 55 55 55 d5 DESTINATION_ADDRESS(7:0) DESTINATION_ADDRESS(15:8) DESTINATION_ADDRESS(23:16) и т.д.?

и еще: в IP пакете хедер, порядок слева направа :
байт 0 | байт 1 | байт 2 | байт 3
Version(4 бита) IHL(4 бита) DSCP(6 бит) ECN(2 бита) Total Length(16 бит)

т.к. в сети биты в байте B(7:0) передаются B(0) первый, B(7) последний, можно предположить
что хотя Version стоит впереди IHL, он будет передан после IHL
так?
спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novartis
сообщение Jan 17 2018, 03:25
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



У меня в проекте для симуляции один из эзернет пакетов расписан так, может поможет:
Код
    arr_pckt(IND_TCP_1)(0)        <= "01" & X"000000000000001E";
    arr_pckt(IND_TCP_1)(1)        <= "01" & X"D555555555555578";
    arr_pckt(IND_TCP_1)(2)        <= "10" & X"52f401000000cccc";    -- | Source MAC HIGH     | Dest MAC LOW        | Dest MAC HIGH                             |
    arr_pckt(IND_TCP_1)(3)        <= "10" & X"00450008c0a95e14";    -- | T. of S. | Vers| IHL| ETHER  TYPE         | Source MAC LOW                            |
    arr_pckt(IND_TCP_1)(4)        <= "10" & X"0680004033192900";    -- | Protocol | Time Live| Fragment Off | Flags| Identification      | Total Length        |
    arr_pckt(IND_TCP_1)(5)        <= "10" & X"a8c00501a8c0a55d";    -- | Dest Address HIGH   | Source Address LOW  | Source Address HIGH | Header Checksum     |
    arr_pckt(IND_TCP_1)(6)        <= "10" & X"9997bbbb8869a101";    -- |_Sequence_Number_HIGH|______Dest_Port______|______Source_Port____| Dest Address LOW    |
    arr_pckt(IND_TCP_1)(7)        <= "10" & X"185001100000dd0c";    -- |_L_HDR|_R_|_Flags____|_ACK_Number_LOW______|_ACK_Number_HIGH_____|_Sequence_Num
ber_LOW_|
    arr_pckt(IND_TCP_1)(8)        <= "10" & X"00390000a81970ff";    -- |..........| DATA=0x39|  Указатель важности |_Cheksum_____________|_WINDOW______________|  Cheksum = 0x19a8
    arr_pckt(IND_TCP_1)(9)        <= "10" & X"32D3872700000000";    -- 64 Byte
    arr_pckt(IND_TCP_1)(10)        <= "01" & X"0000000000000087";
    arr_pckt(IND_TCP_1)(11)        <= "01" & X"000000000000001E";

здесь заданы:
Dest MAC = cccc00000001
Source MAC = f452145ea9c0
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 15:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016