검수요청.png검수요청.png

패킷

해시넷
223.38.18.234 (토론)님의 2022년 4월 9일 (토) 18:52 판 (IP 패킷: IPv6에서 I가 없어서 수정함)
이동: 둘러보기, 검색

패킷(packet)은 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송 단위이다. 본래는 소포를 뜻하는 용어로, 소화물을 뜻하는 패키지(package)와 덩어리를 뜻하는 버킷(bucket)의 합성어이다. 패킷은 데이터 전송에서 송신측과 수신측에 의하여 하나의 단위로 취급되어 전송되는 집합체로, 분할된 각각의 패킷에는 별도의 번호가 붙여지고 목적지의 인터넷 주소가 기록되며, 에러 체크 데이터도 포함된다.

개요

패킷은 정보 기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다. 패킷은 제어 정보와 사용자 데이터로 이루어지는데, 이를 페이로드라고도 한다. 패킷을 지원하지 않는 컴퓨터 통신 연결은 단순히 바이트, 문자열, 비트를 독립적으로 연속하여 데이터를 전송한다. 데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문 메시지를 더 효과적이고 신뢰성 있게 보낼 수 있다.[1] 패킷은 주로 데이터 통신 분야에서 사용되는 용어인데, 데이터 통신 시스템 중에서 컴퓨터는 데이터를 중계하는 역할을 한다. 문자나 숫자의 정보인 메시지를 하나의 컴퓨터에서 다른 컴퓨터로 보낸다. 이 메시지에는 소포 우편물과 마찬가지로 화물 부분과 수신처가 붙어 있는데, 데이터 통신, 교환 시스템에서 다루어지는 데이터 단위로, 헤더와 데이터부가 바로 그것에 해당되는 것이며, 헤더는 주로 이 패킷의 수신지에 관한 정보를 포함한다. 패킷의 최대 길이는 각 시스템에서 정해져 있으며 이 크기보다 긴 메시지는 몇 개의 패킷으로 분할하여야 한다. 이렇게 해두면 메시지는 분실될 염려가 없고 확실하게 상대편에 머무른다. 특정의 형식으로 배열되고, 전송의 처리 과정에 의해서 정해지는 하나의 정리로서 전송되는 데이터 및 제어 비트열이다.[2]

데이터의 묶음 단위로 한번에 전송할 데이터의 크기를 나타낸다. 제3계층 이상에서는 이 데이터 묶음을 패킷이라고 부르며, 제2계층에서는 프레임이라고 부른다. 이 패킷의 크기는 네트워크의 종류에 따라 달라지며 이더넷(Ethernet)은 최대 1500바이트 크기를 갖고, IEEE 802.3표준에서는 최대 1492바이트 크기를 갖는다. 네트워크상에는 하나의 컴퓨터만 있는 것이 아니고 여러 개의 컴퓨터가 있다. 이들은 서로 동시 다발적으로 데이터를 주고 받게 되는데 만약에 데이터를 분할하여 전송하지 않고 한번에 보낸다면 한 컴퓨터만 데이터를 주고 받게 되고 나머지 컴퓨터들은 끝날 때 까지 기다릴 수 밖에 없게 된다. 또한 이 큰 데이터를 전송하다가 중간에 에러가 발생하게 되면 이 큰 데이터를 처음부터 끝까지 다시 전송하여야 하는데 이것도 결과적으로 큰 문제가 되는것 이다. 그리하여 데이터를 어느 정도 전송에 적합한 크기로 분할 하여 전송을 하면 이러한 문제들을 해결 할 수 있게 된다. 그러한 이유로 데이터를 패킷 단위로 나누게 되고 아주 기본적인 개념이라고 할 수 있다.

특징

