인프런 강의 CloudNet@와 함께하는 AWS 네트워킹 입문 [섹션 6. 기본 네트워킹 개념]을 정리한 글입니다.
지식공유자께서 AWS 클라우드 네트워킹을 잘 이해하려면 기본적인 네트워크 개념을 알고 있어야 한다고 한다. 이 섹션 이후에 수강했던 VPC 개념을 공부하니 기본 개념이 중요하다는 것을 느꼈다.
네트워킹이란?
IT 자원들을 상호 연결하여 데이터를 주고 받는 통신 환경을 말한다.
- IT 자원들끼리 데이터를 통신하려면 네트워킹 환경이 구성되어야 한다.
- IT 자원들은 상호 연결을 통해 네트워킹 환경을 구성한다.
- 단말끼리 통신하는 경우 단말끼리의 직접 통신보다 네트워크의 접점이 되는 노드들을 거쳐 통신한다.
OSI 7 계층 모델
국제 표준화 기구(ISO)에서 개발한 네트워킹 통신 구조를 7개 계층으로 분류한 모델을 말한다.
- 계층별로 독립적이지만 상하관계를 이루고 있다.
- 상위 계층은 하위 계층의 정상 동작을 기반으로 한다.
OSI 7 계층 모델을 통해 네트워킹 통신 구조를 확인할 수 있다. 네트워킹 요소들을 이해하면 장애 발생 시 계층별로 파악하여 체계적으로 처리할 수 있다.
- 1계층 - 물리 계층
- 네트워크 하드웨어 전송 기술 정의
- 네트워크 물리 매체들을 연결하고 유지하는 역할 수행
- 2계층 - 데이터링크 계층
- 물리 계층에서 송수신하는 하드웨어적 신호를 소프트웨어 특징을 갖는 데이터프레임으로 전달하는 역할 수행
- 하드웨어와 소프트웨어를 연결하는 다리 역할
- 동일한 네트워크 영역에서 통신, 매체 접근 제어, 오류 제어, 흐름 제어 등을 수행
- 3계층 - 네트워크 계층
- 데이터를 목적지까지 전달하기 위해 최적의 경로를 찾아 패킷 형태로 데이터를 전달하는 역할 수행
- 출발지에서 목적지까지의 최적의 경로를 찾아 서로 다른 네트워크 영역끼리 통신을 수행
- 라우팅: 최적의 경로를 찾는 일련의 작업
- 3계층에서 대상을 식별하는 대표적인 논리 주소로 IP 주소가 있다.
- 4계층 - 전송 계층
- 데이터의 전송을 다루는 목적으로 세그먼트 형태로 데이터 전송 역할 수행
- 전송 계층을 통해 데이터 전송의 유효성과 효율성 보장
- 대표적인 프로토콜: TCP / UDP
- 5계층 - 세션 계층
- 종단 대상 간의 응용 프로세스 통신 관리 목적으로 서로 간의 논리적인 연결 역할 수행
- 6계층 - 표현 계층
- 데이터 형식을 서로 이해할 수 있는 형태로 변환하는 역할 수행
- 7계층 - 응용 계층
- 응용 프로세스와 연계하여 실제 애플리케이션을 서비스하는 역할 수행
- 대표적인 프로토콜: HTTP, FTP, SSH 등
일반적인 네트워킹은 TCP와 IP 기반으로 이루어진다. 이런 측면에서 TCP/IP 4 계층으로 분류하기도 한다.
IP 주소
네트워킹 환경에서 IT 자원을 식별하는 3계층의 고유 주소를 말한다.
- 버전
- IPv4
- 32비트 주소 체계로, 2의 32 제곱만큼의 고유 주소 분류 가능
- IPv6
- IPv4만으로 모든 IT 자원을 식별할 수 없는 문제 해결
- 128비트 주소 체계로, 2의 128 제곱만큼의 고유 주소 분류 가능
- 아직 IPv4에 비해 활용도 낮음
- IPv4 주소 표현법
- 32자리 2진수 형태 표현 가능
- 8자리씩 .을 찍어 4개의 영역으로 구분
- 영역을 옥텟이라고 표현
- 보편적으로 옥텟별로 10진수로 변환하여 표현
- IP 주소 할당 방식
- 고정 IP 주소
- 관리자가 직접 수동으로 고정된 IP 주소를 할당하는 방식
- 유동 IP 주소
- 특정 서버를 통해 동적으로 IP 주소를 할당하는 방식
- IP 주소 통신 용도
- 퍼블릭 IP 주소
- 인터넷에서 사용하는 유일무이한 IP 주소
- 인터넷 서비스 공급자(ISP)에서 퍼블릭 IP 주소 제공
- 프라이빗 IP 주소
- 인터넷이 아닌 독립된 네트워크 내부에서만 사용하는 사설 IP 주소
- 네트워크 관리자가 프라이빗 IP 주소 제공
- 용도에 따라 사용할 수 있는 IP 주소 범위 존재
서브넷과 서브넷 마스크
전체 네트워킹 환경은 단일 네트워크로만 구성되지 않는다. 주체와 목적에 따라 부분 네트워크로 나누고 서로 연결하여 전체 네트워킹 환경을 구성한다.
서브넷은 네트워크를 분리하는 부분 네트워크를 말한다.
- 여러 서브넷들이 연결되어 전체 네트워킹 환경을 구성한다.
서브넷 마스크는 서브넷 식별 주소이다.
서브넷 마스크는 네트워크 ID 영역과 호스트 ID 영역으로 나뉜다.
- IP 주소와 동일한 구조로 IPv4 기준 32비트로 구성된다.
- 네트워크 ID 영역은 동일한 서브넷인지 아닌지를 판단하는 영역이다.
- 호스트 ID 영역은 동일한 서브넷 안에서 자원을 식별하는 영역이다.
- 네트워크 ID 영역과 호스트 ID 영역을 표현하는 규칙이 존재한다.
- 항상 먼저 네트워크 ID 영역에 해당하는 1들을 연속적으로 나열
- 이후 호스트 ID 영역에 해당하는 0들을 연속적으로 나열
서브넷 마스크 표현법
- 네트워크 ID 영역이 첫 번째 옥텟부터 세 번째 옥텟까지이다. 이 옥텟들을 보고 서브넷을 식별한다.
- IP 주소의 첫 3개의 옥텟이 같으면 동일한 서브넷이라는 의미이다.
- IP 주소의 첫 3개의 옥텟이 다르면 다른 서브넷이다.
- IP CIDR: 네트워크 ID 영역의 비트 수 표현 방식
- AWS에서 대부분 IP CIDR 형태를 따른다.
- /8: 네트워크 ID 영역이 첫 번째 옥텟까지
- /16: 네트워크 ID 영역이 두 번째 옥텟까지
- /24: 네트워크 ID 영역이 세 번째 옥텟까지
라우팅과 라우터
라우팅은 통신을 수행할 때 목적지까지의 최적의 경로를 선택하는 일련의 작업이다. 라우팅을 수행하는 장비를 라우터라고 한다.
- 라우터는 최적의 경로를 선택하기 위해 라우팅 테이블에 경로를 기록하고 경로를 선택해 패킷을 전달한다.
- 출발지 A부터 목적지 X까지 라우터들로 연결된 네트워크 환경이 구성되어 있다고 가정
- 통신 흐름
- 출발지 A에서 목적지 X로 향하는 패킷을 2번 라우터에 전달하면 2번 라우터는 자신의 라우팅 테이블을 확인해 경로를 확인한다.
- 2번 라우터는 6번 라우터로 전달하는 것이 최적이라고 판단하여 6번 라우터로 패킷을 전달한다.
- 마찬가지로 6번 라우터도 라우팅 테이블을 확인해 7번 라우터로 패킷을 전달한다.
- 위 단계를 반복해 목적지 X로 패킷을 전달한다.
- 위와 같이 목적지까지의 최적의 경로를 선택해 통신하는 일련의 작업을 라우팅이라고 한다.
TCP와 UDP
TCP와 UDP는 전송 계층(4계층)의 대표 프로토콜로 데이터 전송의 역할을 수행한다.
- TCP와 UDP는 데이터 전송 방법이 다르기 때문에 애플리케이션 서비스 목적에 따라 둘 중 하나를 선택해서 사용한다.
TCP와 UDP의 차이점
- 연결성
- TCP는 데이터 전송에 앞서 출발지와 목적지의 논리적 연결 작업을 수행한다. (TCP 3 Way Handshake)
- 출발지와 목적지가 연결된 후 데이터를 전송한다.
- 이런 특징 때문에 TCP는 연결성 프로토콜이다.
- UDP는 데이터 전송에 앞서 별도의 연결 작업을 수행하지 않는다.
- 이런 특징 때문에 UDP는 비연결성 프로토콜이다.
- 신뢰성
- TCP는 연결을 맺고 데이터를 전송할 때 응답을 확인한다. 응답을 확인해 데이터가 제대로 전달되었는지를 파악할 수 있다.
- 응답이 확인되지 않으면 데이터를 재전송한다.
- TCP는 연결을 맺고 데이터 전송에 대한 응답을 파악하고 데이터를 전송하기 때문에 신뢰성이 높다.
- UDP는 데이터 전송 요청이 있을 경우 데이터를 전송한다.
- 별도의 응답 확인 없이 지속적으로 데이터를 전송한다.
- 응답 확인 프로세스가 없어서 데이터 유실 여부를 파악할 수 없다.
- UDP는 연결을 맺지 않고 응답을 파악하지 않기 때문에 신뢰성이 낮다.
- 속도
- TCP는 연결을 맺고 응답을 파악하므로 데이터 전송이 느리다.
- UDP는 연결을 맺지 않고 응답을 파악하지 않으므로 데이터 전송이 빠르다.
- 서비스
- 실제 애플리케이션들은 서비스 용도나 목적에 따라 TCP 또는 UDP로 데이터를 전송한다.
- TCP를 사용하는 응용 계층 프로토콜
- UDP를 사용하는 응용 계층 프로토콜
포트 번호
TCP와 UDP는 애플리케이션을 식별하기 위해 포트 번호를 사용한다.
DHCP
DNS
HTTP
SSH