본문 바로가기
CS/정보통신망

OSI 참조 모델 및 TCP/IP 기본 구조 및 특징

by Renechoi 2024. 5. 17.

1. OSI 참조 모델 

 

1) OSI 모델의 목적

OSI 모델은 개방형 시스템의 상호접속을 위한 참조 모델이다. 

 

ISO 7498(1983년)에 의해 표준으로 제정되었으며, 이기종 시스템 간의 통신이 가능하도록 표준을 설정하는 것을 목적으로 한다. 

 

개방형 시스템이란, 다양한 하드웨어와 소프트웨어 시스템이 서로 다른 환경에서도 통신할 수 있도록 지원하는 시스템을 의미한다. OSI 모델은 이러한 시스템 간 상호접속을 위해 필요한 표준을 정의하고, 시스템 간의 원활한 통신을 보장하기 위해 개발되었다.


2) OSI 모델의 계층

OSI 참조 모델은 7개의 계층으로 나뉘어 있다. 각 계층은 특정한 네트워크 기능을 담당하며, 서로 독립적으로 동작한다. 

 

 

중계 개방 시스템 (Relay Open System)

 

모든 개방 시스템이 출발지와 목적지가 되는 것은 아니며, 중계 역할만 하는 시스템이 존재할 수도 있다. 이를 중계 개방 시스템이라 정의한다.  중계 개방 시스템은 OSI 모델의 계층 구조를 통해 시스템 간의 원활한 통신을 지원한다.

- 인터페이스: 각 계층은 인접한 계층 간의 인터페이스를 통해 데이터를 주고받으며, 이 인터페이스는 계층 간의 기능과 서비스를 잘 정의하여 상호작용을 용이하게 한다.
- 서비스 접근점 (Service Access Point, SAP): 상위 계층은 SAP를 통해 하위 계층의 서비스에 접근하며, 이는 계층 간의 데이터를 전달하는 중요한 역할을 한다.
- 독립성: 각 계층은 독립적으로 동작하므로, 한 계층의 변화가 다른 계층에 영향을 미치지 않는다. 이러한 구조는 시스템의 유연성을 높이고, 다양한 네트워크 환경에서의 적용을 가능하게 한다.

 

 

 

3) 각 계층이 필요한 이유

1. 물리 계층 (Physical Layer):
   - 물리 계층은 다양한 물리적 매체를 사용하여 종단 간을 연결하는 구조가 필요하기 때문에 존재한다. 이를 통해 서로 다른 제어 절차에 의해 종단 간을 연결할 수 있다.

2. 데이터링크 계층 (Data Link Layer):
   - 데이터링크 계층은 전화회선, 광섬유 등의 물리적 통신 매체를 사용할 경우에 발생하는 오류를 최소화하고, 서로 다른 데이터링크 제어 절차를 조정하는 역할을 한다.

3. 네트워크 계층 (Network Layer):
   - 네트워크 계층은 전송 주체(송신자, 수신자) 사이에 중간 노드가 있는 경우에도 전송 주체 간의 연결 통로(네트워크 연결)를 제공해야 한다. 이를 통해 중간 노드를 거쳐 데이터가 목적지에 도달할 수 있다.

4. 전송 계층 (Transport Layer):
   - 전송 계층은 발신지 시스템에서 목적지 시스템까지의 신뢰성 있는 데이터 이동을 제어할 필요가 있다. 따라서 데이터의 흐름을 조절하고 오류를 검출 및 수정하는 기능을 제공한다.

5. 세션 계층 (Session Layer):
   - 세션 계층은 대화를 조직하고 동기화하거나 데이터 교환을 관리할 필요가 있다. 이를 통해 통신 세션을 설정하고 유지하며, 세션 간의 데이터 교환을 효과적으로 조정할 수 있다.

6. 표현 계층 (Presentation Layer):
   - 표현 계층은 응용 프로그램의 구조화된 데이터를 표현하고 조정하는 기능이 필요하다. 이를 통해 데이터 형식의 차이를 해결하고, 데이터의 인코딩 및 디코딩을 수행한다.

7. 응용 계층 (Application Layer):
   - 응용 계층은 응용 프로그램을 위한 프로토콜을 함께 관리할 필요가 있다. 이를 통해 사용자와 상호 작용하는 응용 프로그램의 기능을 지원하고, 네트워크 서비스를 제공한다.

 

 

 

 

4) 계층의 분리 원칙

 

