반응형
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)**를 수행한다.
- SYN → 클라이언트가 서버에 연결 요청
- SYN-ACK → 서버가 요청을 승인
- 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개
반응형
'IT > Network' 카테고리의 다른 글
[network] 주요 사이트의 dns 서버 주소 모음(25.02.13 기준) (0) | 2025.02.13 |
---|---|
[network] OSI 7계층 10문제 (0) | 2025.02.13 |
[network] OSI 7계층: 네트워크 통신의 기본 원리 - 미니 퀴즈 포함 (0) | 2025.02.13 |
[network] 방화벽(Firewall): 네트워크 보안의 첫 번째 방어선 - 미니퀴즈 포함 (0) | 2025.02.13 |
[network] FTPS & SFTP: 보안 파일 전송의 모든 것 - 소스코드, 네트워크 확인 방법 포함 (0) | 2025.02.13 |
[network] FTP: 파일 전송의 모든 것 (0) | 2025.02.13 |
[network] HTTP & HTTPS 개념 정리 (0) | 2025.02.12 |
[network] IP 주소 & DNS 개념 정리 (0) | 2025.02.12 |
댓글