1. 네트워크 용어
Packet네트워크에서 데이터를 주고받을 때 사용되는 데이터 조각, 또는 그 용량 단위를 말한다. 패킷의 원래 의미인 묶음, 꾸러미에서 유래했다.
최소 사이즈는 64바이트, 최대 사이즈는 1,518바이트이다.[1]
1.1. 개념
인터넷을 통해서 우리가 주고받는 데이터는 모두 패킷으로 전달되고 수신된다. 즉, 네트워크 데이터 전송에서 실제 교환되는 내용물은 패킷이다. 이메일을 보낼 때, 웹페이지에 접속할 때, 영상을 스트리밍할 때 등 데이터는 모두 패킷 단위로 데이터가 오고 간다.이렇게 전체 데이터를 작은 블록의 패킷 단위로 분할하여 전송하며, 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 방법을 패킷 교환(Packet switching) 방식이라고 한다. 패킷 교환 방식에서 각 패킷은 독립적으로 경로를 선택[2]하고, 최종 목적지에서 다시 조립되어 원래의 데이터로 복원된다.
|
▲패킷 스위칭 방식의 데이터 전송 |
1.2. 특성
1.2.1. 장점
- 효율성
- (분할 전송) 대용량 데이터를 한 덩어리로 보낼 경우, 전송 경로에서 오류가 나면 전체를 다시 전송해야 한다. 하지만 패킷으로 분할하여 보낼 경우 문제가 생긴 일부 패킷만 재전송하면 되므로 훨씬 효율적이다. 중간에 분실한 패킷에 대해서는 그 부분만 다시 보내면 땡이기 때문에, 인터넷은 물론 허브 역시 패킷 방식을 사용한다.
- (경로 분산) 인터넷에서는 여러 라우터와 회선을 거쳐서 데이터가 이동한다. 이때, 전체 데이터를 패킷 단위로 쪼개어 전송하면 각 패킷이 다른 경로를 통해 목적지에 도달할 수도 있어 네트워크 자원을 더 효율적으로 사용할 수 있다. 특정 네트워크에 부담이 되지 않도록 트래픽을 균일하게 분배할 수 있는 것이다. 만약 패킷 단위로 데이터를 쪼개지 않는다면 한 사람이 대량의 데이터를 전송하는 동안 다른 사람들은 그 네트워크를 사용할 수 없는 상황이 벌어진다.
선이 끊기면 다 개박살 나는 서킷 방식과는 다르게 양측 단말의 길만 정해지면 언제든지 우회가 가능하다는 장점도 있다.
- 안정성 또는 신뢰성
- (에러 검출) 각 패킷의 트레일러에 오류 검출용 정보(체크섬 등)를 덧붙임으로써 손상된 패킷만 감지해서 버리고, 재전송을 요청할 수 있다.
- (흐름 제어) 네트워크 장비나 수신 측의 처리 속도에 맞춰 패킷 단위로 전송의 속도를 조절할 수 있다. 따라서 과부하를 방지하면서도 안정적으로 데이터를 전송할 수 있다.
- (보안) 분할의 특성 때문에 송수신자에 관한 정보가 아닌 내용 자체를 변조하는 것은 암호화까지 안 가고 압축만 이루어져도 불가능해지다시피 한다.
- 확장성
- (다중 사용자 환경) 패킷 스위칭 방식을 쓰면 여러 이용자의 데이터가 같은 네트워크 자원(회선)을 공유할 수 있다. 한 번에 여러 사람의 데이터가 섞여 전송되더라도 패킷의 출발지/목적지 정보(IP 주소 등)로 구분이 가능하기 때문이다.
- (유연한 전송) 음성, 영상, 텍스트, 파일 등 다양한 형태의 데이터를 모두 패킷화해서 같은 네트워크 인프라로 다룰 수 있다.
- (인터넷 규모 확장) 전 세계적으로 수십억 단말이 연결되는 환경에서도 패킷 기반 라우팅 덕분에 확장이 가능하다.
1.2.2. 단점
패킷이 전송한 순서대로 도착지에 도달한다는 보장이 없기에 패킷에 고유의 번호를 매겨야 하고, 이 순서를 양측이 동일하게 사용해야 한다는 단점이 있다. 이 때문에 이런 것들을 포함한 통신 규칙, 즉 프로토콜이 등장한 것. TCP/IP 등 신뢰성 기반의 프로토콜은 대부분 이러한 기능을 지니고 있다.TLS 암호화 통신의 경우 패킷 단위로 암호화를 하기 때문에 용량이 원래 내용보다 더욱 커진다. 또한 고급 인터넷 공유기는 패킷을 큼직하게 할당하는 '점보 프레임' 기능을 쓸 수 있다. (점포 프레임을 사용 시 9,216 bytes까지 늘릴 수 있지만 목표 노드까지 네트워크 장비가 점포 프레임을 사용해야 하기 때문에 근거리 통신망구간이 아니라면 무의미하다.)
1.3. 구성
- 헤더(Header): 패킷에 대한 메타정보가 담긴다. 패킷의 길이, 번호, 네트워크 프로토콜, 수신자 및 발신자의 IP 주소 등 데이터가 잘 전달되기 위해 필요한 정보가 있다. 사용하는 IP 버전에 따라 헤더 내용은 조금씩 바뀔 수 있다.
- 페이로드(Payload): 수신자가 요청한 데이터이다. 이메일을 받는 수신자라면 이메일 본문 내용, 이미지를 클릭한 사용자라면 이미지 데이터가 이에 해당한다. Body라고도 한다.
- 트레일러(Trailer): 패킷의 끝을 나타내기 때문에 여러 패킷의 경계를 뚜렷하게 알리는 역할을 한다. 오류 검출 역할을 하기도 하는데, 체크섬(Checksum) 또는 CRC(Cyclic Redundancy Check)와 같은 오류 검출 코드가 트레일러에 포함되어 있으면 전송 중에 데이터 손실과 같은 오류가 발생했는지 판단할 수 있다.
2. 코즈믹 브레이크 유니버설의 등장 로봇
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[패킷(코즈믹 시리즈)#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[패킷(코즈믹 시리즈)#|]] 부분을
참고하십시오.