본문 바로가기

TIL

TIL#48(패킷 처리 및 데이터 전송)

오늘 한일
  • 패킷(Packet)

패킷은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터로 이루어지며, 이는 페이로드라고도 한다. 패킷을 지원하지 않는 컴퓨터 통신 연결은 단순히 바이트, 문자열, 비트를 독립적으로 연속하여 데이터를 전송한다. 데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문 메시지를 더 효과적이고 신회성 있게 보낼 수 있다.

TCP 패킷 구조

  • 직렬화(Serialization)

직렬화는 객체나 데이터 구조를 일련의 바이트로 변환하는 과정이다. 네트워크를 통해 데이터를 전송하기 위해 필요한 과정으로, 직렬화된 데이터는 파일 저장, 메모리 저장, 네트워크 전송 등 다양한 용도로 사용할 수 있다.

  • 직렬화 과정
    1. 데이터 준비 : 전송하려는 데이터를 준비한다. 예를 들어, 복잡한 데이터 구조나 객체일 수 있다.
    2. 변환 : 데이터를 일련의 바이트로 변환한다. 이 과정에서 데이터의 구조와 형식에 대한 정보를 포함시켜야 한다.
    3. 패킷 구성 : 직렬화된 데이터를 패킷의 페이로드에 넣고, 헤더와 트레일러를 추가하여 패킷을 완성한다.
  • 역직렬화(DeSerialization)

역직렬화는 직렬화된 바이트 데이터를 원래의 객체나 데이터 구조로 변환하는 과정이다. 네트워크를 통해 수신된 데이터를 다시 사용할 수 있는 형태로 복원한다.

  • 역직렬화 과정
    1. 패킷 수신 : 네트워크를 통해 패킷을 수신한다. 이 패킷은 직렬화된 데이터를 포함하고 있다.
    2. 바이트 데이터 추출 : 패킷에서 페이로드 부분을 추출하여 직렬화된 바이트 데이터를 얻는다.
    3. 변환 : 직렬화된 바이트 데이터를 원래의 객체나 데이터 구조로 복원한다.
  • 패킷 교환 방식(Packet Switching)

패킷 교환 방식은 미리 고정된 이동 경로를 설정하지 않는 대신 데이터를 패킷으로 나누어 전송하는 방식이다. 데이터는 네트워크를 통해 전송되기 전에 패킷이라는 작은 조각을로 나뉘고, 각 패킷에ㄴ는 고유 번호가 있어서 네트워크를 거쳐 최종 수신지에 전송되었을 때 원래의 데이터로 재결합 된다.

 

각 패킷은 전송 당시 가장 효율적인 경로를 각자 설정해 최송 수신지까지 이동한다. 즉 미리 정해진 경로가 없어 전송 당시의 상황에 따라 매번 다른 경로로 갈 수 있다.

 

패킷 교환 방식의 데이터 전송이 가능하기 위해서는 라우터라는 네트워크 장비로 패킷을 수신한 중간 노드가 패킷의 수신지 호스를 확인하고 수신지 호스트까지 사는 다양한 경로 중 그 당시 가장 좋다고 판단되는 경로를 따라 다음 중간 노드로 패킷을 전송한다. 이러한 과정을 라우팅이라고 한다.

패킷 교환

어려웠던 점
  • 패킷의 개념과 패킷을 이용한 데이터 송수신 원리에 대해 배웠는데 실제 서버에서 어떻게 사용해야 할지 감이 잡히지 않는다. (패킷을 사용하는 서버를 직접 구현해보면 좋을 것 같다.)
  • 패킷의 구조에 어려운 용어가 많아 이해하기 힘들었다. (패킷을 직접 사용해보면서 패킷의 구조에서 각각 어떠한 역할을 가지고 있는지 알아보면 좋을 것 같다.)
오늘의 TIP
  • 라우터(router 혹은 라우팅 기능을 갖는 공유기)는 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치다.