백엔드 개발자

TCP/IP 본문

CS/네트워크

TCP/IP

임잠탱 2024. 12. 26. 20:30

TCP/IP란 무엇인가?

TCP/IP는 인터넷과 네트워크의 기본이 되는 통신 규약(Protocol)의 모음이다.

네트워크에서 애플리케이션 간의 데이터 전송, IP 주소간의 통신 등 다양한 규칙이 필요한데 이런 규칙들을 모아놓은 것이다.

TCP/IP는 서로 다른 기기 간에 신뢰성 있고 효율적으로 전송될 수 있도록 설계된 구조로, 계층적 설계(layered architecture)를 기반으로 동작한다. 이를 통해 TCP/IP는 다양한 하드웨어와 소프트웨어 환경에서도 통합적으로 작동할 수 있다.


Layered 계층 구조란?

Layered 계층 구조는 네트워크를 여러 독립적인 계층으로 나누어 각각의 계층이 특정 기능을 담당하도록 설계된 모델이다. 각 계층은 상위 계층이나 하위 계층과 상호작용하지만, 자신의 역할에만 집중해 데이터를 처리한다.

Layered 계층 구조의 설계 이유와 장점

  1. 모듈화된 설계
    • 각 계층이 독립적으로 설계되므로, 한 계층의 변경이 다른 계층에 영향을 주지 않는다.
    • 예: 새로운 전송 프로토콜 추가 시, 네트워크 계층이나 응용 계층을 수정할 필요가 없음.
  2. 문제 해결 용이
    • 계층별로 명확히 정의된 역할 덕분에 문제 발생 시 어느 계층에서 오류가 생겼는지 쉽게 진단할 수 있다.
  3. 확장성
    • 새로운 프로토콜이나 기술을 추가할 때 전체 시스템을 다시 설계할 필요 없이, 해당 계층에만 변경 사항을 적용하면 된다.
  4. 재사용성
    • 한 계층에서 설계된 기능을 다양한 상위 계층이 공통적으로 사용할 수 있다.
  5. 표준화
    • 계층 구조를 기반으로 글로벌 표준이 만들어져, 다양한 하드웨어와 소프트웨어 간 상호운용성이 보장된다.

OSI 7계층과의 관계

 

OSI는 국제표준화기구(ISO)에서 개발한 모델이다.

TCP/IP는 OSI 7계층 모델에 기반을 두고 있고, 인터넷 통신은 이러한 TCP/IP 기반으로 동작한다.

  • OSI 모델은 7계층(물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층)으로 이루어져 있으며, 이론적으로 세부적이고 정교한 설계를 목표로 한다.
  • TCP/IP는 4계층(응용, 전송, 인터넷, 네트워크 인터페이스)으로 단순화된 구조를 가지며, 실용적인 구현에 중점을 둔다.

TCP/IP 모델에서는 세션 계층과 표현 계층이 응용 계층에 통합되었고, 물리, 데이터 링크도 통합되었다.

그런데 이 TCP/IP 모델도 업데이트되어 물리, 데이터 링크 계층이 나눠져 동작하므로, 업데이트된 버전으로 설명할 것이다.


TCP/IP 각 계층의 상세 설명

1. 5계층 응용 계층 (Application Layer)

역할

  • 사용자에게 제공되는 서비스로, 사용자와 네트워크 간 인터페이스를 제공한다.
  • 데이터의 형식과 처리 방식을 애플리케이션 요구에 맞게 정의한다.

주요 프로토콜

  • HTTP/HTTPS: 웹 브라우징.
  • SMTP: 이메일 전송.
  • DNS: 도메인 이름을 IP 주소로 변환.
  • FTP: 파일 전송.

데이터 흐름

  1. 사용자가 애플리케이션에서 요청을 생성.
  2. 데이터를 적절한 형식(예: HTTP 요청)으로 변환 후 전송 계층으로 전달.

ex ) 헤더 + 바디 구조의 http 패킷이 생성됨.


2. 전송 계층 (Transport Layer)

역할

  • 데이터를 세그먼트(Segment)로 분할하여 전송하며, 애플리케이션 간 신뢰성과 효율성을 보장.
  • 송신자와 수신자 간 논리적 연결을 설정하고 관리한다.

