OSI 7 Layer 정리

eltese·2024년 1월 18일
0
post-thumbnail

1. OSI 7 Layer

  • OSI 7계층 모델은 컴퓨터가 네트워크를 통해 데이터를 전송하기 위해 필요하다.
  • 각 계층은 각각 전담하고 있는 역할이 있다.

1.1) 각 계층의 역할

1계층: 물리 계층

  • 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어한다.

2계층: 데이터 링크 계층

  • 네트워크 기기 간의 데이터 전송 및 물리 주소를 결정한다.

3계층: 네트워크 계층

  • 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소를 결정한다.

4계층: 전송 계층

  • 신뢰할 수 있는 통신을 구현한다.

5계층: 세션 계층

  • 세션 체결, 통신 방식을 결정한다.

6계층: 표현 계층

  • 문자 코드, 압축, 암호화 등의 데이터를 변환한다.

7계층: 응용 계층

  • 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공한다.

2. 네트워크 전체 흐름

① 물리 계층

1. 역할

  • 컴퓨터와 네트워크 장비를 연결하고 컴퓨터와 네트워크 장비 간 전송되는 데이터를 전기 신호로 변환하는 역할

2. 0과 1을 전기 신호로 변환하는 법

  • 0과 1의 데이터가 컴퓨터 내부의 랜 카드로 전송되고 랜 카드는 0과 1을 전기 신호로 변환한다.

3. 리피터

  • 전기 신호를 정형(일그러진 전기 신호를 복원)하고 증폭하는 기능을 가진 네트워크 중계 장비
  • 통신하는 상대가 멀리 있을 때 리피터를 사이에 넣는다.
  • 일대일 통신만 가능
  • 최근에는 다른 네트워크 장비가 리피터 기능까지 지원함

4. 허브

  • 전기 신호를 정형(일그러진 전기 신호를 복원)하고 증폭하는 기능을 가진 네트워크 중계 장비
  • 포트를 여러 개 가지기 때문에 컴퓨터 여러 대와 통신 가능.
  • 리피터 허브라고도 불림

5. 스위치

  • 리피터, 허브의 대안
  • 허브보다 효율적이며, 리피터보다 고급된 트래픽 관리와 주소 학습 기능을 제공함

② 데이터 링크 계층

1. 역할

  • 네트워크 장비 간 신호를 주고받는 규칙을 정하는 계층
  • 랜에서 데이터를 주고받기 위해 필요하다.

2. 이더넷

  • 이더넷은 랜에서 적용되는 규칙
  • 허브, 스위치 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용

3. MAC 주소

  • 제조할 때 새겨지는 전 세계에서 유일한 물리 주소.

4. 프레임

  • 이더넷 헤더와 트레일러가 추가된 데이터을 프레임이라고 한다.
  • 이더넷 헤더
    • 이더넷 유형은 이더넷으로 전송되는 상위 계층 프로토콜의 종류
  • 트레일러 (FCS)
    • Frame Check Sequence
    • 데이터 전송 도중 오류가 발생하는지 확인할 때 사용

5. 스위치

  • 스위치는 주로 로컬 네트워크(LAN)에서 사용되며, 다양한 장치를 연결해 네트워크를 만드는 역할을 한다.
  • 내부에 MAC 주소 테이블이 있음.

6. MAC 주소 테이블

  • 스위치의 포트 번호와 해당 포트에 연결된 컴퓨터의 MAC 주소가 등록되어 있는 데이터베이스

  • MAC 주소 학습 기능

    • 네트워크 스위치가 자동으로 각 포트에 연결된 디바이스의 MAC 주소를 학습하고 기억하는 기능
  • 플러딩

    • 목적지 MAC 주소가 테이블에 등록되어 있지 않을 때 연결된 모든 컴퓨터로 데이터가 전송되는 현상
  • MAC 주소 필터링

    • 목적지 MAC 주소가 등록되어 있을 때 해당 포트에만 데이터를 보냄

7. 전이중 통신과 반이중 통신

  • 전이중 통신 방식

    • 데이터의 송수신을 동시에 통신하는 방식
    • 컴퓨터 간을 직접 랜 케이블로 연결
    • 스위치로 연결
    • 동시에 전송해도 충돌 x
  • 반이중 통신

    • 회선 하나로 송신과 수신을 번갈아가며 통신하는 방법
    • 허브로 연결
    • 동시에 전송하면 충돌

8. ARP

  • 목적지 컴퓨터의 IP 주소를 이용해 MAC 주소를 찾기 위한 프로토콜
  • 논리적인 IP 주소를 물리적인 MAC 주소로 매핑한다.

③ 네트워크 계층

