OSI Model

 

- OSI Model (OSI 7계층 모형) : Open Systems Interconnection Reference Model의 약자로서, 국제 표준화기구(ISO)에서 개발한 모형이다. 이 모형은 컴퓨터 네트워크의 프로토콜을 기능별로 나누어 각 계층으로 설명한다. 각각의 계층은 하위 계층의 서비스(기능)만을 이용할 수 있고, 반대로 상위 계층에 서비스를 제공한다. 주로 하위 계층은 하드웨어 측면, 상위 계층은 소프트웨어 측면을 구현한다.



* 각 계층마다 데이터 단위(Data Unit)에 관한 용어가 다르다. 위 사진의 계층 왼쪽에 해당 데이터 단위가 적혀 있다.


네트워크를 계층 구조로 나눈 이유

    1. 데이터의 흐름이 한눈에 보인다.
    2. 하나의 문제를 7개의 작은 문제로 나누기 때문에 문제 해결이 쉽다. 
    3. 각 계층마다 사용하는 장비가 다른데, 표준화를 통해 여러 회사의 네트워크 장비를 사용하더라도 이상 없이 작동할 수 있게 된다.


- 7계층 : 응용 계층(Application Layer)

    => 응용 프로세스와 직접 연관되어 일반적인 응용 서비스를 수행한다. 예시로 네트워크 소프트웨어의 UI(User Interface), 사용자의 입출력(Input/Ouput, IO)부분이 있다.

 

- 6계층 : 표현 계층(Presentation Layer)

    => 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 계층으로, 인코딩이나 암호화 등의 기능이 이 계층에서 이루어진다.


- 5계층 : 세션 계층(Session Layer)

    => 종단간(End-to-End)의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층으로, 동시 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(full-duplex)의 통신을 가지고 체크 포인팅 및 종료, 다시 시작 등의 과정을 수행한다. , 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.

 

- 4계층 : 전송 계층(Transport Layer)

    => 송수신측(End-to-End) 간의 신뢰성 있는 데이터 전송(Reliable Data Transfer, RDT)을 가능하게 해주는 계층으로, 상위 계층들이 데이터를 전달하는데 효율성을 신경쓰지 않게 해준다. 예시로 TCP(Transfer Control Protocol)가 있다.

 

- 3계층 : 네트워크 계층(Network Layer)

    => 여러 개의 노드(사용자)를 거칠 때마다 경로를 안내해주는 역할을 하는 계층으로, 길이가 다양한 데이터들을 각 네트워크를 통해 전달하고, 그 과정에서 전송 계층(상위 계층)에 서비스를 위한 기능적, 절차적 수단을 제공한다.

 

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

    => 점대점(Point-to-Point) 간 신뢰성 있는 전송을 위한 기술들로 이루어져 있으며, 네트워크 계층으로 데이터를 전달하고, 물리 계층으로부터 발생할 수 있는 오류를 찾아내고, 수정하기 위한 기능적이고 절차적인 수단을 제공한다.

 

- 1계층 : 물리 계층(Physical Layer)

    => 네트워크 통신 중 하드웨어의 전송 기술로 이루어져 있으며, 다양한 특징의 하드웨어적인 기술이 드러나기 때문에 가장 복잡한 계층으로 간주된다.

 



네트워크 장비

 

- Hub(허브) : 한 케이블의 입력 신호를 연결된 다른 신호로 그대로 전달하는 리피터(신호 재생기)기능을 한다. , 단순 전송 장비

 

- Switch(스위치) : 2계층(데이터 링크 계층) 장비(네트워크 장비), 스위치에 꼽힌 케이블을 통해 목적지 포트를 향해 데이터들이 전송된다. 허브(Hub)도 유사한 역할을 하지만 가장 큰 차이는 허브의 경우 컴퓨터 간의 연결을 통해 데이터가 전달되기 때문에 데이터가 많아질 경우 속도가 느려진다.

 



- Switching hub(스위칭 허브) : 허브의 기능과 스위치의 기능을 접목한 장비로 단순한 전달 기능을 넘어 목적지 주소에 해당하는 통신 링크로 데이터를 전송한다.

 

- Router(라우터) : 3계층(네트워크 계층) 장비로, 서로 다른 네트워크 간의 정보를 주고받기 위해 사용하는 네트워크 통신 장치

 

 * 과거에 스위치는 링크에 있는 데이터의 헤드를 보고 해당 포트번호로 데이터를 보내는 기능(소프트웨어적인 기술)을 하고, 라우터는 더 넓은 범위(IP를 보고 포워딩)까지 다룬다는 차이를 가지고 있었다. 즉, 스위치와 라우터의 경계가 현재보다 뚜렷했었다. 그러나 현재는 스위치가 발전되어 그 경계가 모호해졌고 기존에 MAC(자료접근제어)을 보고 포워딩하던 스위치는 하드웨어적으로 IP를 분석해서 경로를 설정하고 포워딩할 수 있는 기술에 이르게 되었다. (IP는 복잡하기 때문에 하드웨어로 구현하는 것이 어렵다.)

 



