OSI (Open Systems Interconnection) 모델은 데이터 통신을 이해하기 위한 개념적인 프레임워크입니다. 이 모델은 7개의 계층으로 나뉘며, 각 계층은 네트워크 통신 과정의 특정 부분을 처리합니다.
네트워크 통신의 큰 흐름을 OSI 모델을 기반으로 설명하면 다음과 같습니다:
- 응용 계층(Application Layer): 사용자가 네트워크 서비스에 액세스하려고 할 때 처음으로 만나는 계층입니다. 이메일 클라이언트, 웹 브라우저 등의 응용 프로그램이 이 계층에서 작동합니다.
- 표현 계층(Presentation Layer): 이 계층은 데이터의 형식 및 암호화를 처리합니다. 예를 들어, 데이터를 암호화하거나, 이미지, 텍스트 등의 데이터 형식을 변환하는 역할을 담당합니다.
- 세션 계층(Session Layer): 이 계층은 네트워크 세션을 설정, 관리, 종료하는 역할을 합니다. 즉, 두 컴퓨터 간의 통신 세션을 제어합니다.
- 전송 계층(Transport Layer): 이 계층은 데이터의 신뢰성 있는 전달을 보장합니다. TCP(Transmission Control Protocol)와 같은 프로토콜이 이곳에서 작동하여, 데이터가 올바르게 순서대로 전달되고, 잘못된 패킷이 재전송되도록 합니다.
- 네트워크 계층(Network Layer): 이 계층은 데이터 패킷의 경로를 결정합니다. 이를 위해 IP(Internet Protocol) 주소를 사용하고, 라우터는 이 계층에서 패킷을 올바른 경로로 전달합니다. → 우리가 지금 직접 하는 부분.
- 데이터 링크 계층(Data Link Layer): 이 계층은 네트워크 장비 간의 데이터 전송을 관리합니다. 이는 물리적인 네트워크 연결에 대한 오류 감지 및 제어 정보를 처리합니다.
- 물리 계층(Physical Layer): 이 계층은 실제 데이터 비트를 전송하는 데 책임이 있습니다. 이는 케이블, 카드, 전기 신호 등 물리적인 통신 자원을 관리합니다.
네트워크 계층(Network Layer)은 OSI(Open Systems Interconnection) 모델의 세 번째 계층으로, 데이터 패킷의 송수신 경로를 결정하는 역할을 합니다. 이 계층에서 사용되는 가장 중요한 프로토콜은 인터넷 프로토콜(IP)입니다.
네트워크 계층의 주요 기능과 책임은 다음과 같습니다:
- 라우팅: 라우팅은 네트워크 계층의 가장 중요한 기능 중 하나로, 데이터 패킷이 소스 네트워크에서 목적지 네트워크까지 어떤 경로를 통해 이동할지 결정합니다. 이 과정은 라우터와 같은 네트워크 장비에 의해 수행됩니다.
- 로지컬 주소링: IP 주소는 네트워크 계층에서 사용되는 로지컬 주소입니다. 이 주소를 사용하여 패킷이 어떤 네트워크를 통해 어떤 장치로 이동해야 하는지 결정합니다.
- 패킷화: 네트워크 계층에서는 전송 계층에서 받은 데이터를 패킷으로 분할합니다. 각 패킷에는 소스와 목적지 IP 주소가 포함됩니다.
- 오류 처리 및 진단: 네트워크 계층에서는 패킷 전송에 문제가 발생하면 이를 감지하고 처리합니다. ICMP(Internet Control Message Protocol)와 같은 프로토콜을 사용하여 이러한 기능을 수행합니다.
따라서 네트워크 계층은 패킷의 경로 선택 및 전달, 네트워크 트래픽 제어, 패킷 분할 등을 수행하여 여러 네트워크 간의 통신을 가능하게 하는 중요한 역할을 담당합니다.
IP 주소는 32비트 숫자입니다. IP 주소는 TCP/IP 네트워크에서 호스트(컴퓨터 또는 프린터나 라우터와 같은 기타 장치)를 고유하게 식별합니다.
IP 주소는 일반적으로 192.168.123.132와 같이 마침표로 구분된 4개의 숫자가 있는, 점으로 분리된 10진수 형식으로 표시됩니다. 서브넷 마스크를 사용하여 호스트, 네트워크 및 하위 네트워크를 구별하는 방법을 이해하려면 2진수 IP 주소를 살펴보세요.
예를 들어 점선 10진수 IP 주소 192.168.123.132는 32비트 숫자 11000000101010000111101110000100(이진 표기법)입니다. 이 숫자는 이해하기 어려울 수 있으므로 8자리 2진수의 네 부분으로 나눕니다.
이러한 8비트 섹션을 옥텟이라고 합니다. 그러면 예제 IP 주소는 11000000.10101000.01111011.10000100이 됩니다. 이 숫자는 조금 더 의미가 있으므로 대부분의 경우 2진수 주소를 점으로 구분된 10진수 형식(192.168.123.132)으로 변환합니다. 마침표로 구분된 10진수는 2진수에서 10진수 표기법으로 변환된 옥텟입니다.
TCP/IP WAN(Wide Area Network)이 네트워크 모음으로 효율적으로 작동할 수 있도록 네트워크 간 데이터 패킷을 전달하는 라우터는 정보 패킷이 대상으로 하는 호스트의 정확한 위치를 알지 못합니다. 라우터는 호스트가 구성원인 네트워크만 알고 라우팅 테이블에 저장된 정보를 사용하여 패킷을 대상 호스트의 네트워크로 가져오는 방법을 결정합니다. 패킷이 목적지의 네트워크로 전달된 후 패킷은 적절한 호스트로 전달됩니다.
이 프로세스가 작동하기 위해 IP 주소는 두 부분으로 구성됩니다. IP 주소의 첫 번째 부분은 네트워크 주소로 사용되고 마지막 부분은 호스트 주소로 사용됩니다.
예를 들어, 192.168.123.132를 이 두 부분으로 나누면 192.168.123. 네트워크 .132 호스트 또는 192.168.123.0 - 네트워크 주소입니다. 0.0.0.132 - 호스트 주소.
TCP/IP가 작동하는 데 필요한 두 번째 항목은 서브넷 마스크입니다. 서브넷 마스크는 호스트가 로컬 서브넷에 있는지 아니면 원격 네트워크에 있는지 확인하기 위해 TCP/IP 프로토콜에서 사용됩니다.
TCP/IP에서 네트워크와 호스트 주소로 사용되는 IP 주소 부분은 고정되어 있지 않습니다. 추가 정보가 없으면 위의 네트워크 및 호스트 주소를 확인할 수 없습니다. 이 정보는 서브넷 마스크라고 하는 다른 32비트 번호로 제공됩니다. 이 예에서 서브넷 마스크는 255.255.255.0입니다. 2진수로 255가 11111111과 같다는 것을 알지 못한다면 이 숫자가 무엇을 의미하는지 명확하지 않습니다. 따라서, 서브넷 마스크는 11111111.11111111.11111111.00000000입니다.
IP 주소와 서브넷 마스크를 함께 정렬하면 주소의 네트워크 및 호스트 부분을 분리할 수 있습니다.
11000000.10101000.01111011.10000100 - IP 주소(192.168.123.132)
11111111.11111111.11111111.00000000 - 서브넷 마스크(255.255.255.0)
처음 24비트(서브넷 마스크의 1의 수)는 네트워크 주소로 식별됩니다. 마지막 8비트(서브넷 마스크의 나머지 0의 수)는 호스트 주소로 식별됩니다. 이 예제에서는 주소가 다음과 같습니다.
11000000.10101000.01111011.00000000 - 네트워크 주소(192.168.123.0)
00000000.00000000.00000000.10000100 - 호스트 주소(000.000.000.132)
따라서, 255.255.255.0 서브넷 마스크를 사용하는 이 예의 경우 네트워크 ID가 192.168.123.0이고, 호스트 주소가 0.0.0.132라는 것을 알 수 있습니다. 패킷이 192.168.123.0 서브넷(로컬 서브넷 또는 원격 네트워크에서)에 도착하고 대상 주소가 192.168.123.132이면 컴퓨터는 네트워크에서 패킷을 수신하여 처리합니다.
거의 모든 10진 서브넷 마스크는 왼쪽이 모두 1이고 오른쪽이 모두 0인 2진수로 변환됩니다. 다른 일반적인 서브넷 마스크는 다음과 같습니다.
10진수 | 이진수 |
---|---|
255.255.255.192 | 1111111.11111111.1111111.11000000 |
255.255.255.224 | 1111111.11111111.1111111.11100000 |
인터넷 RFC 1878(인터넷 도메인 이름 등록 서비스에 관한 InterNIC 공개 정보에 있음)은 TCP/IP 네트워크에서 사용할 수 있는 유효한 서브넷 및 서브넷 마스크를 설명합니다.
인터넷 주소는 인터넷을 관리하는 조직인 InterNIC에서 할당합니다. 이러한 IP 주소는 클래스로 나뉘어 있습니다. 가장 일반적인 것은 클래스 A, B, C입니다. 클래스 D와 E는 존재하지만 최종 사용자는 사용하지 않습니다. 각 주소 클래스에는 다른 기본 서브넷 마스크가 있습니다. 첫 번째 옥텟을 보고 IP 주소의 클래스를 식별할 수 있습니다. 다음은 클래스 A, B 및 C 인터넷 주소의 범위이며 각각 예제 주소가 있습니다.
- 클래스 A 네트워크는 기본 서브넷 마스크로 255.0.0.0을 사용하고 첫 번째 옥텟은 0-127입니다. 주소 10.52.36.11은 A 클래스 A 주소입니다. 첫 번째 옥텟은 10이며 1과 126 사이입니다.
- 클래스 B 네트워크는 기본 서브넷 마스크로 255.255.0.0을 사용하고 첫 번째 옥텟이 128-191입니다. 주소 172.16.52.63은 클래스 B 주소입니다. 첫 번째 옥텟은 172이며 128에서 191 사이입니다.
- 클래스 C 네트워크는 기본 서브넷 마스크로 255.255.255.0을 사용하고 첫 번째 옥텟이 192-223입니다. 주소 192.168.123.132는 클래스 C 주소입니다. 첫 번째 옥텟은 192이며 192와 223 사이입니다.
일부 시나리오에서 기본 서브넷 마스크 값은 다음 이유 중 하나로 인해 조직의 요구 사항에 맞지 않습니다.
- 네트워크의 물리적 토폴로지
- 네트워크(또는 호스트)의 수가 기본 서브넷 마스크 제한에 맞지 않습니다.
다음 섹션에서는 서브넷 마스크를 사용하여 네트워크를 분할하는 방법을 설명합니다.
라우팅(routing)은 데이터 패킷이 소스에서 목적지까지 전송되는 과정을 제어하는 네트워크 계층의 기능입니다. 즉, 라우팅은 데이터가 네트워크의 한 부분에서 다른 부분으로 이동하는 경로를 결정하는 프로세스입니다.
라우팅은 라우터라는 특수한 네트워크 장비를 통해 수행되며, 이 장비는 데이터 패킷의 IP 주소를 읽고, 해당 패킷을 어디로 보낼지 결정합니다. 라우터는 보통 라우팅 테이블을 사용하여 이 결정을 내리는데, 이 테이블에는 다양한 목적지에 대한 최적의 경로 정보가 포함되어 있습니다.
라우팅의 목표는 패킷을 가능한 한 효율적이고 빠르게 목적지로 전달하는 것입니다. 이를 위해 라우팅 알고리즘은 트래픽 볼륨, 네트워크의 현재 상태, 가능한 경로의 수, 각 경로의 품질 등과 같은 다양한 요소를 고려합니다.
라우팅은 두 가지 주요 유형으로 분류될 수 있습니다:
- 정적 라우팅: 이 방식에서, 관리자는 라우팅 테이블에 모든 경로를 수동으로 입력해야 합니다. 이 방법은 네트워크의 구성이 자주 변경되지 않는 경우에 적합합니다.
- 동적 라우팅: 이 방식에서, 라우터는 라우팅 프로토콜을 사용하여 다른 라우터와 정보를 교환하고, 자동으로 라우팅 테이블을 업데이트합니다. 이 방법은 네트워크의 구성이 자주 변경되거나, 복잡한 네트워크에서 더 효과적입니다.
스위치는 브로드캐스트 도메인을 구분할 수 없는 반면 라우터는 브로드캐스트 도메인을 구분하여 서로 다른 네트워크 대역을 구분한다
- 스위치(Switch): 스위치는 데이터 링크 계층(Layer 2)에서 작동하는 장치로, 데이터 패킷을 MAC 주소(Media Access Control)를 기반으로 전달합니다. 스위치는 네트워크 내의 특정 장치에만 패킷을 전달하여 효율성을 높이고 트래픽을 줄입니다.
- 라우터(Router): 라우터는 네트워크 계층(Layer 3)에서 작동하며, IP 주소를 기반으로 데이터 패킷을 전달합니다. 라우터는 다양한 네트워크를 서로 연결하는 역할을 하며, 인터넷에 연결하는 데 필요한 장비입니다. 라우터는 패킷의 목적지에 따라 가장 적합한 경로를 결정하는 라우팅 기능을 가지고 있습니다.
이 외에도 스위치와 라우터 사이에는 여러 차이점이 있습니다:
- 복잡성과 비용: 라우터는 더 복잡한 기능을 수행하므로 일반적으로 스위치보다 비용이 더 높습니다.
- 보안: 라우터에는 방화벽 및 VPN과 같은 보안 기능이 내장되어 있어, 스위치보다 더 안전한 네트워킹을 제공할 수 있습니다.
- 확장성: 스위치는 일반적으로 한 네트워크 내에서 장치를 연결하고, 라우터는 여러 네트워크를 서로 연결하여 확장성을 제공합니다.
MAC 주소(Media Access Control Address)는 네트워크에 연결된 장치를 식별하는 유일한 식별자입니다. MAC 주소는 네트워크 인터페이스 컨트롤러(NIC)에 할당되며, 주로 이더넷 및 Wi-Fi 네트워크에서 사용됩니다.
MAC 주소는 48비트로 구성되며, 대개 6개의 2진수 그룹으로 표시됩니다. 각 그룹은 16진수 두 개로 표현되므로 MAC 주소는 일반적으로 12자리 16진수로 표시됩니다(예: 00:0A:95:9D:68:16).
MAC 주소는 "물리적 주소" 또는 "하드웨어 주소"로도 알려져 있으며, 각 네트워크 카드 제조사에 의해 고유하게 할당됩니다. 이 주소는 장치가 제조될 때 NIC에 고정적으로 할당되므로, 네트워크에서 해당 장치를 고유하게 식별할 수 있습니다.
MAC 주소는 OSI 모델의 데이터 링크 계층에서 사용되며, 이 계층에서 패킷이 네트워크의 어떤 부분으로 전송되어야 하는지 결정하는 데 사용됩니다. 이는 주로 로컬 네트워크에서의 통신에서 중요한 역할을 합니다. 그러나 MAC 주소는 로컬 네트워크를 벗어나면 보통 사용되지 않으며, 이 경우 데이터의 전송은 IP 주소에 의해 제어됩니다.