What is Packet?
What is Packet?
가장 간단하게 말해, 패킷은 인터넷에서 데이터를 전송하기 위해 작게 나눈 데이터 덩어리 이다. 인터넷은 마치 고속도로와 같아서, 모든 데이터가 동시에 한 길로만 갈 수는 없다. 데이터를 작게 나누어 여러 길로 분산시켜 보내야 효율적으로 전송할 수 있다. 이것이 바로 패킷의 핵심 목적이다.
패킷의 구성 요소
하나의 패킷은 크게 3가지 주요 부분으로 구성된다.
- Header 패킷의 맨 앞부분에 위치하며, 패킷을 올바르게 전달하고 재구성하기 위한 제어 정보를 담고 있다. 헤더에 포함되는 주요 정보는 아래와 같다.
- 출발지(Source) 주소: 패킷을 보낸 컴퓨터의 IP 주소
- 목적지(Destination) 주소: 패킷을 받을 컴퓨터의 IP 주소
- 패킷 번호(Sequence Number): 전체 데이터 중 이 패킷이 몇 번째 순서인지를 나타낸다. 예를 들어, 100개의 패킷 중 5번째 패킷이라면 ‘5’ 라는 번호가 붙는다. 수신 측에서 이 번호를 보고 패킷을 원래 순서대로 재조립한다.
- 데이터 길이(Data Length): 패킷에 포함된 데이터의 크기이다.
- 프로토콜 정보(Protocol Information): 이 패킷이 어떤 프로토콜(Ex. TCP, UDP)를 사용하는 지 명시한다.
- Payload or Data 실제로 전달하려는 실제 정보가 담겨 있는 부분이다. 예를 들어, 이메일 내용, 웹페이지의 HTML 코드, 동영상의 일부 등이 여기에 포함된다. 이 부분이 패킷의 대부분을 차지한다.
- Trailer or Footer 패킷의 맨 끝부분에 위치하며, 주로 오류 검출을 위한 정보가 들어있다. 가장 흔한 것이 CRC(Cyclic Redundancy Check) 정보이다. 이 정보는 패킷이 전송되는 도중에 데이터가 손상되지 않았는지 확인하는 데 사용된다. 수신 측은 트레일러의 정보를 바탕으로 데이터의 무결성을 검증한다.
패킷의 작동 원리 (데이터 전송 과정)
- 데이터 분할(Segmentation) 하나의 큰 데이터는 TCP와 같은 상위 프로토콜에 의해 여러 개의 작은 조각으로 나뉜다. 이때, 각 조각에 순서 번호가 매겨진다.
- 패킷화(Packetization) 각 데이터 조각에 위에서 설명한 헤더와 트레일러가 추가된다. 이 과정을 통해 완전한 패킷이 생성된다.
- 경로 설정(Routing) 이렇게 만들어진 패킷들은 인터넷 라우터들을 통해 목적지로 전송된다. 각 라우터는 패킷의 목적이 IP 주소를 확인하여 가장 효율적인 경로로 패킷을 전달한다. 이때, 같은 데이터에서 분할된 패킷들이라도 서로 다른 경로를 통해 전송될 수 있다.
- 패킷 재조립(Reassembly) 모든 패킷이 목적지에 도착하면, 수신 컴퓨터는 패킷들의 순서 번호를 보고 흩어진 패킷들을 원래의 순서대로 다시 재조합한다.
- 오류 검출 및 처리 만약 특정 패킷이 도착하지 않았거나(손실), 데이터가 손상된 경우(오류), 수신 컴퓨터는 이를 감지하고 보낸 컴퓨터에게 해당 패킷을 다시 보내달라고 요청한다. 이 과정 덕분에 데이터가 안전하고 완전하게 전달될 수 있다.
패킷의 장점
- 효율성: 데이터를 작게 나누어 동시에 여러 경로로 보낼 수 있기 때문에, 인터넷 회선의 효율을 극대화할 수 있다. 만약 패킷 단위가 아니라 전체 파일 단위로 보내면, 하나의 파일이 전송을 마칠 때까지 다른 데이터가 기다려야 한다.
- 신뢰성: 만약 전송 중에 패킷 하나가 손실되더라도 전체 데이터를 재전송할 필요 없이 손실된 패킷만 다시 보내면 된다.
- 유연성: 네트워크 혼잡 상황에서 트래픽을 분산시키기에 용이하다. 예를 들어, 한쪽 경로에 트래픽이 몰리면 라우터가 다른 경로로 패킷을 우회시킬 수 있다.
This post is licensed under CC BY 4.0 by the author.