네트워크 프로그래밍 기초

0. 개요

네트워크 파트를 따로 빼려면 너무 양이 방대해져 간단하게 어떤 것들이 있는지만 적으려고 한다.

해당 내용에 대한 지식이 부족하거나, 더 자세하게 알고싶다면 네트워크를 따로 공부하는 것을 추천한다.

 

 

1. 네트워크 모델 (OSI, TCP/IP)

네트워크 통신을 이해하기 위해서는 먼저 네트워크 모델에 대한 이해가 필요하다.

가장 널리 알려진 두 가지 모델은 OSI 모델과 TCP/IP 모델이다.

 

 

OSI 모델

OSI(Open Systems Interconnection) 모델은 네트워크 통신을 7개의 계층으로 나눈다.

 

1) 물리 계층

2) 데이터 링크 계층

3) 네트워크 계층

4) 전송 계층

5) 세션 계층

6) 표현 계층

7) 응용 계층

 

 

TCP/IP 모델

TCP/IP 모델은 OSI 모델을 4개의 계층으로 단순화한 것으로, 실제 인터넷에서 사용되는 모델이다.

 

1) 네트워크 인터페이스 계층

2) 인터넷 계층

3) 전송 계층

4) 응용 계층

 

소켓 프로그래밍에서는 주로 전송 계층과 응용 계층을 다룬다.

 

 

2. IP 주소와 포트

IP 주소

네트워크상에서 장치를 식별하는 고유한 주소다.

IPv4와 IPv6 두 가지 버전이 있다.

 

  - IPv4: 32비트 주소 체계 (ex. 192.168.0.1)

  - IPv6: 128비트 주소 체계 (ex. 2001:0db8:85a3:0000:0000:8a2e:0370:7334)

 

 

포트

포트는 하나의 IP 주소 내에서 특정 프로세스나 서비스를 식별하는 16비트 숫자이다.(범위 : 0-65535)

IP주소를 아파트의 동이라고 치면, 포트는 아파트의 호수이다.

네트워크 장치에 접속할때는 IP주소의 특정 포트로 접속할 수 있다.(ex. 192.168.0.1:7777)

 

  - 알려진 포트: 0-1023 (ex. HTTP - 80, HTTPS - 443)

  - 등록된 포트: 1024-49151

  - 동적/사설 포트: 49152-65535

 

 

3. TCP / UDP protocol

네트워크 모델의 전송 계층에 해당하는 프로토콜이다.

데이터를 전송하는 방식을 결정한다.

 

TCP (Transmission Control Protocol)

  - 연결 지향적 프로토콜

  - 신뢰성 있는 데이터 전송

  - 순서 보장

  - 흐름 제어와 혼잡 제어 제공

 

 

UDP (User Datagram Protocol)

- 비연결 지향적 프로토콜

- 신뢰성 없는 데이터 전송

- 순서 보장 없음

- 빠른 전송 속도

 

 

4. DNS (Domain Name System)

사람이 읽을 수 있는 도메인 이름(예: www.google.com)을 IP 주소로 변환하는 시스템이다.

 

DNS 작동 과정:

1) 사용자가 도메인 이름을 입력

2) 로컬 DNS 캐시 확인

3) ISP의 DNS 서버에 쿼리

4) 루트 DNS 서버부터 시작하여 적절한 DNS 서버 찾기

5) IP 주소 반환

'학습 > C++ 소켓 프로그래밍' 카테고리의 다른 글

UDP 소켓 프로그래밍  (0) 2024.10.31
TCP 소켓 프로그래밍  (0) 2024.10.31
소켓 프로그래밍  (0) 2024.10.29
소켓 프로그래밍 기초  (0) 2024.10.29
소켓 프로그래밍 학습목차  (0) 2024.10.15