원시 이더넷 프레임


10

최근에는 Raw-Ethernet 프레임에 대한 다음 기사에 당황했습니다.

원시 이더넷 프레임을 사용한 RAW 이더넷 및 UDP
메시지 전달

간단히 말해서, 둘 다 이더넷 계층 만 사용하여 지점 간 통신을 설정할 수 있다고 설명합니다. 이 경우 IP 및 TCP 계층의 오버 헤드를 피하고 처리량을 증가시킬 수 있습니다 (일부 벤치 마크에 따라 50 %).

비슷한 환경에서 무선 환경에서 테스트하고 싶습니다. 그러나 몇 가지 문제가 있습니다.

첫 번째 문제
이러한 노력을 방해 할 수있는 하드웨어 제약 (예 : Wi-Fi 카드)이 있습니까?

두 번째 문제
두 기사 모두 다음 프레임 형식을 선택했습니다.

서문 | 구분자 | 맥 헤더 | 탑재량 | 패드 | CRC

내가 아는 한, 프리앰블, 구분 기호, 패드 및 CRC는 이더넷 장치에 의해 모든 프레임에 추가되며 소프트웨어를 통해 변경할 수 없습니다. Wi-Fi 장치는 비슷하다고 생각합니다. 따라서 Mac 헤더 제거를 방해하는 하드웨어 제약 (예 : Wi-Fi 카드)이 있습니까?

추신 : 통신은 지점 간, 즉 라우터, 스위치, 브리지, 인터넷 연결이 없을 것입니다.


2
이더넷을 통한 비 IP 트래픽은 수십 년 동안 네트워킹의 일부 였으므로 실제로 응답하려는 대상이 무엇인지 명확하지 않으며 네트워킹의 기본 사항에 대해 조금 더 알아야 할 수도 있습니다. 802.3 이더넷과 802.11 무선이 완전히 다른 표준 인 "이더넷 무선 카드"와 같은 것은 없습니다. 따라서 두 번째 문제의 프레임 형식은 802.11 네트워크에 전혀 적용되지 않지만 프레임은 표준에 따라 특정 요구 사항을 가지므로 나열된 프레임의 많은 구성 요소를 구성 할 수 없습니다.
YLearn

1
@YLearn 이더넷을 통한 비 IP 트래픽은 수십 년 동안 네트워킹의 일부 였지만 그 당시 이더넷 장치는 오늘날처럼 '똑똑한'것이 아니었고 많은 작업이 CPU에 의해 수행되었습니다. '스마트 한'비용이 유연성을 잃고 있는지 궁금합니다.
Mark Messa

@YLearn 은 802.11 네트워크에 전혀 적용되지 않습니다 . 표준 802.11 네트워크에 연결된 다른 컴퓨터는 이러한 프레임을 유효한 것으로 인식하지 못합니다. 그러나 이러한 프레임을 송수신 할 수 있습니까? 아니면 하드웨어가 허용하지 않습니까?
Mark Messa

@MarkMessa, 동일한 LAN에있는 한 호스트에서 다른 호스트로의 프레임은 두 번째 호스트에 의해 수신됩니다. 문제는 호스트 내부의 네트워크 스택에서 상위 계층으로 전달 될지 여부입니다. 수신 호스트에 IP 스택 만 있고 프레임 페이로드가 IP가 아닌 경우 데이터가 무시됩니다. 한 호스트에서 다른 호스트로 데이터가 전달되는 방법에 대한 일반적인 아이디어를 얻으려면 OSI 모델에 대해 학습해야합니다.
Ron Maupin

이더넷 장치가 "더 똑똑"하더라도 @MarkMessa는 첫 의견에 대해 이더넷은 여전히 ​​이더넷으로 작동합니다. 802.3은 IP 사용을 요구하거나 요구하지 않습니다. 예를 들어, 드물 긴하지만 오늘날의 이더넷은 여전히 ​​행복하게 또는 상위 계층 프로토콜없이 Appletalk 또는 IPX / SPX를 계속 지원할 것입니다 (많은 것들이 여전히 L2를 사용하여 통신합니다). 두 번째 의견에 대해서는 "그러한 프레임을주고받을 수 있는지"가 무엇을 의미하는지 잘 모르겠습니다. 802.11을 통해 802.3 프레임을 보낼 수는 없지만 IP와 관련이없는 802.11 전용 통신이 있습니다.
YLearn

답변:


8

