Lsiron
네트워크와 IP 그리고 TCP와 UDP 본문
네트워크란?
두 개 이상의 컴퓨터 시스템을 연결하여 데이터와 자원을 공유할 수 있게 하는 시스템을 말한다.
네트워크는 다양한 장치(컴퓨터, 서버, 라우터, 스위치 등)를 물리적 또는 무선 방식으로 연결하여 서로 통신하고 데이터를 교환할 수 있게 한다.
1. 크기에 따른 분류
- PAN (Personal Area Network): 개인적인 용도로 사용되는 작은 네트워크로, 일반적으로 10미터 이내의 짧은 거리에서 사용된다. 예를 들어, 블루투스 연결, 무선 키보드 및 마우스 등이 있다.
- LAN (Local Area Network): 한정된 지역 내(예: 건물, 사무실, 학교)에서 컴퓨터와 기타 장치를 연결하는 네트워크이다. 높은 데이터 전송 속도와 낮은 지연 시간을 제공한다. 예를 들어, 회사 내부 네트워크나 가정용 네트워크가 있다.
- MAN (Metropolitan Area Network): 도시나 대도시 지역 내의 네트워크를 연결한다. 여러 LAN을 연결하여 더 넓은 범위에서 네트워크를 사용할 수 있게 한다. 예를 들어, 도시 내의 여러 학교를 연결하는 네트워크가 있다.
- WAN (Wide Area Network): 넓은 지역(국가 또는 대륙 간)에서 컴퓨터를 연결하는 네트워크입니다. 인터넷이 대표적인 예다. 다양한 지역의 LAN과 MAN을 연결하여 전 세계적으로 통신을 가능하게 한다.
2. 목적에 따른 분류
- Intranet: 특정 조직 내부에서만 사용되는 전용 네트워크이다. 보안이 강화되고 외부 접근이 제한된다.
- Extranet: 특정 조직과 외부 사용자(고객, 파트너 등) 간에 한정적으로 접근할 수 있는 네트워크이다.
- Internet: 전 세계의 컴퓨터와 네트워크를 연결하는 공용 네트워크로, 누구나 접근할 수 있다.
3. 구성 방식에 따른 분류
- Client-Server Network: 서버가 중심이 되어 클라이언트(사용자 장치)에 서비스를 제공하는 구조이다. 예를 들어, 웹 서버와 클라이언트 간의 관계가 있다.
- Peer-to-Peer (P2P) Network: 모든 컴퓨터가 동등한 위치에서 데이터를 주고받는 구조로, 중앙 서버가 필요 없다. 예를 들어, 토렌트 네트워크가 있습니다.
- Mesh Network: 모든 노드가 서로 연결되어 있어, 데이터가 여러 경로로 전달될 수 있는 구조이다. 신뢰성과 가용성이 높다.
- Star Network: 중앙 허브나 스위치에 모든 노드가 연결된 구조로, 중앙 장치가 장애가 발생하면 전체 네트워크에 영향을 미칠 수 있다.
4. 케이블 유무 따른 분류
- 유선 네트워크 (Wired Network) : 유선 네트워크는 물리적인 케이블을 통해 데이터와 정보를 전송하는 네트워크이다. 주로 구리선이나 광섬유 케이블을 사용하여 네트워크 장치들을 연결한다.
- 무선 네트워크 (Wireless Network) : 무선 네트워크는 공기 중의 전파, 적외선, 또는 위성 신호를 통해 데이터를 전송하는 네트워크이다. 물리적인 케이블이 필요 없으며, 무선 신호를 이용하여 장치 간의 통신을 가능하게 한다.
IP란?
IP (Internet Protocol)는 컴퓨터 네트워킹에서 데이터 패킷을 보내고 받기 위해 사용되는 기본 프로토콜(약속)이다.
IP는 네트워크 상의 장치들이 서로 통신할 수 있도록 주소를 할당하고, 데이터 패킷을 목적지까지 효율적으로 전달하는 역할을 한다.
IP는 주로 두 가지 버전으로 사용된다: IPv4와 IPv6이다.
1. IP의 주요 기능
- 주소 지정: 각 장치에 고유한 IP 주소를 할당하여 네트워크 상에서의 위치를 식별한다.
- 데이터 패킷화: 데이터를 작은 패킷으로 나누어 전송한다. 각 패킷은 출발지와 목적지의 IP 주소를 포함한다.
- 라우팅: 데이터 패킷을 목적지까지 전달하기 위해 최적의 경로를 선택한다.
2. IP 주소
IP 주소는 네트워크 상의 장치를 식별하는 숫자 형식의 주소이다. IP 주소는 두 가지 형식으로 제공된다:
IPv4
- 형식: 32비트 주소로, 4개의 옥텟(8비트)으로 구성된다. 각 옥텟은 0에서 255까지의 값을 가질 수 있으며, 점으로 구분된다. 예: 192.168.0.1
- 주소 수: 약 43억 개의 고유 주소를 제공하지만, 현재 주소 고갈 문제로 인해 새로운 주소 공간이 필요하게 되었다.
IPv6
- 형식: 128비트 주소로, 8개의 16비트 블록으로 구성된다. 각 블록은 콜론(:)으로 구분되며, 16진수 형식으로 표시된다. 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 주소 수: 거의 무한에 가까운 주소 공간을 제공하여, IPv4의 주소 고갈 문제를 해결한다.
3. IP 프로토콜의 작동 방식
IP 프로토콜은 데이터를 송신자에서 수신자에게 전달하기 위해 다음 단계를 수행한다:
- 데이터 분할: 송신 측에서 전송할 데이터를 작은 패킷으로 분할한다.
- 패킷 주소 지정: 각 패킷에 송신자와 수신자의 IP 주소를 추가한다.
- 라우팅: 패킷이 송신자에서 수신자로 전달되는 동안 여러 네트워크 장치를 통해 경로를 선택한다.
- 데이터 재조립: 수신 측에서 전송된 패킷들을 다시 원래의 데이터로 재조립한다.
4. IP의 계층
IP는 TCP/IP 모델의 네트워크 계층(인터넷 계층)에 속한다. 이는 다음과 같은 상위 계층 및 하위 계층과 상호 작용한다:
- 데이터 링크 계층: 물리적 네트워크 인터페이스를 통해 실제 데이터 전송을 담당한다.
- 전송 계층: TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 등을 통해 신뢰성 있는 데이터 전송을 보장한다.
- 응용 계층: 웹 브라우징, 이메일 등 다양한 네트워크 애플리케이션을 실행한다.
5. IP 주소 할당 방식
- 고정 IP 주소 (Static IP Address): 장치에 수동으로 설정된 IP 주소로, 변경되지 않는다. 서버나 네트워크 장비에 주로 사용된다.
- 동적 IP 주소 (Dynamic IP Address): DHCP(Dynamic Host Configuration Protocol) 서버에 의해 자동으로 할당되는 IP 주소로, 일정 시간이 지나면 변경될 수 있다. 일반 사용자 PC나 모바일 장치에 주로 사용된다.
6. 사설 IP와 공인 IP
- 사설 IP 주소 (Private IP Address): 내부 네트워크에서 사용되는 IP 주소로, 외부 인터넷에서는 사용되지 않는다. 예: 192.168.0.0 ~ 192.168.255.255
- 공인 IP 주소 (Public IP Address): 인터넷 상에서 고유하게 식별되는 IP 주소로, ISP(Internet Service Provider)에 의해 할당된다.
7. NAT (Network Address Translation)
NAT는 사설 IP 주소를 공인 IP 주소로 변환하여, 여러 장치가 하나의 공인 IP 주소를 공유할 수 있도록 한다. 이는 IP 주소 공간을 절약하고, 보안을 강화하는 데 도움을 준다.
IP 주소는 네트워크에서 장치를 식별하는 데 사용되며, IPv4 주소 체계에서는 이를 효율적으로 관리하기 위해 여러 클래스(Class)로 나뉜다. 각 클래스는 특정 범위의 IP 주소를 포함하며, 네트워크와 호스트 부분의 비트 구성이 다르다. IP 주소 클래스는 A, B, C, D, E로 나눌 수 있으며, 각각의 클래스는 특정 용도와 특징을 가진다.
IPv4 주소 클래스?
클래스 A
- 범위: 0.0.0.0 ~ 127.255.255.255
- 첫 옥텟 범위: 1 ~ 126 (0과 127은 예약됨)
- 네트워크 비트수: 8비트
- 호스트 비트수: 24비트
- 네트워크 수: 128개 (실제 사용 가능 네트워크 수는 126개)
- 호스트 수: 네트워크당 약 1,670만 개 (2^24 - 2)
- 용도: 대규모 네트워크 (예: 대기업, 대학교 등)
클래스 B
- 범위: 128.0.0.0 ~ 191.255.255.255
- 첫 옥텟 범위: 128 ~ 191
- 네트워크 비트수: 16비트
- 호스트 비트수: 16비트
- 네트워크 수: 약 16,384개 (2^14)
- 호스트 수: 네트워크당 약 65,534개 (2^16 - 2)
- 용도: 중간 규모 네트워크 (예: 중소기업, 대학 등)
클래스 C
- 범위: 192.0.0.0 ~ 223.255.255.255
- 첫 옥텟 범위: 192 ~ 223
- 네트워크 비트수: 24비트
- 호스트 비트수: 8비트
- 네트워크 수: 약 2,097,152개 (2^21)
- 호스트 수: 네트워크당 254개 (2^8 - 2)
- 용도: 소규모 네트워크 (예: 소규모 사무실, 소규모 비즈니스 등)
클래스 D
- 범위: 224.0.0.0 ~ 239.255.255.255
- 첫 옥텟 범위: 224 ~ 239
- 용도: 멀티캐스트 (한 그룹의 여러 호스트에 동시에 데이터를 전송)
클래스 E
- 범위: 240.0.0.0 ~ 255.255.255.255
- 첫 옥텟 범위: 240 ~ 255
- 용도: 연구 및 실험용 (예약된 주소)
IP 주소는 네트워크 상의 장치를 식별하고 통신을 가능하게 하는 중요한 역할을 한다.
이들 중 루프백 주소(Loopback IP), 내부 IP(Private IP), 외부 IP(Public IP)는 각각 다른 용도와 특징을 가지고 있다.
아래에 각 종류에 대한 설명이 있다. (★기억하면 도움 된다★)
1. 루프백 주소 (Loopback IP)
- 용도: 루프백 주소는 장치가 스스로를 가리키기 위해 사용된다. 이를 통해 장치는 자신의 네트워크 스택을 테스트하거나 네트워크 인터페이스 없이 내부적으로 통신할 수 있다.
- 주소 범위: IPv4의 경우 루프백 주소는 127.0.0.0 ~ 127.255.255.255 범위 내에 속하지만, 일반적으로 127.0.0.1이 사용된다. IPv6에서는 ::1이 루프백 주소이다.
- 특징:
- 루프백 주소로 전송된 데이터는 네트워크 인터페이스를 거치지 않고 즉시 돌아온다.
- 네트워크 테스트 및 소프트웨어 개발 시 유용하다.
- 외부 네트워크와의 통신에는 사용되지 않는다.
- 예시:
- IPv4: 127.0.0.1
- IPv6: ::1
2. 내부 IP (Private IP)
- 용도: 내부 IP 주소는 로컬 네트워크(예: 가정, 사무실, 회사 네트워크) 내에서 장치를 식별하기 위해 사용된다. 외부 네트워크에서는 직접적으로 사용되지 않는다.
- 주소 범위: RFC 1918에 정의된 특정 주소 범위 내에서 할당된다.
- 클래스 A: 10.0.0.0 ~ 10.255.255.255
- 클래스 B: 172.16.0.0 ~ 172.31.255.255
- 클래스 C: 192.168.0.0 ~ 192.168.255.255
- 특징:
- NAT(Network Address Translation)를 통해 내부 IP 주소를 외부 IP 주소로 변환하여 인터넷에 접속할 수 있다.
- 여러 장치가 동일한 내부 IP 주소를 사용할 수 있지만, 이는 서로 다른 로컬 네트워크 내에서만 가능하다.
- 보안 및 네트워크 자원 관리를 위해 사용된다.
- 예시:
- 가정용 라우터: 192.168.1.1
- 회사 네트워크: 10.0.0.1
3. 외부 IP (Public IP)
- 용도: 외부 IP 주소는 전 세계 인터넷 상에서 고유하게 사용되는 주소이다. 인터넷 서비스 제공업체(ISP)에 의해 할당되며, 인터넷에 직접 연결된 모든 장치에 필요하다.
- 주소 범위: 외부 IP 주소는 고유해야 하며, 전 세계에서 유일한 주소이다. IPv4 주소는 약 43억 개의 고유 주소를 제공하며, IPv6 주소는 이보다 훨씬 더 많은 주소 공간을 제공한다.
- 특징:
- 인터넷 상에서 고유한 식별자로 사용된다.
- 고정 IP(static) 또는 동적 IP(dynamic)으로 할당될 수 있다.
- 외부 네트워크와의 직접 통신을 가능하게 한다.
- 예시:
- 웹 서버: 203.0.113.1
- 가정용 인터넷 연결 시 할당된 외부 IP 주소: 198.51.100.23
요약
특정 루프백 주소 | 내부IP | 외부IP | |
용도 | 자체 테스트 및 내부 통신 | 로컬 네트워크 내부에서 사용 | 전 세계 인터넷 상에서 사용 |
주소 범위 | 127.0.0.0 ~ 127.255.255.255 (IPv4), ::1 (IPv6) | 10.0.0.0 ~ 10.255.255.255<br>172.16.0.0 ~ 172.31.255.255<br>192.168.0.0 ~ 192.168.255.255 | 고유하고 전 세계적으로 유일함 |
보안 | 외부 접근 불가 | 외부 접근 불가, NAT로 보호 | 외부 접근 가능 |
관리 | 장치 내부에서 관리 | 로컬 네트워크 관리자에 의해 관리 | ISP 및 ICANN에 의해 관리 |
예시 | 127.0.0.1, ::1 | 192.168.1.1, 10.0.0.1 | 203.0.113.1, 198.51.100.23 |
루프백 주소, 내부 IP, 외부 IP의 구분은 네트워크 관리와 통신에서 중요한 역할을 한다. 각 IP 주소는 특정한 목적을 위해 사용되며, 네트워크 설계 및 운영에 필수적인 요소들이다.
TCP?
TCP(Transmission Control Protocol)는 연결 지향적 프로토콜로, 데이터 전송 전에 송신자와 수신자 간의 연결을 설정하여 신뢰성 있는 데이터 전송을 보장한다.
TCP는 데이터 패킷의 전달을 확인하고, 패킷 손실, 중복 및 순서 문제를 해결한다.
- 연결 지향(Connection-oriented): TCP는 데이터 전송 전에 송신자와 수신자 간의 연결을 설정한다. 이를 위해 세 가지 단계를 거치는데, 이를 3-way handshake라고 한다.
- 신뢰성(Reliability): TCP는 데이터의 신뢰성을 보장한다. 데이터 패킷이 손실되면 이를 재전송하며, 수신 측에서 수신 확인(ACK)을 통해 데이터가 제대로 전달되었음을 확인한다.
- 흐름 제어(Flow Control): TCP는 수신 측의 처리 능력을 고려하여 데이터 전송 속도를 조절한다.
- 혼잡 제어(Congestion Control): 네트워크 혼잡을 방지하기 위해 전송 속도를 조절하는 알고리즘을 사용한다.
- 데이터 순서 보장: TCP는 전송된 데이터 패킷이 순서대로 도착하도록 보장한다.
- 사용 예시: 웹 브라우징(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP) 등 데이터의 신뢰성과 순서가 중요한 애플리케이션에 사용된다.
UDP?
UDP (User Datagram Protocol)는 비연결형 프로토콜로, 데이터 전송 전에 연결을 설정하지 않고 데이터를 전송한다.
UDP는 신뢰성, 순서 보장 및 흐름 제어를 제공하지 않으며, 주로 빠른 데이터 전송이 필요한 응용 프로그램에서 사용된다.
- 비연결 지향(Connectionless): UDP는 데이터 전송 전에 송신자와 수신자 간의 연결을 설정하지 않는다. 데이터그램을 개별적으로 전송한다.
- 신뢰성 없음: UDP는 데이터의 신뢰성을 보장하지 않는다. 패킷이 손실되거나 순서가 뒤바뀔 수 있으며, 이를 확인하거나 재전송하지 않는다.
- 흐름 제어 및 혼잡 제어 없음: UDP는 이러한 제어 메커니즘을 제공하지 않는다. 따라서 데이터 전송 속도가 빠를 수 있지만, 신뢰성은 낮다.
- 경량 프로토콜: UDP는 오버헤드가 적어 빠른 데이터 전송이 가능하다.
- 사용 예시: 실시간 스트리밍, 온라인 게임, VoIP 등 데이터 전송의 신뢰성보다는 속도가 중요한 애플리케이션에 사용된다.
주요 차이점 요약
연결 지향 | 예 | 아니요 |
신뢰성 | 예 (재전송, ACK) | 아니요 |
흐름 제어 | 예 | 아니요 |
혼잡 제어 | 예 | 아니요 |
데이터 순서 보장 | 예 | 아니요 |
오버헤드 | 높음 | 낮음 |
속도 | 느림 (신뢰성 보장) | 빠름 (신뢰성 없음) |
사용 예시 | HTTP, FTP, 이메일 | 스트리밍, 게임, VoIP |
TCP와 UDP는 각각의 특성 때문에 특정 상황에 더 적합하게 사용된다.
TCP는 데이터의 신뢰성과 순서가 중요한 애플리케이션에 적합하고, UDP는 실시간 성능이 중요한 애플리케이션에 적합하다.
'공부방 > CS' 카테고리의 다른 글
3-Way Handshake, 4-Way Handshake 란? + 패킷이란 ? (3) | 2024.10.13 |
---|---|
HTTP? HTTPS? (0) | 2024.07.04 |