2장 네트워크를 실현하는 기술
2.1 TCP/IP의 기본
2.2.1 TCP/IP
TCP/IP는 인터넷 프로토콜 스위트로, 서로 다른 컴퓨터 벤더나 운영 체제, 그리고 회선 간에도 통신이 가능하게 해주는 통신 프로토콜 세트
TCP/IP는 단순히 TCP와 IP만을 가리키는 것이 아니라, 다양한 인터넷 통신 프로토콜들의 집합을 의미
(예: UDP나 ICMP 등도 TCP/IP에 포함된다)
TCP/IP는 다음과 같이 4계층으로 나뉨
| 사용자에 가깝다 |
TCP/IP 4계층 모델 |
주요 프로토콜 |
역할 |
| 4 |
응용 계층 |
HTTP, DNS |
애플리케이션에 맞춰 통신을 수행한다 |
| 3 |
전송 계층 |
TCP, UDP |
IP와 애플리케이션을 중개하여 데이터를 정확히 전달함 |
| 2 |
인터넷 계층 |
IP, ICMP, ARP 등 |
네트워크 주소를 기준으로 데이터를 목적지까지 전송 |
| 1 |
네트워크 접근 계층 |
이더넷, Wi-Fi |
물리적 네트워크 연결 및 기기간 데이터 전송 |
2.1.2 OSI 참조 모델
OSI 참조 모델은 컴퓨터가 갖추어야 할 통신 기능을 계층적으로 나눈 모델이며, 벤더 간 상호 통신을 가능하게 하는 통일된 네트워크 규격
| 계층 |
OSI 참조 모델 |
주요 프로토콜 |
| L7 |
응용 계층 |
HTTP, DNS |
| L6 |
표현 계층 |
HTTP, DNS |
| L5 |
세션 계층 |
HTTP, DNS |
| L4 |
전송 계층 |
TCP, UDP |
| L3 |
네트워크 계층 |
IP |
| L2 |
데이터 링크 계층 |
이더넷 |
| L1 |
물리 계층 |
이더넷 |
스위치는 랜 케이블을 모아주는 장치로, 어떤 계층의 정보를 기준으로 통신을 중계하는지에 따라 명칭이 다름
- 이더넷 수준에서 동작하는 스위치는 L2 스위치
- 라우팅 기능이 있는 경우는 L3 스위치
- TCP 포트 정보를 기준으로 분산하는 경우는 L4 스위치
- 애플리케이션 수준에서 제어하는 경우는 L7 스위치
이처럼 L2, L3, L4, L7 스위치는 각 계층의 특성을 기반으로 한 네트워크 장비
[수업 내용 추가]
- 네트워크 지식은 면접에서 자주 출제되며, OSI 7계층 개념은 자기 언어로 이해하고 설명할 수 있어야 함
2.1.3 주소
네트워크 통신에서 주소는 통신 상대를 식별하기 위한 정보
- IP 주소: TCP/IP에서 컴퓨터를 식별하기 위해 할당되는 번호로, 형식은 xxx.xxx.xxx.xxx
- 컴퓨터, 휴대전화, 태블릿, 서버, 라우터, 스위치 등 모든 네트워크 장비에 부여됨
- 프라이빗 IP 주소: 랜 내부에서 사용
- 글로벌 IP 주소: 인터넷 상에서 사용
- MAC 주소: 컴퓨터나 라우터 등 네트워크 기기에 기본적으로 부여된 하드웨어 주소
- 이더넷 통신에서는 MAC 주소로 상대를 식별
- TCP/IP 통신에서는 IP 주소를 사용하지만, 실제 패킷 전송 시에는 IP와 MAC 주소가 조합되어 사용
동일 네트워크 안에서 통신 시:
- 우선 상대방의 MAC 주소를 알아야 하므로 ARP를 통해 IP에 해당하는 MAC 주소를 탐색
- ARP 요청은 네트워크 전체에 브로드캐스트되어 전송됨 → 응답(ARP Reply)을 통해 상대의 MAC 주소 획득
다른 네트워크와 통신할 경우:
- 라우터(L3 스위치)가 중간에 개입
- 이때는 상대 MAC 주소가 아니라 기본 게이트웨이의 MAC 주소를 ARP로 알아내어 통신을 시작
2.1.4 패킷
데이터를 교환하는 방식에는 회선 교환과 패킷 교환이 있다.
- 회선 교환: 전화처럼 통신 중 회선을 독점
- 패킷 교환: 데이터를 작은 덩어리(패킷)로 나누고 회선을 공유하여 다수 통신 가능
각 패킷에는 다음과 같은 구조가 있다:
- 헤더: 수신/송신 정보 등 메타데이터
- 페이로드: 실제 데이터 내용
2.2 IP 주소 구조
2.2.1 IP 주소 분석
컴퓨터는 출하 시 MAC 주소만 존재하며, IP 주소는 없음. 사용자가 라우터에 연결하면, 라우터가 IP 주소를 자동으로 할당해주는데 이를 DHCP(Dynamic Host Configuration Protocol)라고 한다.
| 단계 |
설명 |
| DHCP Discover |
클라이언트가 DHCP 서버를 찾기 위해 네트워크에 요청을 보냄 |
| DHCP Offer |
서버가 클라이언트에게 IP 주소 등의 설정 정보를 제안함 |
| DHCP Request |
클라이언트가 서버에 설정 정보를 요청함 |
| DHCP ACK |
서버가 요청을 수락하고 설정 정보를 확정함 |
서브넷 마스크
- IPv4 주소는 4개의 십진수로 구성되어 있으며, 실제로는 8비트씩 구성된 32비트 이진수
- IP 주소는 네트워크부와 호스트부로 나뉘며, 이를 구분하기 위해 서브넷 마스크를 사용
- 네트워크부: 해당 네트워크를 식별하는 부분
- 호스트부: 해당 네트워크 내에서 개별 장치를 식별하는 부분
[수업 내용 추가]
- IP 주소, 서브넷 마스크, 기본 게이트웨이는 엔드 디바이스에서 반드시 설정해야 하는 3가지 구성 요소
- 라우터에 직접 연결할 경우(interface config 모드), 해당 이더넷 포트에 IP 주소와 서브넷 마스크를 직접 입력해야 함
- 서브넷 마스크가 255.255.0.0이었다가 255.255.255.0으로 변경되면, 서로 다른 네트워크로 인식되어 통신이 안됨 → 라우터 필요 (서브넷 마스크에 따라 네트워크가 달라지면 통신 불가)
- CIDR 표기법 사용 (/숫자 형태)
- Subnet은 IP를 효율적으로 쓰기 위해 나누는 구조
- VLSM(가변 길이 서브넷 마스크)을 통해 서브넷마다 다른 크기로 설계 가능
2.2.2 IP 주소의 할당과 관리
- 호스트부가 모두 0이면 → 네트워크 주소
- 호스트부가 모두 1이면 → 브로드캐스트 주소 (ARP는 이 브로드캐스트 주소를 활용해 네트워크 전체에 요청을 보냄)
[수업 내용 추가]
- 네트워크 주소 구하기: AND 연산을 통해 확인
- 예:
- IP 주소: 192.168.40.83
- 서브넷 마스크: 255.255.255.0
- → 네트워크 주소: 192.168.40.0
- IP 클래스 정리:
- A 클래스: 1~127, 마스크 255.0.0.0
- B 클래스: 128~191, 마스크 255.255.0.0
- C 클래스: 192~223, 마스크 255.255.255.0
2.2.3 데이터가 바르게 전송되는 매커니즘
- 서로 다른 네트워크 간의 통신에는 라우터가 개입
- 라우팅 테이블: 목적지 네트워크에 대해 어떤 경로로 데이터를 보낼지 정의
- 목적지가 같은 네트워크가 아니면 → 기본 게이트웨이나 라우터로 전송됨
[수업 내용 추가]
- 동일 네트워크가 아닐 경우 → 기본 게이트웨이의 MAC 주소로 ARP 요청을 보냄
- ARP 동작 흐름
- ARP 캐시가 존재하면 → 유니캐스트로 프레임 전송
- 캐시가 없으면 → 브로드캐스트로 ARP Request 전송
- 스위치가 네트워크를 논리적으로 분할할 수 있음 → VLAN
- 다른 VLAN 간에는 통신이 안 되므로 라우터가 필요
- VLAN 설정 예시
- Trunk 포트(802.1Q) 를 통해 VLAN 태그를 유지하며 여러 VLAN을 한 선으로 처리 가능
2.3 네트워크 프로토콜
2.3.1 네트워크 프로토콜
L2 스위치는 MAC 주소를 기준으로 데이터를 전송한다.
- 리피터와는 다르게, L2 스위치는 목적지의 MAC 주소를 기억하고, 해당 포트에만 데이터를 보내기 때문에 효율적
- 리피터는 모든 포트로 동일한 데이터를 전송하고, 목적지와 일치하는 장치만 수신하기 때문에 불필요한 데이터 전송이 많아 비효율적
- L3 스위치(라우터)는 L2 스위치와 달리 다른 네트워크를 연결하는 기능이 추가된 장비다.
- 특징: 포트 수가 많다. (L2 스위치에서 발전하여 기기 간 접속도 담당)
라우터의 특징
- 다양한 회선을 수용할 수 있다. (L3 스위치는 이더넷 기반 WAN 회선만 지원하지만, 라우터는 전화 회선, 광 회선 등 다양한 방식 지원)
- L3 스위치보다 보안 기능이 강력하다.
L4 스위치와 L7 스위치는 로드 밸런서를 포함하는 고급 네트워크 장비
- 로드밸런싱: 시스템에 대한 요청을 여러 서버로 분산하여 통신량의 균형을 맞추는 기술
- L4 스위치는 TCP 헤더 등 프로토콜 정보를 해석하고, 라운드 로빈, 최소 연결 방식 등의 알고리즘에 따라 데이터를 분산 전송
- L7 스위치는 응용 계층 데이터까지 분석하여 분산 처리하며, 세션을 유지하는 기능도 포함 → 특정 사용자와 장기간 통신이 필요한 경우, 세션을 동일한 서버에 고정시켜 일관성을 유지한다.
[수업 내용 추가]
- VLAN: 스위치 단에서 논리적으로 네트워크를 분리하는 기술
- VLAN 포트 설정 시 동일 VLAN ID를 각 포트에 설정해야 함
- VLAN 간 통신은 라우터 또는 L3 스위치 필요
- 라우터는 목적지 IP만 보고 판단함 → DDoS 공격 시 소스 IP 위조 문제 발생
- 인터페이스 유형: 물리적(외부 연결용), 논리적(VLAN, Loopback, Tunnel 등)
2.3.2 TCP와 UDP
- TCP와 UDP는 OSI 참조 모델의 4계층에서 동작하며, 3계층의 IP와 5~7계층을 중개하는 역할
- 이 두 프로토콜은 중개 역할을 하지만, 특성은 서로 다름
- TCP: 신뢰성 있는 통신을 제공함. 데이터의 정확성과 일관성이 중요할 때 사용
- UDP: 신뢰성은 없지만, 빠른 전송이 가능하여 고속성 또는 실시간성이 필요한 경우 사용
예시
- HTTP는 모든 데이터를 정확히 받아야 웹 페이지가 표시되므로 TCP 사용
- IP 전화는 약간의 데이터 손실보다 실시간성이 중요하므로 UDP 사용
포트 번호
- TCP와 UDP 모두 포트 번호를 사용하여 어떤 애플리케이션과 통신하는지를 구분함
- 출발지 포트 번호는 동적으로 할당되며, 하나의 컴퓨터에서 여러 애플리케이션이 동일 서버와 동시에 통신할 수 있도록 해줌
- 예: 웹 브라우저 A와 B가 동시에 같은 사이트에 접속할 때, 각각 다른 출발지 포트 번호를 사용하여 구분함
[수업 내용 추가]
- 여러 브라우저가 동일 서버 접속 시, 출발지 포트를 다르게 하여 세션을 구분함
- TCP는 신뢰성, UDP는 속도/실시간성 중시
2.3.3 ICMP
- ICMP는 TCP/IP가 구현된 컴퓨터와 네트워크 장비 간 통신 상태를 확인할 때 사용되는 프로토콜이다.
- OSI 참조 모델의 3계층에서 동작하며, IP와 동일 계층이지만 IP 위에서 작동하는 프로토콜 (예: ping, tracert 명령)
- ICMP는 TCP나 UDP를 사용하지 않으며 단독으로 동작한다. 따라서 포트 번호가 없다.
[수업 내용 추가]
- TCP/UDP를 사용하지 않고 독립적으로 동작
- 포트 번호 없음
- ping, tracert 등에 사용됨
2.3.4 NAT
- NAT(Network Address Translation)는 IP 주소를 변환하는 기술
- 랜 내부에서는 private IP address를 사용하지만, 인터넷에서는 global IP address를 사용해야 한다.
- private IP 주소 상태로는 인터넷 라우팅이 불가능하기 때문에, 라우터가 이를 global IP 주소로 변환해주는 역할을 수행한다.
[수업 내용 추가]
- 프라이빗 IP는 인터넷에서 직접 사용 불가
- 라우터가 프라이빗 IP를 글로벌 IP로 변환해주는 NAT 필요
2.3.5 프라이빗 IP 주소에 사용할 수 있는 주소 대역
| 클래스 |
주소 범위 |
| Class A |
10.0.0.0/8 |
| Class B |
172.16.0.0/12 |
| Class C |
192.168.0.0/16 |
이 주소들은 글로벌 IP 주소로 사용되지 않으며, 내부 네트워크에서만 사용
2.3.6 CIDR (Classless Inter-Domain Routing)
- 여러 목적지를 하나로 묶어 하나의 주소 블록으로 표현하는 방법
- 예: 192.168.0.0/16은 192.168.0.0 ~ 192.168.255.255 범위를 포함
- 이 안에는 192.168.0.0/24, 192.168.255.0/24 등의 작은 네트워크 세그먼트도 포함된다.
- 즉, 작은 네트워크들을 포괄하는 큰 네트워크 단위로 정리할 수 있다
[수업 내용 추가]
- CIDR은 주소를 유연하게 할당하는 방식으로, 접두사(prefix)로 표현
- Longest Match 우선 적용
- 더 구체적인 경로(/32)가 더 일반적인 경로(/24)보다 우선
2.3.7 정적 라우팅과 동적 라우팅
정적 라우팅: 사람이 수동으로 라우팅 테이블을 설정하는 방식. 네트워크 초기 구성이나 변경 시 직접 설정 필요.
동적 라우팅: 라우터끼리 정보를 교환하여 라우팅 테이블을 자동으로 갱신하는 방식.
- 이때 사용되는 정보 교환 방식을 라우팅 프로토콜이라고 한다.정적 라우팅: 사람이 수동으로 라우팅 테이블을 설정하는 방식. 네트워크 초기 구성이나 변경 시 직접 설정 필요.
선정 기준: 구성 변경의 빈도와 네트워크의 규모에 따라 결정
[수업 내용 추가]
- 라우팅 구성 방식
- Direct Connect: IP만 설정해도 자동 등록
- Static: 수동 설정 필요
- Dynamic: 라우팅 프로토콜 사용
- 라우팅 프로토콜 구분
- Distance Vector: RIP (hop 기준)
- Link State: OSPF (cost 기준)
- OSPF는 bandwidth 값을 기반으로 cost 산정 → cost 낮을수록 우선
- Routing Protocol 우선순위는 distance 값으로 판단
- 동일 네트워크가 아니면 기본 게이트웨이로 전송됨
- static 경로는 최우선 적용