[네트워크] 2025 혼자 공부하는 네트워크 6주차

gunny·2025년 2월 23일
0

[CS] OS, Network

목록 보기
7/7

혼공학습단 13기 5주차

혼자 공부하는 네트워크

2025.02.17 ~ 2025.02.23

  • 진도: Chapter 06
  • 기본 숙제(필수): Ch.06(06-2) 확인 문제 1번(p.379), (07-2) 확인 문제 2번(p.407) 풀고 설명하기

숙제(과제)

기본숙제(필수)

Ch.06(06-2)

: 순서번호(Sequence Number raw)는 3588415412
다음으로 받기를 희망하는 다음 번호는 1을 더한 3588415413

Ch.07(07-2)

: ClientHello에 대한 응답으로 ServerHello를 응답함
ServerHello : 제시된 정보들을 선택하는 메시지
ClientHello :암호화 이전에 맞춰 봐야 할 정보들의 메시지

  • 추가 숙제(선택): 와이어샤크에서 실제 TCP/UDP 패킷 확인해 보기

와이어샤크가 안깔림..
에효..

이것만 몇 시간 내내 돌아가서 다시 깔아봤지만 와이어샤크가 안깔림

정리

06. 실습으로 복습하는 네트워크

6-1. 와이어샤크 설치 및 사용법

패킷의 모습은 패킷 캡처 프로그램을 사용해서 관찰할 수 있는데, 패킷 캡처 프로그램은 네트워크에서 송수신되는 패킷을 모니터링하고 분석할 수 있는 프로그램이다.
대표적인 패킷 캡처 프로그램으로 와이어샤크(WireShark) 가 있다.

와이어샤크 설치

맥을 사용하므로 맥 OS에서 와이어샤크 설치하기

[1] 와이어샤크 다운로드 페이지 접속 -> [Download Wireshark] 의 [Stable Release]에서 본인의 컴퓨터 환경에 맞는 macOS 설치 파일 다운로드


난 맥북 에어에서 테스트하고 M1 칩이라서 arm disk image 설치

[2] 다운로드한 파일을 실행하면 아래와 같은 화면이 나타나고,
와이어샤크를 설치하기 위해서 와이어샤크 아이콘을 [Applications] 폴더로 드래그하고, 패킷 캡처를 위해 [Install ChmodBPE.pkg]를 클릭해서 ChmodBPF를 설치한다.

[3] 응용 프로그램(Applications)에서 와이어샤크 실행해보기

와이어샤크 사용법

패킷 캡처

[1] 와이어샤크를 처음 실행하면 나타나는 화면에서 어떤 네트워크 인터페이스에서 송수신될 패킷을 관찰하고 싶은지 선택한다.
와이파이로 연결된 인터페이스를 선택하면, 특정 인터페이스를 통해 패킷이 송수신되고 있다면 해당 인터페이스 이름 오른쪽에 지그재그 모양의 차트가 그려진다.

[2] 선택한 후에는 아래와 같은 화면을 확인할 수 있다.
화면 좌측 상단에 있는 네모 모양의 캡처 중단 아이콘도 있다.

[3] 송수신되는 패킷을 더욱 명확히 캡처하기 위해 웹 브라우저를 열고, http://example.com에 접속해본다. 해당 URL에 접속하기 위해 http 프로토콜로 주고받을 패킷도 캡처될 것이다.

와이어샤크 화면 구성

와이어샤크에서 좌측 사단의 캡처 중단 아이콘을 클릭하면 캡처가 중단된다.
캡처를 중단한 후에 캡처 중간 버튼의 좌측에 위치한 상어 지느러미를 클릭하면 캡처를 다시 수행할 수 있다.

와이어샤크에서는 인터페이스에 송수신된 패킷들에 대한 정보를 확인할 수 있다. 이 패킷 정보에는 패킷 번호, 시간, 송신지, 수신지, 프로토콜, 패킷의 길이 그리고 패킷에 대한 간략한 설명이 포함된다.

또한 패킷에 해당하는 실제 데이터를 확인할 수 있고, 패킷이 어떻게 캡슐화 되어 있는지 알 수 있다.

패킷 필터링

와이어샤크가 제공하는 강력한 기능은 패킷 필터링 기능 이다.
붉은색 박스로 표시된 입력 창에 와이어샤크 필터를 입력하면 캡처된 패킷 중에서 필터 조건에 맞는 특정 패킷만 조회할 수 있다.

