Computer Science/Network

[Network] OSI 7 Layer & Identifier

LeeJaeJun 2023. 12. 20. 20:42
728x90
반응형

앞으로 설명할 내용들을 대략적으로 나타낸 그림입니다.
참고로 NIC는 Network Interface Card. 즉, Lan카드라 불리는 것입니다. Driver는 하드웨어를 제어하기 위한 소프트웨어입니다.

 

- Layer

  Layer는 계층입니다. 그림에서 볼 수 있듯이 위로 차곡차곡 쌓인 구조이죠. 핵심은 아래가 받쳐주어야지 위에 있는 것들이 존재할 수 있다는 것입니다. 즉 Layer에서 위에 있는 것이 아래에 있는 것에 의존적입니다. 비유를 하자면, 학력을 얘기할 때 "저 고졸이에요."라고 말을 들었다고 합시다. 이 말을 들었을 때, 보통 고등학교를 졸업했으니, 중학교, 초등학교는 당연히 졸업을 했겠구나 하겠지요.(검정고시 등은 예외로 둡시다.) 이처럼, 계층 layer 구조에서는 상위 계층은 아래 계층을 전제로 한다는 것입니다. 
 

- Network와 Networking

 사전적으로 "Network"는 두 개 이상의 컴퓨터 또는 장치를 연결하여 데이터를 전송하거나 공유하는 시스템 
"Networking"은 이러한 네트워크를 구축하고 관리하기 위한 기술과 활동을 의미합니다.
쉽게 설명하자면, Network란 관계, Networking은 상호작용이라고 rough하게 말할 수 있습니다.
 

- Protocal

사전적으로 프로토콜(Protocol)은 컴퓨터 네트워크에서 통신을 위한 규약이나 약속을 말합니다. 네트워크 상에서 데이터를 주고받기 위해서는 이러한 약속된 규약을 준수해야 합니다. 프로토콜은 일반적으로 두 개 이상의 컴퓨터나 장치가 통신을 하기 위해 사용하는 특정한 규칙을 나타냅니다. 이러한 규칙은 통신 상대방과 어떤 프로토콜을 사용할 것인지, 데이터를 어떻게 보내야 하는지, 데이터를 받았을 때 어떻게 처리해야 하는지 등을 정의합니다.

 프로토콜은 통신의 종류에 따라 여러 종류가 있습니다. 예를 들어, 인터넷에서 데이터를 전송하기 위해서는 TCP/IP 프로토콜을 사용하며, 이메일을 보내기 위해서는 SMTP(Simple Mail Transfer Protocol) 프로토콜을 사용합니다. 이와 같이 각각의 프로토콜은 서로 다른 통신 방식을 가지고 있습니다.
쉽게 말하자면, 프로토콜이란 계층별로 정해진 규칙입니다.
 

- OSI 7 layer가 만들어진 이유

 예전에는 자신의 업체 장비 간에만 연결이 되는 등 호환성이 매우 낮았습니다. 그렇기에 모든 시스템들이 상호 연결에 있어 문제가 없도록 표준을 만든 것이 바로 OSI 7 Layer입니다. 또한 이질적인 포트의 문제나 프로토콜 등으로 인한 문제를 해결하기 위해 만들어졌습니다.(호환성)
 따라서 OSI 7 layer를 통해서 여러 정보 통신 장비들의 호환이 가능해졌고, 표준화를 통해 효율성을 높일 수 있었으며, 오류가 발생했을 시 어떠한 계층의 오류인지 파악하여 해결하는데 용이해졌습니다.
 
7개의 계층으로 나눈 목적은 

  • 표준화: 각 계층에 따른 장비를 따로 제작하는 것이 아니라, 하나의 프로토콜에 맞추어 제작하여 모든 계층에서 사용가능한 장비 제작함으로써 비용절감 가능
  • 학습도구: 계층별 기능과 통신을 잘 정립하여 교육의 목적으로 사용할 수 있음

 

- OSI 7 Layer

