인프런 CloudNet@와 함께하는 AWS 네트워킹 입문 강의를 보고 정리한 글입니다.
인프런의 AWS 네트워킹 강의를 듣고 정리한 글입니다. 글의 맥락이 끊길 수 있으며 AWS 를 어떻게 다루는지 보다는, AWS 네트워크 환경이 어떤식으로 구성되어지는 학습하는걸 목표로 하고 있습니다.
[목차]
- 네트워킹이란
- OSI 7 계층 모델
- IP 주소
- 서브넷과 서브넷 마스터
- 라우팅과 라우터
- TCP 와 UDP
📡 1. 네트워킹이란
네트워킹이란, IT 자원 간의 상호 연결을 통해 데이터를 교환하고 자원을 공유할 수 있는 통신 환경입니다.
이런 네트워크 환경이 구성되어야 서로 커뮤니케이션할 수 있는 통신이 이루어질 수 있습니다.
→ 네트워킹 통신을 위한 과정에서 상호 정의한 규칙이나 규약이 필요한데, 이를 프로토콜(protocol) 이라 합니다.
IT 자원들은 상호 연결을 통해 네트워킹 환경을 이루고 있고, 이러한 상호 연결은 다양한 종류의 전송매체를 통해 이루어집니다.
종단(단말기) - 종단(단말기) 간의 통신
네트워킹 환경을 구성하고 있는 IT 자원들의 종단장비인 단말간의 통신을 가정해 봅니다.
- 직접적인 연결보다는 네트워킹의 접점이 되는 노드들을 거쳐 목적지까지 향하게 됩니다.
- 이때 네트워킹을 수행하기 위한 다양한 요소들이 유기적으로 동작합니다.
- "종단-노드-노드-종단" 이런 방식으로 종단과 종단간의 네트워크 통신이 이루어지게 됩니다.
📚 2. OSI 7 계층 이란
OSI 7 계층 모델이란, 네트워킹을 수행하는 다양한 요소들의 복잡한 과정을 계층별로 분류한 모델입니다.
- 국제 표준화 기구 ISO 에서 개발한 네트워킹 구조를 7개 계층으로 분류하는 모델입니다.
- OSI 7 계층 모델은 네트워크 통신 구조를 7개의 계층으로 분류하여 각각의 계층별로는 독립적이지만, 상하 관계를 이루고 있습니다.
→ 상위 계층은 하위 계층이 정상적으로 동작한다는 기반하에 서로간의 연관을 가지고 있습니다.
OSI 7계층 모델 살펴보기
1계층 [물리 계층] : 네트워크 하드웨어 전송기술들을 정의합니다.
- 네트워크의 물리적인 매체를 연결하고 유지하는 역할을 수행합니다.
- 유선 연결 매체뿐만 아니라 무선 연결 매체가 [물리계층] 에 해당하며 이러한 매체에 전기적인 신호로 전달합니다.
2계층 [데이터링크 계층] : [데이터링크 계층]은 [물리 계층] 에서 송수신 되는 하드웨어적인 신호를 소프트웨어 특징을 갖는 데이터 프라임으로 전달하는 역할을 수행합니다.
- [데이터 링크 계층] 을 통해 동일한 네트워크 영역에서 통신이나 매체 접근 제어, 오류 제어, 흐름 제어 등을 수행할 수 있습니다.
3계층 [네트워크 계층] : 데이터를 목적지 네트워크까지 전달하는 목적으로 최적의 경로를 찾아 "패킷"이라는 형태로 데이터를 전달하는 역할을 수행합니다.
- 최적의 경로를 찾는 작업 → "라우팅"이라 합니다.
- 경로를 찾기 전에 대상을 식별하는 주소를 알아야하는데, 3계층 상에서 대상을 식별하는 대표적인 논리적 주소로 IP 주소가 존재합니다.
- 이러한 [네트워크 계층]을 통해 출발지 네트워크에서 최적의 경로를 찾아 목적지 네트워크까지 서로 다른 네트워크 영역의 통신을 수행할 수 있습니다.
4계층 [전송 계층] : [전송 계층] 에서는 데이터의 전송을 다루는 목적으로 세그먼트라는 형태로 데이터 전송을 수행합니다.
- 데이터를 전송하는 [전송 계층]의 대표적인 프로토콜은 TCP 와 UDP 가 존재합니다.
- [전송 계층]을 통해 데이터의 전송의 유효성과 효율성을 보장받을 수 있습니다.
5계층 [세션 계층] : 종단의 대상간의 응용 프로세스 통신을 관리하는 목적으로 서로간의 논리적인 연결을 수행합니다.
6계층 [표현 계층] : 데이터 형식을 서로 이해할 수 있는 형태로 변환하는 역할을 수행합니다.
7계층 [응용 계층] : 응용 프로세스와 연계하여 실제 응용 프로그램(어플리케이션)을 서비스하는 역할을 수행합니다.
- 웹서비스를 위한 HTTP
- 파일 전송을 위한 FTP
- 보안 네트워크 원격 접속을 위한 SSH
등이 어플리케이션 서버에 해당합니다.
→ 💡 참고로 네트워킹의 일반적인 통신은 대다수 TCP/IP 기반으로 이루어지는데,
이러한 측면에서 TCP/IP 4계층으로 분류하기도 합니다.
💻 3. IP 주소
IP 주소는, Internet Protocol 의 약자로 네트워킹 환경에서 IT 자원을 식별하는 3계층의 고유한 주소입니다.
OSI 7계층 모델의 3계층인 [네트워크 계층] 에서 통신을 위한 대표적인 주소로 IP 주소가 있었습니다.
IP 주소는 현재 IPv4(버전 4) 와 IPv6(버전 6) 2가지로 구분되어 사용되고 있습니다.
- IPv4
- IPv4는 32비트의 주소 체계로 2진수 32자리 (약 43억 개)를 통해 고유한 주소로 분류할 수 있습니다.
- 실제 네트워킹을 위한 모든 IT 자원에 사용하기에는 많이 부족한 수 이기도 합니다.
- IPv6
- IPv4의 부족한 수량을 해결하기위해 IPv6가 출시되었습니다.
- IPv6는 128비트의 주소 체계로 2에 128승 (어마무시한 숫자임) 에 가까운 수량이 존재합니다.
- ✔️ IPv6는 굉장히 긴 주소 체계를 가지고 있고, IPv4의 수량 부족을 지금은 다양한 기술로 보완하고 있기 때문에 현재까지도 IPv4를 가장 많이 사용하고 있습니다.
(1) IPv4의 표현법
- 2진수 (32자리) : 8자리씩 끊어서 온점(.)을 찍고 총 4개의 영역으로 구분합니다. 이러한 영역을 옥텟(octet)이라고 부릅니다.
- IPv4 주소는 4개의 옥텟으로 이루어져 있습니다.
- 옥텟별로 10진수로 변환하여 표현하기도 합니다. (주로 사용됨)
(2) IP주소 할당 방식
- 고정 IP 주소
- 관리자가 직접 수동으로 고정된 IP 주소를 할당하는 방식입니다.
- 유동 IP 주소
- 특정 서버를 통해 동적으로 IP 주소를 할당하는 방식입니다.
(3) IP주소 통신 용도
- 퍼블릭 IP 주소
- 인터넷 구간에서 사용하는 유일무의한 공인 IP 주소로 인터넷 서비스 공급자 (ISP)에서 퍼블릭 IP 주소를 제공합니다.
- 프라이빗 IP 주소
- 프라이빗 IP 주소는 인터넷 구간이 아닌 독립되고 격리된 네트워크의 내부에서만 사용하는 사설 IP 주소로 네트워크 관리자에 의해 프라이빗 IP 주소를 제공합니다.
✔️ 4. 서브넷과 서브넷 마스터
서브넷(Subnet)은 네트워크를 분리하는 부분 네트워크로, 서브넷 마스크 (Subnet Mask)에 의해 서브넷을 식별합니다.
- 전체적인 네트워킹 환경에서는 하나의 네트워크로만 구성되어 있지 않습니다.
- 주체와 목적에 따라 부분 네트워크로 나뉘며, 서로 연결을 통해 거대한 네트워킹 환경을 구성합니다.
- 서브넷은 네트워크를 분리하는 부분적인 네트워크입니다.
- 즉, 여러 개의 서브넷이 연결되어 거대한 네트워킹 환경을 이룬다고 볼 수 있습니다.
- 이러한 다수의 서브넷을 식별하기위해 서브넷 마스크라는 주소로 구분할 수 있습니다.
☁️ 5. 라우팅과 라우터
OSI 3계층 모델인 [네트워크 계층]의 주요 목적이 목적 목적지 네트워크까지 최적의 경로를 선택하는 작업입니다.
✔️ 라우팅이란, 통신을 수행할 때 "최적의 목적지 경로를 선택" 하는 작업이고, 이를 수행하는 장비를 "라우터"이라 합니다.
→ 라우팅의 목적인 최적의 경로를 선택하기 위해, 라우팅 테이블이라는 곳에 경로를 기록하고 경로르 선택하여 패킷을 전달합니다.
종단 - 종단 흐름간의 라우터 과정
위의 그림의 통신 흐름을 단계별로 살펴보겠습니당
- 출발지 A 에서 목적지 X로 향하는 패킷을 2번 라우터에게 전달합니다.
- 2번 라우터는 자신의 라우팅 테이블을 확인해서 경로를 찾을 것입니다.
- 라우팅 테이블을 보면 목적지 X로 향하는 것은 6번 라우터롤 향하는것이 최적임을 판단할 수 있습니다.
- 6번 라우터도 패킷을 전달받으면 같은 방법으로 라우팅테이블을 참조해 최적의 경로를 판단해 패킷을 전달합니다.
→ 이런식으로 "라우터들이 라우팅 테이블을 참고하여 최적의 목적지 경로를 선택하여 통신하는 일련의 작업" 을 라우팅이라 합니다.
🤔 6. TCP와 UDP
이번에는 OSI 7 계층 모델에서 4계층의 [전송계층]에 해당하는 대표적인 프로토콜인 TCP 와 UDP 에 대해 알아보겠습니다.
👏🏻 TCP 와 UDP 프로토콜은 데이터 전송을 수행하는 목적을 가지고 있습니다.
- 서로 데이터전송을 위한 방법이나 특징이 다르므로 → 애플리케이션의 서비스 목적에 따라 TCP 또는 UDP 중 하나를 선택하여 사용합니다.
TCP
- TCP는 데이터 전송에 앞서 출발지와 목적지 간에 연결을 위한 작업인 TCP 3 Way Handshake를 수행합니다.
- 이렇게 연결이 이루어져야 데이터 전송이 가능해집니다.
- 다음으로, TCP 는 연결성을 맺고 데이터 전송을 할 때, 응답(Ack)을 확인하여 정상적으로 전달되었는지 파악할 수 있습니다.
- 만약에 응답이 확인되지 않으면, 데이터를 재 전송하는 형태로 동작합니다.
📌 이러한 측면에서 TCP 는 연결성 프로토이라하며
→ TCP는 연결성을 맺고 데이터 전송에 대한 응답을 파악하여 전달하기 때문에 신뢰성이 높습니다.
→ 또한, TCP 는 앞서 설명한 바에 따라 느린 데이터 전송이 이루어집니다.
UDP
- UDP는 데이터 전송전에 별도의 연결작업이 존재하지 않습니다.
- UDP 는 데이터 전소엥 대한 요청(Request)이 있을 경우 데이터를 전송합니다.
- 별도의 응답이 필요 없이 지속적으로 데이터를 전송합니다.
- 그러므로, 데이터가 중간에 유실되어도 응답을 위한 프로세스가 없기 때문에 데이터 유실 여부를 파악할 수 없습니다. (그저 다음 데이터만을 전송)
📌 이러한 측면에서 UDP 를 비연결성 프로토콜이라
→ UDP 는 연결성을 맺는 작업이나 응답을 파악하는 동작이 없기 때문에 신뢰성이 낮습니다.
→ UDP 는 빠른 전송이 이루어집니다.
실제 서비스를 위한 애플리케이션들은 서비스의 용도나 목적에 따라 TCP 또는 UDP 방식으로 데이터 전송을 수행합니다.
- 참고로 TCP 를 사용하는 애플리케이션 서비스는 HTTP, SSH 가 있고
- UDP 는 DHCP나 DNS 가 있습니다. (Dns 도 udp네..?)
👏🏻 다양한 7계층(응용 계층) 프로토콜을 TCP / UDP 포트 번호로 구분합니다.
- OSI 7 계층 모델에서 [응용 계층]의 프로토콜은 TCP 또는 UDP를 통해 데이터 전송을 한다고 하였습니다.
- TCP 나 UDP는 애플리케이션 서비스를 식별하기 위해 포트번호를 통해 구분합니다.
1) DHCP (Dynamic Host Configuration Protocol)
- DHCP는 동적으로 IP 주소를 할당하여 임대해 주는 프로토콜입니다.
- Discover/ Offer/ Request/ Ack 4단계의 데이터를 주고 받습니다.
- UDP 포트 67, 68을 사용하여 데이터를 전송합니다.
2) DNS (Domain Name System)
- 도메인 주소를 제공하는 용도의 프로토콜
- IP 주소와 매칭되는 문자 형태의 도메인 주소를 제공합니다.
- UDP 포트 53 을 사용
3) HTTP (Hyper Text Transfer Protocol)
- 하이버 텍스트 정보를 주고 받는 용도의 프로토콜입니다.
- 클라이언트가 요청하면 서버가 응답하는 형태로 하이퍼 텍스트를 웹 페이지에 출력합니다.
- TCP 포트 번호 80을 사용합니다.
4) SSH (Secure Shell)
- 원격 장비에 네트워크를 통해 접속하는 용도의 프로토콜 입니다.
- 보안 키를 통해 안전한 보안 채널을 구성하여 데이터를 전송합니다.
- TCP 포트 번호 22를 사용합니다.
'🔥 공대생은 성장 중 > 강의' 카테고리의 다른 글
AWS 네트워킹 입문 (1) - 클라우드 컴퓨팅이란 (0) | 2023.05.11 |
---|---|
[Spring & Java] 🚀 재고시스템으로 알아보는 동시성이슈 해결방법 (15) | 2022.10.06 |
THE RED 백명석, 최범균 - 백발의 개발자를 꿈꾸며 : 코드리뷰, 레거시와 TDD : 강의 회고 및 개인 요약 정리(2) (0) | 2022.06.28 |
THE RED 백명석, 최범균 - 백발의 개발자를 꿈꾸며 : 코드리뷰, 레거시와 TDD : 강의 회고 및 개인 요약 정리(1) (0) | 2022.06.28 |