용어 정리

 

- Module (모듈) : 전체나 조직을 이루는 구성 요소 또는 구성 단위

 

- Modularity (모듈성) : 컴퓨터 시스템에서 하드웨어나 소프트웨어의 각 구성 요소의 일부를 변경하고 증설할 때 그 변경이 전체에 영향을 미치지 않도록 해당 부분만 수정할 수 있는 성질. , 통신에 있어서 각각의 독립된 계층(Layer)들이 여러 입출력을 가진 구성 요소(모듈)로서 정의되어 진다. 따라서 각 계층들은 모듈성을 가진다.

 

- Encapsulation(캡슐화) : 위 계층에서 하위 계층으로 갈수록 데이터의 헤더에 목적지 IP주소, 포트번호 등을 추가하여 해당 데이터를 외부에서 볼 수 없도록 하는 것이다. 물리 계층에서 통신링크로 데이터가 보내질 때 데이터(정보)를 보호할 수 있다.

 

- Decapsulation : 캡슐화의 반대어로, 하위 계층에서 상위 계층으로 데이터가 수신자에게 도착하기 까지 오버 헤드된 데이터의 헤드를 하나씩 벗겨내는 과정을 의미한다.

 

[ 검은색 선은 전체적인 데이터의 이동 경로이지만 세부적으로 보자면,

왼쪽 아래방향 검은색 선이 Encapsulation 과정이고 오른쪽 위 방향 검은색 선이 Decapsulation 과정이다. ]




▶ Peer-to-Peer Processes




- 같은 계층에서 정보를 주고 받는 레이어(Peer)


- 또래 계층 간의 데이터 전송에서는 오버 헤드가 해당 계층까지만 이루어지지만 전체 계층을 통과할 경우 캡슐화로 오버 헤드가 커지게 된다. 즉, 전달되는 데이터의 오버 헤드된 부분(AH, PH, SH 등)이 캡슐화의 결과이다.




▶ Communication Summary


 

 

 - Client A 가 보낸 데이터는 응용 계층(7계층) -> 물리 계층(1계층)까지 캡슐화를 거쳐 통신 링크로 전송되고, 링크 중간단계의 스위치와 라우터를 통해 목적지(Client B 또는 C)로 안내되어 진다. 링크로 받은 데이터는 수신측에서 캡슐화가 해제되면서 오버헤드가 벗겨지고 데이터만 수신자가 받게 된다.




▶ Physical Layer (물리 계층)


- 2계층의 데이터 단위인 프레임(Frame)을 전달받고 해당 프레임 안에 각 비트들을 신호로 바꾸어 통신 링크로 옮긴다.


- 각 비트(정보)들을 신호로 바꾸는 과정은 네 가지가 있다.

  • Digital to Digital : 디지털 정보를 디지털 신호로 바꾸는 방법
  • Analog to Digital : 아날로그 정보를 디지털 신호로 바꾸는 방법
  • Digital to Analog : 디지털 정보를 아날로그 신호로 바꾸는 방법
  • Analog to Analog : 아날로그 정보를 아날로그 신호로 바꾸는 방법
- 바꾸어진 신호들은 다중화(Multiplexing) 방식을 거쳐서 복합신호가 되어 링크를 타고 수신측으로 전송된다.


- 두 기기가 전송 매체(통신 링크)에 의해 연결되어 진다.




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


- 점대점(Point-to-Point) 간 신뢰성 있는 전송을 위한 기술들로 이루어져 있다.


- 수신측일 경우 네트워크 계층으로 데이터를 전달하고, 송신측일 경우 3계층의 데이터 단위인 데이터그램(Datagram)을 전달받은 뒤, 프레임으로 캡슐화한다. 또래 계층간의 통신이면 링크로 옮기거나, 물리 계층(1계층)으로 프레임을 전달한다.


- 데이터그램에서 프레임으로 캡슐화하는 과정에서는 프레임에 MAC(자료접근제어)이라는 물리적주소를 부여한다.


- Medium Address Control(이하 MAC) : 매체 접근 제어 혹은 자료 접근 제어라고 불리며, 네트워크(LAN이나 WAN)에서 호스트의 물리적주소를 정의하며, 네트워크의 장비를 식별하는 역할을 한다.


- 물리 계층으로부터 발생할 수 있는 오류를 찾아내고수정하기 위한 기능적이고 절차적인 수단을 제공한다.


- Flow Control(흐름 제어) : 송수신 장비의 속도를 조절한다. 보내는 속도가 빠르나 받는 속도가 느릴 경우 수신 장비에서 놓치는 데이터가 발생하기 때문이다.


- Error Control(오류 검출 및 정정) : 신뢰도를 제공한다.


