[ web ] websocket통신 시에 checksum이 같은 이유.

sangjun

·

2022. 1. 27. 21:25

산학연 일을 하는 중에 websocket을 이용하고 패킷 정리하는 일이 있었다.

엑셀로 정리해나가면서 특이했던 점은 각 세션마다 Checksum이 같다는 것이다.

처음에는 내가 wireshark에서 옮기는 과정에서 실수한줄 알았다.

 

왜 세션이 다른데도 Checksum이 항상 같은지 이유를 알아보자.

 

 

먼저 웹통신을 하는 과정은 이렇다.

레퍼런스 코드

 

1. AWS 인스턴스에서 웹소켓 서버를 돌린다.

2. 웹에서 ws://를 통해서 웹 소켓 통신을 한다.

위의 과정을 wireshark로 잡아보면 요로코롬 나온다.

 

보면 checksum이 0xa7d3으로 패킷들의 체크섬이 모두 같다.

 

체크섬이 같은 이유를 생각해봤다.

 

먼저 체크섬이란 오류를 잡아내기 위해서 헤더의 값들을 모두 더하여 CRC연산을 하는 것이다.

즉, 체크섬이 같다 == 헤더가 같다.

 

그래서 실제로 다른 세션일 때도 헤더가 같은지 비교해봤다.

놀랍게도 헤더부분이 처음부터 끝까지 일치해서 모두 0xa7d3으로 같은 체크썸이 나왔다. 신기하다.