[질문] IP 한패킷의 크기측정....
글쓴이: ergo50 / 작성시간: 금, 2004/04/16 - 10:04오전
안녕하세요...
여기서 많은 도움을 얻어, 스니퍼 하나를 거의 완성했습니다.
그런데, 아직 좀 헤깔리는것이 패킷하나의 크기인데요,,,,
아래의 소스에서,
Total Length 라는것이 캡쳐한 패킷의 크기일까요?(바이트로 환산)
즉, 아래의 것이 패킷사이즈가 되는건지 정말 궁금합니다.
printf("Total Length: %d\n", ntohs(iph->tot_len));
부탁드리겠습니다.
iph = (struct iphdr *) p; i = 0; if (ntohs(ep->ether_type) == ETHERTYPE_IP) { // ip 패킷인가? printf("\n\n=================== IP HEADER ===================\n"); printf("%s -----> ", inet_ntoa(iph->saddr)); printf("%s\n", inet_ntoa(iph->daddr)); printf("Version: %d\n", iph->version); printf("Herder Length: %d\n", iph->ihl); printf("Service: %#x\n",iph->tos); printf("Total Length: %d\n", ntohs(iph->tot_len)); printf("Identification : %d\n", ntohs(iph->id)); printf("Fragment Offset: %d\n", ntohs(iph->frag_off)); printf("Time to Live: %d\n", iph->ttl); printf("Checksum: %d\n", ntohs(iph->check));
Forums:
IP 데이터그램의 크기입니다.
IP 데이터그램의 전체 크기입니다. 패킷이 분할되지않은 것이라면 이 크기에 이더넷 프레임의 크기를 더해주면 패킷의 전체크기가 됩니다. 분할된 패킷이면 디프레그먼트를해서 구할 수 있습니다.
댓글 달기