첫째, Wi-Fi (IEEE 802.11)는 토큰 링 (IEEE 802.5) 이상의 이더넷 (IEEE 802.3)이 아니거나 802.3 이외의 다른 IEEE LAN 표준은 이더넷입니다. Wi-Fi 및 이더넷의 프레임 헤더가 다릅니다.

Wi-Fi, 이더넷, 토큰 링, FDDI 등은 상위 계층 프로토콜의 데이터 그램을 캡슐화하는 OSI 계층 1 및 계층 2에 대한 모든 LAN 표준입니다. 각각은 계층 3 프로토콜을 전송할 수 있으며 그 중 하나는 IP입니다.

IEEE LAN 프로토콜 중 하나에 대해 직접 작성하거나 기존 계층 3 프로토콜 중 하나를 사용할 수 있지만 선택한 LAN 프로토콜에 대한 프레임이 있어야합니다. 프로토콜 스택을 실행하지 않는 장치와 상호 운용 할 수있을 것으로 기대하지 말고 프로토콜 스택이없는 라우터 (IP를 사용하는 인터넷이 없음을 의미)가있는 라우터를 통해 실행할 수도 있습니다. 이더넷 스위치 또는 WAP와 같은 브리지는 상위 계층 프로토콜이 계층 2에서 작동하므로 상위 계층 프로토콜을 전송하므로 LAN을 만들 수 있습니다.

사용중인 LAN 유형에 대한 프레임 헤더가 있어야합니다. 우선, 한 호스트가 실제로 프레임에 레이어 2 주소가없는 다른 호스트로 어떻게 전송합니까? 나는 기본적으로 프레임이나 헤더가없는 RS-232와 같은 직렬 통신으로 돌아가고 있지만 데이터 제어를 위해 여분의 전선에 의존한다고 생각합니다.


Wi-Fi (IEEE 802.11)는 이더넷이 아닙니다 (IEEE 802.3) .이 혼동을 피하기 위해 질문의 일부를 변경했습니다. 이제 주제를 완전히 벗어난 것에 대해 생각해보십시오. 여러 제품이 '무선 이더넷 LAN'으로 광고됩니다.
Mark Messa

나는 그런 것들을 보았지만 그것이 옳다는 것을 의미하지는 않습니다. Wi-Fi와 이더넷 프레임은 다르고 이더넷은 충돌 감지를 사용하지만 Wi-Fi는 충돌 방지를 사용합니다. 다른 LAN은 토큰과 같은 것을 사용하여 충돌을 완전히 방지합니다. 그것들은 모두 다른 LAN이며, 일부 광고는 그것들을 같은 것으로 만들지 않습니다.
Ron Maupin

그렇다고 올바른 것은 아닙니다. 네 동의합니다. 고마워요 CSMA / CD, CSMA / CA 및 토큰과 같은 차이점을 알고 있습니다. 그러나 'Wi-Fi는 무선 이더넷 LAN입니다'와 같은 광고에 눈이 멀었습니다.
Mark Messa

라우터를 통해 실행되는 것을 기대할 수도 없습니다. 라우터, 스위치 또는 브리지가 없으며 지점 간 통신 만 가능합니다. 이 혼란을 피하기 위해 질문을 방금 편집했습니다.
Mark Messa

1
@MarkMessa 프레임 사용을 피하고 싶지 않습니다. MAC 헤더 사용을 피하고 싶습니다. 그렇기 때문에 귀하의 요청이 혼란 스럽습니다. L2 헤더가 없으면 더 이상 이더넷이나 802.11 프레임이 아니라는 것을 이해하지 못하는 것 같습니다. 802.3 또는 802.11에있는 L2 헤더없이 작동하려면 고유 한 L2 프로토콜을 작성해야합니다.
YLearn

7

귀하의 질문과 의견을 바탕으로 귀하가 참조하는 두 기사의 요점이 누락 된 것 같습니다.

"Raw Ethernet"에 대해 이야기 할 때는 IP (L3) 또는 TCP / UDP (L4) 헤더가없는 데이터 프레임에 대해 이야기합니다. 그들은 L2 헤더없이 L2 프레임을 사용하는 것에 대해 이야기하지 않습니다.

L2 헤더가 없으면 프레임은 802.3 (이더넷)이나 802.11 프레임이 아닙니다. 그것은 완전히 다른 것입니다. 별도의 L2 프로토콜.

이러한 노력을 방해 할 수있는 하드웨어 제약 (예 : Wi-Fi 카드)이 있습니까?

