Study/Project

슬레이어즈_구분자 프레이밍 피드백

에린_1 2024. 6. 18. 23:13
728x90

슬레이어즈 트러블 슈팅 관련 피드백

패킷이 뭉쳐서 들어오는 문제 관련

구분자 프레이밍으로 문제를 해결했는데, 잘은 동작하지만 확장성이 낮고, 문제가 생길 가능성이 크다.

그런 이유로 구분자 프레이밍이 아닌 헤더-바디 프로토콜을 사용하면 이러한 문제를 해결할 수 있다.

  • 구분자 프레이밍에 문제가 있다.
    1. 구분자의 충돌 가능성
      • 데이터 내용에 구분자와 동일한 패턴이 포함될 수 있다. 이 경우, 실제 데이터와 구분자를 혼동할 수 있어 데이터 패킷의 경계가 잘못 인식될 수 있다.
      • 이 문제를 해결하기 위해 데이터를 전송하기 전에 구분자를 이스케이핑(escaping)하거나, 데이터 인코딩 방식을 변경해야 하는데, 이는 추가적인 처리 비용을 초래한다.
    2. 비효율성
      • 구분자가 포함된 데이터를 처리할 때, 구분자를 찾아야 하므로 문자열 검색 연산이 필요하다. 이는 데이터 처리 속도를 저하시킬 수 있다.
      • 특히 큰 데이터 스트림에서 구분자를 검색하는 것은 성능 저하를 일으킬 수 있다.
    3. 구분자 선택의 어려움
      • 데이터 스트림에서 사용되지 않는 구분자를 선택하는 것이 어렵다. 특히 다양한 종류의 데이터를 처리해야 하는 경우, 모든 데이터에 대해 안전한 구분자를 선택하기는 어렵다.
      • 구분자가 너무 자주 나타나지 않도록 해야 하며, 이는 데이터의 특성에 따라 복잡할 수 있다.
    4. 데이터 크기 제한
      • 일부 구분자 기반 프로토콜은 구분자를 찾을 때 메모리나 버퍼 크기에 제한을 받을 수 있다.
    5. 에러 처리의 복잡성
      • 구분자가 잘못 인식되거나 손실되면, 전체 데이터 패킷을 재구성하는 것이 어려울 수 있다.
      • 구분자가 손실된 경우, 데이터의 나머지 부분을 재조립하는 것이 어려울 수 있다.
  • 헤더와 바디 프로트콜
    1. 명확한 프레이밍
      • 헤더를 통해 메시지의 길이와 형식을 명확히 정의함으로써, 데이터의 시작과 끝을 쉽게 구분할 수 있다.
      • 이는 패킷 경계 문제를 해결하고, 데이터가 혼합되지 않도록 한다.
    2. 유연한 데이터 처리
      • 헤더에 다양한 메타데이터를 포함할 수 있어, 데이터의 처리 방법을 유연하게 제어할 수 있다.
      • 예를 들어, 메시지 타입, 버전, 길이, 압축 여불 등을 헤더에 포함할 수 있다.
    3. 에러 검출과 복구
      • 헤더에 체크섬이나 CRC 같은 오류 검출 코드를 포함하여 데이터 전송 중 발생할 수 있는 오류를 검출하고 복구할 수 있다.
      • 데이터 무결성을 높일 수 있다.
    4. 확장성
      • 프로토콜이 새로운 기능이나 요구 사항을 지원해야 할 때, 헤더를 확장하여 새로운 필드를 추가할 수 있다.
      • 이는 기존 프로토콜의 호환성을 유지하면서도 기능을 확장할 수 있게 한다.
728x90

'Study > Project' 카테고리의 다른 글

VV 1. 로그인 UI  (3) 2024.10.23
슬레이어즈_동기화 피드백  (0) 2024.06.18
나만무 슬레이어즈 정리  (7) 2024.05.29
나만무 슬레이어즈 26  (0) 2024.05.24
나만무 슬레이어즈 25  (0) 2024.05.23