파일을 분할해서 전송하지만 수신하는 곳에서는 원래의 파일로 다시 재조립된다. 헤더와 데이터·테레일러로 이루어져 있는데, 헤더에는 데이터가 전달될 주소와 순서 등이 기록되고, 테레일러에는 에러 정보가 기록된다. 보통 2계층으로 내려가기 전까지 3·4계층의 데이터 단위는 패킷이라고 하고, 1·2 계층의 데이터 단위는 프레임이라고 한다. 일반적으로 128바이트가 표준이지만 32·64·256바이트와 옥텟 등 편의에 따라 크기를 바꿀 수 있다.

내부에 상대방의 주소를 갖고 있기 때문에 신뢰도가 높으며, 에러를 체크하는 등 고품질의 전송을 제공할 수 있는 장점이 있다. 또 통신망을 경제적으로 구성할 수 있고, 전송속도와 코드를 바꿀 수 있으므로 서로 다른 기종을 사용하는 사용자들끼리도 통신이 가능하다. 다양한 부가 서비스도 가능하며, 국제적으로 표준화된 프로토콜을 사용하여 인터넷 상에서 데이터를 전송할 때 매우 효율적이다. 패킷형 단말기와 교환기 사이의 인터페이스에 사용되는 권장 프로토콜은 X.25이며, 비표준 단말기와의 인터페이스에는 X.3과 X.28이다.

종류

IP 패킷

인터넷에서 표준 인터넷 프로토콜(IP)에 의해 전송되는 데이터 묶음. 각 패킷은 시스템 제어 정보와 지정 주소가 담긴 헤더를 가지고 전송된다. 일정한 셀(cells)과는 달리 IP 패킷은 전송되는 데이터에 따라 길이가 다양하다. IP 패킷 은 헤더 섹션과 데이터 섹션으로 구성되는데, IP 패킷에는 데이터 섹션 다음에 데이터 체크섬이나 다른 꼬리말이 없다. 일반적으로 링크 계층은 대부분의 오류를 탐지하는 CRC 바닥 글이 있는 프레임에 IP 패킷을 캡슐화하며 일반적으로 종단 간 TCP 계층 체크섬은 대부분의 다른 오류를 감지한다.

  • IPv4
인터넷 프로토콜 버전 4(IPv4)는 인터넷 프로토콜(IP)의 네 번째 버전이다. 인터넷 및 기타 패킷 교환망의 표준 기반 인터 워킹 방법의 핵심 프로토콜 중 하나이다. IPv4는 1983 년 아르파넷(ARPAnet)에서 처음으로 프로덕션 용으로 배포된 버전이다. IPv6 는 계속해서 후속 프로토콜인 IPv6의 배포에도 불구하고 오늘날 대부분의 인터넷 트래픽을 라우팅한다. IPv4는 IETF 게시 RFC 791에 설명있다.[3]
  • IPv6
IPv6은 패킷 교환 인터 네트워킹을 위한 인터넷 계층 프로토콜이다. 이전 버전의 프로토콜인 인터넷 프로토콜 버전4(IPv4)에서 개발된 디자인 원칙을 준수하면서 여러 IP 네트워크에서 엔드 투 엔드 데이터 그램 전송을 제공한다. 더 많은 주소를 제공하는 것 외에도 IPv6은 IPv4에없는 기능을 구현한다. 네트워크 연결 제공자를 변경할 때 주소 구성, 네트워크 번호 재지정 및 라우터 공지 사항을 단순화한다. 패킷 조각화에 대한 책임을 종점에 배치하여 라우터에서 패킷 처리를 단순화한다. IPv6 서브넷 크기는 주소의 호스트 식별자 부분 크기를 64 비트로 고정하여 표준화된다. 네트워크 보안은 IPv6 아키텍처의 디자인 요구 사항이었으며 원래 IPsec 사양을 포함했다.

패킷교환

