OSI 참조 모델의 개요

통신 기술의 도입과 통신 기능의 확장을 쉽게 하려고 프로토콜을 몇 개의 계층으로 나누는 것을 ‘계층화’라 하고, 통신 기능을 7 계층으로 분류하여 각 계층마다 프로토콜을 규정한 규격을 OSI(Open System Interconnection)’ 모델이라고 한다.

 

물리 계층(Physical Layer)

  • 두 시스템 간에 데이터를 전송하려고 링크를 활성화하고 관리하는 전기적·기계적·절차적·기능적 특성 등을 정의
  • 허브, 라우터, 네트워크 카드, 케이블 등 전송매체를 통해 비트(bit)를 전송

특성

  • OSI 참조 모델 7 계층 중 물리 계층은 최하위 계층인 첫 번째 계층으로, 상위 계층에서 전송된 데이터를 물리매체를 통해 다른 시스템에 전기적 신호로 전송
  • LAN 카드, 케이블, 허브, 라우터 등 물리적인 것과 데이터 전송에 사용하는 전압 등 기본적인 것이 물리계층에 속함

데이터 단위

  • 송신 측의 물리 계층은 데이터 링크 계층에서 0과 1로 구성된 비트열의 데이터(프레임)를 받아 전기적 신호로 변환한 후 전송매체를 통하여 수신 측에 전송
  • 수신 측의 물리 계층은 송신 측에서 받은 전기 신호를 0과 1로 구성된 비트열로 복원하여 수신 측의 데이터 링크 계층에 전송

 

데이터 링크 계층(Data Link Layer)

  • 물리적 링크를 이용하여 신뢰성 있는 데이터를 전송하는 계층으로, 네트워크를 통해 데이터를 전송할 때 전송로 역할
  • 비트를 프레임이라는 논리적 단위로 구성하는데, 전송하려는 데이터에 인접하는 노드(시스템)의 주소가 더해짐
  • 주소는 최종 수신지의 주소가 아니라 전송되는 다음 노드의 주소

특성

  • OSI 참조 모델 7계층 중 데이터 링크 계층은 하위 계층인 두 번째 계층으로, 물리 계층의 바로 위에 위치
  • 시스템 간에 오류 없이 데이터를 전송하려고 네트워크 계층에서 받은 데이터 단위(패킷)를 프레임으로 구성하여 물리 계층으로 전송

규칙

  • 데이터 링크 계층은 네트워크 접속 장치 간에 신호를 주고받는 규칙을 정하는 계층
  • 가장 일반적으로 사용되는 규칙은 이더넷으로, 이더넷은 허브와 같은 네트워크 접속 장치에 연결된 컴퓨터와 데이터를 전송받을 때 사용

이더넷 헤더

  • 이더넷 헤더는 수신지 MAC 주소(6바이트), 송신지 MAC 주소(6바이트), 유형(2바이트)의 총 14바이트로 구성
  • 이더넷 헤더 외에 데이터 뒤에 추가하는 트레일러는 FCS [Frame Check Sequence]라고 하며, 이는 데이터 송신 도중에 오류가 발생하는지 확인하는 용도로 사용
  • 이처럼 이더넷 헤더와 트레일러가 추가된 데이터를 프레임이라고 함

 

네트워크 계층

필요성

  • 데이터 링크 계층은 이더넷 규칙을 기반으로 데이터의 전송을 담당하며, 이 규칙에 따라 같은 네트워크에 있는 컴퓨터에는 데이터를 전송할 수 있지만 다른 네트워크나 인터넷으로는 데이터를 전송 불가능
  • 즉 수많은 네트워크가 연결된 환경에서는 데이터 링크 계층의 기능만으로는 다른 네트워크로 데이터를 전송하기 어려움
  • 이때 서로 다른 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층이고, 네트워크 계층을 통해 다른 네트워크로 데이터를 전송하려면 라우터라는 네트워크 접속 장치가 필요
  • LAN에서는 MAC 주소만으로도 통신이 가능하지만, 다른 네트워크에는 데이터를 전송 불가능
  • 따라서 MAC 주소가 아닌, 네트워크를 식별할 수 있는 주소가 필요한데 이를 IP 주소라고 함