1. 계층 수 최소화:
   - 너무 많은 계층으로 분리함으로써 각 계층에 대한 설명과 이들에 대한 조합이 필요 이상으로 많지 않아야 한다.

2. 서비스 경계 설정:
   - 서비스의 양이 적고 경계를 중심으로 최소의 상호 작용이 일어나도록 경계를 정해야 한다.

3. 기술적 필요성:
   - 수행하는 일의 측면에서나 필요로 하는 기술의 측면에 있어서 명백히 서로 다른 기능들을 다룰 수 있도록 계층을 설정한다.

4. 비슷한 기능 그룹화:
   - 비슷한 기능들은 같은 계층에 존재하도록 한다.

5. 과거 경험 기반 설정:
   - 과거의 경험에 의해 성공적이라 판단되는 곳에 경계를 설정한다.

6. 기능 통합:
   - 쉽게 세분화되는 기능을 하나의 계층으로 한다.

7. 표준화된 인터페이스:
   - 필요한 경우 표준화된 인터페이스를 가질 수 있는 곳에 경계를 설정한다.

8. 데이터 조작 수준:
   - 데이터에 대한 조작, 즉 구문(syntax), 의미(semantic) 등의 추상적 개념에 대해 서로 다른 수준을 필요로 하는 곳에서 계층을 설정한다.

9. 상위/하위 계층 분리:
   - 각 계층은 단지 상위 계층과 하위 계층에 경계를 갖도록 한다. 즉, 다른 계층과는 전혀 무관하도록 한다.

 

 

 

5) 캡슐화

  캡슐화는 데이터에 각 계층의 제어 정보를 추가하는 것을 의미한다. 이 과정에서 서비스 데이터 단위(SDU, Service Data Unit)와 프로토콜 제어 정보(PCI, Protocol Control Information)가 결합하여 프로토콜 데이터 단위(PDU, Protocol Data Unit)를 형성한다.

 


캡슐화 과정

  - 응용 A에서 데이터가 응용 계층에서 보내지면 응용 계층에서는 상대방 응용 계층에서 필요로 하는 제어 정보를 담은 헤더(Application Header: AH)를 데이터에 붙여서 캡슐화한 APDU(Application PDU)를 표현 계층으로 보낸다.
  - 표현 계층에서는 APDU를 하나의 데이터로 받아서 상대방 표현 계층에서 필요로 하는 제어 정보를 담은 헤더(Presentation Header: PH)를 붙여 캡슐화한 PPDU(Presentation PDU)를 세션 계층으로 보낸다.
  - 이하의 계층에서도 마찬가지로 캡슐화 과정이 이루어진다.

 

역캡슐화 과정

반대로 최하위 물리 계층에서 최상위 응용 계층까지의 데이터 전보는 역캡슐화(decapsulation)를 통해 이루어진다. 물리 계층의 비트 스트림이 데이터 링크 계층의 데이터로 올라오면 프레임이라는 단위로 나뉘고, 프레임의 헤더 부분의 정보를 읽어 적절한 기능을 수행한 후 헤더가 제거된 데이터 부분만 네트워크 계층으로 올라간다. 이후 계층에서도 같은 방식으로 역캡슐화 과정을 거쳐 최상위 응용 계층까지 메시지가 전달된다.

 

PDU 형성

각 계층의 제어 정보가 추가된 데이터가 PDU를 형성하며, 각 계층은 데이터 전송을 위해 하위 계층에 필요한 제어 정보를 추가하고, 상위 계층에 전달할 데이터 단위를 만든다. 이는 각 계층이 독립적으로 작동할 수 있도록 하며, 계층 간 상호작용을 통해 데이터 통신이 이루어진다.

 

 

 

 

2. 인터넷 통신망 구조 (TCP/IP)

 

1) TCP/IP의 등장

Internetworking Technology

- 네트워크들을 상호 연결하는 기술
- 서로 다른 네트워크에 연결되어 있는 컴퓨터 사이의 통신이 가능하게 함
- DoD ARPA(Advanced Research Project Agency)에서 개발

 

Transmission Control Protocol/Internet Protocol

- TCP/IP Internet Protocol Suite
- 1970년대 Robert Kahn과 Vinton Cerf 등에 의해 개발
- 1982년 미국 컴퓨터 네트워킹의 표준으로 제정

 

TCP/IP의 역할 및 중요성

