OSI 7계층

2024. 2. 21. 15:08

 

네트워크에서 통신을 위한 표준화된 모델이다. 통신 프로세스를 7개의 계층으로 나누어 설명한다.

1. 물리 계층(Physical Layer) 

  • 실제 매체를 통한 비트 단위의 물리적 연결을 담당한다. 전기적, 기계적인 신호와 프로토콜을 정의하여 비트 단위의 원시(raw) 신호를 전송한다.
  • 전기적 신호가 나가는 물리적인 장비
  • 이 계층에서는 단지 데이터를 전달할 뿐, 전송하려는(또는 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에 대해서 신경쓰지 않는다.
  • 단지 데이터를 전기적인 신호로 변환해서 주고받는 기능만 있다.
  • 전송 단위 : 비트
  • 장비 : 케이블, 허브

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

  • 프레임 단위의 데이터 전송을 담당한다. 물리 계층 위에서 동작하며, 오류 검출 코드를 사용하여 데이터의 무결성을 보장한다. 네트워크 상에서 충돌을 방지하거나 해결하기 위한 프로토콜을 제공한다.
  • 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
  • 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있다.
  • MAC 주소를 가지고 통신한다.
  • 포인트 투 포인트(Point to Point)간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
  • 흐름 제어 : 송신 측과 수신 측의 속도 차이를 조정
  • 오류 제어 : 오류 검출과 회복
  • 순서 제어 : 프레임의 순서적 전송
  • 프레임 동기화 : 프레임의 시작과 끝을 구별하기 위한 동기화
  • 단위 : Frame
  • 장비 : 브릿지, 스위치, 이더넷

3. 네트워크 계층(Network)

  • 패킷 단위의 라우팅을 담당한다. 네트워크 상에서 패킷이 목적지까지 도달할 수 있도록 라우팅을 수행하고, 경로 제어와 주소 지정을 수행한다.
  • 경로와 주소를 정하고 패킷을 전달해주는 역할
  • 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능이다. 최적의 경로를 설정해야 한다.
  • 라우팅 기능을 맡고 있는 계층이 네트워크 계층이다.
  • 전송 단위 : 패킷

4. 전송 계층(Transport)

  • 양 끝단의 사용자들 간의 신뢰성 있는 데이터를 주고 받게 해주는 역할을 한다.
  • 송, 수신자 간의 신뢰성 있고 효율적인 데이터 전송을 위해 오류검출 및 복구, 흐름제어와 중복검사 등을 수행한다.
  • 데이터 전송을 위해 Port 번호가 사용된다.
  • 전송 단위 : 세그먼트

5. 세션 계층(Session)

  • 응용 프로세스가 통신을 관리하기 위한 방법을 정의한다.
  • TCP/IP 세션을 만들고 없애는 역할을 한다.

6. 표현 계층(Presentation)

  • 전송하는 데이터의 표현방식을 결정한다(ex. 데이터변환, 압축, 암호화 등)
  • GIF, JPEG, ASCII 등
  • 3가지 기능을 가지고 있다.
  • 1. 송신자에서 온 데이터를 해석하기 위한 응용 계층 데이터 부호화, 변화
  • 2. 수신자에서 데이터의 압축을 풀 수 있는 방식으로 된 데이터 압축
  • 3. 데이터의 암호화와 복호화
  • 인코딩이나 암호화등의 동작이 표현계층에서 이루어진다.

7. 응용 계층(Application)

  • 사용자와 가장 가까운 계층
  • 우리가 사용하는 응용 서비스나 프로세스가 응용계층에서 동작
  • 대표적으로 HTTP, FTP 등의 프로토콜

 

TCP/IP 4계층 모델

1. Network Layer

  • Node-To-Node간의 신뢰성 있는 데이터 전송을 담당하는 계층
  • 7계층의 물리계층 + 데이터링크 계층의 역할을 한다.
  • 알맞은 하드웨어로 데이터가 전달되도록 MAC 주소를 핸들링 하는 것 뿐 아니라, 데이터 패킷을 전기신호로 변환하여 선로를 통하여 전달할 수 있게 준비해준다.

2.  internet Layer

  • IP를 담당하는 계층
  • IP를 사용하여 데이터의 원천지(origin)과 목적지(destination)에 관한 정보를 첨부한다.
  • 복잡한 네트워크 망을 통하여 가장 효율적인 방법으로 데이터의 작은 조각들을 되도록 빨리 보내는 일을 한다.
  • 패킷 전달 여부를 보증하지 않고, 경로를 설정하여 어떻게든 빨리 보내도록 한다.

3. Transport Layer

  • TCP/UDP를 담당하는 계층
  • TCP는 IP위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다.
  • 즉, 순서가 맞지 않거나 중간에 빠진 부분을 점검하여 다시 요청하는 일을 담당
  • TCP
  • 연결 지향적, 신뢰적, 흐름제어, 에러제어(순서 번호, ACK 번호 사용), ACK 받지 못한 모든 데이터는 재전송
  • 장점은 보장된 세그먼트로 전달하기에 신뢰성이 있다.
  • 단점은 연결을 위한 초기 설정 시간이 걸린다.
  • UDP
  • 비신뢰적, 데이터를 보낸 후 잘 도착했는지 검사하는 기능이 없다
  • 장점은 빠르며, 연결을 맺지 않으므로 제어 프레임 전송을 할 필요가 없기에 네트워크 부하를 줄일 수 있다.
  • 신뢰성보다는 고속성을 요구하는 멀티미디어 응용 등에 일부 사용된다.

4. Application Layer

  • HTTP/FTP를 담당하는 계층
  • 서버나 클라이언트 응용 프로그램이 이 계층에서 동작한다.
  • 우리가 아는 브라우저나 텔넷같은 서비스가 이 계층에 동작
  • DNS : 인터넷에서 사용하는 이름을 해당 IP 주소로 변화해주는 서비스
  • SNMP : 네트워크 장비를 모니터링하고 제어하는 프로토콜
  • FTP : TCP 환경에서 파일 전송 프로토콜
  • TFTP : UDP 환경에서 파일 전송 프로토콜
  • HTTP : 웹 상에서 정보를 주고 받을 수 있는 프로토콜

동작 순서

1. 송신측 클라이언트 애플리케이션 계층에서 어느 웹페이지를 보고 싶다라는 HTTP 요청을 지시한다.

2. 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트번호(TCP 패킷)을 붙여 네트워크 계층에 전달한다.

3. 네트워크 계층에서 데이터에 IP 패킷을 추가해서 링크 계층에 전달한다.

4. 링크 계층에서는 수신자 MAC 주소와 이더넷 프레임을 추가한다.

5. 이로써 네트워크를 통해 송신할 준비가 되었다.

6. 수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달한다.

7. 수신측 애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 요청을 수신할 수 있다.

 

현재 OSI 7계층보다는 TCP/IP 4계층이 더 많이 활용되고 있다.

OSI 7계층은 이론적인 느낌이라면 TCP/IP 4계층은 이론을 실제로 사용한다는 느낌이다.

 

네이버 접속 시나리오

1. 웹 브라우저에 www.naver.com  입력

2. DNS로 네이버 서버 IP 주소 할당

3. 응용계층에서 메시지 데이터 패킹(HTTP 메시지)

4. 전송 계층에서 PORT 정보(출발지, 목적지), 전송 제어 정보, 순서 정보, 검증 정보 패킹

5. 인터넷 계층에서 IP 정보(출발지, 목적지) 패킹

6. 네트워크 액세스 계층에서 MAC 주소 패킹

7. 게이트웨이를 통해 인터넷 망 접속

8. 라우터를 통해 목적지(네이버 서버)를 찾아 연결

9. 네이버 서버에 도착하면 패킷을 하나 하나 까면서 목적 포트에 메세지 데이터 전달하여 다시 응답

'Network' 카테고리의 다른 글

SSH(Secure Shell), FTP  (0) 2024.05.08
NAT(Network Address Translation)  (0) 2024.02.28
스위치(Switch)  (0) 2024.02.15
DNS(Domain Name System)  (0) 2024.02.07
HTTP(S), 소켓  (0) 2024.02.03

BELATED ARTICLES

more