Ethernet에 대해 질문드립니다...
글쓴이: iah63 / 작성시간: 월, 2011/01/10 - 3:53오후
이더넷 표준에 보면 데이터가 일정크기보다 작으면 패딩(Pad)을 붙여 넣는다고하는데,
어떤방식으로 패딩사이즈를 구해서 붙여넣고, 받는 쪽에서 패딩사이즈를 알아내 상위계층으로
사용자 데이터만을 보내주는지 좀처럼 찾을 수가 없어... 질문드립니다.
혹시 해답을 알고계시거나 관련 자료 있으신분 있으신가요 ㅠ_ㅠ
그리고 추가적으로 Length/Type 필드 2바이트를 하나로 사용해서 1536이하면 길이, 이상이면 타입으로 사용한다는데...
이부분도 이상한게 타입으로 사용하게 되면 길이를 모르기때문에 문제가 될것같은데... 어떻게 흐르는지 아시는분 ... 부탁드립니다 ㅜ_ㅠ
Forums:
보낼때 패딩은 맥계층이 자신의 최소길이보다 작으면
보낼때 패딩은 맥계층이 자신의 최소길이보다 작으면 그만큼 패딩을 하면 되는것이고, 받는쪽에서는 Length/Type필드를 이용해서 실제데이터가 필요한 크기보다 더 크면 그만큼을 버리면 되죠. 예를 들어, type필드가 0x0806이면 arp패킷이고, arp패킷은 길이가 정해져 있으므로 데이터부분의 길이가 정해지 길이보다 길면, 여분은 패딩으로 처리되고, 작으면 잘못된 패킷이죠. 0x0800이면 ip패킷이고, 이더넷 최소 ip패킷헤더보다는 커야 할것이며, ip헤더에 ip데이터 사이즈가 기록되어 있으니까 그걸이용해 필요한 데이터가 얼마만큼이지, 잘못된 패킷인지, 패딩이 있는지 등을 검사할수 있겠죠.
댓글 달기