외워서 끝내는 네트워크 핵심이론 -기초 2
IP Header
IHL = 5 (4곱하면 20bytes다 / Option 에 따라 늘어날 수도 있음)
Total Length = Payload 의 길이 (전달 할 데이터)
Type = 다음 헤더가 어떤놈인지 알기
아래로 갈수록 캡슐화됨 (헤더가 하나씩 붙음)
L4 > L3 > L2
Segment > Packet > Frame
Ethernet 헤더 14bytes ( 6 + 6 + 2 )
type 은 network order > host order 필요함
ntohs(0800) -> 0008로 됨
verIhl 쪼게기 4bits / 4bits
F0 이랑 & 연산하면 앞 4bits만 살아남음 오른쪽으로 4bit >> shift 해주기
0F 랑 & 연산하면 뒤 4bits만 살아남음 4 곱하면 header length 나옴
total length 는 마찬가지로 network order > host order 필요함
ntohs(length)
big / little endial
0x12345678
숫자 2개에 1byte 같이 저장됨
결국 12, 34, 56, 78은 한 세트이고 안의 순서는 똑같음
단지 big은 12, 34, 56, 78 순서고
little 은 78, 56, 34, 12
network order 는 12, 34, 56, 78 이니
host order 로 바꾸면 78, 56, 34, 12 로 변환해야함
TTL : 1씩 감소, 0되면 폐기
Protocol : payload 데이터 처리 방식
1 : ICMP / 6: TCP / 17: UDP
단편화
Header 는 복사됨 -> ID값은 똑같아야함
뒤쪽에는 offset 이 추가되는데 앞놈의 payload(data) 길이가 주어짐
VPN, ICMP 사용 경우 많이 보내야해서 쪼게짐
ex) 단편화 판단하기
fragOffset & htons(0x2000) || : 단편화 이루어 졌니?
0x2000 = 2bytes
앞 2 = 0010(4bits) MF = 1 뒤에 단편화한게 더 있다
fragOffset & htons(0x1FFF) > 0 : 앞 3bit 버리고나머지 Flagment offest 뽑기
VPN, ICMP 사용 경우 많이 보내야해서 쪼게짐