본문 바로가기
Network

TCP/IP: 안전하고 신뢰성 있는 통신

by yororing 2024. 9. 12.

00 개요

  • TCP/IP(Transmission Control Protocol/Internet Protocol)에 대한 정리

01 TCP/IP란

  • 네트워크 통신을 위해 설계된 프로토콜 모음으로, 데이터를 전송하는 방법과 규칙을 정의함
  • 인터넷과 네트워크 통신의 기본이 되는 통신 프로토콜 스택 (TCP와 IP가 이 스택의 핵심 구성 요소)
    • 통신 프로토콜 스택이란:
      • 데이터를 네트워크를 통해 송수신할 때 사용하는 프로토콜(규칙)의 계층적 구조를 의미
      • 이 스택은 각 계층이 특정 기능을 담당하고, 서로 다른 계층 간의 상호작용을 통해 데이터가 전달됨
      • 프로토콜 스택은 데이터를 송신 측에서 수신 측으로 안전하고 효율적으로 전송하기 위한 단계적인 처리 과정을 나타냄
  • 이 프로토콜은 데이터를 어떻게 패킷화하고 전송하는지를 규정하는 표준 통신 모델로, 네트워크 계층(Network Layer) 전송 계층(Transport Layer)에서 주로 작동함 (참조: 2024.03.29 - [Network] - OSI 모델 )
  •  

1) TCP/IP 프로토콜 스택이란

  • TCP/IP 프로토콜 스택은 인터넷과 네트워크 통신에서 가장 널리 사용되는 프로토콜 스택이며, 보통 4계층으로 나누어짐
단계 설명
응용 계층 (Application Layer) - 사용자가 상호작용하는 애플리케이션과 직접 연결됨
- 예: HTTP(웹 브라우징), SMTP(이메일), FTP(파일 전송)
응용 계층(HTTP)은 웹 서버로부터 데이터를 요청
전송 계층 (Transport Layer) - 데이터 전송의 신뢰성과 안정성을 보장
- 예: TCP(신뢰성 있는 연결), UDP(비신뢰성 빠른 전송)
전송 계층(TCP)은 데이터를 작은 패킷으로 나누고, 각 패킷에 순서 번호를 부여
인터넷 계층 (Internet Layer) - 데이터를 목적지까지 전송하기 위한 주소 지정 및 경로 설정(라우팅)을 담당
- 예: IP(Internet Protocol)
인터넷 계층(IP)은 각 패킷을 목적지 IP 주소로 전송할 수 있도록 라우팅을 설정
네트워크 인터페이스 계층 (Network Interface Layer) - 데이터가 실제 네트워크를 통해 전달되는 물리적 네트워크 인터페이스와 연결됨
- 예: Ethernet, Wi-Fi
네트워크 인터페이스 계층은 데이터를 물리적인 네트워크(예: 이더넷 또는 Wi-Fi)를 통해 실제로 전송
  • TCP/IP 프로토콜 스택 (aka 통신 프로토콜 스택)은 데이터를 계층적으로 처리하여 안정적이고 효율적으로 전송하기 위한 구조
  • 각 계층은 특정 기능을 담당하고, 계층 간 상호작용을 통해 통신이 이루어짐
  • TCP/IP 프로토콜 스택은 네트워크 통신의 핵심으로, 인터넷에서 신뢰성과 효율성을 보장

1. IP 및 TCP

  • IP (Internet Protocol): 네트워크의 하위 계층에서 데이터를 패킷(Packet) 단위로 나누고, 각 패킷이 목적지로 전달되기 위한 경로를 지정. IP는 패킷의 출발지와 목적지 주소를 정의하고, 라우팅을 통해 패킷이 목적지까지 도달할 수 있도록 함
  • TCP (Transmission Control Protocol): IP 위에서 작동하며, 데이터를 연결 지향적으로 전송하고, 데이터의 신뢰성을 보장하는 역할을 함. TCP는 패킷의 전송 순서를 보장, 전송 중 발생할 수 있는 오류나 손실을 복구

