CS

[네트워크] OSI 7 계층

김디니 2022. 12. 30. 10:31

OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로,

7단계 중 특정한 곳에 이상이 생기면 이상이 생긴 해당 단계만 고칠 수 있는 있는 편리함을 갖추고 있다. 

 

 

1) 물리(Physical)

  • Repeater, Cable, Hub, etc
  • 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간
  • 데이터를 전송하는 역할만 진행한다.
    • 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 

 

2) 데이터 링크(Data Link)

  • Bridge, Switch, etc
  • 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할
    • 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층
    • 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공
  • Mac 주소를 통해 통신한다.
    • 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다.
    • 브릿지나 스위치를 통해 MAC 주소를 가지고 물리계층에서 받은 정보를 전달함.

 

Mac 주소란?
▶️
컴퓨터간 데이터를 전송하기 위한 컴퓨터의 물리적인 주소
즉, 하드웨어 주소이다. 

IP 주소 vs. MAC 주소
▶️
다른 컴퓨터와 통신하기 위해서는 IP주소를 사용하는 것이 맞다.
실제로는 IP주소를 MAC 주소로 바꿔 사용하는 것이다. 
"IP주소간의 통신은 각 라우터 hop에서 일어나는 MAC 주소와 MAC 주소 통신의 연속적인 과정이다."

IP는 다른 시스템으로 데이터를 보내는 시작점과 끝점에 해당하는 주소라면,
MAC 주소는 물리적으로 연결되어 있는 노드와 통신할 때 사용되는 주소이다. 

 

3) 네트워크(Network)

  • Router
  • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
    • 여러개의 노드를 거칠때마다 경로를 찾아주는 역할
    • 다양한 길이의 데이터를 네트워크를 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단 제공
  • 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달
  • 라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행
  • 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만들어준다.
    • 논리적인 주소 구조(IP), 계층적(hierarchical)

 

4) 전송(Transport)

  • TCP, UDP
  • TCP와 UDP 프로토콜을 통해 통신을 활성화하는 계층
    • 포트를 열어두고, 프로그램들이 전송을 할 수 있도록 제공
    • TCP : 신뢰성, 연결지향적
    • UDP : 비신뢰성, 비연결성, 실시간
  • 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 
    • 시퀀스 넘버 기반의 오류 제어 방식을 사용
    • 연결 기반(connection oriented)
      • 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 의미
  • 종단간(end-to-end) 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터를 전송
    • 오류검출 및 복구와 흐름제어, 중복검사 등을 수행

▶️ 패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송

 

 

TCP 프로토콜(Transmission Control Protocol)

  • IP의 비신뢰적인 최선형 서비스에 신뢰적인 연결지향성 서비스를 제공하게 됨
  • 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨

 

  • 신뢰성(Reliable)
    • 패킷 손실, 중복, 순서바뀜 등이 없도록 보장
  • 연결지향적(Connection-oriented)  
    • UDP가 비연결성(connectionless)인 것과는 달리, TCP는 연결지향적
    • 느슨한 연결(Loosly Connected)을 갖으므로 강한 연결을 의미하는 가상회선이라는 표현 보다는 연결지향적이라고 표현
    • 연결 관리를 위한 연결설정 및 연결해제 필요
      • TCP 연결설정, TCP 연결종료
    • 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신

 

UDP 프로토콜(User Datagram Protocol)

  • 신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않음
  • 가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이터 전송에 사용
  • 비연결성, 신뢰성X, 순서화되지 않은 Datagram 서비스 제공 
    • 메세지가 제대로 도착했는지 확인하지 않음 (확인응답 없음)
    • 수신된 메세지의 순서를 맞추지 않음 (순서제어 없음) 
    • 검사합을 제외한 특별한 오류 검출 및 제어 없음 (오류제어 거의 없음)
      • UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 함
    • 데이터그램 지향의 전송계층용 프로토콜 (논리적인 가상회선 연결이 필요없음)
      • 비연결접속상태 하에서 통신 
  • 실시간 응용 및 멀티캐스팅 가능
    • 빠른 요청과 응답이 필요한 실시간 응용에 적합
    • 여러 다수 지점에 전송 가능 (1:N)
  • 헤더가 단순
    • UDP는 TCP 처럼 16 비트의 포트 번호를 사용
    • 헤더는 고정크기의 8 바이트(TCP는 20 바이트) 만 사용
      • 헤더 처리에 많은 시간과 노력을 요하지 않음

 

5) 세션(Session)

  • API, Socket
  • 데이터가 통신하기 위한 논리적 연결을 담당
  • TCP/IP 세션을 만들고 없애는 책임이 있음
  • 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능
  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
    • 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신
    • 체크 포인팅과 유휴(어떠한 프로그램에 의해서도 사용되지 않는 상태), 종료, 다시 시작 과정 등을 수행
  • 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룸

 

6) 표현(Presentation)

  • JPEG, MPEG , etc
  • 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할
    • 파일 인코딩, 명령어를 포장, 압축, 암호화
  • 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어줌
  • TEXT / GIF / JPG 등 구분

 

7) 응용(Application)

  • HTTP, FTP, DNS, etc
  • 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스 수행
  • 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공
  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
  • 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분