이러한 필터는 일반적으로 연사낮와 함께 사용되고, 와이어샤크에서 연산자는 여러 필터를 조합해 사용하거나 특정 조건을 만족하는 필터를 확인하는 데 사용 된다.

연산자의 우선순위는 일반적인 프로그래밍 언어의 연산자와 유사하다.

"ip.src == 192.166.219.100" 
"ip.src eq 192.166.219.100"

-> 송신지 IP 주소(ip.src)가 192.166.219.100과 같은 패킷들만 걸러내는 필터입니다.

"tcp.port != 80"
"tcp.port ne 80"

-> TCP 포트 번호(tcp.port)가 80과 같지 않은 패킷들만 걸러내는 필터

ip.src == 192.168.219.102 && tcp.dstport == 80

-> IP 송신지 주소(ip.src)가 192.158.219.102와 같고
TCP의 수신지 포트 (tcp.dstport)가 80과 같으며
이 둘을 동시에 만조하는 패킷들만 걸러낸다.

캡처 파일 저장과 열기

패킷 캡처 파일은 일반적으로 pcap 확장자 또는 pcapng 확장자로 저장된다.
이러한 파일로 캡처 내역을 저장하면 언제든지 캡처된 패킷들을 다시 열어 조회할 수 있다.

6-2. 와이어샤크를 통한 프로토콜 분석

와이어샤크를 사용해 패킷 캡처 파일을 분석해본다.

-> 와이어샤크 안깔림 이슈..
열심히 읽었음

07. 네트워크 심화

07-1. 안정성을 위한 기술

안정성을 수치로 표현하는 가용성이라는 용어와, 안정성을 높이기 위한 방법으로 물리적 장비나 프로그램 등을 여러 개 두는 기술인 이중화다중화, 그리고 트래픽을 고르게 분산하는 기술인 로드 밸런싱

가용성

안정성은 '특정 기능을 언제든 균일한 성능으로 수행할 수 있는 특성' 으로 정의할 수 있다. 예를 들어 '안정적인 웹 서버'는 언제든지 응답 메시지를 제공할 수 있는 서버, '안정적인 라우터'는 언제든지 라우팅 기능을 제공할 수 있는 라우터를 의미한다.

안정성을 수치화할 때 안정성의 정도를 나타내는 용어로 가용성(availability), 고가용성(High Availability) 이라는 용어가 있다.

가용성 : 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율
정상적인 사용 시간을 업타임(uptime), 정상적인 사용이 불가능한 시간을 다운타임(downtime)으로 정의 했다.

가용성 = 업타임 / (업타임+다운타임)

수식의 결괏값이 크다는 것은 전체 사용 시간 중에서 대부분을 사용 가능하다는 말과도 같고, 가용성 높다 라고 표현하고 가용성이 높은 성질을 고가용성이라고 한다.

고가용성 : High Availability이고 앞 글자를 따서 HA라고도 줄여서 부른다. 백분율로 표기했을 때 안정적인 수준은 99.999% 이상을 목표로 하는데, '9가 다섯 개' 라는 의미에서 '파이브 나인스' 라고 한다.
이 수치를 달성하면 시스템이 정상적으로 운영되지 않는 다운타임이 대략 1년에 5.2분, 1개월로 하면 26.3초가 된다.

가용성을 높이려면 다운타임을 낮춰야 하지만, 문제가 발생하지 않도록 하는 것이 아니라 문제가 발생하더라도 계속 기능할 수 있도록 설계하는 것이다.
문제가 발생하더라도 기능할 수 있는 능력을 결함 감내(fault tolerance) 라 부른다.

이중화

이중화는 '무언가를 이중으로 두는 기술' 이다.
결함을 감내하여 가용성을 높이기 위해 가장 기본적이고 대표적인 방법으로 '예비(백업)를 마련하는 방법'이다.

이중화할 수 있는 대상은 서버 컴퓨터, 네트워크 인터페이스(NIC), 스위치와 같은 물리적 장비뿐만 아니라 데이터베이스, 웹 서버 프로그램도 이중화할 수 있는 대상이다.
그리고 이중화할 수 있는 대상들은 대부분 '문제가 발생할 경우 시스템 전체가 중단될 수 있는 대상'이라는 공통점이 있다.

