1. OSI 7계층이란?
OSI(Open Systems Interconnection) 모델은 네트워크 프로토콜과 통신 시스템을 이해하고 설계하는 데 도움이 되는 개념적인 프레임워크이다. 이 모델은 7개의 계층으로 구성되어 있으며, 각 계층은 특정한 역할을 수행하고 다른 계층과 상호 작용한다.
2. 7계층 구성요소
3-1. 상세 보기: 물리 계층(Physical Layer)
1) 정의
물리 계층(Physical Layer)은 OSI(Open Systems Interconnection) 모델에서 가장 하위에 위치하며, 컴퓨터 네트워크에서 데이터를 전송하기 위한 물리적인 하드웨어와 전송 매체를 다루는 계층이다. 이 계층은 데이터 비트(0과 1)를 전기 신호, 광 신호 또는 무선 파장과 같은 물리적인 형태로 변환하여 전송하고 받는 역할을 수행한다.
2) 주요 기능
(1) 데이터 전송의 물리적 측면
물리 계층은 신호의 전기적 또는 무선적 특성과 관련된 모든 것을 처리한다. 이 계층은 비트 스트림을 신호로 변환하고, 전송 매체(전선, 광섬유, 무선 등)를 통해 전송한다.
(2) 데이터 송수신 장치 관리
물리 계층은 컴퓨터와 네트워크 장비(네트워크 어댑터 카드, 모뎀 등) 간의 연결 및 데이터 송수신을 관리한다. 이 계층에서는 장비 간의 연결 유형과 물리적 특성을 정의한다.
(3) 비트 타이밍과 시그널 인터페이스
데이터 전송 시 비트 간의 타이밍과 시그널의 인터페이스 규격을 정의한다. 이를 통해 데이터가 언제 전송되고 어떤 방식으로 해석되어야 하는지를 결정한다.
(4) 전기적 특성과 신호 변환
물리 계층은 전기적 특성과 신호 레벨, 전압, 주파수 등을 다루며, 이러한 신호를 다른 장비가 이해할 수 있는 형태로 변환한다.
(5) 물리적 오류 검출
데이터가 전송되는 동안 발생할 수 있는 물리적 오류(예: 노이즈, 왜곡)를 검출하고, 필요한 경우 오류 복구 메커니즘을 통해 오류를 수정하려고 시도한다.
(6) 네트워크 토폴로지 관리
물리 계층은 네트워크의 물리적 토폴로지(예: 스타 토폴로지, 버스 토폴로지)를 관리하며, 연결된 장치 간의 물리적 배치와 연결 방식을 결정한다.
(7) 통신 매체 종류
물리 계층은 다양한 통신 매체(유선 또는 무선)를 지원하며, 각 매체의 특성과 요구 사항을 고려하여 데이터를 전송한다.
물리 계층은 상위 계층에서 전달된 데이터를 신호로 변환하고, 하위 계층에서 전달된 신호를 데이터로 디코딩하여 상위 계층에 전달한다. 이것은 데이터가 물리적으로 어떻게 전송되는지에 대한 기본적인 개념을 제공하며, 네트워크 통신 시스템의 가장 기본적인 부분이다.
3-2. 상세 보기: 데이터 링크 계층(Data Link Layer)
1) 정의
데이터 링크 계층(Data Link Layer)은 OSI(Open Systems Interconnection) 모델의 두 번째 계층으로, 컴퓨터 네트워크에서 데이터를 물리적인 매체(예: 이더넷 케이블, 무선 링크)를 통해 안전하게 전달하는 역할을 한다.
2) 주요 기능
(1) 프레임 구성
데이터 링크 계층은 상위 계층(네트워크 계층에서)에서 전달된 데이터를 프레임이라는 작은 블록으로 나누고, 각 프레임에 헤더(Header)와 트레일러(Trailer)를 추가하여 프레임을 구성한다. 헤더에는 목적지 및 출발지 주소 정보와 오류 검사 코드 등이 포함된다.
(2) 주소 확인
데이터 링크 계층은 물리적인 매체를 통해 데이터를 전달할 때, 목적지 장비의 물리적인 주소를 사용하여 프레임을 정확히 전달한다. 주소 확인을 통해 프레임이 올바른 장비로 전달되도록 보장한다.
(3) 오류 검출 및 수정
데이터 전송 중에 발생할 수 있는 비트 오류나 노이즈를 검출하고, 필요한 경우 오류를 수정하는 기능을 제공한다. 오류 검사를 통해 데이터 무결성을 유지한다.
(4) 흐름 제어
데이터 링크 계층은 데이터의 흐름을 조절하여 송신자와 수신자 간의 전송 속도 불일치를 방지한다. 흐름 제어는 수신자가 송신자로부터 더 많은 데이터를 받지 않도록 하는 역할을 한다.
(5) 액세스 제어
데이터 링크 계층은 공유 매체(예: 이더넷)에서 여러 장비가 동시에 데이터를 전송하는 것을 관리한다. 액세스 제어 프로토콜(예: CSMA/CD, CSMA/CA)을 사용하여 충돌을 방지하고 효율적인 데이터 전송을 지원한다.
데이터 링크 계층은 주로 이더넷과 같은 로컬 네트워크(LAN) 기술에서 사용되며, 네트워크 장비(스위치, 브리지)와 네트워크 어댑터 카드(네트워크 카드)에서 구현된다. 이 계층은 상위 계층(네트워크 계층)로부터 데이터를 받아 하위 계층(물리 계층)으로 전달하고, 하위 계층에서 받은 데이터를 상위 계층으로 전달한다. 데이터 링크 계층은 안전하고 신뢰성 있는 데이터 전송을 위해 핵심 역할을 수행하며, 프로토콜(예: 이더넷, PPP)에 따라 구체적인 동작이 정의된다.
3-3. 상세 보기: 네트워크 계층 (Network Layer)
1) 정의
네트워크 계층(Network Layer)은 OSI(Open Systems Interconnection) 모델에서 세 번째 계층으로 위치하며, 컴퓨터 네트워크에서 데이터 패킷의 라우팅, 중계, 전송 및 네트워크 상호 연결을 관리하는 역할을 한다. 네트워크 계층은 물리 계층(Physical Layer)과 데이터 링크 계층(Data Link Layer)에서 전달된 프레임을 받아 목적지까지 전달하고, 다양한 네트워크 장치 간의 통신을 가능하게 한다.
2) 주요 기능
(1) 라우팅
네트워크 계층은 데이터 패킷을 출발지에서 목적지로 안전하게 전달하기 위해 최적의 경로를 선택하고 라우팅한다. 이 경로 선택은 다양한 요소를 고려하여 수행되며, 주로 라우팅 프로토콜(예: RIP, OSPF, BGP)에 의해 제어된다.
(2) 논리적 주소 할당
네트워크 계층에서 사용되는 주소 체계를 정의하며, 주로 IP 주소를 통해 장치를 식별한다. IP 주소는 전 세계적으로 고유하며 논리적인 주소 체계이다.
(3) 서브넷팅 및 슈퍼넷팅
네트워크 계층은 IP 주소 공간을 관리하고, 서브넷팅과 슈퍼넷팅을 통해 IP 주소를 하위 네트워크로 나누거나 묶는 등의 네트워크 설계 기능을 제공한다.
(4) 데이터 패킷화
네트워크 계층은 상위 계층(전송 계층)에서 받은 데이터 스트림을 작은 패킷으로 분할하고, 각 패킷에 목적지 주소와 출발지 주소 정보를 추가한다.
IP 패킷 구조는 위와 같으며, 수신자 주소에 따라 캐스트 Type을 결정한다. 수신자 주소가 1개인 경우, 유니캐스트 방식을 택하며, 2개 이상인 경우 브로드캐스트, 그룹 IP주소인 경우 멀티캐스트 방식을 택한다.
허나, 실제로는 대부분의 통신은 Unicast 방식을 사용하며 Broadcast는 Unicast로 통신하기 전에 상대방의 목적지를 알기 위해 사용한다. Multicast는 IPTV와 같은 실시간 방송을 볼 때 사용한다.
(5) 전송 제어 및 오류 검출
네트워크 계층은 데이터 패킷이 목적지에 도달할 때까지 제어하고, 오류 검출 및 복구를 수행한다. 이를 통해 신뢰성 있는 데이터 전송이 가능해진다.
(6) 프로토콜 지원
네트워크 계층은 다양한 네트워크 프로토콜을 지원한다. 예를 들어, 인터넷 프로토콜(IP)은 전 세계적으로 사용되며, ARP(Address Resolution Protocol)은 IP 주소를 물리적 MAC 주소로 매핑하는 데 사용된다.
(7) 서비스 품질(QoS) 관리
일부 네트워크 계층 프로토콜은 서비스 품질 관리를 지원하여 특정 데이터 패킷에 우선순위를 부여하거나 트래픽의 우선순위를 조절할 수 있다.
(8) 네트워크 주소 변환
네트워크 계층은 네트워크 주소 변환(Network Address Translation, NAT)을 통해 개별 장치의 개인 IP 주소와 공용 IP 주소 간의 변환을 수행하여 로컬 네트워크의 여러 장치가 단일 공용 IP 주소를 공유할 수 있게 한다.
Private Network(사설망)는 IPv4 중 특정 대역을 공인 인터넷이 아닌 가정, 기업 등의 한정된 공간에 사용하는 네트워크를 이용한다. 사설망에 소속된 IP는 사설망(내부망)에서만 사용이 가능하기 때문에 공인망(Global Network)에선 사용할 수 없다. 때문에 내 IP주소를 내보낼 때, 사설망의 IP주소를 공용망의 IP주소로 변환하고, 공용망의 IP주소를 이용해서 받은 데이터를 가져올 때도 사설망의 IP주소로 변환하여 데이터를 수신하게 된다.
네트워크 계층은 네트워크의 핵심 기능을 담당하며, 전 세계적인 컴퓨터 네트워크에서 데이터의 전송과 관리를 효과적으로 지원한다. IP 프로토콜은 가장 널리 사용되는 네트워크 계층 프로토콜 중 하나이며, 인터넷과 다른 네트워크에서 데이터 통신을 가능하게 한다.
3-4. 상세 보기: 전송 계층 (Transport Layer)
1) 정의
전송 계층(Transport Layer)은 OSI(Open Systems Interconnection) 모델의 네 번째 계층으로, 컴퓨터 네트워크에서 두 종단 시스템 간의 데이터 전송 및 통신을 관리하고 제어하는 역할을 수행한다. 전송 계층은 논리적인 연결을 설정하고 데이터 전송의 신뢰성과 효율성을 보장한다.
2) 주요 기능
(1) 연결 지향 및 비연결 지향
전송 계층은 연결 지향 및 비연결 지향 두 가지 주요 데이터 전송 모드를 지원한다.
- 연결 지향(Connection-Oriented)
데이터를 전송하기 전에 먼저 연결 설정 단계를 거쳐 신뢰성 있는 데이터 전송을 보장한다. 주로 TCP(Transmission Control Protocol)가 이 모드를 사용한다. - 비연결 지향(Connectionless)
데이터를 전송할 때 연결 설정 과정 없이 각 데이터 패킷이 개별적으로 전송되며, 데이터의 순서와 신뢰성은 보장되지 않는다. 주로 UDP(User Datagram Protocol)가 이 모드를 사용한다.
(2) 포트 번호
전송 계층은 포트 번호를 사용하여 애플리케이션 프로세스를 식별한다. 이 포트 번호는 송신자와 수신자 간의 특정 애플리케이션 간에 어떤 데이터가 전송되는지를 결정하는 데 사용된다.
(3) 세그먼트화 및 재조립
데이터를 전송하기 위해 큰 데이터 스트림을 작은 세그먼트로 분할하고, 수신 측에서 이러한 세그먼트를 다시 조립하여 원래 데이터로 복구한다. 이를 통해 큰 데이터를 효과적으로 전송할 수 있다.
(4) 흐름 제어
전송 계층은 수신자가 데이터를 처리할 수 있는 속도에 맞추어 데이터를 송신한다. 이로 인해 네트워크 혼잡을 방지하고 데이터 유실을 최소화할 수 있다.
(5) 오류 제어
데이터의 송수신 과정에서 발생할 수 있는 오류를 검출하고 복구한다. 오류 검사 비트 및 확인을 통해 데이터의 무결성을 보장한다.
(6) 신뢰성
연결 지향 프로토콜(TCP)은 데이터의 신뢰성을 보장하기 위해 확인 응답 및 재전송 메커니즘을 사용한다. 데이터의 손실이나 손상을 최소화하고, 순서를 보장하여 정확한 데이터 전송을 가능하게 한다.
(7) 다중화 및 역다중화
전송 계층은 여러 개의 애플리케이션에서 오는 데이터를 하나의 네트워크 연결로 다중화하고, 수신 측에서 다시 역다중화하여 올바른 애플리케이션으로 전달한다.
(8) 포트 포워딩 및 네트워크 주소 변환
전송 계층은 네트워크 주소 변환(Network Address Translation, NAT)을 사용하여 로컬 네트워크의 여러 장치가 공용 IP 주소를 공유하도록 허용하고, 포트 포워딩을 통해 특정 포트로 들어오는 데이터를 특정 장치로 전달할 수 있도록 한다.
전송 계층은 상위 계층인 응용 계층(Application Layer)의 요청을 받아 실제 데이터 전송을 처리하며, 하위 계층인 네트워크 계층(Network Layer)에서 받은 패킷을 상위 계층으로 전달한다. TCP와 UDP는 가장 널리 사용되는 전송 계층 프로토콜 중 두 가지이다. 이들 프로토콜은 네트워크 통신의 핵심 부분을 담당하며, 웹 브라우징, 이메일, 파일 전송, 비디오 스트리밍 및 다양한 다른 애플리케이션에서 사용된다.
3-5. 상세 보기: 세션 계층 (Session Layer)
1) 정의
세션 계층(Session Layer)은 OSI(Open Systems Interconnection) 모델에서 다섯 번째 계층으로 위치하며, 컴퓨터 네트워크에서 데이터 통신의 시작과 종료를 관리하고 세션(연결)을 설정, 유지 및 해제하는 역할을 한다. 세션 계층은 두 종단 시스템 간의 논리적인 연결을 생성하며, 데이터의 흐름을 동기화하고 오류 복구를 수행한다. 이를 통해 데이터 통신의 신뢰성과 효율성을 향상시킨다.
2) 주요 기능
(1) 세션 설정 및 해제
세션 계층은 통신 세션(연결)을 설정하고 해제하는 역할을 한다. 세션 설정은 통신을 시작하기 위해 두 종단 시스템 간에 초기화되며, 세션 해제는 통신이 완료되면 종료된다.
(2) 다중 세션 관리
세션 계층은 여러 개의 동시 세션을 관리하고, 이러한 세션 간의 데이터 흐름을 분리하여 처리한다. 이는 동시에 여러 응용 프로그램 또는 서비스 간에 병렬 통신이 가능하도록 한다.
(3) 세션 동기화
세션 계층은 데이터 통신의 시작과 종료 시점을 동기화한다. 이를 통해 데이터 송신자와 수신자 간에 데이터의 일관성을 유지하고 순서를 제어한다.
(4) 세션 체크포인트 및 복구
데이터 통신 중에 세션 계층은 일정한 지점에서 세션의 체크포인트를 설정하여 데이터 손실이나 오류가 발생한 경우 해당 체크포인트로부터 데이터를 다시 복구할 수 있게 한다.
(5) 오류 복구
세션 계층은 데이터 전송 중에 발생한 오류를 감지하고, 필요한 경우 재전송을 요청하여 데이터의 무결성을 보장한다.
(6) 세션 토큰 관리
세션 계층은 세션 토큰(Session Token)을 사용하여 각 세션을 식별하고 관리한다. 이러한 토큰은 통신 종단 시스템 간의 세션 식별에 사용된다.
(7) 세션 보안
세션 계층은 데이터 통신을 보호하기 위한 암호화 및 보안 기능을 제공할 수 있다.
(8) 서비스 제공 및 데이터 흐름 관리
세션 계층은 서비스 품질(QoS) 설정, 데이터 흐름 제어 및 데이터 전송 속도 조절과 같은 서비스 관리 기능을 수행할 수 있다.
세션 계층은 주로 네트워크 응용 프로그램 및 서비스 간의 상호 작용 및 데이터 통신을 관리하는 데 사용된다. 특히 원격 프로시저 호출(RPC), 데이터베이스 연결, 파일 전송 및 웹 브라우징과 같은 응용 프로그램에서 세션 관리가 중요하다. 그러나 현대의 컴퓨터 네트워크에서는 세션 계층의 역할이 다른 계층이나 프로토콜에 통합되거나 응용 계층(Application Layer)에서 처리되는 경우가 많다.
3-6. 상세 보기: 표현 계층 (Presentation Layer)
1) 정의
표현 계층(Presentation Layer)은 OSI(Open Systems Interconnection) 모델에서 여섯 번째 계층으로 위치하며, 데이터의 표현, 암호화 및 압축과 같은 데이터 형식 변환과 관련된 역할을 수행한다. 이 계층은 네트워크 간 데이터 교환을 위해 데이터의 구조와 표현 방식을 표준화하고, 호스트 간의 데이터 호환성을 제공한다.
2) 주요 기능
(1) 데이터 형식 변환
표현 계층은 다양한 데이터 형식을 다루고 호환성을 제공한다. 예를 들어, 컴퓨터 간 데이터 교환 시에는 서로 다른 데이터 표현 형식 및 숫자 체계를 변환하고 표준 데이터 형식으로 변환한다.
(2) 데이터 압축
데이터 전송 중에 표현 계층은 데이터를 압축하여 대역폭을 절약하고 전송 속도를 향상시킨다. 압축 알고리즘(예: ZIP, JPEG)을 사용하여 데이터를 압축한다.
(3) 데이터 암호화
표현 계층은 데이터 보안을 강화하기 위해 데이터를 암호화하거나 복호화한다. 이를 통해 데이터의 기밀성을 유지하고 무단 접근을 방지한다.
(4) 데이터 인코딩 및 디코딩
표현 계층은 문자 집합(Encoding) 및 디코딩(Decoding) 작업을 수행하여 다국어 문자나 그래픽 이미지와 같은 다양한 데이터 형식을 처리한다.
(5) 데이터 압축 및 압축 해제
데이터의 크기를 줄이기 위해 압축 및 압축 해제 작업을 수행한다. 압축된 데이터를 수신측에서 원래 형식으로 복원한다.
(6) 데이터 표준화
표현 계층은 서로 다른 시스템 간에 데이터의 표현 방식과 형식을 표준화하여 상호 운용성을 제공한다. 예를 들어, 다양한 문자 집합 및 인코딩 표준을 다룰 수 있다.
(7) 데이터 오류 감지 및 복구
데이터 전송 중에 발생할 수 있는 오류를 감지하고 필요한 경우 오류 복구를 위한 매커니즘을 제공한다.
표현 계층은 상위 계층인 세션 계층(Session Layer)에서 받은 데이터를 하위 계층인 전송 계층(Transport Layer)으로 전달하고, 반대로 하위 계층에서 받은 데이터를 상위 계층으로 전달한다. 이 계층은 주로 응용 프로그램(Application Layer)이 요청한 데이터 형식 변환 및 보안 서비스를 제공하는 데 사용된다. 예를 들어, 웹 브라우저와 웹 서버 간의 통신에서 표현 계층은 HTML 문서, 이미지 및 멀티미디어 데이터와 같은 다양한 데이터 형식을 처리하고 표현한다.
3-7. 상세 보기: 응용 계층 (Application Layer)
1) 정의
응용 계층(Application Layer)은 OSI(Open Systems Interconnection) 모델의 일곱 번째 계층으로 위치하며, 컴퓨터 네트워크에서 사용자 및 응용 프로그램 간의 통신을 제어하고 관리하는 역할을 한다. 응용 계층은 사용자가 네트워크를 통해 데이터를 송수신하거나 네트워크 서비스를 이용하는 데 필요한 서비스 및 프로토콜을 제공한다.
2) 주요 기능
(1) 사용자 인터페이스 제공
응용 계층은 사용자와 컴퓨터 네트워크 간의 상호 작용을 지원한다. 사용자 인터페이스는 응용 프로그램을 통해 네트워크를 사용하는 사용자에게 편리한 방식으로 서비스 및 데이터를 제공한다.
(2) 응용 프로토콜 제공
응용 계층은 다양한 응용 프로그램 간에 데이터 통신을 위한 프로토콜을 제공한다. 이러한 프로토콜은 데이터 전송 및 통신의 규칙과 규격을 정의하며, 예를 들어 HTTP, FTP, SMTP, POP3 등이 있다.
(3) 서비스 제공
응용 계층은 다양한 네트워크 서비스를 제공한다. 예를 들어, 전자메일, 웹 브라우징, 파일 전송, 원격 데스크톱 접속과 같은 서비스를 제공하며, 사용자와 응용 프로그램 간의 데이터 교환을 지원한다.
(4) 데이터 포맷 변환
응용 계층은 데이터를 원하는 형식으로 변환하고 응용 프로그램에 맞게 데이터를 처리한다. 이로써 다양한 데이터 형식과 프로토콜 간에 상호 운용성이 가능해진다.
(5) 세션 관리
응용 계층은 세션을 설정, 유지 및 해제하는 데 필요한 기능을 제공한다. 세션 관리는 데이터 통신의 시작과 종료를 관리하고, 필요한 경우 세션 복구 및 관리를 수행한다.
(6) 보안과 인증
응용 계층은 데이터의 보안과 사용자 인증을 제공하기 위한 서비스를 포함한다. 데이터 암호화, 인증 프로세스, 접근 제어 및 사용자 권한 관리와 같은 보안 기능을 제공한다.
(7) 오류 처리 및 복구
응용 계층은 데이터 통신 중 발생하는 오류를 처리하고, 필요한 경우 오류 복구를 수행한다. 이를 통해 신뢰성 있는 데이터 교환을 지원한다.
(8) 네트워크 리소스 관리
응용 계층은 네트워크 리소스를 효과적으로 관리하여 응용 프로그램 간의 공유 리소스를 관리하고 충돌을 방지한다.
응용 계층은 가장 상위에 위치하여 사용자와 응용 프로그램이 네트워크를 활용할 수 있게 한다. 응용 계층에서 사용되는 프로토콜 및 서비스는 다양한 응용 분야에서 활용되며, 웹 브라우징, 이메일, 파일 공유, 원격 데스크톱 접속, 음성 통화(VoIP), 메신저, 게임 및 비디오 스트리밍과 같은 다양한 응용 프로그램에서 사용된다.
4. 내가 이해한 OSI 7계층 흐름도
💡 WIFI를 이용해서 메일을 보낸다고 가정 응용계층에서 서비스를 이용하여 메일을 작성하고 수신자를 지정하여 전송 이 때, 표현 계층에서 데이터를 알맞게 형식 변환(암호화, 압축 등)한 후 필요에 따라 세션 계층에서 올바를 사용자인지 인증 절차를 거칠 수 있음. (다만, 메일은 세션 관리가 대개 필요하지 않음. HTTP를 이용하여 특정 웹사이트에서 Session을 이용하여 사용자 정보를 보관 및 관리하는 걸 떠올리자. 즉, 세션 계층은 필요에 따라 사용 여부가 결정됨) 이 후, 전송 계층에서 port 번호를 이용하여 애플리케이션을 식별한 후, 데이터 전송 모드(연결 지향 or 비연결 지향) Select 및 데이터 분리/조합 과정을 걸치게 됨. 그리고, 네트워크 계층에서 라우팅을 통해 최적의 경로를 파악하고 송신자의 IP주소를 확인하고, 데이터를 패킷화함. 여기서 패킷화는 스트림 형태의 데이터를 패킷 단위(송신자 IP주소 + 데이터 + 수신자 IP주소)로 변환하는 것을 의미함. 그리고, WIFI는 로컬 네트워크망이기 때문에 ARP를 통해 MAC주소를 매핑하고, 연결된 MAC주소에 전자기파를 전송하게 됨. 곧 물리 계층에서 전자기파를 비트 형태로 받아들여 송신자 측에서 데이터를 전송받고 이후 반대 순서로 비트 형태의 데이터를 조합하고 디코딩하며, 송신자가 전달한 형태로 확인할 수 있게 됨. *글로벌 네트워크망을 이용할 경우, MAC주소는 불필요하며 수신자 IP주소에 데이터를 전송 |
'네트워크' 카테고리의 다른 글
로드 밸런싱 (Load Balancing) (0) | 2023.11.17 |
---|