네트워크 계층의 가장 중요한 역할은 패킷의 전송 경로를 결정하는 것이다. 데이터를 패킷 교환 방식으로 전송하는 네트워크는 가상 회선과 데이터그램이라는 두 가지 전송 방식을 지원한다. 가상 회선은 데이터를 패킷 단위로 나누어 전송하지만 송수신 호스트 사이에 가상 연결을 설정하므로 모든 패킷의 전달 경로가 같다. 반면, 데이터그램은 패킷의 경로 선택이 독립적이다. 패킷교환에서는 정보가 교환기의 기억장치에 축적되기 때문에 1개의 통신회선에서 통신의 공백시간을 융통하고 있어서 회선의 사용효율을 높이는 패킷 다중통신을 할 수 있다. 패킷교환 서비스의 기본적인 통신 형태는 상대 선택신호에 의해서 상대를 선택하는 것이지만 통신상대가 고정되는 경우도 고려하여 임의의 상대를 선택하여 통신할 수 있는 상대 선택급과 통신상대가 항상 특정한 상대로 고정되는 상대고정급 2가지의 접속급이 마련되어 있다. CCITT 권고에서는 이 2가지의 접속급을 각각 버추얼 콜(VC), 퍼머넌트 버추얼 서킷(PVC)이라 한다.[4]

  • 가상회선(Virtual Circuit)
일반적으로 가상 회선 방식은 연결형 서비스를 지원하기 위한 기능으로, 하나의 연결을 통해 전송되는 패킷의 경로는 동일하다. 송수신 호스트 사이에 설정된 가상의 단일 파이프를 통해 송신 호스트가 입력단으로 패킷을 송신하고, 수신 호스트가 출력단에서 패킷을 수신한다. 따라서 모든 패킷이 하나의 파이프로 표현되는 동일 경로로 전송되므로 패킷이 도착하는 순서가 보낸 순서와 같다. 가상 회선 방식에서 패킷을 전송하는 방식을 시간의 흐름에 따라 보여준다. 가상 회선을 통해 패킷이 동일한 경로로 전송됨을 알 수 있다. 이처럼 똑같은 전송 경로로 패킷을 전송하면 패킷의 도착 순서와 출발 순서가 같다. 가상 회선 방식으로 패킷을 전송하는 원리는 회선 교환 방식과 비슷하다. 가상 회선이라는 용어가 가상적인 회선을 뜻하므로, 두 방식은 동작 원리가 비슷하다. 그런데 가상 회선 방식은 패킷 교환 방식을 기반으로 하므로 데이터의 전송 단위가 패킷 단위로 이루어지는 반면, 회선 교환 방식은 패킷 기능을 지원하지 않는다. 이는 두 교환 방식을 구분하는 중요한 차이점이다.
  • 데이터그램(Datagram)
패킷 교환에서 비연결형 서비스를 이용해 패킷을 독립적으로 전송하는 것을 데이터그램 방식이라고 한다. 데이터그램 방식은 패킷이 전달되기 전에 연결을 설정하는 과정이 없으므로, 경로를 미리 할당하지 않는다. 따라서 전송되는 패킷들이 독립 경로로 전달된다. 일반적으로 데이터그램 방식은 전송할 정보의 양이 적거나 상대적으로 신뢰성이 중요하지 않은 환경에서 사용한다. 데이터그램 방식에서 패킷을 전송하는 과정을 시간의 흐름에 따라 보여준다. 가상 회선 방식과 달리 설정된 연결 경로가 없으므로, 송신 호스트가 전송한 패킷이 독립적으로 라우팅됨을 알 수 있다. 송신 호스트가 전송한 패킷은 보낸 순서와 무관한 순서로 수신 호스트에게 전달되므로 도착 순서가 바뀔 수 있다. 패킷은 1, 2번 패킷과 다른 경로를 선택할 수 있으며, 각 전송 경로의 속도는 네트워크 혼잡도 등 때문에 가변적이다. 따라서 목적지에 도착하는 순서를 미리 예측할 수 없고, 송신 호스트에서 늦게 출발한 3번 패킷이 2번 패킷보다 먼저 도착할 수 있다.
  • 패킷 통신(packet mode communication)