주요 프로토콜

  • TCP: 연결 지향적, 신뢰성 보장, 데이터 흐름 제어.
  • UDP: 비연결형, 빠른 전송, 낮은 신뢰성.

참고: TCP/IP는 전송 계층에서 반드시 TCP만을 사용하는 것이 아니라, UDP도 사용된다. 사용 목적에 따라 선택되는데 예를 들어, HTTP는 TCP를, DNS는 UDP를 사용한다.

세부 동작

  • TCP의 3-Way Handshake: 연결 설정.
    • 클라이언트가 서버에 SYN 패킷 전송 → 서버가 SYN+ACK 응답 → 클라이언트가 ACK로 확인.
  • 데이터 재조립: 수신자는 순서가 뒤바뀐 세그먼트를 올바르게 정렬.
  • 오류 제어: 손실된 패킷은 재전송 요청.

=> 애플리케이션 간 통신을 위해 port번호를 추가.


3. 인터넷 계층 (Internet Layer)

역할

  • 데이터를 패킷(Packet) 단위로 분할하고, 전 세계 네트워크를 통해 목적지로 전달.
  • 데이터 전송 경로를 선택하고 최적의 경로를 계산.

주요 프로토콜

  • IP (Internet Protocol):
    • 목적지 주소로 데이터 전달.
    • IPv4(32비트), IPv6(128비트) 지원.
  • ICMP (Internet Control Message Protocol):
    • 네트워크 문제 진단 및 오류 메시지 전송.
    • 예: "목적지 도달 불가" 메시지.
  • ARP (Address Resolution Protocol):
    • IP 주소를 MAC 주소로 변환하여 데이터 링크 계층에서 사용할 수 있도록 함.

데이터 흐름

  1. 전송 계층에서 받은 세그먼트에 IP 헤더를 추가하여 패킷 생성.
  2. 최적의 경로를 선택하여 데이터 전송.

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

역할

  • 로컬 네트워크(LAN)에서 송신 노드와 수신 노드 간 데이터 전송을 담당.
  • 데이터를 프레임(Frame) 단위로 처리.

주요 프로토콜

  • ARP (Address Resolution Protocol):
    • IP 주소 → MAC 주소 변환.
    • 송신자는 수신자의 MAC 주소를 알아야 데이터 전송 가능.
  • RARP (Reverse ARP):
    • MAC 주소 → IP 주소 변환.

데이터 흐름

  1. 프레임 생성:
    • 인터넷 계층에서 받은 패킷에 이더넷 헤더와 트레일러를 추가.
      • 헤더: 송신 MAC 주소, 수신 MAC 주소 포함.
      • 트레일러: 오류 검출용 CRC(Cyclic Redundancy Check) 포함.
      • CRC: 데이터의 무결성을 확인하기 위해 프레임 끝에 추가된 검증 값.
  2. 노드 간 통신:
    • 스위치나 브리지 같은 네트워크 장비를 통해 송신자와 수신자 간 프레임 전달.
  3. 오류 검출:
    • 프레임이 손상되었는지 확인(CRC 검사). 오류가 감지되면 해당 프레임은 버려지고, 상위 계층(TCP 등)이 필요에 따라 재전송 요청을 처리.

5. 물리 계층 (Physical Layer)

역할

  • 데이터를 전기 신호, 광 신호, 또는 무선 신호로 변환하여 물리적인 매체를 통해 전송.

주요 동작

  1. 비트 스트림 변환:
    • 데이터 링크 계층에서 받은 프레임을 0과 1의 비트로 변환.
  2. 신호 전달:
    • 전기적 펄스(유선), 광 신호(광섬유), 무선 주파수(Wi-Fi)를 통해 데이터를 전달.
  3. 매체 동기화:
    • 송신자와 수신자가 동일한 타이밍으로 데이터를 주고받을 수 있도록 조정.

 

'CS > 네트워크' 카테고리의 다른 글

HTTP & HTTPS  (3) 2024.10.31
IP 인터넷 프로토콜  (0) 2024.10.24
UDP  (2) 2024.10.17
TCP  (0) 2024.10.17
Comments