본문 바로가기
IT/Network

[network] TCP/IP: 인터넷의 핵심 프로토콜 - 미니 퀴즈 포함, 정보처리기사 기초 개념

by Echinacea 2025. 2. 13.
반응형

 

1. TCP/IP란?

TCP/IP(Transmission Control Protocol/Internet Protocol)는 인터넷에서 데이터를 송수신하는 핵심 프로토콜 스택이다. TCP/IP는 네트워크 계층 구조를 정의하며, 컴퓨터와 네트워크 장비 간의 통신을 가능하게 한다.

  • TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 보장하는 프로토콜.
  • IP (Internet Protocol): 데이터를 목적지까지 라우팅하는 역할을 담당하는 프로토콜.

 

2. TCP/IP 계층 모델

TCP/IP는 4계층 모델을 따른다. OSI 7계층보다 간결하며, 실제 인터넷에서 사용되는 방식이다.

계층/역할/주요 프로토콜

응용 계층 사용자와 직접 상호작용하는 계층 HTTP, FTP, DNS, SMTP, SSH
전송 계층 데이터의 신뢰성 있는 전송 담당 TCP, UDP
인터넷 계층 데이터 패킷의 라우팅 및 주소 지정 IP, ICMP, ARP
네트워크 인터페이스 계층 실제 네트워크에서 물리적 데이터 전송 이더넷, Wi-Fi, MAC 주소

 

3. TCP vs UDP: 무엇이 다를까?

TCP와 UDP는 전송 계층에서 사용되며, 각각 다른 특징을 가진다.

항목 TCP UDP
연결 방식 연결 지향 (3-way handshake) 비연결 지향
신뢰성 데이터 손실 없이 보장 데이터 손실 가능
속도 느림 (오버헤드 존재) 빠름 (오버헤드 적음)
용도 웹 브라우징, 이메일, 파일 전송 실시간 스트리밍, 온라인 게임

 

4. IP 주소와 서브넷 마스크

  • IPv4 (예: 192.168.1.1/24): 32비트 주소 체계, 최대 42억 개 주소 가능.
  • IPv6 (예: 2001:db8::ff00:42:8329): 128비트 주소 체계, 사실상 무한한 주소 공간 제공.
  • 서브넷 마스크 (Subnet Mask): 네트워크와 호스트를 구분하는 역할 (255.255.255.0/24)

 

5. TCP/IP의 핵심 프로토콜

  • HTTP/HTTPS: 웹 브라우징을 위한 프로토콜 (HTTPS는 보안 추가)
  • FTP/SFTP: 파일 전송 프로토콜
  • DNS: 도메인 이름을 IP 주소로 변환
  • ICMP: 네트워크 상태 확인 (ping 명령어 사용)
  • ARP: IP 주소를 MAC 주소로 변환

 

6. TCP 3-Way Handshake (연결 과정)

TCP는 데이터 전송을 시작하기 전에 **3단계 핸드셰이크(3-Way Handshake)**를 수행한다.

  1. SYN → 클라이언트가 서버에 연결 요청
  2. SYN-ACK → 서버가 요청을 승인
  3. ACK → 클라이언트가 승인 응답 후 연결 확립

이 과정을 거쳐 신뢰성 있는 연결을 형성하고 데이터 전송을 시작한다.

 

7. TCP/IP 사용 예제 (Python 코드)

TCP 서버와 클라이언트를 구현하는 기본적인 Python 코드 예제:

 

TCP 서버 예제

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8080))
server_socket.listen(1)
print("서버 대기 중...")

conn, addr = server_socket.accept()
print(f"클라이언트 연결됨: {addr}")

conn.sendall(b'Hello from server!')
conn.close()
server_socket.close()

 

TCP 클라이언트 예제

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8080))

data = client_socket.recv(1024)
print("서버로부터 받은 데이터:", data.decode())

client_socket.close()

 

8. TCP/IP가 사용되는 곳

TCP/IP는 인터넷을 포함하여 다양한 네트워크 환경에서 활용된다.

  • 웹 서비스: HTTP(S)를 통해 웹사이트 제공
  • 파일 전송: FTP, SFTP, SMB 프로토콜 사용
  • VoIP & 영상 스트리밍: UDP 기반의 빠른 데이터 전송
  • 클라우드 및 데이터 센터: 서버 간 네트워크 통신의 기본

 

9. TCP/IP 네트워크 트러블슈팅

네트워크 문제 발생 시 유용한 명령어:

  • ping: 목적지 호스트가 응답하는지 확인
  • traceroute (Linux) / tracert (Windows): 네트워크 경로 추적
  • netstat: 네트워크 연결 상태 확인
  • ipconfig (Windows) / ifconfig (Linux): 네트워크 인터페이스 정보 확인

 

10. 미니 퀴즈

 

Q1. TCP와 UDP의 가장 큰 차이점은 무엇인가?

  • A) TCP는 신뢰성 있는 전송을 보장하지만, UDP는 그렇지 않다.
  • B) UDP는 항상 더 빠르다.
  • C) TCP는 주로 게임에 사용된다.
  • D) UDP는 3-Way Handshake 과정을 거친다.

 

Q2. IPv4 주소 체계에서 서브넷 마스크가 255.255.255.0인 경우, 몇 개의 호스트를 사용할 수 있을까?

  • A) 256개
  • B) 254개
  • C) 512개
  • D) 1024개

 

11. 결론

TCP/IP는 인터넷을 구성하는 가장 중요한 네트워크 프로토콜이며, 웹 브라우징, 파일 전송, 스트리밍 등 다양한 용도로 활용된다. 네트워크를 이해하고 최적화하려면 TCP/IP의 동작 원리를 숙지하는 것이 필수적이다.


 

📌 미니 퀴즈 정답:

  • Q1: A) TCP는 신뢰성 있는 전송을 보장하지만, UDP는 그렇지 않다.
  • Q2: B) 254개
반응형

댓글