OSI 7 Layer 모델은 의존적 관계가 성립하는 프로토콜(규칙)을 계층구조로 나열한 입니다. 또한 OSI 7 Layer 모델은 거대한 네트워크 소프트웨어 구조를 설명하는 것입니다. 앞서 말한 프로토콜을 Layer 형태로 나타낸 것일 뿐입니다. 즉 규칙을 계층구조로 나타낸 것입니다. OSI 7 Layer 모델도 Layer이므로 위에 있는 것이 아래 있는 것에 의존적입니다.
자세히 알아보자면 OSI 7 Layer 모델은 컴퓨터 네트워크에서 통신이 일어나는 과정을 7개의 레이어로 나누어 정의한 모델입니다. 각 레이어는 특정한 기능을 수행하며, 상위 레이어는 하위 레이어에서 제공하는 기능을 이용합니다. OSI 7 Layer 모델은 다음과 같은 7개의 레이어로 구성됩니다.

  • 물리 계층(physical layer): 
    • 물리적인 연결을 담당하고, 데이터를 전기적인 신호로 변환하여 전송합니다. 물리적으로 연결된 두 대의 컴퓨터가 데이터를 송수신할 수 있게 해주는 모듈
    • 디지털 신호를 아날로그 신호로 전환(encoding)하여 보낸 뒤, 아날로그 신호를 디지털 신호로 다시 전환(decoding)
    • 만약, 물리 계층만 존재한다면 모든 컴퓨터가 전선으로 연결되어야 함.
    • 데이터 전송 단위(PDU, Protocol Data Unit)은 비트(bit)
    • 장비: 허브, 리피터, 케이블 등
  • 데이터 링크 계층(data link layer):
    • 물리적인 연결을 통해 전송된 데이터를 프레임으로 분할하고, 에러 검사 및 수정 등의 기능을 제공
    • 같은 네트워크에 있는 컴퓨터들이 데이터를 주고 받기 위한 모듈
    • 네트워크 기기 간의 데이터 전송과 물리 주소를 결정 (노드 대 노드)
    • 장비: 스위치, 브릿지
  • 네트워크 계층(network layer)
    • 데이터를 송수신하는 노드 간의 경로를 결정하고, 패킷 전송을 관리
    • IP 주소를 이용해 서로 다른 네트워크에 속한 컴퓨터끼리 데이터를 주고 받게 해주는 모듈 
    • 한 네트워크에서 다른 네트워크로 데이터 전송
    • IP 주소를 통해 경로를 찾고(routing), 자신 다음의 라우터에게 데이터를 넘김(forwarding)
    • 장비: 라우터, L3 스위치
  • 전송 계층(transport layer)
    • 데이터를 종단 간(End-to-End)으로 전송하며, 데이터의 분할과 재조립, 오류 복구 등을 수행 (신뢰성 있고 정확성 있는 전달)
    • Port 번호를 사용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 까지 데이터가 도달하게 하는 모듈
    • PDU는 세그먼트(Segment)
    • TCP, UDP
    • 장비: 게이트웨이
  • 세션 계층(session layer)
    • 데이터 송수신 간의 세션(통신 회선)을 설정하고 유지하며, 동시에 여러 개의 통신 세션을 관리
    • 연결이 끊어지지 않도록 유지시켜주는 역할
    • 세션 연결, 설정, 해제와 통신 방식 결정
    • PDU는 데이터(Data)
    • SSH, TLS
  • 표현 계층(presentation layer)
    • 데이터의 형식, 암호화, 압축, 인코딩, 디코딩, 코드변환 등의 표현 방식을 정의
    • 운영체제의 한 부분으로 번역을 담당
    • 송신할 때는 컴퓨터가 관리하는 방식으로 데이터를 변환하고, 수신받고서는 유저가 볼 수 있는 방식으로 데이터를 변환
    • PDU는 데이터(Data)
  • 응용 계층(application layer)
    • 사용자가 사용하는 응용프로그램과 네트워크 간의 인터페이스 역할
    • PDU는 데이터(Data)
    • Telnet(텔넷), FTP, SMTP, HTTP 등

OSI 7 Layer 모델은 컴퓨터 네트워크에서 통신이 일어나는 과정을 쉽게 이해할 수 있도록 정의된 모델입니다. 현대의 인터넷은 OSI모델이 아닌 TCP/IP 모델을 따르고 있습니다.

https://medium.com/harrythegreat/osi계층-tcp-ip-모델-쉽게-알아보기-f308b1115359

 

OSI계층 , TCP/IP 모델 쉽게 알아보기

medium.com

 

스위치: 컴퓨터와 연결되서 같은 스위치 내에 연결된 컴퓨터와 통신을 가능하게 함.
라우터: 스위치와 스위치를 연결해서 서로 다른 네트워크에 속한 컴퓨터끼리 통신을 가능하게 해주는 장비
인터넷: 위와 같은 장치들을 이용하여 전 세계의 컴퓨터를 연결한 것