2. TCP가 안전하고 신뢰성 있는 통신 프로토콜인 이유

  • 이유: 다음과 같은 메커니즘을 통해 데이터 전송의 무결성과 순서를 보장하기 때문

1) 연결 지향형 프로토콜 (Connection-Oriented Protocol)

  • TCP는 데이터를 전송하기 전에 서버와 클라이언트 간의 연결을 설정
  • 이 과정은 3-way handshake라는 절차를 통해 이루어짐
1. client가 server에 연결 요청 (SYN)을 보냄
2. server가 연결 수락 (SYN-ACK)을 응답함
3. client가 이를 확인 (ACK)하고, 양측은 데이터를 주고 받기 시작함
  • 이 연결 과정 덕분에 양측은 통신 상태를 확인하고, 안정적인 데이터 전송이 가능해짐

2) 데이터 순서 보장 (Ordered Delivery)

  • TCP는 데이터 패킷의 순서를 보장
  • 송신자가 여러 개의 패킷을 보내면, 수신자는 이 패킷들을 순서대로 재조립함
  • 만약 패킷이 전송 중에 순서가 뒤바뀌더라도, TCP는 이를 원래 순서대로 정렬한 후 데이터를 전달
  • 이를 통해 애플리케이션에서 데이터의 순서에 문제가 발생하지 않음 

3) 오류 검출 및 복구 (Error Detection and Retransmission)

  • 전송 중에 손실되거나 손상된 데이터는 TCP에서 자동으로 재전송됨
  • TCP는 각 패킷마다 순서 번호(Sequence Number)를 부여하여, 수신자가 해당 번호를 바탕으로 데이터가 손실되었는지 확인 가능
  • 또한, 수신자는 패킷을 받을 때마다 확인 응답(ACK)을 보냄
  • 이 응답이 송신자에게 도달하지 않으면, 송신자는 해당 패킷을 재전송하여 데이터 손실을 복구

4) 오류 검출 기능 (Error Detection)

  • TCP는 체크섬(Checksum)을 통해 패킷 전송 중 발생할 수 있는 데이터 오류를 감지
  • 수신자는 수신된 패킷의 체크섬을 확인하고, 데이터가 손상되었을 경우 해당 패킷을 버리고 재전송을 요청

5) 흐름 제어 (Flow Control)

  • TCP는 수신자가 처리할 수 있는 양만큼 데이터를 보내는 흐름 제어 기능을 가지고 있음
  • 송신자는 수신자의 처리 속도에 맞춰 전송 속도를 조절하여, 네트워크가 과부하되지 않도록 함 

6) 혼잡 제어 (Congestion Control)

  • 네트워크 혼잡 상황에서도 TCP는 데이터 손실을 최소화하기 위해 전송 속도를 자동으로 조절함
  • 네트워크의 상태에 따라 전송 속도를 늘리거나 줄이면서 혼잡을 완화하고, 데이터 전송의 안정성을 유지

3. TCP/IP 실제 응용

  • TCP/IP는 전 세계 네트워크 통신의 기본 구조로, 인터넷과 기업 네트워크에서 필수적으로 사용됨
  • 예시)
    • 웹 브라우징: 웹 페이지를 요청할 때 TCP/IP를 사용하여 서버에서 데이터를 받아옴
    • 이메일 전송: SMTP, POP3, IMAP 등의 이메일 프로토콜은 모두 TCP/IP를 기반으로 작동함
    • 파일 전송: FTP와 같은 파일 전송 프로토콜도 TCP/IP를 사용하여 파일을 안전하게 전송함 

 

 

참조

  1.  (OSI 7 계층 사진) https://a-mond.tistory.com/28
  2.  
  3.  

 

'Network' 카테고리의 다른 글

소켓과 패킷 (Socket Packet 네트워크)  (0) 2024.09.12
Proxy (프록시)  (0) 2024.07.10
Subnet Mask란 (NETMASK 설정)  (0) 2024.04.16
네트워크의 기초 지식  (1) 2024.03.29
OSI 모델  (0) 2024.03.29