COMPUTER SCIENCE/NETWORK

OSI 7 Layer와 TCP/IP Protocol

axelrod입니다 2024. 12. 4. 14:33

OSI 7 Layer

국제 표준화 기구(ISO)에서 컴퓨터 네트워크 프로토콜을 계층으로 표현한 모델을 OSI 7 Layer(Open System Interconnection)이라고 한다. 

 

 1. Physical Layer

- 실제 Data bit를 전송하는 물리적 링크 설정, 유지, 절단.

- 전기 신호들이 구리 선이나 광섬유를 통해 전달.

- 전송 매체로는 Twisted Pair, 광케이블, 동축 케이블, 기타 무선 매체 등이 있다.

  • 단위 : signal, bit
  • 대표 장치 : Hub, Reapeater(신호 세기 증폭)

2. Data Link Layer

- 논리적 연결 제어, 매체 접근 제어, 하드웨어 주소 지정.

- Point to Point 간 신뢰성 있는 전송을 보장하는 계층. CRC 기반의 오류 제어와 흐름 제어 필요.

- 물리적인 주소값(MAC address)을 할당받는다. HDLC, ADDCP 같은 PtP 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다. 네트워크 브릿지나 스위치 등이 이 계층에서 동작.

- 대부분의 LAN과 무선 LAN 기술이 정의되어 있다.

  • 주요 프로토콜 : IEEE802.2 이더넷 프로토콜, 토큰링, 와이파이 등
  • 단위 : Frame
  • 대표 장치 : L2 Switch

3. Network Layer

- 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터넷워킹 등을 수행한다. 라우터가 이 계층에서 동작하고 이 계층에서 수행하는 스위치도 있다.

- 논리적 주소 구조(IP address)를 가진다. 네트워크 관리자가 직접 주소를 할당하거나 DHCP Server에서 동적으로 할당 받는다.

- 서브넷의 최상위 계층으로 경로를 설정한다. 데이터를 패킷 단위로 분할해 전송 후 재결합한다.

- 패킷을 단편화해 내려보낸 후 수신 호스트의 CPU가 네트워크 계층에서 재조합한다.

  • 단위 : Packet, Datagram
  • 대표 장치 : Router, L3 Switch

4. Transport Layer

- 전송 계층은 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고받도록 해 준다. 목적지에서 발신지 간의 통신에서 에러 제어와 흐름 제어를 담당.

- 3계층까지는 IP로 도착지를 찾는다면 4계층에서는 포트 번호를 이용해 하위 계층이나 응용 프로그램에 연결(Bind) 한다.

- End to End 데이터 흐름 가능하도록 논리적 연결

  • TCP/UDP 프로토콜 사용
  • SSL 및 TLS 실행
  • 단위 : Segment

5. Session Layer

- 양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공

- 동신 송수신 방식 Duplex, 반이중 방식 Half Duplex, 전이중 방식 Full Duplex의 통신과 함께 Check Point과 유휴, 종료, 다시 시작 과정 등을 수행

- 연결 세션에서 데이터 교환과 에러 발생 시의 복구를 관리

- 송수신 측 사이의 동기화 제공

- 가상 연결 제공 (Login/Logout 수행)

- 세션 계층에서 API 도구 모음(NetBios, TCP/IP socket, 원격 절차 호출 등)을 제공해 프로그래머는 TCP/IP의 세부 동작 방식을 알지 못해도 소프트웨어 구현 가능

  • 사용되는 프로토콜 : NetBios

6. Presentation Layer

- 코드 간의 번역을 담당해 사용자 시스템에서 데이터 형식상 차이를 다루는 부담을 응용 계층에게 덜어준다

- 수신자와 송신자 사이의 데이터 암호화(스니핑 방지), 복호화, 변환, 인코딩, 디코딩, 압축, 해제 등을 담당

- ASCII 코드나 Little Endian 또는 Big-Ending(gif, jpg 확장자) 등의 포맷을 지정

- 텍스트 및 그래픽 정보를 16진수 데이터로 변환(코드화)


7. Application Layer

- 응용 프로세스와 직접 관계해 일반적인 응용 서비스를 수행

- 사용자에게 데이터를 받아 하위 계층으로 전달, 하위 계층에서 전달하는 데이터를 사용자에게 전달하는 역할 수행

  • 프로토콜 : Telnet, FTP, 전자우편(POP, SMTP), HTTP, SNMP 등
  • 단위 : Message
  • 사용 장비 : Gateway

TCP/IP Protocol

 

 

TCP/IP란 무엇인가?

TCP/IP(Transmission Control Protocol/Internet Protocol)는 인터넷에서 데이터를 주고받는 데 사용되는 기본적인 통신 프로토콜 세트입니다. TCP/IP는 인터넷과 네트워크 통신의 근간을 이루며, 네트워크 장치 간에 데이터를 신뢰성 있게 전달하고 라우팅합니다. 이 프로토콜은 계층화된 구조로 설계되어 있어 각 계층이 특정한 역할을 담당합니다.


TCP/IP 모델의 계층 구조

