네트워크 - TCP/IP 4계층 모델

hsso_o·2024년 9월 19일
0

스터디

목록 보기
42/44

OSI 7계층, TCP/IP 4계층

  • 네트워크 통신을 설명하기 위한 두 가지 표준 모델

  • TCP/IP 계층 모델

    • OSI 모델이 탄생하기 전에 미국 국방부가 개발한 프로토콜
    • 4개의 레이어로 구성되어 있으며, 네트워킹을 위한 표준 프로토콜 모델
  • OSI 표준 모델

    • ISO(국제 표준기구)에서 도입
    • 7개의 레이어로 구성되었고, 시스템 아키텍처를 이해하고 설계하는 데 사용되는 개념적 모델로 통신에는 실질적으로 사용하지 않음.

이건 전에 TCP/UDP 스터디 정리하면서 했었는데 블로그에는 안 올렸었나보다!.! 아래 다시 올림ㅎㅎ

OSI 7계층

  • 표준 프로토콜을 사용하여 다양한 통신 시스템이 통신할 수 있도록 국제표준화기구에서 만든 개념 모델

  • 물리 계층 (Physical Layer): 하드웨어적 신호 전송

  • 데이터 링크 계층 (Data Link Layer): 프레임 전송 및 오류 감지

  • 네트워크 계층 (Network Layer): 패킷 라우팅 및 주소 지정

  • 전송 계층 (Transport Layer): 데이터 전송 및 오류 복구 → TCP와 UDP 프로토콜 사용

  • 세션 계층 (Session Layer): 세션 설정 및 관리

  • 표현 계층 (Presentation Layer): 데이터 인코딩 및 변환

  • 응용 계층 (Application Layer): 응용 프로그램 데이터 전송


TCP (Transmission Control Protocol)

  • 연결 지향 프로토콜 → 패킷 교환 방식 사용
  • 3-way handshaking과정을 통해 연결을 설정(세션 수립)하고 4-way handshaking을 통해 해제
  • 높은 신뢰성 보장 → 패킷이 손실되거나 순서가 바뀌면 재전송
  • 흐름 제어, 혼잡 제어, 오류 제어
  • 신뢰성 있는 전송이 중요할 때 사용 → 이메일, 파일 전송 등
  • UDP보다 속도가 느림

동작 원리

  1. 연결 설정: 클라이언트와 서버 간의 3-way handshake를 통해 연결 설정.
  2. 데이터 전송: 연결 설정 후, 데이터 패킷을 전송 + 수신 측에서 ACK를 보내서 수신 확인
  3. 연결 종료: 데이터 전송이 완료되면, 연결 종료 → 4-way handshake 수행

관련 용어

  • 흐름 제어
    • 수신 측의 버퍼 용량을 고려하여 송신 측의 데이터 전송 속도를 조절
    • Stop And Wait
      • 매번 전송한 패킷에 대한 응답을 받고 그 다음 패킷을 보내는 방법
    • Sliding Window
      • 수신자가 송신자 제어 → 패킷 보낼 때 수신 buffer 크기 정보 포함해서 전달
      • 윈도우 크기는 수신 측의 버퍼 용량 반영
  • 혼잡 제어
    • 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지
    • Slow Start phase
      • 연결이 설정된 후, 초기에는 작은 윈도우 크기로 시작하고, 패킷이 성공적으로 전송될 때마다 윈도우 크기를 지수적으로 증가
    • CA(congestion avoidance)
      • 슬로우 스타트 단계에서 혼잡 신호(예: 패킷 손실)가 감지되면, 윈도우 크기를 더디게 증가시키며 혼잡 상태를 피함
  • 오류 제어
    • 체크섬 (Checksum)
      • TCP 헤더와 데이터의 체크섬을 계산하여 패킷 전송 시 오류를 감지
    • 오류가 감지되거나 ACK 패킷이 일정 시간 내에 수신되지 않으면, 패킷 재전송
  • 3-way Handshake
    • TCP 연결을 설정하는 과정, SYN, SYN-ACK, ACK 패킷을 교환하여 연결 수립
    • 안정적이고 신뢰할 수 있는 연결 보장