'문제가 발생할 경우 시스템 전체가 중단될 수 있는 대상'은 단일 장애점(SPoF; Single Point Of Failure) dlek.

이중화 구성에는 크게 액티브/스탠바이(active-standby), 액티브/액티브(active-active)가 있다.

액티브는 가동 상태, 스탠바이는 액티브의 백업으로서 대기하는 상태를 의미한다. 즉, 액티브/스탠바이는 한 시스템은 가동하고 다른 시스템은 백업 용도로 대기 상태(스탠바이)로 두는 이중화 구성 방식이고, 액티브/액티브는 두 시스템 모두를 가동 상태로 두는 구성 방식을 의미한다.

이중화 기술은 더욱 확장되어 '무언가를 여러 개두는 기술'도 잇는데 이를 다중화 라고 한다.

이중화/다중화의 사례로는 주로 윈도우에서 사용되는 티밍(teaming)과 리눅스에서 사용되는 본딩(bonding)이 있다.

로드 밸런싱

고가용성을 요구하는 호스트는 크라이언트보다는 일반적으로 서버이다. 트래픽은 서버의 가용성에 큰 영향을 끼치는 요소이다.
트래픽 : 주어진 시점에 특정 노드를 경유한 패킷의 양

트래픽의 고른 분배를 위해 사용되는 기술이 로드 밸런싱이다. 로드 밸런싱은 부하를 의미하는 단어인 로드와 균형 유지를 나타내는 단어인 밸런싱이 합쳐진 단어이다.
로드 밸런싱은 로드 밸런서에 의해 수행된다.

로드 밸런서는 일반적으로 다음 그림처럼 이중화나 다중화된 서버와 클라이언트 사이에 위치한다. 클라이언트들은 로드 밸런서에 요청을 보내고, 로드 밸런서는 해당 요청을 각 서버에 균등하게 분배한다.

로드 밸런서가 요청을 전달할 수 있는 서버가 여러 개 있을 경우, 어떤 서버에 요청을 전달해야 할까? 부하가 균등하게 분산되도록 부하 대상을 선택하는 방법을 로드 밸런싱 알고리즘 이라고 부른다.

로드 밸런싱 알고리즘의 종류의 대표는 단순히 서버를 돌아가며 부하를 전달하는 라운드 로빈 알고리즘(round robin algorithm) , 연결이 적은 서버부터 우선적으로 부하를 전달하는 최소 연결 알고리즘(least connection algorithm) 이 있다.
때로는 단순히 무작위로 고르기도하고, 해시라는 잘 구조를 이용해서 응답 시간이 가장 짧은 서버를 선택하기도 한다.

라운드 로빈 알고리즘이나 최소 연결 알로길즘에서는 서버마다 가중치를 부여할 수도 있다. 알고리즘에 따라 동작하되, 가중치가 높은 서버가 더 많이 선택되어 더 많은 부하를 받도록 하는 것이다.
이렇게 가중치가 부여된 알고리즘은 각각 가중치 라운드 로빈 알고리즘(weighted round robin algorithm)가중치 최소 연결 알고리즘(weighted least connection algorithm) 이라 한다.

07-2. 안전성을 위한 기술

멀리 떨어진 컴퓨터와 통신할 때 평문으로 메시지를 주고 받을 수 없기 때문에 암호화(encryption) 원문 데이트를 알아볼 수 없는 형태로 변경하는 것을 의미한다.
복호화(decryption)란 암호화된 데이터를 원문 데이터로 되돌리는 과정이다.

암호와 인증서

암호화와 복화화의 핵심은 키이다.

대칭 키 암호화 방식과 공개 키 암호화 방식

키와 원문 데이터에 수학적 연산 과정을 거치면 암호문이 생성되는데, 이 수학적 연산 과정을 '암호화 알고리즘'이라 부른다.
암호문을 수신자 측에서 복호화면 원문 메시지를 얻을 수 있다.
주고 받는 데이터를 암호화하고 복화화하는 방법에는 대칭 키 암호화비대칭 키 암호화 두 가지 방식이 있다.

대칭 키 암호화(symmetric key cryptography) : 대칭 키 암호화 방식에서는 암호화와 복호화에 동일한 키를 사용한다. 대칭 키 암호화 방식은 상대방에게 안전하게 키를 전달하기가 어렵다는 점이다. 대칭 키 암호화 방식은 암호화와 복호화에 동일한 키를 사용해 키가 유출되면 큰 문제가 발생한다.

