Frame check sequence에 대하여
802.11 패킷에서 수신된 패킷 데이터 중에 실제 송수신되는 패킷이 아니라 monitor mode adapter에서 발생하는 부분이 있다. 대표적인 것이 바로 Radiotap Header이다. Radiotap Header에는 수신된 패킷의 신호 세기 등의 정보가 있다(당연하지만 실제 송신자가 보내는 정보는 아니다).
802.11 패킷의 제일 마지막에 fcs(Frame check sequence)가 붙는 경우가 있다. 이 4바이트 내용 또한 송신자가 보내는 것이 아니라 monitor mode adapter에 의해 붙여지는 내용이다.
802.11 패킷에 Frame checksum sequence가 붙는지 붙지 않는지를 알려면 Radiotap Header에서 Flag 정보를 봐야 한다. 여기에서 FCS at end 플래그를 보고 Frame checksum sequence 여부를 알아낼 수 있다.
-
우선 Present flag(32bit)를 보고 flag 정보(0x02)가 먼저 있는지를 확인한다(presentFlag & 0x02).
-
flag(8bit)가 있다면 해당 flag를 찾아서 FCS at end(0x10) 정보를확인한다(flag & 0x10).
-
FCS at end 정보가 1이라면 패킷의 가장 마지막에 Frame check sequence(32bit)가 존재한다고 판단할 수 있다.
이거 알아내려고 거의 3일 동안 고생함. ㅠㅠ