1.SYN : 클라이언트가 서버에 연결 요청을 보내며, 연결을 시작하는 SYN 패킷을 전송합니다.
2.SYN-ACK : 서버는 클라이언트의 SYN 패킷을 수신하고, 연결을 수락하며, 클라이언트에게 SYN-ACK 패킷을 응답으로 보냅니다.
3.ACK : 클라이언트는 서버의 SYN-ACK 패킷을 수신한 후, 연결이 설정되었음을 확인하는 ACK 패킷을 서버에 전송합니다.

UDP (User Datagram Protocol)

  • 비연결형 프로토콜 → 데이터그램 방식 제공
  • 각각의 패킷은 다른 경로로 전송되며, 독립적인 관계 → 세션 설정이 없음, 순서 보장X
  • 신뢰성 낮은 전송(checksum으로 오류 감지는 하지만 수정은 하지 않음 )
  • 속도가 빠름 → 비디오 스트리밍, 음성 통화 등에 사용

동작 원리

  1. 데이터그램 전송: 데이터는 독립적인 패킷(데이터그램)으로 전송, 각 패킷은 독립적으로 처리됨
  2. 패킷 수신: 수신 측은 수신된 패킷을 기반으로 데이터 처리, 패킷의 순서가 바뀌거나 손실되면 애플리케이션 레벨에서 이를 처리해야 함!.!
  3. 체크섬: 데이터 전송 중 발생할 수 있는 오류를 감지하지만, 오류 수정 기능은 제공X

TCP vs UDP 비교

특성TCP (Transmission Control Protocol)UDP (User Datagram Protocol)
연결 방식연결 지향 (Connection-Oriented)비연결 지향 (Connectionless)
신뢰성신뢰성 있음 (데이터의 정확한 전달을 보장하고, 오류 감지 및 수정)신뢰성 없음 (데이터의 정확한 전달 보장하지 않음)
오류 제어오류 감지 및 수정 (체크섬, 재전송, ACK)오류 감지만 수행 (체크섬), 오류 수정 없음
흐름 제어흐름 제어 (윈도우 크기 조절, 수신 측의 버퍼에 맞춰 조절)흐름 제어 없음 (송신 측에서 수신 측의 상태 고려하지 않음)
혼잡 제어혼잡 제어 (네트워크 혼잡 상태 감지 및 조절)혼잡 제어 없음 (네트워크 혼잡에 대한 조절 기능 없음)
데이터 전송데이터 전송 전 연결 설정 필요, 패킷 순서 보장데이터 전송 전 연결 설정 없음, 패킷 순서 보장하지 않음
속도상대적으로 느림 (연결 설정 및 오류 제어로 인한 오버헤드)상대적으로 빠름 (연결 설정 및 제어 과정 없음)
사용 사례웹 브라우징 (HTTP/HTTPS), 파일 전송 (FTP), 이메일 (SMTP/IMAP)비디오 스트리밍, 음성 통화 (VoIP), 온라인 게임
헤더 크기헤더가 비교적 크고 복잡 (20 바이트)헤더가 간단하고 작음 (8 바이트)
연결 종료연결 종료 절차 필요 (4-way handshake)연결 종료 없음 (데이터 전송 후 자동 종료)
  • TCP는 연결 지향, 신뢰성, 오류 제어, 흐름 제어 및 혼잡 제어를 제공하며, 데이터 전송의 신뢰성과 안정성을 보장.
    • 상대적으로 속도가 느리고, 복잡한 헤더와 연결 설정 절차가 필요함
  • UDP는 비연결 지향, 신뢰성이 없으며, 오류 감지만 수행하고 흐름 제어와 혼잡 제어가 없음
    • 속도가 빠르고 헤더가 간단하지만, 데이터 전송 신뢰성을 보장X

PDU (Protocol Data Unit)

  • 네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위
  • 제어 관련 정보들이 포함된 '헤더', 데이터를 의미하는 '페이로드'로 구성, 계층마다 부르는 명칭이 다름
profile
아뇨 소혠데요-

0개의 댓글