네트워크/네트워크 기초
네트워크 모델와 데이터 단위 (TCP/IP 모델, OSI 7계층, 패킷, PDU)
절차탁마
2025. 4. 8. 15:26
[들어가며]
복잡해 보이는 네트워크 통신, 그 속에는 잘 짜인 설계 원리가 숨어 있습니다. 어떻게 하면 컴퓨터들이 서로 '말'을 잘 알아듣고 데이터를 주고받을 수 있을지 고민한 결과죠. 네트워크의 기본 설계도인 '모델'과 데이터가 실제로 처리되는 방식인 '데이터 단위'를 쉽고 간결하게 알아봅시다.
1. 네트워크 모델: 통신의 설계도, TCP/IP와 OSI 7 계층
- 네트워크 모델, 왜 만들었을까요? 초기에는 컴퓨터마다 통신 방식이 제각각이었습니다. 서로 다른 시스템끼리 문제없이 데이터를 주고받으려면 공통된 규칙과 절차, 즉 표준화된 '설계도'가 필요했죠.
- TCP/IP 모델: 인터넷을 만든 실용주의 설계도
- 시작: 1960년대 미 국방부(DoD)의 ARPANET 프로젝트. 목표는 서로 다른 시스템 간에도 안정적으로 통신하고, 일부 망에 문제가 생겨도 연결이 유지되는 것. 상호 운용성이 핵심!
- 구조 (4계층): 실제 구현과 동작에 초점을 맞춰 4개의 핵심 계층으로 구성.
- 4계층: 응용 (Application): 사용자가 쓰는 서비스 (HTTP, SMTP 등)
- 3계층: 전송 (Transport): 데이터 전달 방식 관리 (신뢰성-TCP, 속도-UDP)
- 2계층: 인터넷 (Internet): 최종 목적지까지 경로 설정 (IP)
- 1계층: 네트워크 인터페이스 (Network Interface): 물리적 네트워크 연결 (Ethernet 등)
- 특징: 인터넷과 함께 발전하며 사실상의 표준(De facto standard)**이 된 실용적인 모델.
- OSI 7 계층 모델: 체계적인 이론 참조 모델
- 시작: 1984년 국제표준화기구(ISO) 제정. 특정 기술에 얽매이지 않는 범용 통신 표준을 만들고자 함. "모든 통신 시스템이 참고할 수 있는 체계적인 구조를 만들자!"
- 구조 (7계층): 통신 기능을 7단계로 상세히 나누어 각 역할 정의.
- 7. 응용 / 6. 표현 / 5. 세션 / 4. 전송 / 3. 네트워크 / 2. 데이터 링크 / 1. 물리
- (TCP/IP는 이 중 일부 계층의 기능을 묶어서 구현했다고 볼 수 있음)
- 특징: 이론적으로 잘 정립되어 네트워크 개념 학습과 이해에 유용. 통신 전반의 기능을 체계적으로 보여주는 참조 모델.
- 두 모델 요약 비교:
- 공통점: 통신 과정을 계층별로 나누어 역할 분담. 복잡한 문제를 단순화.
- 차이점:
- 계층 수: TCP/IP (4개) vs OSI (7개)
- 관점: TCP/IP (실제 프로토콜 중심) vs OSI (기능/역할 중심)
- 표준: TCP/IP (사실상 표준) vs OSI (공식 참조 표준)
[궁금할 수 있는 포인트 🤔]
- Q: "왜 모델이 두 개나 필요한가요? 하나만 쓰면 안 되나요?"
- A: TCP/IP는 실제 인터넷 구현에 맞춰 발전했고, OSI는 모든 통신 시스템을 위한 이론적 틀로 설계되었어요. 역할이 좀 다른 셈이죠. 실제 동작은 TCP/IP를 따르지만, 개념 이해나 교육에는 OSI가 유용할 때가 많습니다.
- Q: "OSI 7계층은 너무 복잡해 보이는데, 실제 인터넷에서 다 쓰이나요?"
- A: OSI의 모든 계층이 인터넷에서 명확히 구분되어 사용되는 것은 아닙니다. 하지만 OSI 모델은 통신 과정을 체계적으로 이해하고 문제를 분석하는 데 중요한 개념적 틀을 제공합니다.
- Q: "TCP/IP가 OSI 계층을 합쳤다는 건 무슨 뜻인가요?"
- A: 예를 들어, OSI의 응용, 표현, 세션 계층의 기능을 TCP/IP에서는 하나의 '응용 계층'으로 묶어서 다루는 식입니다. 실제 인터넷 서비스 구현에 필요한 기능 중심으로 재구성했다고 볼 수 있어요.
2. 데이터 단위: 패킷, 네트워크를 여행하는 정보 조각
- 데이터는 어떻게 전달될까요? 큰 데이터를 한 번에 보내기보다, 잘게 쪼개서 '패킷(Packet)'이라는 작은 단위로 만들어 보냅니다.
- 패킷 (Packet)의 구조:
- 네트워크 전송의 기본 단위.
- 구성: "제어 정보 (Header/Footer)" + "사용자 데이터 (Payload)"
- 페이로드 (Payload): 실제 보내려는 내용물.
- 헤더 (Header) / 푸터 (Footer): 데이터를 목적지까지 정확히 보내고 해석하는 데 필요한 부가 정보 (주소, 순서 번호, 오류 검출 코드 등). 각 통신 계층(프로토콜)이 추가.
- 캡슐화 (Encapsulation): 데이터 포장 과정
- 데이터를 보낼 때, 각 네트워크 계층을 지나면서 해당 계층의 제어 정보(헤더)를 덧붙여 포장하는 과정.
- 왜 필요할까? 각 계층은 자신의 역할에만 집중하면 됩니다. 예를 들어, 3계층(네트워크)은 최종 목적지 주소(IP)만 보고 경로를 찾고, 2계층(데이터 링크)은 바로 다음 장비 주소(MAC)만 보고 전달하는 식이죠. 이렇게 역할을 분담하면 전체 시스템을 더 효율적으로 관리하고 수정하기 쉬워집니다 (모듈화).
- 순서가 중요! 상위 계층에서 하위 계층으로 순서대로 캡슐화가 진행됩니다.
- 계층별 데이터 단위 (PDU - Protocol Data Unit): 각 층의 작업 결과물
- 각 네트워크 계층에서 처리하는 데이터 단위의 공식 명칭. "이 계층에서는 데이터를 이렇게 부르고, 이런 정보를 담아 처리한다"는 약속.
- 4계층 (전송) PDU = 세그먼트 (Segment) (TCP) / 데이터그램 (Datagram) (UDP)
- 예: TCP Header + 상위 계층 데이터
- 3계층 (네트워크) PDU = 패킷 (Packet)
- 예: IP Header + 4계층 PDU
- 2계층 (데이터 링크) PDU = 프레임 (Frame)
- 예: Ethernet Header + 3계층 PDU + Ethernet Footer
[궁금할 수 있는 포인트 🤔]
- Q: "패킷, 세그먼트, 프레임... 왜 이렇게 이름이 다른가요?"
- A: 각 계층에서 처리하는 데이터의 역할과 형태가 조금씩 다르기 때문입니다. 예를 들어, TCP는 데이터를 '조각(세그먼트)'내어 순서를 관리하고, IP는 주소가 붙은 '소포(패킷)'의 경로를 찾고, Ethernet은 물리적 전송 단위인 '틀(프레임)'을 만듭니다. 이름이 각 계층의 핵심 기능을 반영한다고 볼 수 있어요.
- Q: "헤더를 계속 붙이면 데이터가 너무 커지는 것 아닌가요?"
- A: 맞아요, 헤더 정보만큼 데이터 크기가 늘어나는 오버헤드가 있습니다. 하지만 이 헤더 정보 덕분에 각 계층이 독립적으로 역할을 수행하고, 복잡한 네트워크에서도 데이터가 정확히 전달될 수 있습니다. 표준화와 안정적인 통신을 위한 비용인 셈이죠.
- Q: "캡슐화 순서는 꼭 지켜야 하나요?"
- A: 네, 반드시 지켜야 합니다! 데이터를 받는 쪽에서는 캡슐화의 역순으로 헤더를 제거하며 해석하는데, 순서가 틀리면 데이터를 제대로 이해할 수 없게 됩니다. 네트워크 통신의 기본 약속이에요.
[마무리하며]
네트워크 모델과 데이터 단위는 통신 과정을 이해하는 기본 틀입니다. 왜 이런 구조가 만들어졌는지 생각해보면 딱딱한 기술 용어도 조금은 흥미롭게 느껴질 수 있습니다. 이 개념들을 바탕으로 네트워크의 세계를 더 즐겁게 탐험해 보세요!