본문 바로가기
개발 관련 이야기

TCP 패킷 분리 현상

by 꿈틀쓰 2022. 8. 16.

Python 서버, Android 클라이언트로 소켓 통신을 하는데 문제가 생겼다. python으로 서버/클라이언트를 할 때는 생기지 않던 문제가 서로 다른 플랫폼에서는 문제가 일어났다.

 

문제는, 패킷이 쪼개져서 들어온다. 즉, 'aaaaa', 'bbbbb', 'ccccc', ... 순으로 데이터를 서버에서 클라이언트로 전송한다고 하자. 처음에는 잘 받아올 수도 있지만 어느 순간 'aaaaabb', 'bbbc', 'cccc', ... 이런 식으로 패킷이 보낼 때와는 다르게 온다.

 

TCP는 사용자가 send를 할 때마다 다른 packet에 포장해서 보내는 것을 보장하지 않는다. 그렇기 때문에 서버 측에서 netstring 등의 방법을 써서 클라이언트 측에서 얼마의 바이트를 받아야 하는지 알 수 있도록 하거나, 파싱하기 쉽게 JSON으로 보내서 패킷의 끝과 끝을 알 수 있도록 해야 한다.

'개발 관련 이야기' 카테고리의 다른 글

AWS Certified Solutions Architect - Associate (SAA-C02) 합격 후기  (2) 2022.08.22
YOLOv1 논문 리뷰  (0) 2022.08.17
VGG 논문 리뷰  (0) 2022.08.09
OpenCV로 영상 녹화  (0) 2022.08.08
명령어 모음 - Ubuntu 18.04  (0) 2022.08.07

댓글