소스를 보다가...

minimax의 이미지

udp_header = (struct udphdr *)(sock_buff->data + (sock_buff->nh.iph->ihl *4));

이런게 있던데...

저 '*4'라는 것은 뭔가요?

힛. 무식하니깐 참... 부끄.. :oops:

맨날 질문만 올리고 죄송스럽습니다.

charsyam의 이미지

minimax wrote:
udp_header = (struct udphdr *)(sock_buff->data + (sock_buff->nh.iph->ihl *4));

이런게 있던데...

저 '*4'라는 것은 뭔가요?

힛. 무식하니깐 참... 부끄.. :oops:

맨날 질문만 올리고 죄송스럽습니다.

말그대로 곱하기 4 라는 ^^ 음 그런데 왜 *4 로 되어있는 << 2로 하면
될듯한데. 음 아마 ip 헤더 사이즈가 / 4 한 값으로 들어있던가 그럴겁니다. -_- 맞던가 휴, 틀리면 망신입니다. 고운 하루되시길... 기억력이 가물 가물하네요 ^^

=========================
CharSyam ^^ --- 고운 하루
=========================

gang의 이미지

IP(version 4)의 헤더 포맷은 다음에서 확인해 보세요.
http://www.freesoft.org/CIE/Course/Section3/7.htm

IHL이라는 4bit field가 있는데, 이는 IP 헤더의 길이를 32bit(즉 4byte) 단위로 나타냅니다. 따라서 IHL*4 가 IP 헤더의 크기가 되는 것이죠. 이로 인해 IP 헤더의 길이는 항상 4의 배수이기도 합니다.

nachnine의 이미지

저런걸 magic number 라고 하죠 ;

소스에서 지양되어야 할것 중 하나

minimax의 이미지

아.. 그런 거군요.

글 주신 분들께 무한 감사입니다.

^^

그럴 땐 바다를 생각해
바다...
봉우리란 그저 넘어가는 고갯마루일 뿐이라구...