2024-07-01(MON)
1. Layered Architecture
1-1. Layered Architecture
(1) 컴퓨터, 스마트폰, 스위치, 라우터(네트워크 장비)들의 동작방식은 Layered Architecture로 설명할 수 있다.
- 어떤 구성 요소(디바이스)든 계층 구조의 경우 해당 구성 요소의 동작 모델을 설명하는 개념도이다.
- 계층 구조는 컴퓨터, 라우터, 교환 시스템 등 정보통신 시스템의 전체적인 동작을 기술하기 위한 모델이다.
- 각 계층은 기능이 정의되어 있다.
- 하위 계층은 상위 계층에 서비스를 제공하는 역할을 수행한다. (Provide service)
- 하위 계층에서 발생된 문제를 해결하지 못하면 상위 계층에서 해당 문제에 대한 책임을 진다.
(2) 각 계층별로 수행해야 하는 작업(특정한 기능)들이 정해져 있다.
- 물리 계층에서의 특정 하드웨어 부분에서는 전기 신호를 주고받는다. (예시)
- 네트워크 측면(TCP/IP)에서는 크게 Network Access Layer(L1, L2), Network Layer(IP), Transport Layer, Application Layer 4계층으로 구분한다.
(3) 특정 계층은 해당 계층의 하위 계층에게 서비스 처리를 요청하고 하위 계층에서는 처리된 결과값을 상위 특정 계층에게 전달한다.
(4) 만약 하위 계층에서 처리받은 요청을 해결하지 못한다면 그 다음 하위 계층에게 처리를 위임하여 적절한 응답을 받을 수 있도록 한다.
1-2. 컴퓨터에서의 계층 구조
(1) 컴퓨터는 하드웨어 / 소프트웨어 계층이 존재하고 중간에 이 둘을 중재할 수 있는 운영체제(Operating System)가 존재한다.
(2) 컴퓨터는 위에서 언급된 Layered Architecture를 기반으로 동작한다.
(3) 주요 네트워크 장비인 스위치, 라우터에도 운영체제가 존재한다.
- 스위치와 라우터의 IOS(Internetworking OS), Nexus Switch의 Nexus OS 등 ...
(4) 상위 계층에서 특정 작업(서비스)을 요청하는 주체, 하위 계층에서 처리된 작업을 받아 결과를 응답하는 실제 주체는 계층에서 동작하는 프로그램이다.
- 응용 프로그램 입장에서 서비스를 요청하는 것은 운영체제가 제공하는 함수를 호출하는 것이며 운영체제가 제공하는 기능을 함수 또는 System call이라고 한다
(5) 예를 들어 출력 기능을 담당하는 응용 프로그램의 printf() 함수의 경우 해당 코드 내부에서 그래픽 카드 칩을 제어하는 자체적인 코드가 내장되어 있다.
1-3. TCP/IP and OSI Model
(1) 데이터 링크 계층에서는 LAN의 동작방식인 Ethernet과 관련된 프로토콜이 존재한다.
(2) 네트워크 계층의 경우 IP, ARP, ICMP 프로토콜 등이 존재한다.
(3) 전송 계층의 경우 TCP, UDP, OSPF(Routing protocol) 프로토콜이 존재한다.
- 전송 계층에 방화벽이 존재하는데 하드웨어 또는 소프트웨어로 구현될 수 있다.
- 방화벽의 경우 보안적으로 정책을 수립하는 행위라고 볼 수 있다.
(4) 5~7계층 응용 프로그램 계층에서의 인터넷 기반의 모든 서비스는 클라이언트-서버 구조에서 동작한다.
- 웹 서비스를 제공하고자 한다고 하면 HTTP 프로토콜을 기반으로 자체적 서비스를 구축해야 한다.
(5) 하이퍼바이저는 단일 물리적 서버에서 여러 가상 머신을 실행하고 관리하는 데 사용되는 소프트웨어
- V1 타입의 vSphere
2. 개방형 시스템(Open System)
(1) 각 계층들은 어떤 기능들이 수행되어야 하는지 각각 정의되어 있다.
(2) 각 계층들의 구현 방식은 하드웨어 또는 소프트웨어로 구현되어야 하는지 Implementation Specification이 별도로 정의되어 있지 않다. (H/W 또는 S/W로 구현 가능)
(3) TCP/IP 프로토콜에 대한 동작방식을 구현하는 데는 소프트웨어가 아닌, 하드웨어로도 구현된 장치가 존재한다.
- Ex) IoT 디바이스
(4) 개방형 시스템은 구현 방식은 어떤 방식이든지 상관없고, 시스템의 입출력에 대해 Specification가 이미 정의되어 있는 시스템이다.
3. OSI 7 Layer
(1) OSI 7계층의 경우 ISO에서 정보통신 시스템의 동작을 체계적으로 구현하기 위해 제시한 계층 구조를 말한다.
- 네트워크 레벨에서는 2, 3, 4계층에 대한 내용을 주로 다룬다.
- 구축 및 운영관리에서 가장 중요한 부분은 보안이다. WireShark와 같은 분석 도구를 통해 네트워크의 이상 동작 탐지 및 모니터링이 가능하다.
- 보안은 어떤 인프라든 보안 대책에 대한 대응 & 예방이 중요하다. 인프라의 운영관리 등을 위해 각 인프라 및 내부 구조를 잘 알아야 할 필요성이 있다.
3-1. Physical Layer
(1) 하드웨어로 구성된 계층이며 각 디바이스를 물리적인 매체(광케이블, 구리선, 무선 등)를 통해 연결하는 계층이다.
(2) 전기적 신호, 매체, 연결에 대한 인터페이스가 정의되는 계층이고, 데이터(정보)가 신호에 의해 전달된다.
(3) 물리 계층은 두 개의 장치가 정보를 주고받기 위한 통로가 존재하고, 통로를 통해 어떠한 신호가 전달된다. 0과 1로 이루어진 전기적 신호(비트)로 구성된다.
(4) 전기 신호를 물리적 디바이스의 칩에서 생성한다. 이러한 전기 신호는 거리, 잡음 등으로 인해 왜곡이 발생되면 비트 판단에 오류가 있을 수 있다. 물리 디바이스의 칩에서는 송/수신 비트에 오류가 발생하더라도 오류 여부를 판단할 수 없고, 상위 계층인 데이터 링크 계층에서 판단하게 된다.
3-2. Data Link Layer
- 광케이블, 구리선 등 모든 물리 매체들이 하나의 링크로 추상화되어 있는 개념.
- 하나의 물리적 매체에는 여러 가지 논리적 링크가 존재할 수 있고 여러 정보들이 송/수신될 수 있다.(웹, FTP, Email 정보 등)
- 다중화를 통해 여러 개의 논리적 통로가 생성된다.
(2) 물리 계층에서 판단할 수 없었던 정보의 오류 여부를 체크한다. (Error check, 2계층의 핵심)
- 에러라고 판단한 경우 그 부분을 수정(다시 보내도록 재요청)하거나 버릴 수 있다. (설계 여부에 따라 달라짐)
- 대부분 버린다.
(3) 물리 계층에서는 데이터 처리 단위가 비트이지만 데이터 링크 계층의 경우 블록 단위로 주고받으며 블록 내부를 모두 오류 체크를 수행하기 때문에 1계층에서 수행하지 못했던 오류 체크를 진행할 수 있게 된다.
- 내부에서 하나의 비트라도 오류 발생 시 버린다.
(4) 에러 발생 시 3계층에서 처리하지 않고 4계층 이상에서 처리한다.
(5) P2P Link는 전용 회선을 통한 통신을 수행(주소 존재 X)하며, Broadcasting Link 또는 P2MP Link는 누구에게 보내는지 주소가 존재해야 한다. 이때 각각의 주소들을 물리 주소라고 하며 LAN 주소 또는 MAC(Ethernet) 주소라고 한다.
(스위치에 해당 개념들이 존재)
3-3. Network Layer
(1) 특정 디바이스와 또 다른 디바이스(서버)를 연결(다른 기관, 영역에서의 디바이스들)하기 위해 중간의 통신 사업자가 필요하다.
(2) 네트워크 계층에서는 데이터 링크 계층과는 다르게 통신을 위한 디바이스 간 전체 링크의 조합을 고려해야 하는 계층이다.
- 데이터 링크 계층에서는 LAN 내부에서의 각 디바이스를 MAC 주소로 구분하며, 네트워크 계층 레벨에서는 각 디바이스를 구분할 수 있는 주소가 필요하며 논리적인 주소를 IP 주소(IP Address)라고 한다.(네트워크 장비의 모든 장비를 구분할 수 있는 논리적 주소)
- 특정 목적지까지 가기 위해 최적의 경로를 선정하는 것을 Routing(라우팅, 라우팅 프로토콜(RIP, OSPF) 사용)이라고 하며 3계층의 핵심 역할이다.
3-4. Transport Layer
(1) 전송 계층의 경우 해당 IP 주소로 들어온 정보들에 대해 각 목적에 맞는 서비스 측(응용 프로그램)으로 전달해줘야 하는데, 송신자와 수신자를 연결하는 역할을 수행하며, 정보를 주고받는 주체가 중요하다고 볼 수 있다.
- 방화벽 역할도 수행 가능(데이터를 받을지 받지 않을지 정책 수립)
(2) 데이터 링크 계층에서는 하나의 링크에 대해 신뢰성 있는(Reliable)한 데이터 전달 기능을 보장하는 계층이라면 전송 계층은 End-to-End(Host-to-Host or Source to Destination)로 신뢰성 있는 데이터 전달 기능을 보장한다.
(3) 데이터 링크 계층에서 일반적으로 오류가 발생하면 프레임을 버리고 재전송 요청을 하는 하나의 링크에 대해 신뢰성 있는 통신을 보장해야 하지만, 디바이스의 설계에 따라 이 부분을 보장하지 않을 수도 있다. 따라서 오류 제어가 이루어지지 않는다면 오류가 발생한 프레임은 버려지게 되고, 이 부분에 대한 책임을 상위 계층에서 해결해야 한다.
(4) 3계층에서 이 부분을 책임지지 않고 결과적으로 전송 계층에서 이 부분을 해결한다. 따라서 송신 호스트에서 Segment에 Sequence Number를 붙여서 보내고 수신 호스트에서 이를 확인해서 오류 발생 시 분실된 Segment number를 확인해서 수신 호스트의 전송 계층에서 분실된 세그먼트를 재전송 요청한다.
(5) 실제로 데이터가 이동될 때는 모든 계층을 거쳐서 이동된다.
(6) Segmentation : 응용 프로그램에서 받은 정보를 보낼 수 있도록 크기를 제한하는 것.
(7) Port number를 통해 특정 프로세스(응용 프로그램)에 전달된다.
3-5. Session Layer
(1) 세션은 가상적인 연결 통로라고 볼 수 있다. 데이터를 주고받는 프로세스들이 서로 논리적으로 연결되어 있어야 하는데 세션 계층이 이를 담당하고 있다.
(2) TLS(Transport Layer Secure)은 세션을 생성할 때 암호화를 적용시킬 수 있는 주체를 의미한다.
3-6. Presentation Layer
(1) 정보를 어떠한 포맷으로 전달할 것인가?
(2) 정보의 압축, 암호화 처리와 관련된 계층
3-7. Application Layer
(1) 클라이언트-서버 구조로 클라이언트와 서버가 요청과 응답을 주고받는다. 응용 프로그램의 다양한 작업을 위해 많은 서비스와 프로토콜이 제공된다.
(2) 사용자를 위한 서비스 HTTP, FTP 등 통신 프로토콜이 존재하고, SNMP 프로토콜은 관리자를 통해 각 네트워크 디바이스를 통제하고 모니터링하기 위한 프로토콜이다.
4. Basic Terminology for Computer Communication
4-1. Encapsulation, Decapsulation
(1) 생성된 데이터가 각 계층을 경유하면서 필요한 정보가 담긴 헤더가 붙는 과정을 Encapsulation라고 한다. 역과정은 Decapsulation이다.
(2) 각 계층마다 주고받는 데이터의 단위가 다른데, 이 부분을 PDU(Protocol Data Unit)이라고 한다.
- L2 : Frame, L3 : Packet, L4 : Segment, 각 계층마다 PDU가 정확하게 정의되어 있다.
(3) Decapsulation 과정에서 L2에서의 오류 체크는 프레임에 문제가 있는지 없는지 검사하는 과정이다.
(4) Decapsulation 과정에서 L3의 패킷이 목적지 IP 주소와 동일한지 체크하고 L4 계층으로 전달한다. 만약 잘못 온 패킷(다른 주소지의 패킷)이라면, 다시 보낼 수 있도록 재요청하게 된다.
4-2. 전체 흐름
(1) 라우터 내부에도 나머지 계층이 존재한다.
- 하지만 표시되지 않은 이유는 라우터의 경우 두 노드 사이의 최적의 경로를 탐색해주는 역할이다. 해당 기능은 나머지 계층이 존재하지 않아도 되기 때문에 별도로 표시되지 않음 (라우터가 중계하는 역할만을 수행)
(2) 수평적 구조 : Peer-to-Peer Protocol
- Peer-to-Peer Protocol 구조의 경우 네트워크를 통해 연결된 컴퓨터들이 중앙 서버의 도움 없이 직접적으로 데이터를 주고받는 형식을 말한다.
※ 해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!
'Virtualization & Cloud Infra > Network(CCNA, CCNP)' 카테고리의 다른 글
네트워크 기초 이론 - TCP/IP Basic (6) (0) | 2024.08.27 |
---|---|
네트워크 기초 이론 - TCP/IP Basic (5) (0) | 2024.08.26 |
네트워크 기초 이론 - TCP/IP Basic (4) (0) | 2024.08.23 |
네트워크 기초 이론 - TCP/IP Basic (3) (0) | 2024.08.12 |
네트워크 기초 이론 - TCP/IP Basic (2) (0) | 2024.07.27 |
댓글