- TCP/IP는 각종 네트워크 간의 통신 프로토콜로서 사용됨
- TCP/IP 기술은 가정과 대학 캠퍼스, 학교, 기업, 정부 연구 기관 등에서 사용됨
- ARPA와 NSF, DoE, DoD, HHS, NASA 등 주요 연구 기관들이 TCP/IP를 이용하여 자신들의 연구 사이트를 연결
- ARPA/NSF 인터넷, TCP/IP 인터넷 또는 글로벌 인터넷으로 불리는 인터넷은 전 세계 규모의 인터넷 환경을 형성하고, 정보를 공유하는 데 사용됨

 

2) TCP/IP 기본 구조

- TCP/IP는 OSI(Open System Interconnection) 참조 모델이 제정되기 전에 개발되었으며, OSI의 7계층을 따르지 않고 미국 국방성의 4 계층으로 구성된 DoD 모델에 기반
- TCP/IP는 단일 프로토콜이 아닌 여러 프로토콜 집합으로 구성됨
- OSI 참조 모델의 세션 계층과 표현 계층이 별도로 존재하지 않고 상위의 응용 계층에서 이들 계층의 기능을 제공함

 

 

TCP/IP 주요 특징

1. 연결형 서비스 및 비연결형 서비스 제공
2. 패킷 교환
3. 동적 경로 할당
4. 응용 계층 프로토콜의 표준화 -> 공통의 응용 프로그램 제공 

 📌 CASE (Common Application Service Element): 응용에 무관하게 개방 시스템 접속을 위한 방법을 제공함

 

 

TCP/IP 계층의 역할

1. 데이터 링크 계층:
   - 네트워크 인터페이스: 네트워크 인터페이스 카드와 디바이스 드라이버를 통해 데이터 통신 처리를 담당
   - 대표적 프로토콜:
     - ARP (Address Resolution Protocol): IP 주소 → 물리 주소
     - RARP (Reverse ARP): 물리 주소 → IP 주소

2. 인터넷 계층:
   - 패킷 이동 처리: 네트워크 상에서 패킷의 이동을 처리하고 라우팅 등의 기능을 수행
   - 대표적 프로토콜:
     - IP (Internet Protocol): 패킷의 주소 지정 및 라우팅을 담당
     - ICMP (Internet Control Message Protocol): 네트워크 진단과 오류 메시지 전달
     - IGMP (Internet Group Management Protocol): 멀티캐스트 그룹 관리를 담당

3. 전송 계층:
   - 데이터 전송 서비스: 호스트 간 데이터 전송을 위한 서비스 제공
   - 대표적 프로토콜:
     - TCP (Transmission Control Protocol): 연결 지향적 서비스로 신뢰성 있는 데이터 전송 보장
     - UDP (User Datagram Protocol): 비연결 지향적 서비스로 빠른 데이터 전송을 제공하지만 신뢰성은 보장하지 않음

4. 응용 계층:
   - 응용 프로세스 프로토콜: 다양한 네트워크 응용 프로그램을 위한 프로토콜을 제공
   - 대표적 프로토콜:
     - TCP 이용:
       - FTP (File Transfer Protocol): 파일 전송 프로토콜
       - SMTP (Simple Mail Transfer Protocol): 이메일 전송 프로토콜
       - Telnet: 원격 로그인 프로토콜
     - UDP 이용:
       - TFTP (Trivial FTP): 간이 파일 전송 프로토콜
       - DNS (Domain Name System): 도메인 이름 시스템
       - BOOTP (Bootstrap Protocol): 부트스트랩 프로토콜
     - IP 직접 이용:
       - traceroute: 경로 추적 프로그램
     - ICMP 직접 이용:
       - ping: 네트워크 연결 상태 확인 프로그램

이와 같이 TCP/IP는 각각의 계층이 서로 독립적으로 작동하며, 필요한 기능을 수행함으로써 전체 네트워크 시스템이 효율적으로 운영되도록 한다.

 

3) 인터넷 주소

호스트 식별

- 인터넷에 연결되어 있는 호스트 식별을 위해 3가지 종류의 주소가 사용된다.

주소의 종류

1. 물리주소
   - 하나의 네트워크 내에서 호스트를 식별하는 물리적 하드웨어 주소로서, 네트워크 인터페이스 주소를 의미한다.
   
