네트워크 1강: 컴퓨터들은 어떤 방법으로 서로 통신하나요?
1. 초기 컴퓨터 간 네트워크 연결
- 과거에는 물리적인 연결(예: USB 케이블)로 컴퓨터 간 데이터를 주고받음.
- 그러나 거리가 먼 컴퓨터 간 통신에는 한계가 존재함.
→ 예: 한국의 컴퓨터가 이탈리아의 컴퓨터와 통신하려면?
2. 인터넷(Internet)
- 인터넷이란?
→ 인터넷 프로토콜 스위트(TCP/IP) 기반의 전 세계적인 컴퓨터 네트워크 통신망
→ 인터넷을 통해 원거리의 컴퓨터 간에도 통신 가능
- 인터넷의 물리적 연결 방식
- 해저 광케이블: 전 세계적으로 연결되어 있는 유선 통신망
- 인공위성: 무선 통신 가능
- 이러한 인프라 덕분에 World Wide Web(WWW) 구축 가능
3. 인터넷 프로토콜 (IP, Internet Protocol)
- 인터넷에서 데이터를 송·수신하는 통신 규약
- IP 주소(Internet Protocol Address)
- IP 자체가 아니라 IP를 위한 고유 주소
- 쉽게 말하면 각 기기의 전화번호 역할을 함
- 인터넷에서는 IP 주소를 기반으로 패킷(Packet) 단위로 데이터를 주고받음
패킷(Packet)이란?
4. IP 방식의 문제점
-
애플리케이션 구분 문제
- 목적지 컴퓨터의 어떤 프로그램(예: 웹 브라우저, 이메일 등)에 데이터를 전달해야 하는지 알 수 없음
-
비연결성(Connectionless)
- 수신 대상의 상태를 고려하지 않고 데이터를 전송함
→ 즉, 상대방이 데이터를 받을 준비가 되었는지 확인하지 않음
-
비신뢰성(Unreliable)
- 패킷이 도착하지 않거나, 손실되었는지 확인 불가
- 패킷이 여러 개로 나뉘어 전송될 때, 순서가 뒤바뀌는 문제 발생
☞ 이러한 문제점들을 해결하기 위해 등장한 것이 바로 TCP 프로토콜
→ 다음 강의에서 TCP(Transmission Control Protocol) 에 대해 배울 예정
네트워크 2강: TCP와 UDP, 그리고 PORT
1. TCP (Transmission Control Protocol)
- TCP란?
- 클라이언트와 서버 간 데이터를 신뢰성 있게 전달하기 위한 프로토콜
- IP 방식의 문제점(비연결성, 비신뢰성, 패킷 순서 문제 등)을 해결하기 위해 사용됨
- TCP의 주요 특징
- 연결 지향적(Connection-Oriented)
- 데이터를 전송하기 전에 연결을 설정하는 과정이 필요함
- 신뢰성 보장(Reliable)
- 패킷 손실 시 재전송을 통해 데이터가 올바르게 도착하도록 보장
- 패킷 순서 보장(Ordering)
TCP의 3-Way Handshake (연결 과정)
TCP는 데이터를 주고받기 전에 3단계 핸드셰이크(3-Way Handshake) 과정을 거침.
- SYN (Synchronize)
- 클라이언트 → 서버: "연결을 시작하고 싶어요!"
- SYN + ACK (Acknowledge)
- 서버 → 클라이언트: "연결 요청을 확인했어요! 저도 연결하고 싶어요!"
- ACK (Acknowledge)
- 클라이언트 → 서버: "확인 완료! 이제 데이터 전송 시작!"
☞ 3-Way Handshake가 완료되면 데이터를 전송할 준비가 끝남
TCP의 데이터 전송 방식
- 데이터가 제대로 도착했는지 확인하는 과정 포함
- 데이터가 손실될 경우 재전송 수행
- 패킷이 순서대로 도착하도록 순서 관리 수행
☞ 신뢰성을 보장하지만, 연결 설정 과정 때문에 속도가 상대적으로 느릴 수 있음
2. UDP (User Datagram Protocol)
-
UDP란?
- TCP와 달리 비연결형, 신뢰성이 없는 전송 프로토콜
- 빠른 데이터 전송이 필요한 상황에서 사용됨 (예: 실시간 스트리밍, 온라인 게임, 인터넷 전화 등)
-
UDP의 주요 특징
- 비연결형(Connectionless)
- 빠른 전송 속도
- 신뢰성 없음(Unreliable)
- 패킷이 유실될 수 있고, 순서가 보장되지 않음
☞ UDP는 TCP보다 빠르지만, 데이터 손실 위험이 있음
3. PORT (포트)란?
- 같은 IP 주소 내에서도 여러 프로그램이 동시에 실행될 수 있음
- PORT 번호를 통해 어떤 애플리케이션과 통신할지를 결정
PORT의 역할
- 아파트의 호수 번호와 같은 개념
- 같은 IP 주소를 사용하는 여러 프로그램을 구분함
- 예: 웹 브라우저, 이메일 클라이언트, 게임 서버 등이 각각 다른 PORT를 사용
PORT 번호의 범위
- 0 ~ 65535 범위 내에서 할당 가능
- 0 ~ 1023: 국제적으로 사용이 예약된 포트 (잘 사용하지 않음)
- 1024 ~ 49151: 등록된 포트 (대부분의 애플리케이션이 사용)
- 49152 ~ 65535: 동적 포트 (임시로 사용됨)
자주 사용되는 PORT 번호 예시
| 서비스 | 프로토콜 | 포트 번호 |
|---|
| FTP | TCP | 20, 21 |
| SSH | TCP | 22 |
| SMTP | TCP | 25 |
| DNS | TCP/UDP | 53 |
| HTTP | TCP | 80 |
| HTTPS | TCP | 443 |
| RDP | TCP/UDP | 3389 |
☞ 웹 개발에서는 HTTP(80)와 HTTPS(443) 포트를 주로 사용
4. TCP vs UDP 비교
| 특징 | TCP | UDP |
|---|
| 연결 방식 | 연결형(Connection-Oriented) | 비연결형(Connectionless) |
| 신뢰성 | 데이터 전송 보장 | 데이터 유실 가능 |
| 속도 | 상대적으로 느림 | 빠름 |
| 용도 | 웹, 이메일, 파일 전송 | 실시간 스트리밍, 온라인 게임 |
☞ TCP는 신뢰성이 중요한 경우, UDP는 속도가 중요한 경우 사용
정리
- TCP는 신뢰성을 보장하지만 속도가 느림 (3-Way Handshake 필요)
- UDP는 속도가 빠르지만 데이터 손실 가능성이 있음
- 포트(PORT)를 사용하여 같은 IP 내에서 여러 프로그램을 구분
☞ 다음 강의에서는 웹 기초 개념(DNS, URI, URL 등)에 대해 학습할 예정!