네트워크 계층의 역할

  • 네트워크 계층은 데이터 전송과 경로 선택 기능을 제공하고, 라우팅 프로토콜을 사용하여 최적의 경로를 선택
  • 데이터를 전송할 수신 측의 주소를 찾고 수신된 데이터의 주소를 확인하여 자신의 것이면 전송 계층으로 전송
  • OSI 참조 모델 7계층 중 네트워크 계층은 세 번째 계층으로, 패킷을 송신 측에서 수신 측으로 전송

IP 프로토콜

  • IP는 컴퓨터 간에 통신하기 위해 TCP/IP 프로토콜의 네트워크 계층에서 사용하는 프로토콜
  • IP는 레이어3 스위치나 라우터 등의 중계 장치를 사용하여 라우팅을 하는 기능이 있음
  • TCP는 오류가 발생하면 데이터를 재전송할 수 있는 신뢰성 있는 연결 지향형 프로토콜인 반면, IP는 데이터가 제대로 수신되었는지 확인하는 기능이 없는 비연결형 프로토콜
  • 즉 IP는 최선을 다해 패킷을 수신지까지 전송하지만 전송 완료를 보장하지는 않음
  • 비연결형 데이터그램 프로토콜은 각 데이터그램을 독립적으로 처리하고 수신지까지 다른 경로로 전송 가능
  • 여러 송신지에 데이터그램을 보내면 순서가 뒤바뀌어 도달하기도 하고 일부는 전송 도중 분실 또는 훼손되기도 함
  • 통신 접속 절차나 패킷 전체의 내용이 정상인지는 상위 계층인 TCP에서 확인

연결형 서비스

  • 송수신자 간에 논리적인 연결을 확립하고 데이터를 전송하는 방법
  • 패킷 순서가 서로 맞지 않을 위험성이 낮고 오류가 발생하면 재전송하기 때문에 신뢰성이 있음
  • 연결형 서비스는 다음 계층인 전송 계층에 해당

비연결형 서비스

  • 송수신자 간에 논리적인 연결을 확립하지 않은 채 데이터를 전송하는 방법
  • 오류가 발생해도 재전송하지 않기 때문에 신뢰성이 없지만 전송 속도가 빨라 중요도가 낮은 데이터 전송에 많이 사용
  • 비연결형 서비스는 UDP 방식이며, 신뢰성 있는 데이터 전송을 할 수 없어 상위 계층인 TCP 등에서 신뢰성을 보장해야 함
  • IP는 TCP/IP 네트워크를 통해 전송하는 데이터의 기본 단위를 정의하며, 데이터를 전송할 최적의 경로를 선택하는 라우팅 기능을 수행

라우터

  • 스위치만 있는 네트워크에서는 모든 컴퓨터와 스위치가 동일한 네트워크에 속함
  • 허브도 스위치와 마찬가지로 네트워크를 분할할 수 없지만 라우터는 네트워크를 분할할 수 있음 
  • 네트워크로 분할한 뒤 다른 네트워크에 있는 컴퓨터로 데이터를 전송하려면 라우터의 IP 주소(192.168.35.1)를 설정해야 함
  • 이는 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이라고 함
  • 기본 게이트웨이는 ipconfig 명령으로 확인 가능

라우팅 테이블

  • 현재 네트워크에서 다른 네트워크로 데이터를 전송할 때는 라우팅의 경로 정보를 바탕으로 최적의 경로로 데이터를 전송
  • 각 라우터의 라우팅 테이블에 경로 정보가 등록되어 있어 라우팅이 가능
  • 이제 컴퓨터 1에서 다른 네트워크의 컴퓨터 5에 데이터를 전송 가능

주소 변환 프로토콜(ARP)

  • IP 프로세스는 물리 주소인 MAC 주소를 모르기 때문에 최종 수신지 호스트까지 신호를 전송하려면 기본 게이트웨이에서 수신지 IP 주소와 관련이 있는 네트워크 카드(LAN 카드)의 MAC 주소를 알아야 함
  • 이때 논리 주소인 IP 주소를 물리 주소인 MAC 주소로 매핑하는 것이 바로 주소 변환 프로토콜 ARP
  • 네트워크 카드의 물리 주소는 제조 업체에서 생산할 때 결정되므로 네트워크 카드를 교체하면 MAC 주소도 바뀜
  • 하지만 IP 주소는 네트워크 카드를 교체해도 동일한 주소를 사용 가능
  • ARP V 표준은 RFC 826을 따르며, ARP 명령어를 사용하면 네트워크에 등록된 하드웨어 주소를 확인 가능