포트번호: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값

TCP/IP 소켓 프로그래밍: 운영체제의 Transport layer에서 제공하는 API를 활용해서 통신 가능한 프로그램을 만드는 것입니다. 네트워크 프로그래밍 이라고도 합니다. 소켓 프로그래밍 만으로도 클라이언트, 서버 프로그램을 따로따로 만들어서 동작시킬 수 있습니다. 자신만의 Application Layer 인코더와 디코더를 만들 수 있습니다.(즉, 자신만의 Application layer protocol을 만들 수 있다)

 

- Program, Process, Socket

 프로그램(Program)은 컴퓨터에서 실행 가능한 명령어의 집합으로, 보조 기억장치에 저장되어 있습니다. 예를 들어, 소프트웨어 개발자가 작성한 소스 코드를 컴파일러를 통해 기계어로 변환하고, 이를 실행 파일로 만든 것이 프로그램입니다.

 

 프로세스(Process)는 실행 중인 프로그램으로, 메모리에 적재되어 CPU의 명령어를 수행하며, 입출력 등의 작업을 수행하고 시스템 자원

을 사용합니다. 즉, 프로그램이 실행되어 메모리에 올라가서 실행되면, 이를 프로세스라고 부릅니다. 한 프로그램은 여러 개의 프로세스로 실행될 수 있으며, 각각의 프로세스는 자신만의 메모리 공간을 가지고 독립적으로 실행됩니다.

 

 Socket이란 TCP/IP를 추상화 시킨 파일입니다. 이 Socket을 여는 주체가 process라고 할 수 있습니다. 즉, 어떤 process가 어떤 소켓(file)을 여는 것입니다.
 

- Identifier

 Identifier(식별자)는 말 그래도 대상을 식별하는 것입니다. 이름, 학번, 주민등록번호처럼 말입니다.

 

 L2에서의 대표적인 식별자로는 Mac주소가 있습니다. MAC 주소는 네트워크에서 데이터를 주고받는데 사용되는 물리적인 주소입니다. 이 주소는 네트워크 인터페이스 카드(Network Interface Card, NIC)에 할당되며, 48비트의 고유한 식별자로 구성되어 있습니다. 즉, MAC 주소는 네트워크 인터페이스 카드가 제조될 때 할당된 고유한 식별자로, NIC가 네트워크에서 데이터를 주고받을 때 사용됩니다.
Mac주소는 하드웨어 주소와 같은 개념으로 사용되지만, 조금 다른 의미를 가지고 있습니다.
 하드웨어 주소는 네트워크 인터페이스 카드를 식별하는 데 사용되는 주소입니다. 이 주소는 MAC 주소뿐만 아니라 다양한 식별자를 포함하고 있을 수 있습니다. 예를 들어, IP 주소, 제조사 ID, 시리얼 번호 등이 하드웨어 주소로 사용될 수 있습니다.
따라서, MAC 주소는 하드웨어 주소의 하위 집합으로 볼 수 있습니다. 하드웨어 주소는 네트워크 인터페이스 카드를 식별하기 위해 사용되는 다양한 주소를 포함하는 개념이며, 그 중에서도 MAC 주소는 네트워크에서 데이터를 주고받는 데 사용되는 물리적인 주소입니다.
 
 L3에서는 IP주소라는 식별자가 있습니다. 인터넷을 사용하는 컴퓨터 붙어서 식별합니다. 즉 Host를 식별합니다. 
 
 L4에서는 Port번호라는 식별자가 있습니다. 인터넷 프로토콜에서 Port(포트)는 컴퓨터의 네트워크 연결을 구별하는 데 사용되는 번호입니다. Port 번호는 16비트(0~65535) 크기의 숫자로, 통신할 애플리케이션을 찾아서 데이터를 정확하게 전달하도록 합니다.
Port는 컴퓨터와 인터넷 사이에서 데이터를 주고받을 때, 송수신하는 애플리케이션을 구별하는 데 사용됩니다.
 무엇에 관한 식별자인지 정의할 때 관점에 따라 달라질 수 있습니다. L2에서 일하는 사람 입장에서는 인터페이스 식별자(유선케이블 꼽을 때 식별), L3,L4와 같은 Network에서 일하는 사람은 Service 식별자(웹서비스가 작동하려면 웹서비스가 포트를 개방해야 되기 때문), 소프트웨어 관리, 개발 쪽에서는 Process 식별자라고 인식될 수 있습니다.

728x90
반응형