4
와이어샤크로 IP패킷의 Checksum 증명 이정훈 https://github.com/sjh836 제 PC의 IP는 192.168.1.6입니다. 아래는 제 깃헙 Blog(관리안함..) 입니다. 이 블로그의 IP주소는 151.101.100.133입니다. 이 블로그와 3-way Handshaking하는 ip패킷을 캡쳐하였습니다. ip주소를 이용하여 와이어샤크로 필터링하였고, 클라이언트가 서버에게 ACK을 보내는 패킷을 캡쳐하였습니다.(No. 221번)

와이어샤크 IP패킷의 checksum증명

Embed Size (px)

Citation preview

Page 1: 와이어샤크 IP패킷의 checksum증명

와이어샤크로 IP패킷의 Checksum 증명

이정훈

https://github.com/sjh836

제 PC의 IP는 192.168.1.6입니다. 아래는 제 깃헙 Blog(관리안함..) 입니다.

이 블로그의 IP주소는 151.101.100.133입니다.

이 블로그와 3-way Handshaking하는 ip패킷을 캡쳐하였습니다.

ip주소를 이용하여 와이어샤크로 필터링하였고, 클라이언트가 서버에게 ACK을 보내는 패킷을

캡쳐하였습니다.(No. 221번)

Page 2: 와이어샤크 IP패킷의 checksum증명

아래와 같이 IP패킷부분을 보기쉽게 하였으며, 16진법이 아닌 2진법으로 출력하도록 하였습니

다. 이를 통해 패킷 헤더를 그려보면

0100 0101 00000000 00000000 00101000

01110101 11000011 010 00000 00000000

10000000 00000110 11000111 01110011

11000000 10101000 00000001 00000110

10010111 01100101 01100100 10000101

이렇게 됩니다. 전체 너비는 32비트입니다.

Page 3: 와이어샤크 IP패킷의 checksum증명

이를 사람이 보기 쉽게 10진수로 나타내면

4 5 0 40

30147 2 0

128 5 51059

192.168.1.6

151.101.100.133

이렇게 됩니다. 이제 캡쳐한 패킷에 나와있는 Checksum(16비트)가 맞는지 증명하겠습니다. 먼

저 계산 요약본입니다. 2바이트마다 ①, ②로 넘버링하여 밑에서 계산과정을 보였습니다.

<요약본, 밑에는 계산과정>

Page 4: 와이어샤크 IP패킷의 checksum증명

계산과정입니다. Carry가 발생 시 바로 더했습니다.

마지막으로 나온 sum을 1의 보수를 취하여 checksum을 구했으며, 이는 와이어샤크로 캡쳐한

11000111 01110011과 정확히 일치합니다.