그래서 등장하는 것이

공개 키 암호화(public key cryptography) 방식이다. 비대칭 키 암호화(asymmetric key cryptography) 라고 부른다. 암호와와 복호화에 단일한 키를 사용했던 대칭 키 암호와는 달리, 공개 키 암호 방식에서는 암호화를 위한 키와 복호화를 위한 키가 다르다.
이 한쌍의 키를 각각 공개 키(public key), 개인 키(private key)라 부른다.

두 방식은 장단점이 있어서 이를 고려해서 대칭 키 암호화 방식과 공개 키 암호화 방식을 함께 사용하는 경우가 많다. 이러한 방식으로 활용되는 대칭 키를 세션 키(session key)라고 부른다.

인증서와 디지털 서명

인증서(cerificate) : 일반적으로 공개 키 인증서
공개 키 인증서(public key certificate)란 공개 키와 공개 키의 유효성을 입증하기 위한 전자 문서
이러한 인증서는 인증기관(CA)이라는 제3의 기관에서 발급한다.

개인 키로 암호화된 메시지를 공개 키로 복화함으로써 신원을 증명하는 이러한 절차를 디지털 서명(digital signature) 이라고 한다.

HTTPS: SSL과 TLS

대칭 키 암호와와 공개 키 암호와 방식, 공개 키 인증서를 기반으로 동작하느 프로토콜로 SSL, TLS가 있다.
SSL과 TLS는 인증과 암호와를 수행하는 프로토콜이고, TLS는 SSL을 계승한 프로토콜이다.

SSL/TLS를 사용하는 대표적인 프로토콜은 HTTPS 이다.

07-3. 무선 네트워크

유선 네트워크와 관련된 연결 매체와 표준, 네트워크 장비가 있듯이 무선 네트워크에도 전파라는 연결 매체, 802.11이라는 표준, 그에 기반한 Wi-Fi라는 기술 AP라는 장비가 있다.

전파와 주파수

전파는 약 3kHz 부터 3THz 사이의 진동수를 갖는 전자기파이다.
눈에 보이지 않는 전자기파의 일종이다.
많은 기기가 전파를 통해 통신하면, 서로 다른 전파 신호가 같은 공간에 혼재할 수 있어서 통신에 사용되는 전파에는 '주파수 대역'이 미리 정해져 있다.

와이파이와 802.11

IEEE 802.11 표준은 대부분 2.4GHz, 5GHz 대역ㅇ르 사용한다.
무선 통신 기술에서의 와이파이IEEE 802.11 표준을 따르는 무선 LAN 기술 이다.
본래는 와이파이 얼라이언스 라는 비영리단체의 트레이드마크 이름이다.

AP와 서비스 셋

무선 네트워크를 생성하기 위해서는 '무선 액세스 포인트(이하 AP)' 라는 네트워크 장비가 필요하다.
AP(Access Point)는 무선 통신 기기들을 연결하여 무선 네트워크를 구성하는 장치이다.

무선 LAN의 기기들은 AP를 겨융해 인터넷에 접속하거나 서로 메시지를 주고 받을 수 있다. AP는 무선 LAN에서 통신을 중개하는 역할을 수행하는데, 이렇게 AP를 경유해서 통신이 이루어지는 무선 네트워크 통신 방식을 인프라스트럭처 모드(infrastructure mode)라고 한다.

오늘날 많은 LAN이 AP가 중개하는 인프라스트럭처 모드로 동작한다.

AP를 중심으로 ㅇ녀결된 여러 장치가 무선 네트워크를 형성한다는 것을 알 수 있다. 무선 네트워크를 이루는 AP와 여러 장치들의 집합을 서비스 셋(Service Set)이라 부른다.

이러한 각기 다른 서비스 셋을 구분할 수 있는 수단을 서비스 셋 식별자(SSID) 라고 한다. SSID는 무선 네트워크를 구분짓는 수단이자 무선 네트우커르르 지칭하는 고유한 이름이다.

AP는 외부에 자신의 존재를 지속적으로 알려야 하는데, AP는 불특정 다수 모두에게 자신을 알리는 브로드캐스트 메시지를 주기적으로 전송한다. 이 브로드캐스트 메시지를 비컨 프레임(beacon frame) 이라 한다.

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글

관련 채용 정보