프로토콜 계층구조와 OSI 모델
목차
- 프로토콜 계층구조
- OSI 기본 참조 모델
- TCP/IP 프로토콜
- 주소지정
1. 프로토콜 계층구조
1.1 계층 구조
송신 측에서, 편지가 작성되어, 암호로 변환되고, 편지 운반자가 전달하기 전에 우체통에 넣어서 우체국으로 전달됩니다. 수신 측에서 편지는 우체통에 있으면 꺼내서 수신자가 읽게 됩니다.
1.2 서비스
상위 계층에 있는 송신자는 중간 계층의 서비스를 이용합니다. 중간 계층은 하위 계층의 서비스를 이용합니다. 하위 계층은 운송자가 제공하는 서비스를 이용합니다.
2. OSI 기본 참조 모델
네트워크 통신을 전체적으로 다루고 있는 ISO 표준은 OSI 기본 참조 모델입니다.
OSI 모델은 프로토콜이 아니라 유연하고, 안전하며, 상호 연동이 가능한 네트워크 구조를 이해하고 설계하기 위한 모델입니다.
이 모델은 서로 연관된 7개의 계층으로 구성되어 있고, 각 계층에는 네트워크를 통해 정보를 전송하는 일련의 과정이 규정되어 있습니다.
2.1 계층화된 구조
OSI 모델은 물리층(제1계층), 데이터 링크층(제2계층), 네트워크층(제3계층), 전송층(제4계층), 세션층(제5계층), 표현층(제6계층) 그리고 응용층(제7계층)으로 구성되어 있습니다.
2.2 계층-대-계층 통신
송신 측에서는 메시지는 계층 7에서 계층 1까지 아래로 이동하고 수신 측에서 메시지는 계층 1에서 계층 7까지 이동됩니다.
📡 계층 간 인터페이스
데이터와 네트워크 정보가 송신 장치의 각 계층을 따라 전달되고, 다시 수신 장치의 각 계층을 따라 올라가는 것은 인접한 계층 간의 **인터페이스(Interface)**를 통해 이루어집니다.
- 각 인터페이스는 한 계층이 바로 위의 계층에게 제공해야 하는 정보와 서비스를 정의
- 즉, 한 계층이 바로 위의 계층으로 미리 정의된 서비스를 제공한다면, 다른 계층을 전혀 바꾸지 않고도 그 계층의 기능을 구현하는 방식을 변경하거나 대체할 수 있습니다.
🔢 계층의 구성
7개의 층을 3개의 그룹으로 나눌 수 있습니다:
📡 하위 계층 (제1, 제2, 제3 계층)
- 물리층, 데이터 링크층, 네트워크층
- 한 장치에서 다른 장치로 데이터를 전송할 때 물리적인 면을 처리
👤 상위 계층 (제5, 제6, 제7 계층)
- 세션층, 표현층, 응용층 (사용자 지원 계층)
- 서로 관련이 없는 소프트웨어 시스템 간의 상호 연동을 가능하게 함
🔄 중간 계층 (제4 계층)
- 전송층
- 위의 두 그룹을 연결하고, 하위 계층에서 전송한 내용을 상위 계층이 사용할 수 있는 형태가 되도록 보장
전체적인 OSI 계층 구조에서 D[num] 데이터는 제 num 계층의 데이터 단위를 의미합니다. (num은 숫자 1 ~ 7)
2.3 캡슐화
높은 계층에서 낮은 계층으로 내려갈 때 헤더를 함께 보내야하기 때문에 진행하는 것입니다.
즉, 계층의 전체 패킷(데이터와 오버헤드)은 N-1계층 패킷의 데이터 부분으로 전송됩니다. N-1계층은 캡슐화된 패킷이 데이터인지 헤더 또는 트레일러인지 모르기 때문에 캡슐화라고 합니다.
2.4 OSI 모델의 계층 구조
📡 물리층 (Physical Layer)
물리 매체를 통하여 비트 스트림(bit stream)을 전달하는 데 필요한 기능들을 조정합니다.
1. 인터페이스와 매체의 물리적 특성
- 장치와 전송 매체 간의 인터페이스 특성을 규정
- 전송 매체의 유형도 함께 규정
2. 비트의 표현 (Bit Representation)
- 데이터 구성: 해석되지 않은 비트 스트림 (0과 1의 연속)
- 신호 변환: 전송을 위해 비트를 전기적 또는 광학적 신호로 부호화
- 부호화 방식: 0과 1이 신호로 변환되는 방법을 규정
3. 데이터 전송률 (Data Rate)
- 전송률 정의: 초당 전송되는 비트의 수 (bps)
- 비트 지속시간: 각 비트가 유지되는 시간(비트 주기) 규정
4. 비트 동기화 (Bit Synchronization)
- 송신자와 수신자가 동일한 비트율 사용
- 비트 레벨에서의 동기화 필요
- 송신자와 수신자의 시계 동기화 필수
5. 회선 구성 (Line Configuration)
- 점-대-점 (Point-to-Point): 두 장치가 전용 링크로 직접 연결
- 다중점 (Multipoint): 하나의 링크를 여러 장치가 공유
6. 물리적 접속형태 (Physical Topology)
접속형태 특징
그물형 (Mesh) | 모든 장치가 다른 모든 장치와 연결 |
성형 (Star) | 모든 장치가 중앙 장치를 통해 연결 |
링형 (Ring) | 각 장치가 이웃 장치와 연결되어 링 구성 |
버스형 (Bus) | 모든 장치가 공통 링크상에 연결 |
7. 전송 모드 (Transmission Mode)
📡 단방향 (Simplex)
- 특징: 일방향 통신만 가능
- 동작: 한 장치는 송신만, 다른 장치는 수신만
🔄 반이중 (Half-Duplex)
- 특징: 양방향 통신 가능하나 동시 불가
- 동작: 두 장치 모두 송신/수신 가능하지만 한 번에 하나만
⚡ 전이중 (Full-Duplex)
- 특징: 양방향 동시 통신 가능
- 동작: 두 장치가 동시에 송신과 수신 모두 수행
🔗 데이터 링크층 (Data Link Layer)
물리층에 있는 전송 설비를 신뢰할 수 있는 링크로 변환합니다. 이는 상위 계층인 네트워크층에게 오류 없는 물리층으로 보이도록 합니다.
5가지 주요 기능
1. 프레임 구성 (Framing)
- 기능: 네트워크층으로부터 받은 비트 스트림을 프레임(Frame) 단위로 분할
- 목적: 데이터를 관리 가능한 단위로 구성
2. 물리 주소지정 (Physical Addressing)
- 헤더 추가: 프레임에 송신자 및 수신자 정보를 포함한 헤더 추가
- 로컬 네트워크: 같은 네트워크 내에서는 최종 목적지 주소 사용
- 원격 네트워크: 다른 네트워크로 전송 시, 다음 홉(연결 장치)의 주소 사용
3. 흐름 제어 (Flow Control)
- 문제 상황: 수신자의 처리 속도 < 송신자의 전송 속도
- 해결 방법: 흐름 제어 메커니즘으로 데이터 전송률 조절
- 목적: 수신자 버퍼 오버플로우 방지
4. 오류 제어 (Error Control)
- 오류 탐지: 손상된 프레임과 손실된 프레임 검출
- 오류 복구: 탐지된 오류 프레임의 재전송 요청
- 중복 제거: 중복된 프레임 인식 및 제거
- 신뢰성 향상: 물리층의 신뢰성 보완
5. 접근 제어 (Access Control)
- 상황: 2개 이상의 장치가 같은 링크에 연결된 경우
- 기능: 특정 시간에 어느 장치가 링크 제어권을 가질지 결정
- 목적: 충돌 방지 및 공정한 매체 접근 보장
🔄 계층 간 관계
네트워크층 ↕️ 데이터 링크층 ↕️ 물리층
↑ ↑ ↑
패킷 프레임 비트
데이터 링크층은 상위층(네트워크층)과 하위층(물리층) 사이의 신뢰성 있는 다리 역할을 수행합니다.
🌐 네트워크층 (Network Layer)
다중 네트워크(링크)를 통하여 전달되는 발신지-대-목적지 전달을 책임집니다. 네트워크층은 데이터링크층에서 보내는 패킷이 발신 지점에서 최종 목적지까지 갈 수 있도록 보장합니다.
주요 기능
📍 논리 주소지정 (Logical Addressing)
- 물리 주소의 한계: 데이터 링크층의 물리 주소는 내부 네트워크에서만 유효
- 논리 주소의 필요성: 패킷이 네트워크 범위를 벗어날 때 전역 주소 체계 필요
- 헤더 추가: 상위 계층 패킷에 송신자와 수신자의 논리 주소 포함
- 예시: IP 주소 (IPv4, IPv6)
🗺️ 경로지정 (Routing)
- 목적: 독립된 네트워크들을 연결하여 인터네트워크 구성
- 연결 장치: 라우터(Router) 또는 스위치(Switch) 사용
- 기능: 패킷을 최종 목적지까지 경로지정 및 스위칭
- 스케일: 소규모 네트워크 → 대규모 네트워크 확장
🚛 전송층 (Transport Layer)
전체 메시지의 프로세스-대-프로세스 전달을 책임집니다.
5가지 주요 기능
1. 서비스 지점 주소지정 (Service Point Addressing)
- 배경: 컴퓨터는 동시에 여러 프로그램을 실행
- 필요성: 발신지 프로세스 ↔ 목적지 프로세스 간 정확한 전달
- 해결책: 포트 주소(Port Address) 또는 서비스 지점 주소 사용
- 역할 분담:
- 네트워크층: 정확한 컴퓨터까지 패킷 전달
- 전송층: 해당 컴퓨터의 정확한 프로세스에게 메시지 전달
2. 분할과 재조립 (Segmentation & Reassembly)
- 분할: 메시지를 전송 가능한 세그먼트 단위로 분할
- 순서 번호: 각 세그먼트에 순서 번호 부여
- 재조립: 목적지에서 순서 번호를 이용해 원본 메시지로 재조립
- 장점: 패킷 손실이나 순서 변경 상황에서도 정확한 복원 가능
3. 연결 제어 (Connection Control)
비연결형 (Connectionless)
- 각 세그먼트를 독립적인 패킷으로 처리
- 목적지 전송층에 바로 전달
연결형 (Connection-oriented)
- 데이터 전송 전에 연결 설정
- 모든 데이터 전송 후에 연결 종료
- 신뢰성 있는 데이터 전송 보장
4. 흐름 제어 (Flow Control)
- 범위: 데이터 링크층과 달리 종단 대 종단 흐름 제어
- 목적: 송신 프로세스와 수신 프로세스 간 데이터 전송률 조절
- 특징: 단일 링크가 아닌 전체 경로에서의 흐름 제어
5. 오류 제어 (Error Control)
- 범위: 단일 링크가 아닌 프로세스 대 프로세스 오류 제어
- 보장: 전체 메시지가 오류 없이 수신 측 전송층에 도착
- 오류 유형: 손상, 손실, 중복 패킷 처리
- 복구 방법: 재전송을 통한 오류 교정
💬 세션층 (Session Layer)
대화 제어기입니다. 통신 시스템간에 상호 대화를 설정하고, 유지하고, 동기화합니다.
🗣️ 대화제어
두 프로세스 간에 반이중이나 전이중으로 통신하는 것을 허용합니다.
⏰ 동기화
데이터 스트림에 확인점을 추가하는 것을 허용합니다.
🔄 표현층 (Presentation Layer)
두 시스템 간에 교환되는 정보의 구문과 의미와 관련이 있습니다.
3가지 주요 기능
1. 변환 (Translation)
문제 상황
- 프로세스 간 정보 교환: 문자 스트링, 숫자 등 다양한 형식
- 전송 시 비트 스트림으로 변환 필요
- 서로 다른 컴퓨터 = 서로 다른 부호화 시스템
해결 방법
- 송신 측: 송신자 의존 형식 → 공통 형식으로 변환
- 수신 측: 공통 형식 → 수신자 의존 형식으로 변환
- 결과: 서로 다른 부호화 방법 간 상호 운용성 보장
2. 암호화 (Encryption)
목적
- 프라이버시 보장: 중요한 정보의 안전한 전달
과정
- 암호화: 송신지에서 원본 정보를 다른 형식으로 변환
- 전송: 변환된 메시지를 네트워크를 통해 전송
- 복호화: 수신지에서 메시지를 원본 형식으로 복원
3. 압축 (Compression)
목적
- 데이터 크기 감소: 정보에 포함된 비트 수 줄이기
중요성
- 멀티미디어 전송에 특히 중요
- 적용 대상: 텍스트, 오디오, 비디오 등
효과
- 전송 시간 단축
- 네트워크 대역폭 절약
- 저장 공간 효율성 증대
💻 응용층 (Application Layer)
사용자(사람 또는 소프트웨어)가 네트워크에 접속하는 것을 가능하게 합니다.
4가지 서비스
🖥️ 네트워크 가상 터미널
- 사용자에게 원격 호스트에 로그온을 허용하는 물리적인 터미널의 소프트웨어 버전
📁 파일 전송, 접근 관리
- 사용자에게 로컬 컴퓨터에서 사용하기 위해, 원격 컴퓨터로부터 파일을 검색하기 위하여, 자체적으로 원격 컴퓨터에 있는 파일을 관리하거나 제어하기 위하여 원격 호스트에 있는 파일 접근(데이터를 읽거나 변경하기 위하여)을 허용
📧 전자 우편 서비스
- 전자우편을 전달하거나 저장하는 것을 제공
📚 디렉토리 서비스
- 분산 데이터베이스 자원을 제공하고 여러 가지 객체와 서비스들에 대한 글로벌 정보에 대한 접근을 제공
2.5 OSI 계층의 요약
3. TCP/IP 프로토콜
TCP/IP 프로토콜은 OSI 기본 참조모델보다 먼저 개발되었으며 OSI 모델의 최상위 세 계층(세션, 표현, 응용)은 TCP/IP에서 응용층이라는 하나의 계층으로 표현됩니다.
3.1 OSI와 TCP/IP 그룹 간 비교
기본적인 1 ~ 4계층은 모두 같지만 5,6,7계층은 하나의 응용계층으로 통합된 것을 볼 수 있습니다.
3.2 TCP/IP 프로토콜의 계층들
📡 물리층
- 모든 표준과 기술적인 프로토콜을 지원합니다.
- 통신 단위는 단일 **비트(bit)**입니다
- 두 노드 간에 연결이 설정되면 비트 스트림이 연결을 따라 전달하게 됩니다.
- 물리층은 각 비트를 개별적으로 처리합니다.
이 시점에서는 두 대의 컴퓨터가 라우터 R1, R3, R4를 통하여 서로 통신하기 위한 가장 효율적인 방법을 알게된다고 가정합니다.
만약 노드가 n개의 링크에 연결되어 있다면 각 링크 당 하나씩 n개의 물리층 프로토콜이 필요합니다.
🔗 데이터 링크층
- 이 레벨에서 통신은 두 홉이나 노드 간입니다.
- 통신 단위는 프레임이라는 패킷입니다.
- 프레임은 네트워크층으로부터 받은 데이터에 헤더가 더해지고 트레일러가 더해짐으로 캡슐화된 패킷입니다.
- 헤더는 프레임의 발신지와 목적지를 포함합니다.
컴퓨터 A와 라우터 R1 간에 이동하는 프레임은 라우터 R1과 R3 간에 이동하는 프레임과 다르다는 것을 확인할 수 있습니다. 다른 이유는 링크 1과 링크 3이 서로 다른 프로토콜을 사용하게 되면 서로 다른 형식의 프레임이 요구되기 때문입니다.
🌐 네트워크층
네트워크 층에서, TCP/IP는 인터넷 프로토콜(IP)를 지원합니다. 아울러 IP는 3개의 지원 프로토콜(ARP, ICMP, IGMP)을 포함합니다.
1. 인터넷 프로토콜(IP)
- 각기 개별적으로 전송되는 데이터그램이라는 패킷 형태로 데이터를 전송합니다.
- 경로를 기록하지 않고, 목적지에 도착한 데이터그램을 재전송하는 기능도 제공하지 않습니다.
2. 주소 변환 프로토콜(ARP)
- IP주소를 물리적인 주소로 변환해줍니다.
3. 인터넷 제어 메시지 프로토콜(ICMP)
- 송신자에게 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 메커니즘입니다.
네트워크층의 통신은 종단-대-종단입니다. 따라서 컴퓨터 A에서 보내지는 데이터는 컴퓨터 B에 전송됩니다. 실제 통신은 물리레벨에서 이루어집니다.
3.3 전송층
TCP/IP에서 전송층은 3개의 프로토콜(TCP, UDP, SCTP)을 갖습니다.
IP는 호스트-대-호스트 프로토콜로서 패킷을 하나의 물리적인 장치에서 다른 물리적인 장치로 전달할 수 있는 것을 의미합니다.
UDP, TCP, SCTP는 하나의 프로세스에서 다른 프로세스로 메시지를 전달하는 기능을 갖는 전송레벨 프로토콜입니다.
📦 사용자 데이터그램 프로토콜(UDP)
- 포트 주소, 검사합 오류 제어, 상위 계층으로부터 받은 데이터 길이 추가
- 프로세스-대-프로세스 프로토콜
🔄 전송 제어 프로토콜(TCP)
- 데이터 스트림을 세그먼트라는 작은 단위로 나누고 수신된 세그먼트에 대한 확인응답 번호와 함께 수신 후에 순서를 맞추기 위한 순서 번호를 포함
🌊 스트림 제어 전송 프로토콜(SCTP)
- UDP와 TCP의 장점을 결합한 전송 제어 프로토콜
전송층은 A에서 B까지 사용자 데이터그램, 패킷, 세그먼트라는 전체 메시지를 전달하는 책임이 있습니다.
💻 응용층
OSI 모델의 세션, 표현, 그리고 응용층을 합친 것과 같습니다.
전자 우편, 파일 전송, WWW 등의 많은 프로토콜이 규정되어 있습니다.
4. 주소 지정
물리 주소, 논리 주소, 포트 주소, 응용-지정 주소가 있습니다.
[사진] - 4가지 주소 체계를 보여주는 그림
4.1 물리 주소
링크 주소로 알려진 물리 주소는 LAN이나 WAN에서 정의된 노드의 주소입니다.
- 데이터 링크층에 의해 사용되는 프레임에 포함됩니다.
- 48비트(6바이트)의 물리주소입니다.
📡 물리 주소의 종류
🎯 유니캐스트, 멀티캐스트, 브로드캐스트 물리 주소
- 유니캐스트: 단일 수신자
- 멀티캐스트: 그룹 수신자
- 브로드캐스트: 네트워크의 모든 시스템이 수신자
4.2 논리 주소
기존 물리적인 네트워크와는 독립적인 전 세계적인 통신 서비스를 위해 필요합니다.
- 현재 인터넷에 연결된 호스트를 유일하게 식별할 수 있는 32비트 주소 체계를 사용합니다.
- 인터넷상의 두 호스트는 동일한 IP주소를 사용할 수 없습니다.
프레임은 LAN 1에 있는 모든 장치가 받지만, 자신의 물리 주소와 일치하는 프레임이 있는 목적지 물리 주소를 찾은 후 라우터 1을 제외하고는 모두 폐기합니다. 라우터는 논리 목적지 주소 P를 읽기 위하여 프레임에서 패킷의 캡슐을 벗깁니다.
4.3 포트 주소
동시에 발생되는 프로세스들을 위해 서로 다른 프로세스를 식별하는 방법이 필요하기 때문에 사용합니다.
- 주소 길이는 16비트입니다.
4.4 응용 지정 주소
📧 전자우편 주소와 🌐 URL이 존재합니다.
'CS 공부 > 네트워크' 카테고리의 다른 글
Wireshark로 배우는 컴퓨터네트워크 [6장 와이어샤크 개요 및 설치와 실행] (0) | 2025.05.31 |
---|---|
Wireshark로 배우는 컴퓨터네트워크 [5장 IP 주소] (0) | 2025.05.31 |
Wireshark로 배우는 컴퓨터네트워크 [4장 IP 주소] (0) | 2025.05.31 |
Wireshark로 배우는 컴퓨터네트워크 [3장 네트워크층 개요] (0) | 2025.05.31 |
Wireshark로 배우는 컴퓨터 네트워크 [1장 개요] (0) | 2025.05.25 |