단말기로부터 입력했던 정보를 1,000비트 정도의 패킷이라는 블록으로 분할해 패킷마다 수취인의 주소와 제어정보를 붙여 전송하는 것이다. 여러 단말에서 전송로와 교환 설비의 공유가 가능하며, 그 이용 효율이 좋다. 데이터가 일단 축적되므로 속도가 다른 단말 장치 간의 통신이 쉽다. 전송로와 교환 설비가 여러 연결되어 있으면 통신 도중에 동적 경로 선택이 용이하고, 장애에 강하다. 데이터를 일단 축적하고, 에러 검출 한 경우에 재전송을 요구하는 것이 가능하기 때문에 데이터 오류없는 통신을 제공할 수 있다. 반면, 패킷 통신을하고 있기 때문에, RAS(Remote Access Service) 등으로 직접 데이터 통신 할 수 없다는 문제가 있다. 64kPIAFS 통신 등은 그 통신 방식을 지원하는 터미널 어댑터(TA)를 배치하여 직접 데이터 통신이 가능하지만, 패킷 통신에서 패킷의 조립 분해하는 서버를 거쳐야 할 필요가 있다. 따라서 일반적으로 ISP를 통해 연결하는 경우가 많다. 실효 통신 속도를 보장하고 어렵고, 혼잡 등으로 전송 지연 시간이 변동한다.[5]
  • 패킷의 분할
다양한 유형의 네트워크를 통해 패킷을 중개하려면, IP 프로토콜이 패킷을 각 네트워크에서 처리하기 편한 크기로 분할해야 한다. 예를 들어, X.25 프로토콜에서의 프레임 크기와 이더넷에서의 프레임 크기는 다르다. 따라서 상위 계층에서 더 큰 데이터 전송을 요구하면 IP 프로토콜에서 패킷 분할 과정을 먼저 수행해 전송한다. 하부 계층의 관점에서 보면, TCP에서 설정되는 논리적 가상 연결은 여러 종류의 네트워크를 거쳐서 설정된다. 그러나 TCP 계층에서는 패킷 전송 과정에 위치하는 네트워크 유형에 따라 패킷 크기를 조절하기가 쉽지 않으므로 IP 프로토콜에서 이 기능을 수행해야 한다.

비교

이더넷 데이터를 이야기할 때, 프레임 그리고 패킷이란 단어가 많이 나온다. 프레임과 패킷은 데이터를 전송할 때 사용되는 컨테이너로 LAN, WAN 구간을 오가며 비슷한 기능을 수행한다. 그래서인지 이 둘을 같은 의미로 사용하는 경우가 많이 있다.

  • 프레임