L2 헤더를 포함하지 않습니까? 물론. 특정 답변을 얻으려면 특정 어댑터를 지정해야하지만 L2 헤더가 포함되지 않은 대부분의 802.3 또는 802.11 어댑터에서 작동하는 드라이버를 작성할 수도 있습니다. 내 생각에 대부분의 어댑터는 프레임을 보내거나 받기 전에 프레임이 잘못된 것으로 거부 / 삭제됩니다.

IP 또는 TCP / UDP 헤더를 포함하지 않는 802.3 또는 802.11 프레임 만 전송합니까? 아닙니다. 이것은 정상적인 네트워크 운영의 일환으로 항상 발생하며 수십 년 동안 (적어도 802.3, 802.11은 오랫동안 사용되지 않았지만 10 년 이상 지속되었습니다).

따라서 Mac 헤더 제거를 방해하는 하드웨어 제약 (예 : Wi-Fi 카드)이 있습니까?

위 참조.


대부분의 어댑터는 이 질문에 대한 대답이라고 생각 하는 프레임을 거부 / 삭제합니다 . 나중에 나는 흥미로운 '일시적인'의견을 모두 잃지 않기 위해 자신의 답변을 제출할 것입니다.
Mark Messa

프레임을 전송하기 전이나 수신 할 때 잘못된 것으로 프레임을 거부 / 삭제하십시오. 내가 아는 한, 모니터 모드에서는 모든 종류의 프레임, 심지어 잘못된 프레임 (예 : 잘못된 CRC)을들을 수 있습니다. 그러나 흥미롭게도 하드웨어에서는 MAC 헤더없이 프레임을 브로드 캐스트 할 수 없습니다.
Mark Messa

작은 수정 : 그러나 흥미롭게도 어댑터 는 MAC 헤더없이 프레임을 브로드 캐스트 할 수 없습니다.
Mark Messa

2
@MarkMessa "내가 아는 한, 모니터 모드에서는 모든 종류의 프레임, 심지어 잘못된 프레임 (예 : 잘못된 CRC)을들을 수 있습니다" 이것은 전적으로 해당 장치에 따라 다릅니다. 많은 어댑터 (스위치 포함)는 캡처 / 미러링 / 스팬으로 보내기 전에 이들을 처리하고 삭제합니다. 종종 캡처에 CRC가 포함 된 이더넷 트레일러도 표시되지 않습니다.
YLearn

1

비슷한 환경에서 무선 환경에서 테스트하고 싶습니다.

Wifibroadcast 정확히 수행 (리눅스, 일부 안드로이드 지원). 간단한 요약 : 하나는 주입 모드, 다른 하나는 모니터 모드에서 Wi-Fi 어댑터 쌍을 사용하고 원시 wifi 프레임을 사용하여 데이터를 전송합니다. 이것은 단방향 연결입니다. 원래 지연 시간이 짧은 비디오 피드를 전송하는 방법으로 고안되었지만 모든 종류의 데이터에 사용될 수 있습니다.

이러한 노력을 방해 할 수있는 하드웨어 제약 (예 : Wi-Fi 카드)이 있습니까?

예. 더 잘 작동하는 어댑터와 제대로 작동하지 않는 어댑터가 있습니다. 원시 모드의 일부 어댑터는 높은 처리량을 포함 할 수 없으며 일부 어댑터는 펌웨어를 수정해야합니다. 일부 어댑터는 2.4GHz 대역에서 작동하고 일부 어댑터는 5GHz에서 작동하고 일부는 둘 다에서 작동합니다.


0

예. 이론적 으로는 포인트 투 포인트 이더넷을 그런 식으로 실행할 수 있습니다. 802.3 이더넷 MAC 헤더를 제거하려면 두 엔드 포인트 모두 무차별 모드에 있어야합니다 (그렇지 않으면 프레임이 NIC에 속하지 않으며 무시됩니다). 물론 이렇게하면 "이더넷"이 실행되고 있지 않습니다.


무차별 모드 이것은 내가 제기되기를 바랐던 매우 중요한 문제입니다. 무차별 모드에서는 사용자와 다른 MAC 주소로 지정된 프레임이 Wi-Fi 카드에 의해 버려지지 않습니다. 그러나 BSSID의 경우도 마찬가지입니다 (잘못된 경우 수정하십시오). 프레임이 BSSID로 전달되지 않으면 Wi-Fi 카드가이를 버립니다. 이를 피하고 카드에 도달하는 모든 프레임을 수신 할 수 있습니까? (모니터 모드?)
Mark Messa 0시

802.3 이더넷 MAC 헤더를 제거하는 무차별 모드 @YLearn 답변에 따르면 하드웨어는 L2 헤더가없는 프레임을 허용하지 않는 것 같습니다.
Mark Messa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.