2. 인터넷 주소 (IP 주소)
   - 서로 다른 네트워크 간에 호스트를 식별하는 논리 주소로 사용된다.
   - IP 주소는 32비트(4바이트)로 구성되며, 각 바이트는 네트워크 식별자와 호스트 식별자로 나뉜다.
   - 클래스별 주소 형태:
     - 클래스 A: 네트워크 식별자가 1바이트, 호스트 식별자가 3바이트
     - 클래스 B: 네트워크 식별자가 2바이트, 호스트 식별자가 2바이트
     - 클래스 C: 네트워크 식별자가 3바이트, 호스트 식별자가 1바이트
     - 클래스 D: 멀티캐스트 주소
     - 클래스 E: 예약된 주소
   - IPv6에서는 128비트 주소 체계를 사용하며, 2^128개의 주소를 제공한다.

3. 포트 주소
   - 프로세스를 식별하는 포트 번호로, TCP 및 UDP에 의해 응용 프로그램을 식별한다.
   - 2바이트(16비트)로 구성되며, 각 포트 번호는 특정 서비스나 응용 프로그램과 연관된다.
   - 포트 번호의 범위:
     - 0: 사용되지 않음.
     - 1~255: well-known service.
     - 256~1023: 기타 well-known service.
     - 1024~4999: 임시 client 포트.
     - 5000~65535: 사용자 정의 server 포트.

 

 


클래스별 인터넷 주소 범위

- 클래스 A: 0.0.0.0 ~ 127.255.255.255
- 클래스 B: 128.0.0.0 ~ 191.255.255.255
- 클래스 C: 192.0.0.0 ~ 223.255.255.255
- 클래스 D: 224.0.0.0 ~ 239.255.255.255 (멀티캐스트)
- 클래스 E: 240.0.0.0 ~ 255.255.255.255 (예약)

 


사설 네트워크 주소

- 특정 네트워크 혹은 기관 내에서만 사용되는 주소로, 외부 네트워크로 전송되지 않는다.
- 사설 네트워크 주소 범위:
  - 클래스 A: 10.0.0.0 ~ 10.255.255.255
  - 클래스 B: 172.16.0.0 ~ 172.31.255.255
  - 클래스 C: 192.168.0.0 ~ 192.168.255.255

 

 


서브네팅

- TCP/IP 주소 체계에서 서브네팅은 물리적 네트워크와 호스트 모두를 효과적으로 관리하기 위한 방법으로, 큰 네트워크를 작은 네트워크로 나누는 것을 말한다.
- 서브넷 식별자:
  - 일반적으로 클래스 B 주소의 호스트 식별자에 서브넷 식별자(subnet ID)를 추가하여 작은 네트워크로 분리
  - 서브넷 마스크를 사용하여 네트워크 식별자와 호스트 식별자의 경계를 나누기 위한 비트 마스크를 설정한다

 

 

 

4) 캡슐화

- 데이터에 각 계층의 제어 정보를 추가하는 것

- 서비스 데이터 단위(SDU) + 프로토콜 제어 정보(PCI) => 프로토콜 데이터 단위(PDU)

  
캡슐화 과정

1. 사용자 데이터: 사용자가 전송하려는 데이터가 생성된다.
2. TCP 세그먼트: TCP 계층에서 사용자 데이터에 TCP 헤더가 추가되어 TCP 세그먼트가 된다.
3. IP 데이터그램: IP 계층에서 TCP 세그먼트에 IP 헤더가 추가되어 IP 데이터그램이 된다.
4. 이더넷 프레임: 데이터 링크 계층에서 IP 데이터그램에 이더넷 헤더와 트레일러가 추가되어 이더넷 프레임이 된다.
5. 물리 계층: 최종적으로 이더넷 프레임이 물리 계층을 통해 전송된다.


역캡슐화(Decapsulation)

  - 수신 측 시스템의 해당 계층에서 수행되는 캡슐화의 반대 과정
  - 물리 계층 이외의 모든 계층에서 수행됨

 


TCP/IP 프로토콜 스택에서 데이터 캡슐화

- 데이터가 각 계층을 통해 전송되며, 각 계층은 데이터에 필요한 제어 정보를 추가한다.

 


각 계층별 PDU

1. TCP 세그먼트 (4계층 PDU): 데이터의 그룹화
2. IP 데이터그램 (3계층 PDU): 출발지/목적지 주소의 추가(논리 주소인 IP 주소)
3. 이더넷 프레임 (2계층 PDU): 출발지/목적지 주소의 추가(물리 주소인 MAC 주소)
4. 비트 (1계층 PDU): 2진 전송(0과 1)


 

 

 

 


 

참고자료: 정보통신망 | 손진곤 (지은이) 한국방송통신대학교출판문화원 

 

반응형