OSI 7Layer 중 2계층인 Data Link 계층에서 전송되는 단위로 전송 프레임에는 상위 계층에서 보낸 전송 데이터에 오류 확인을 위한 체크섬, 송수신 호스트의 주소, 기타 프로토콜에서 사용하는 제어 코드 등의 정보가 포함된다. 프레임을 전송받은 호스트는 체크섬 에러를 확인하고 에러 및 변형 등의 오류를 체크한다. 에러 검출 시 재전송을 요구하여 복구 과정을 거친다. 같은 부서에서 우편물을 보낼 때 어느 한 사람이 다른 사람에게 문서를 보낸다고 가정을 해보자. 내용물은 봉투에 넣고, 발신자란에 이름과 부서를 적고 수신란에 받을 사람의 이름과 부서를 적는다. 이 봉투는 우편실 내부에서 사용하는 봉투라는 것을 인식하고 목적지 이름과 부서를 읽는다. 그리고 해당 정보를 물리적인 위치로 변환해주는 디렉토리를 사용해 배달을 한다. 중요한 것은 이 봉투는 해당 부서를 벗어나지 않으며 자체적인 지원으로 처리가 된다. 바꿔말해 이 봉투는 회사 외부로는 보낼 수 없다. 그 이유는 외부의 그 어떤 목적지 주소도 없기 때문이다. 이 봉투를 외부의 어떤 곳으로 전달을 하기 위해서는 또 다른 봉투에 넣고 전달할 목적지 주소를 적어야 한다.
이더넷 프레임은 데이터를 담는 컨테이너로 동일 네트워크 상의 정보만 가지고 있다. 이 것을 페이로드라고 한다. 프레임은 TCP/IP 2계층에서 네트워크 인터페이스 디바이스에서 생성되며 페이로드 크기는 전송되는 데이터 종류에 따라 다르다. 프레임은 네트워크 상으로 전송되고 L2 스위치가 프레임 목적지 주소를 ARP테이블(ARP Table)을 참조하여 해당 목적지가 어느 포트인지 알려준다. L2 스위치는 ARP테이블을 참조하여 확인된 물리 포트로 전달을 한다. 만일 목적지 디바이스에 직접 연결되어 있으면 바로 완료가 된다. 하지만 또 다른 스위치로 연결되어 있다면 그 연결된 스위치의 ARP테이블을 참조하여 전달하는 과정을 전달 완료될 때 까지 반복하게 된다.
  • 패킷
OSI 7Layer 중 3계층인 Network Layer 에서의 단위로 네트워크를 통해 전송될 때 L3 스위치, 라우터 등에서 전달하는 전송단위이다. 풀어서 말하면 프레임과 패킷 모두를 정보를 넣어서 전달하는 봉투라고 생각해 보자. 이 봉투는 어떤 사람이 또 다른 사람에게 전달된다. 프레임과 패킷의 차이점은 정보를 포장하는 방법이며, 어디로 그 정보를 전달하느냐에 따라 달라진다. 프레임을 다른 네트워크로 전달을 하기 위해서는 다시한번 봉투에 담아야 하는데 이것이 피킷이다. 패킷은 3계층에서 다루는 내용으로 서로다른 네트워크간 통신이 가능하도록 라우팅을 해주는 영역이다. 과거에는 라우터를 사용하여 라우팅을 실시하였으나 요즘은 L3 스위치로 그 기능을 대신해 가고 있다.
패킷은 3계층에서 생성되며 데이터를 서로 다른 LAN 간에 데이터를 주고 받을 때 사용되는 단위를 말한다. 즉, 패킷은 L3 스위치가 L2 스위치로부터 전달받은 정보를 다른 네트워크에 있는 목적지로 전달한다. 전달받은 해당 네트워크 상의 L2 스위치가 다시 ARP Table을 참조해 목적지로 전달을 하게 되며 이로써 서로 다른 네트워크 간 데이터 전송은 완료 된다. 프레임과 패킷에 대해 알아보았다. 정리를 하자만 프에임은 L2 영역에서의 전송 단위로 보면 되고 패킷은 L2에서 또 다른 L2로 전달을 할 경우 중간에 L3 구간을 거치데 되는데 바로 L3 구간에서 전달되는 데이터의 단위라고 보면 되겠다.