- Access Control(접근 제어) : 공유링크의 사용순서를 결정한다.




▶ Network Layer(네트워크 계층)


- 호스트 간의 통신을 담당하고, 해당 패킷을 라우팅하는 역할을 한다. 라우팅 시 목적지안내를 위해 각 라우터가 목적지 IP 주소에 대한 다음 노드(라우터나 목적지)로 패킷을 보낸다. 이 때 라우팅 알고리즘이 사용된다.


- 주로 라우터가 이 계층에서 동작하지만, 기술의 발전으로 L3용 스위치도 있다. 데이터를 다른 네트워크로 전달하여 네트워크끼리 연결함으로써 인터넷을 가능하게 만드는 계층이다.


- 캡슐화 과정에서 IP주소를 부여한다.


- Internet Protocol(이하 IP

  • 패킷의 형식과 주소들의 구조 및 형식을 정의한다.
  • IP 주소는 흔히 로컬 주소(Local Address)라고도 하며, 통신 장치의 인터페이스 식별자 역할을 한다.
  • 쉽게 말해서, 인터넷에 기기가 연결되었음을 정의한다.

- Internet Control Message Protocol(이하 ICMP) : 데이터그램이 문제가 발생했을 때 해당 통보를 송신자에게 보내기 위해 호스트와 게이트웨이에서 사용되는 메커니즘이다. 즉, 전송 에러를 보고한다.


- Internet Group Management Protocol(이하 IGMP) : 받는 사람이 개인이 아닌 그룹일 때, 어떤 그룹에 몇 개의 메시지가 속해있는지 확인하여 메시지(데이터)를 동시에 전송할 수 있게 한다.


- Dynamic Host Configuration Protocol(이하 DHCP) : IP주소를 동적으로 할당하기 위한 프로토콜


- Address Resolution Protocol(이하 ARP) : IP주소가 주어지면 MAC주소를 확인하여 추가하기 위한 프로토콜




▶ Transport Layer(전송 계층)


- 응용 계층에 서비스를 주는 역할을 한다.


- Transmission Control Protocol(이하 TCP)

  • 연결 지향 프로토콜로서 데이터 전송 전에 두 호스트간의 전송 계층 사이에 논리적인 연결을 설정한다.
  • 스트림 지향적이고 신뢰성 있는 통신규약이다.
  • Flow Control(흐름 제어) : 송신 속도를 수신 속도에 맞추어 목적지 호스트에서 데이터 손실이 발생하는 것을 막는다.
  • Error Control(오류 검출 및 정정) : 손실된 데이터들을 재전송하고 오류 없이 목적지로 패킷을 전송하는 역할을 한다.
  • Congestion Control(혼잡 제어) : 데이터가 너무 많이 전송되어 세그먼트의 손실이 발생하는 것을 막는 역할을 한다.
- User Datagram Protocol(이하 UDP)
  • 비연결 지향 프로토콜로서 논리적 연결을 설정하지 않고 사용자의 데이터를 전송한다.
  • 연결이 없으므로 상태정보를 알기 어렵고 데이터가 컨트롤되지 않는다.
  • 즉, 흐름 제어, 오류 제어, 혼잡 제어 기능이 없다.
  • 단순하고 작은 오버헤드를 가진다.

- TCP가 편지라면, UDP는 소포와 유사하다.


- Stream Control Transmission Protocol(이하 SCTP)

  • TCP와 UDP를 결합한 형태로 멀티미디어 통신에 사용되는 통신규약이다.
  • 멀티스트림(다수의 데이터 요소), 연결 지향, 신뢰성있는 데이터 전송, 전이중성 서비스를 제공한다.
- 포트 번호(Port Number) : 16비트로 이루어져 있으며, 동시에 운영되고 있는 여러 프로세스 사이에서 하나의 로컬 주소를 식별할 수 있는 식별자 역할을 한다. 흔히 80번은 웹페이지 전송 포트 번호(HTTP)이고, 20번, 21번은 파일전송프로토콜(FTP)의 데이터 및 제어포트이다.
  • 0~1023번 : Well-known port, 잘 알려진 포트번호들이다.
  • 1024~49151번 : Registered port, 등록된 포트번호들이다.
  • 49152~65535번 : Dynamic port, 동적 포트번호들이다.



▶ Multiplexing & Demultiplexing


- 출발지(Source)에서의 Multiplexing : 상위 계층으로부터 받은 데이터를 해당 계층의  프로토콜이 데이터의 헤더에 정보를 추가하여 캡슐화하는 것을 의미한다.


- 도착지(Destination)에서의 Demultiplexing : 해당 계층의 각 프로토콜이 하위 계층으로부터 받은 데이터의 캡슐화를 해제하고 다음 상위 계층으로 데이터를 전송하는 것을 의미한다.


- 회선 교환 방식에서 사용하는 다중화와는 약간 다른 의미를 가진다.

+ Recent posts