인터넷 제어 메시지 프로토콜(ICMP)

  • 네트워크의 호스트나 라우터에서는 예상치 못한 상황이나 오류가 발생할 수도 있는데, 인터넷 제어 메시지 프로토콜 ICMP은 라우터에서 발생한 오류를 송신 측으로 전송하는 데 사용하는 프로토콜
  • ICMP는 네트워크 계층에서 상주하지 않고 IP 데이터그램에 캡슐화되어 인터넷으로 전송

 

IP

  • 집 주소가 있어야 우편 서비스를 이용할 수 있듯이 네트워크에 접속된 각 컴퓨터에도 고유한 식별 번호가 있어야 정확하게 데이터를 송수신 가능
  • 따라서 인터넷에 연결된 모든 컴퓨터에는 고유 주소가 부여되는데 이것이 IP 주소

공인 IP와 사설 IP

  • 공인 IP 주소는 ISP가 제공
  • IPv4는 주소가 고갈되었기 때문에 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고 집이나 회사의 LAN에 연결되는 컴퓨터에는 사설 IP 주소를 할당하는 정책을 시행

IPv4

  • 현재 주로 사용하는 IP 주소 체계인 IPv4 Internet Protocol version 4는 32비트의 IP 주소로 232(약 43억) 개의 컴퓨터에 할당 가능

클래스 구조

  • IP 주소는 비트로 구분하지만 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어서 네트워크의 크기를 조정 가능
  • 네트워크의 크기는 클래스 개념으로 구분하며, IP 주소는 네트워크의 규모에 따라 A, B, C, D, E 클래스로 나뉨
  • D 클래스는 IP 멀티 캐스팅용으로, E 클래스는 연구 및 특수 용도로 사용하는 주소이므로 일반 네트워크에서는 A 클래스(대규모 네트워크 주소), B 클래스(중형 네트워크 주소), C 클래스(소규모 네트워크 주소)를 사용 가능
  • A 클래스는 처음 8비트가 네트워크 ID이고 다음 24비트가 호스트 ID
  • B 클래스는 처음 16비트가 네트워크 ID이고 다음 16비트가 호스트 ID
  • C 클래스는 처음 24비트가 네트워크 ID이고 다음 8비트가 호스트 ID

네트워크 주소와 브로드캐스트 주소

  • 네트워크 주소와 브로드캐스트 주소는 컴퓨터나 라우터가 자신의 IP로 사용할 수 없는 주소
  • 네트워크 주소는 호스트 ID가 2진수로 00000000이고 10진수로 0인 주소
  • 브로드캐스트 주소는 호스트 ID가 2진수로 11111111이고 10진수로 255인 주소
  • 즉 호스트 ID가 10진수로 0이면 네트워크 주소이고, 호스트 ID가 10진수로 255이면 브로드캐스트 주소
  • 네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별할 때 사용되고, 호스트 ID가 10진수로 0이면 그 네트워크 전체를 대표하는 주소가 됨
  • 브로드캐스트 주소는 네트워크에 있는 모든 컴퓨터에 동시에 데이터를 전송할 때 사용되는 전용 IP 주소로 전체 네트워크에 데이터를 전송할 때는 호스트 ID에 255를 설정하면 됨

서브넷의 구조

  • A 클래스 네트워크는 호스트 ID가 24비트이고 IP 주소를 16,777,214개 사용 가능
  • 이 많은 컴퓨터가 브로드캐스트 패킷을 전송한다면 모든 컴퓨터에 패킷이 전송되어 네트워크가 혼잡해짐
  • 이때 A 클래스의 대규모 네트워크를 좀 더 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있는데, 네트워크를 분할하는 것을 서브넷팅이라 하고 분할된 네트워크를 서브넷이라 함
  • 이렇게 하면 더 많은 네트워크를 생성함으로써 IP 주소를 보다 효율적으로 활용 가능
  • 호스트 ID에서 비트를 빌려 서브넷으로 만듦

서브넷 마스크

  • 서브넷 마스크는 IP 주소를 서브넷팅하는 경우 어디까지 네트워크 ID이고 어디부터 호스트 ID인지 판단하기 어려울 때 사용
  • 서브넷 마스크는 네트워크 ID와 호스트 ID를 식별하기 위한 32비트의 값으로 A 클래스는 255.0.0.0, B 클래스는 255.255.0.0, C 클래스는 255.255.255.0
    ex) C 클래스의 IP 주소를 서브넷팅하는 방법을 살펴보자. C 클래스이므로 네트워크 ID가 24비트인데 네트워크 ID를 26비트로 변경하려면 2비트를 호스트 ID에서 빌려야 한다. 따라서 네트워크 ID가 24비트, 서브넷 ID가 2비트, 호스트 ID가 6비트가 된다.