1. 역할

  • 데이터 링크 계층에서는 이더넷 규칙을 기반으로 같은 네트워크에 있는 컴퓨터로만 데이터를 전송할 수 있다.
  • 네트워크 계층은 서로 다른 네트워크에 있는 목적지로 데이터를 전송하는 역할을 한다.

2. 라우터

  • 같은 네트워크 안에서만 통신이 가능한 스위치와 달리 다른 네트워크 간의 통신이 가능하다.
  • 네트워크를 분리할 수 있다.
  • 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 라우팅 기능이 있다.
  • 어떤 네트워크의 어떤 컴퓨터인지 알 수 있는 IP 주소가 필요하다.
  • 라우팅 테이블
    • 경로 정보를 등록하고 관리하는 테이블

3. 라우팅

  • 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기능
  • 라우터 간 라우팅 정보를 교환하기 위한 프로토콜이 있다.
    • RIP, OSPF, BGP

4. IP 헤더

  • IP 헤더가 포함된 데이터는 IP 패킷

5. IP 주소

  • 데이터를 다른 네트워크의 목적지로 보낼 때 필요함
  • ISP에게 할당받음
  • 어떤 네트워크인지 알 수 있는 네트워크 ID, 해당 네트워크의 어떤 컴퓨터인지 알 수 있는 호스트 ID로 나누어짐

④ 전송 계층

1. 역할

  • 물리 계층, 데이터 링크 계층, 네트워크 계층은 목적지로 데이터를 전송하고 전송 계층은 오류를 점검하고 문제가 있으면 재전송을 요청한다.
  • 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별한다.

2. 특징

  • TCP 프로토콜
    • 연결형 통신
    • 신뢰할 수 있고 정확한 데이터를 목적지에 문제 없이 전달하는 것이 목표
    • 상대편과 확인해가며 통신한다
  • UDP 프로토콜
    • 비연결형 통신
    • 데이터를 빠르고 효율적으로 전달하는 것이 목표
    • 상대편을 확인하지 않고 일방적으로 데이터를 전송한다
    • 동영상 스트리밍 등에 사용됨
    • 브로드캐스트에 적합

3. 세그먼트

  • TCP 헤더가 붙은 데이터를 세그먼트라고 한다.

4. TCP 헤더

  • TCP로 데이터를 전송할 때 붙이는 헤더.
  • 위와 같은 정보가 들어 있다.

5. 3-way 핸드셰이크

  • TCP로 데이터를 전송하기 전에 연결을 확인하기 위해 해야 하는 작업. 패킷을 3번 교환하기 때문에 3-way 핸드셰이크라고 불린다.

  • TCP 헤더의 코드 비트에 연결 제어 정보가 기록되는데 SYN은 연결 요청, ACK는 확인 응답에 쓰이는 비트다.

6. 4-way 핸드셰이크

  • TCP 연결을 종료하기 위한 프로세스. 패킷을 4번 교환하기 때문에 4-way 핸드셰이크라고 불린다.

  • FIN은 연결 종료 요청, ACK는 연결 종료 응답.

7. 데이터 전송

  • 데이터 전송에는 TCP 헤더의 일련 번호와 확인 응답 번호가 사용된다.
  • 일련 번호는 송신 측이 수신 측에게 이 데이터가 몇 번째 데이터인지 알려 준다.
  • 확인 응답 번호는 수신 측이 송신 측에게 몇 번째 데이터를 수신했는지 알려 준다.
  • 매번 확인 응답을 기다리면 효율이 좋지 않으므로 세그먼트를 연속해서 보낸 뒤 확인 응답을 반환한다.
  • 3-way 핸드셰이크를 하는 동안 윈도우 크기(버퍼의 한계 크기)를 알아내고 넘치지 않을 만큼만 세그먼트를 보낸다.

8. 포트 번호

  • 데이터의 목적지가 어떤 프로그램인지 구분하는 역할

⑤ 응용 계층

1. 역할

  • 통신 대상(서버 등)이 이해할 수 있는 데이터로 변환하고 전송 계층으로 전달하는 역할을 한다.
  • 사용자 측 애플리케이션(웹 브라우저, 메일 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해햐 한다.

2. 프로토콜

  • HTTP

    • 웹 사이트에 접속할 때 사용하는 프로토콜
  • FTP

    • 파일 전송할 때 사용하는 프로토콜
  • SMTP

    • 메일 보낼 때 사용하는 프로토콜
  • POP3

    • 메일 받을 때 사용하는 프로토콜
  • DNS

    • 네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아낼 때 사용하는 프로토콜
profile
백엔드 주니어 개발자 EL과 앱 개발자 Altese가 함께 운영하는 블로그

0개의 댓글