TCP/IP는 네 계층으로 이루어져 있으며, 각 계층은 데이터를 처리하고 전달하는 데 필요한 특정 기능을 제공합니다.

1. 네트워크 인터페이스 계층 (Network Interface Layer)

  • 역할: 실제로 데이터를 네트워크 장치를 통해 물리적으로 전송합니다.
  • 주요 프로토콜 및 기술:
    • Ethernet, Wi-Fi, ARP(Address Resolution Protocol) 등
  • 기능:
    • 데이터를 네트워크 인터페이스로 변환하여 물리적 매체로 전송.
    • IP 주소를 물리적 MAC 주소로 변환.

2. 인터넷 계층 (Internet Layer)

  • 역할: 데이터를 목적지까지 라우팅하고 전달.
  • 주요 프로토콜:
    • IP(Internet Protocol):
      • 데이터 패킷에 출발지와 목적지 IP 주소를 포함.
      • 데이터 전달 경로를 결정.
      • IPv4와 IPv6 버전이 있음.
    • ICMP(Internet Control Message Protocol):
      • 네트워크 오류나 상태 정보를 전달.
      • 예: 핑(ping) 명령어에서 사용.
    • ARPRARP:
      • IP 주소 ↔ MAC 주소 변환.
  • 기능:
    • 데이터 패킷(fragmentation)을 작은 단위로 나누고, 목적지에서 재조립.
    • 경로 최적화를 통해 데이터가 올바른 목적지에 도달하도록 지원.

3. 전송 계층 (Transport Layer)

  • 역할: 데이터를 세션 간에 신뢰성 있게 전송.
  • 주요 프로토콜:
    • TCP(Transmission Control Protocol):
      • 신뢰성 있는 데이터 전송 보장.
      • 연결 설정(3-way handshake), 흐름 제어, 오류 수정, 재전송 기능.
    • UDP(User Datagram Protocol):
      • 간단하고 빠른 데이터 전송.
      • 연결을 설정하지 않으며 신뢰성 보장은 없음.
      • 예: 동영상 스트리밍, VoIP.
  • 기능:
    • 데이터 스트림을 세그먼트(segment)로 나누고 순서를 유지.
    • 데이터 전달 성공 여부를 확인.

4. 응용 계층 (Application Layer)

  • 역할: 네트워크 서비스와 애플리케이션 간의 상호작용을 지원.
  • 주요 프로토콜:
    • HTTP/HTTPS: 웹 페이지 전송.
    • SMTP: 이메일 전송.
    • FTP: 파일 전송.
    • DNS: 도메인 이름 → IP 주소 변환.
  • 기능:
    • 애플리케이션이 데이터를 보내고 받기 위한 인터페이스 제공.

데이터 흐름 과정 (TCP/IP 패킷 전송 과정)

  1. 응용 계층:
    • 애플리케이션에서 데이터를 생성 (예: 웹 브라우저가 HTTP 요청 생성).
  2. 전송 계층:
    • 데이터를 세그먼트로 나누고, TCP 헤더(포트 번호, 순서 정보 등)를 추가.
  3. 인터넷 계층:
    • TCP 세그먼트에 IP 헤더(출발지 및 목적지 IP 주소)를 추가하여 패킷 생성.
  4. 네트워크 인터페이스 계층:
    • 패킷을 프레임(frame)으로 캡슐화하고, 물리적 네트워크를 통해 전송.
  5. 수신 측:
    • 프레임 → 패킷 → 세그먼트 → 데이터의 순서로 역캡슐화.
    • 최종적으로 응용 계층에 데이터 전달.

TCP와 UDP의 차이점

기능 TCP UDP

연결 방식 연결 기반 (Connection-oriented) 비연결 기반 (Connectionless)
신뢰성 데이터 전달 보장 데이터 전달 보장하지 않음
속도 느림 빠름
주요 사용 사례 파일 전송, 이메일, 웹 브라우징 스트리밍, 게임, VoIP

TCP의 3-Way Handshake

TCP는 신뢰성을 보장하기 위해 세션을 설정할 때 3-Way Handshake 과정을 거칩니다.

  1. SYN: 클라이언트가 서버에 연결 요청.
  2. SYN-ACK: 서버가 요청을 수락하고 확인 응답.
  3. ACK: 클라이언트가 응답을 확인하고 연결이 성립.

IP 주소와 서브넷팅

  • IP 주소: 네트워크 상의 각 장치를 식별하는 고유 주소.
    • IPv4: 32비트 (예: 192.168.0.1)
    • IPv6: 128비트 (예: 2001:0db8:85a3::8a2e:0370:7334)
  • 서브넷 마스크: 네트워크와 호스트를 구분하는 데 사용.
    • 예: 255.255.255.0 → 24비트는 네트워크, 나머지는 호스트.

TCP/IP의 장점

  1. 표준화: 전 세계에서 통용되는 표준 프로토콜.
  2. 유연성: 다양한 하드웨어와 운영체제에서 사용 가능.
  3. 확장성: 대규모 네트워크에서도 효율적으로 동작.
  4. 모듈화: 각 계층이 독립적으로 동작.