문제

1. c 클래스 네트워크를 24개의 서브넷으로 나누려고 한다. 
   각 서브넷은 4~5개의 호스트가 연결되어할 때 서브넷 값은? 255.255.255.248

2. IP 주소가 128.110.121.32(255.255.255.0) 일 때 네트워크 주소는? 128.110.121.0

3. IP 주소 203.10.24.27 이란 호스트의 서브넷 마스크는 255.255.255.240이다. 
   이때 호스트의 범위와 브로드캐스트 주소는? 203.10.24.17 ~ 203.10.24.30, 203.10.24.31

4. 클래스 B 주소로 서브넷 마스크 255.255.255.240으로 만들 때 
   서브넷 수와 호스트 수는? 16, 14

5. 
사설 IP주소          서브넷 마스크    클래스   호스트개수
201.222.10.60   255.255.255.248     C               6
15.18.192.6       255.255.0.0             B         2^16 - 2
130.15.121.13   255.255.255.0         C             254
153.70.100.2     255.255.255.192     C              62

Extra)
IP 192.168.0.128/26 
NETWORK 192.168.0.128
BROADCAST 192.168.191
NETMASK 255.255.255.192

IP 172.15.8.66/16
NETWORK 172.15.0.0
BROADCAST 172.15.255.255
NETMASK 255.255.0.0

IP 10.1.1.56/8
NETWORK 10.0.0.0
BROADCAST 10.255.255.255
NETMASK 255.0.0.0

IPv6

IPv6 도입의 필요성

  • 한 조직이 A 클래스의 주소를 할당받으면 호스트 1,600만 개를 할당 가능
  • 그러나 C클래스는 주소를 256개만 할당받을 수 있는데 이 수는 충분치 않음
  • 또한 D 클래스와 E 클래스에서도 주소 수백만 개가 낭비
  • 다시 말해 IPv4는 산술적으로 주소를 43억 개 할당할 수 있지만 클래스별 주소 분류 방식 때문에 사용하지 않는 주소가 많음
  • 4차 산업혁명 시대에는 단말기마다 IP가 부여되는 환경이 필요하므로 IPv4를 사용하면 IP 주소가 부족
  • 인터넷의 폭발적인 성장으로 32비트로 구성된 IPv4 주소 공간(약 40억 개)은 이미 고갈된 상태
  • IPv6는 전 세계 60억 인구가 1인당 53,731,028개의 주소를 할당받을 수 있기 때문에 주소 부족 현상이 일어나지 않을 것으로 예상
  • IPv6는 128비트로 구성되며, 긴 주소를 쉽게 읽을 수 있도록 16비트씩 콜론(:)으로 나누어 각 필드를 16진수로 표현하는 방법을 사용
  • 기존의 IPv4 주소도 하위 32비트는 IPv4 주소를 그대로 채우고 상위 비트는 모두 0으로 채워 IPv6 주소로 표현 가능

 

전송계층

TCP

연결형

포트 번호

  • 포트는 TCP가 상위 계층으로 데이터를 전송하거나 상위 계층에서 TCP로 데이터를 전송할 때 상호 간에 사용하는 데이터의 이동 통로
  • 상위 계층 프로토콜과 하위 계층 프로토콜이 같은 포트를 사용해야만 통신 가능
  • TCP 프로토콜이 포트를 여러 개 사용하여 상위 계층의 프로그램과 각각 따로 통신하기 때문에 동시에 파일을 다운로드 가능

UDP

비연결형

  • UDP(사용자 데이터그램 프로토콜)는 RFC 768 문서에 정의된 비연결 지향 프로토콜로, TCP(연결 지향 프로토콜)와 달리 패킷이나 흐름 제어, 단편화 및 전송 보장 등의 기능을 제공하지 않음
  • UDP 통신은 요청 메시지와 응답 메시지만으로 구성되고 주로 적은 양의 데이터 전송에 사용
  • UDP를 사용하는 대표적인 응용 계층 프로토콜은 DNS, DHCP, SNMP 등