장단점

  • 장점 : 패킷에는 이미 상대방의 주소를 포함하고 있으므로 신뢰도가 높고 에러 체크 등을 통해 안전하게 데이터를 전송할 수 있다. 또한 전송 속도, 코드 등을 바꿀 수 있기 때문에 서로 다른 기종에서도 통신이 가능하며 국제적으로 표준화된 프로토콜을 통해 매우 효율적으로 데이터를 전송할 수 있고 통신망을 경제적으로 구성할 수 있다.[6]
  • 단점 : 금융 정보처럼 개인 정보를 포함하고 있기 때문에 동일 네트워크상에서는 패킷 분석 프로그램만으로도 개인 정보를 해킹할 수 있어 패킷 암호화에 대한 기술의 중요성이 날로 부각되는 추세다.[6] 또한, 패킷은 재조립을 하기가 어렵다. 패킷 전부를 받을 때 시간이 걸리며 패킷이 전송과정에서 순서대로 도착하면 좋겠지만 대체경로 반복으로 오류제어방식을 채택하고 있는 네트워크의 경우 패킷의 순서가 뒤바뀌게 되어 잘못하면 이에 쓰인 비용, 시간, 패킷을 앗아간다. 교착상태가 발생하고 송신될 때 오버헤드의 양이 증가하여 패킷 크기가 소형이거나 대형에도 오버헤드가 증가되어 정체되는 현상이 발생한다.[7]

활용

  • 패킷의 구성
  • 헤더(머리) + 페이로드(내용/데이터) + 트레일러(꼬리)
  • 패킷 선두(헤더)에는, 패킷의 주소(송수신 주소) 등 주요 제어 정보들이 포함되는것이 일반적
  • 패킷 후미(트레일러)에는, 패킷 에러 검출 등에 사용
  • 패킷 꼬리는 없는 경우도 많다.
  • 전달 방식
  • 패킷은 통신망을 통하여 노드에서 노드로 전해짐으로써 전송
  • 패킷의 전달은 통상적으로 매 경유지 마다 축적교환 방식으로 목적지까지 전달
  • 패킷 시작부 동기화
  • 각 패킷은 오직 동기화를 위해서만 사용되는 Preamble이라 불리는 비트열로 시작
  • 해당 경우 Preamble은 통상 2계층(링크계층)에서 사용

대안

패킷이 손실되는 경우 문제가 될 수 있는데, 패킷 손실은 동일한 패킷이 적절한 목적지에 도달하지 못할 때 발생한다. 패킷 손실은 일반적으로 네 가지 문제의 결과로 발생한다.

  1. 혼잡 한 네트워크
  2. 장치 성능(스위치/라우터/방화벽과 같은)
  3. 네트워크 드라이버 버그
  4. 결함있는 배선 또는 하드웨어

위와 같은 문제를 해결하기 위해 네 가지 방법이 제시되고 있다.

  • 혼잡 한 링크 문제일 경우 : Qos를 통해 네트워크 트래픽의 우선 순위를 지정하는 것이 좋다. 요구 사항과 중요성에 따라 비디오 또는 음성과 같은 응용 프로그램의 우선 순위를 지정할 수 있다. 트래픽의 우선 순위는 완벽한 대역폭 활용을 위한 이상적인 솔루션 중 하나로 간주된다.
  • 하드웨어 문제가 해결 될 경우 : 하드웨어 문제가 해결 된 경우에는 해결할 솔루션은 하나뿐이다. 구형 제품을 시판중인 최신 모델로 교체하는 것이 좋다.
  • 드라이버 문제일 경우 : 드라이버 문제에 대해서는 간단한 업데이트가 권장된다. 단, 없는 경우에 그렇다.
  • 문제가 배선문제로 반올림 된 경우 : 가능한 빨리 수정해야한다. 이 경우 IPS에 문제를 알려서 최대한 빨리 수리를 수행 할 것을 권장한다.

각주

  1. 네트워크 패킷〉, 《위키백과》
  2. 패킷〉, 《지식백과》
  3. IPv4〉, 《위키피디아》
  4. 패킷 교환〉, 《지식백과》
  5. 뾰롱이, 〈패킷 통신 장점 단점, 《네이버블로그》, 2015-08-12
  6. 6.0 6.1 KH정보교육원, 〈데이터 패킷(Packet)이란?〉 , 《네이버블로그》 , 2013-06-10
  7. Blu Sky, 〈패킷교환방식의 단점〉, 《다음블로그》, 2008-03-18

참고자료

같이 보기


  검수요청.png검수요청.png 이 패킷 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.