본문 바로가기

Software

프레임(Frame), 세그먼트(Segment) 모두 다 패킷(Packet)이다 - TCP/IP Data Flow

반응형

인터넷 표준 프로토콜(통신 규약) TCP/IP 네트워크 분야에서, 데이터 전송 단위를 표현하는 용어 중에서 가장 많이 사용되는 것이 패킷(Packet)이다. 외에도 프레임(Frame), 세그먼트(Segment), 메시지(Message) 그리고 데이터그램(Datagram) 있다. 그럼, 이 용어들의 차이점을 알아보자. 

   

먼저, 아래에 있는 그림1 내용인 TCP/IP 데이터 흐름을 간략하게 분석하면 다음과 같다.

 

1. 좌측의 송신측 네트워크 장치 프로그램(: 브라우저)에서 출발한 데이터는, 4개의 TCP/IP 계층을 통과하면서, 각 계층마다 필요한 주소 정보 등이 추가된 후에, 송신측 네트워크 장치를 빠져나와서, 선이나 통신 회선으로 진입한다.

2. 통신 회선을 지나서, 목적지 네트워크 장치에 도착한 데이터는, 4개의 TCP/IP 계층을 통과하면서, 계층에서 필요한 주소 정보 등이 분리되면서 유효성 검토를 거친다.

3. 최종 목적지 프로그램(: 브라우저) 도착한다.

 

 

그림1. TCP/IP 4개의 계층 간에 데이터가 전달되는 과정

 

패킷(Packet) 은 위의 모든 단위를 대표하는 명칭이다

 

위에서 언급한 용어들은, 데이터를 전송할 때에 수신처의 주소에 따라 구별된다.  예를 들어, 우편물이 해외로 배달되는 과정으로 비유해보자.

 

처음에 상품을 포장하면서 수신인을 기재한다. 때의 포장 단위를 세그먼트또는 메시지라고 부른다. (TCP: 세그먼트, UDP: 메시지)

 

지역 우체국에서, 해외로 발송될 우편물을 취합하여, 중앙 우체국을 수신인으로 하여 발송한다. 때의 포장 단위를 메시지또는 데이터그램이라고 부른다.  (IP: 데이터그램, ICMP: 메시지, IGMP: 메시지, ARP: 메시지)

 

중앙 우체국에서는, 특정한 국가로 발송될 우편물을 취합하여, 국가를 수신인으로 하여 발송한다. 때의 포장 단위를 프레임이라고 한다. 

 

이와 유사하게, 데이터가 TCP/IP 각 계층을 통과할 때마다 데이터 수신처의 주소가 새롭게 추가되면서 데이터 전송 단위의 명칭도 변한다. 그러나, 위의 모든 단위를 대표하는 명칭은 '패킷' 이다. , 프레임, 세그먼트, 메시지, 데이터그램 모두 패킷이다. 

 

참고로, "RFC 1983: Internet Users' Glossary" 에서, Packet 을 다음과 같이 규정하고 있다.

The unit of data sent across a network.  "Packet" a generic term used to describe unit of data at all levels of the protocol stack.

 

4개의 TCP/IP 계층에서 패킷이 전달되는 과정 상세 분석

 

데이터가 4개의 TCP/IP 계층을 통과하면서 추가 분리되는 주요 내용은 다음과 같다. 편의상, 브라우저에서 자료를 검색할 경우를 가정한다.

 

1. TCP/IP 상단의 4계층(Application Layer)에 속하는 웹 브라우저에서 작성된 데이터는 전송과정에 따라, 바로 밑의 3계층(Transport Layer)으로 내려간다. 

 

2. 3계층(Transport Layer)에서는, 원래의 데이터에 checksum(오류 검사 자료) 주소 정보인 Port address(포트 주소) 추가한 후에 패킹 한다. 그리고 전송과정에 따라, 바로 밑의 2계층(Internet Layer)으로  내려간다. 참고로, 포트 주소는 0 부터 65,535 번 까지다.  때의 패킹 자료를 TCP 세그먼트, UDP 메시지라고 부른다.

 

3. 2계층(Internet Layer)에서는, 3계층에서 패킹 자료에 checksum(오류 검사 자료) 주소 정보인 IP address(아이피 주소) 추가한 후에 패킹 한다. 그리고 전송과정에 따라, 바로 밑의 1계층(Link Layer)으로  내려간다. 때의 패킹 자료를 IP 데이터그램 이라고 부른다. 

 

4. 1계층(Link Layer)에서는, 주소 정보인 MAC address 2계층에서 패킹 자료 바로 앞에 위치시킨다. 이것이 바로 1계층 자료의 헤더(header)이다.  그리고 checksum(오류 검사 자료) 자료를, 2계층에서 패킹 자료 바로 뒤에 위치시킨다. 이것이 바로 1계층 CRC 트레일러(Trailer)이다. 그러고 나서 3가지 항목(헤더, 2계층 자료, 트레일러) 패킹 한다. 그리고 전송과정에 따라, 전송 매체인 통신회선으로 보낸다. 때의 패킹 자료를 프레임(Frame) 이라고 부른다. 그림2 참조.

 

5. 목적지 네트워크 장치에 도착하면, 1계층에서는 CRC Trailer 참조하여 오류검사를 한다. 그리고 Header 참조하여 수신지를 확인한다.  오류검사 결과가 이상이 있거나 수신지가 틀릴 경우에는 해당 프레임을 폐기한다.  이상이 없으면, 데이터 부분만 2계층으로 보낸다.

 

6. 목적지 2계층에서는, 송신 측의 2계층에서 작성하여 추가한 오류검사 자료와 주소정보 자료로 이상 유무를 확인한다(위의 3 참고).  오류검사 결과에 이상이 있으면, 해당 패킷을 삭제한다. 주소정보가 틀릴 경우에는 해당 프레임을 삭제하고 송신 측에 에러 메시지를 보낼 있다. 이상이 없으면, 2계층에 해당된 순수한 데이터 부분(송신 측의 3계층에서 패킹 자료) 3계층으로 보낸다. 

 

7. 목적지 3계층에서는, 송신 측의 3계층에서 작성하여 추가한 오류검사 자료와 주소정보 자료로 이상 유무를 확인한다(위의 2 참고). 검사 결과에 이상이 있으면 해당 패킷을 삭제한다. 이상이 없으면, 3계층에 해당된 순수한 데이터 부분(송신 측의 4계층에서 패킹 자료) 4계층으로 보낸다.

 

8. 목적지 4계층에 있는 서버 프로그램에 데이터가 도착된다.

 

 

그림2. 프레임(Frame) 구조: Header, Data, Trailer

 

반응형