2013-07-22 2 views
1

C에서 UDP/TCP 원시 소켓 프로그래밍을하는 동안 데이터 캡슐화에서 이더넷 헤더 프레임을 사용하지 않는 이유는 무엇입니까? 왜 우드/TCP 헤더와 IP 헤더 만 사용합니까 ??C의 원시 소켓 프로그래밍에서의 데이터 캡슐화

+0

캡슐화 란 무엇을 의미합니까? 명확히하려고 노력하십시오 :) – slezica

+1

모든 링크가 이더넷을 통해있는 것은 아닙니다. –

답변

3

OSI 모델에 대해 생각해 봐야합니다. 전송 계층에있는 TCP 및 UDP 헤더 또는 레이어 4를 지정하는 원시 데이터를 전송합니다. 여기에는 주소 지정 측면에서 네트워크 계층 인 계층 3 또는 IP의 일부가 포함됩니다.

레이어 2는 신경 쓸 필요가 없습니다. 이더넷입니다. 우리는 심지어 이더넷을 사용할 것이라고 보장하지 않습니다. 임베디드 시스템은 ADSL, DOCSIS, 광섬유 링크, wifi 등을 통해 전송할 수 있습니다.

또 다른 이유는 네트워크 카드의 하드웨어가 이미 계층 2의 헤더를 사용하고 있기 때문입니다. 회로 및 전송 고유의 복잡성 때문에 우리는 우리 자신의 동등 함, 흐름 제어 및 다른 것들을 패킷에 넣지 마십시오.

원하는 경우 특정 드라이버를 사용하여 레이어 2 프레임을 편집 할 수 있습니다. 그러나 라우터가 자체 계층 2 프레임으로 재전송한다는 사실 때문에 하나 이상의 홉에는 유용하지 않습니다. 또한, 잘못된 프레임은 하드웨어에 의해 오류 수정 세부 사항의 부족 또는 오류로 인해 삭제 될 가능성이 더 높습니다. 사실은이 오류가 낮은 수준으로 처리되기 때문입니다.