EunHee-Jeong/TIL

OSI 7계층과 TCP/IP

Closed this issue · 0 comments

TCP / IP

image

  • 네트워크 상에서 정보를 주고받으려면, 데이터를 어느 경로로 보낼지•어떤 방식으로 보낼지 등 고려해야 할 사항들이 많다. 이러한 것들을 관리하기 위해 하나의 규약만을 정해 놓았다면, 문제가 발생하였을 때 전체를 수정해야 하며 이로 인한 새로운 문제가 발생하게 될 수도 있을 것이다.

  • 그렇기 때문에 네트워크는 각각의 역할을 나눈 계층 구조를 가지게 되었다.

    • OSI → 개념적 Model

    • TCP / IP → 연결을 설정하고 네트워크를 통해 통신하는 실제 Model

  • 각각의 계층은 모듈 단위로 독립적이지만 상호 유기적인 관계를 가진다.

 분산 컴퓨팅

  • 컴퓨터 간 통신하는 상황

    • 통신 당사자 ⇒ Process ( = 실행 중인 프로그램) (*참고: 프로그램 = 실행 가능한 파일)

    • 통신을 돕는 것 ⇒ Protocol

    • 각 Protocol들은 네트워크를 통해 서로에게 접근한다.

      *참고: 프로토콜이란?
      
        - 통신 규약.
        - 각각의 계층마다 존재하며, 상대방과 데이터를 주고 받을 수 있게 해준다.
        - 계층 각각을 peer라고 한다.
      

 OSI 7계층

layer 7 Application Layer 응용 계층
layer 6 Presentation Layer 표현 계층
layer 5 Session Layer 세션 계층
layer 4 Transport Layer 전송 계층
layer 3 Network Layer 네트워크 계층
layer 2 Data Link Layer 데이터 링크 계층
layer 1 Physical Layer 물리 계층
  • 각각의 프로세스들은 위와 같은 계층 구조를 가지고 있으며, 계층 내의 프로토콜을 통해 네트워크에 접근하는 식으로 통신한다.

  • 프로토콜은 전송 매체로 중계 장치를 거쳐간다.

    • 종류 ⇒ 허브, 브릿지, 라우터, ...

 계층별 핵심 기능

1. 물리 계층 (Physical Layer)

  • 물리적인 매체(전선, 광, 공기, ...)를 통한 0과 1의 비트 데이터 전달

  • 전기적 정의: 전압, 주파수, 인코딩 방식 (NRZ, Manchester, ...)

  • 기계적 정의: 커넥터, 25핀 / 9핀, male / female

  • 기능적 정의: + / - / 접지(GND), Tx / Rx, Clock, DTR / DSR

→ 각각의 선들의 상태나 기능에 따라 데이터의 전송이 달라진다.

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

  • 데이터 링크란 데이터가 흐르는 시스템 간의 물리적인 연결을 말한다.

  • 데이터 링크 계층에서는 인접 시스템 neighbor 간 신뢰성 있는 정보를 전달한다.

  • 데이터를 바이트 단위나 프레임으로 구성하여 전달한다.

  • 신뢰성 보장을 위한 기능 ⇒ 연결 제어, 오류 제어, 흐름 제어

    • 연결 제어 ⇒ 연결을 맺고, 데이터를 전달하고, 전달이 끝나면 연결을 종료한다.

    • 오류 제어 ⇒ 오류를 검출•정정한다.

    • 흐름 제어 ⇒ 데이터 전달 속도가 너무 빠르거나 느려지지 않도록 수신호의 상태를 보며 조절한다.

3. 네트워크 계층 (Network Layer)

  • 중계 장치(= 네트워크)를 통해 데이터를 전달한다.

  • 시스템(컴퓨터)의 수가 적거나 가까이 있다면 하나의 네트워크로 구성되어 모든 컴퓨터들이 직접 데이터를 교환한다.

  • 컴퓨터의 수가 많고 지리적으로 떨어져 있다면, 지역별로 네트워크를 구성하여 연결한다.

    • 네트워크 ⇒ 중간 교환 장치
    • Internet ⇒ 전 세계의 모든 네트워크들을 연결한 거대한 네트워크
  • 네트워크를 통한 전달에 필요한 것들

    • Addressing ⇒ 각 시스템에 주소를 부여하는 것

    • 라우팅 (Routing) ⇒ 목적지로 갈 수 있도록 경로를 찾아주는 것

    • 라우터 (Router) ⇒ 중계 장치 ⇒ 목적지를 보고 최적의 경로로 보내주는 것

4. 수송 계층 (Transport Layer)

  • 종단 시스템 end-to-end 간의 신뢰성 있는 정보를 전달한다.

    • 구간별로는 데이터 링크 계층에서 담당하지만, 종단 간의 추가적인 보장이 필요하기 때문이다.

    • 종단 시스템 - 네트워크 - 종단 시스템

  • 신뢰성 보장 ⇒ 연결 제어, 오류 제어, 흐름 제어

    • 네트워크의 상태를 고려한 흐름 제어가 필요하다.

    • 예시: congestion 상태 (네트워크 혼잡)

5. 세션 계층 (Session Layer)

  • 응용 프로세스 간의 연결 (= session)을 제어한다.

  • 세션을 수립하고, 관리하고, 해제한다.

6. 표현 계층 (Presentation Layer)

  • 데이터를 표현하는 계층이다.

    • Syntax 라고도 한다.
  • 데이터를 형식화, 암호화, 압축한다.

    • ex - ASCII / binary, jpg / gif, mpg / avi

7. 응용 계층 (Applicaiton Layer)

  • 응용 프로세스에게 네트워크 서비스를 제공한다.

    (= 미리 다양한 것들을 준비해놓고 필요한 걸 찾아 쓰도록 하는 것)

  • 응용 계층에서의 네트워크 서비스

    • 웹 데이터 전달 HTTP

    • 파일 전송 FTP

    • 이메일 SMTP

    • 원격 접속 Telnet

    • 네트워크 관리 SNMP

✅ 정리

  • 정리하자면, 프로세스 사이에서의 데이터 전달네트워크를 통해 이루어지며 TCP/IP 7 Layer의 도움을 받는다.

  • 계층별 핵심 기능은 아래와 같다.

응용 계층 다양한 네트워크 서비스 제공 (이메일, 파일 전송, ...)
표현 계층 데이터의 표현 방식 정의 (ASCII, 압축, 암호화, ...)
세션 계층 응용 프로세스 간의 연결 관리
전송 계층 종단간(end-to-end) 신뢰성 있는 정보 전달
네트워크 계층 네트워크를 통한 데이터 전달
데이터 링크 계층 인접 시스템(neighbor)간의 신뢰성 있는 정보 전달
물리 계층 물리 매체를 통한 0과 1의 비트 전송
  • 네트워크 계층, 데이터 링크 계층, 물리 계층을 묶어서 low layer 라고도 한다.