혼자공부하는 네트워크 복습 DAY3

정지범·7일 전

📘 혼자 공부하는 네트워크 — 복습 DAY 3

학습 범위: 네트워크 DAY 1 ~ DAY 11
복습 방식: 20문제 풀이 및 해설
학습 내용: ARP, IP/MAC 주소, TCP 오류·흐름·혼잡 제어, HTTP, Wireshark, ICMP, IPv4 단편화, 이중화, 로드 밸런싱

기존에 공부했던 네트워크 내용을 다시 복습해보자.

이번 복습도 하루에 20문제씩 풀면서 기억이 나지 않거나 헷갈리는 부분을 다시 정리하는 방식으로 진행한다.


Q1. 서로 다른 네트워크와 ARP

다음과 같은 두 PC가 있다.

PC A
192.168.10.10/24

PC B
192.168.20.20/24

PC A가 PC B에게 데이터를 보내려고 한다.

이때 PC A는 PC B의 MAC 주소를 직접 ARP로 알아내야 할까?

풀이

두 PC는 서로 다른 네트워크에 있다.

PC A
192.168.10.0/24

PC B
192.168.20.0/24

따라서 PC A가 PC B에게 직접 프레임을 전달할 수 없다.

PC A는 다른 네트워크로 패킷을 전달하기 위해 먼저 Default Gateway로 프레임을 보내야 한다.

따라서 PC A가 ARP를 통해 알아내야 하는 MAC 주소는

PC B의 MAC 주소 X

Default Gateway의 MAC 주소 O

이다.

동작 과정은 다음과 같다.

PC A
   |
   | 목적지가 다른 네트워크인지 확인
   v
Default Gateway IP 확인
   |
   | ARP
   v
Default Gateway MAC 확인
   |
   v
Gateway로 Frame 전송

핵심: 다른 네트워크로 통신할 때는 최종 목적지 장비의 MAC이 아니라 우선 Default Gateway의 MAC 주소가 필요하다.


Q2. IP 주소와 MAC 주소

다음과 같은 환경이 있다.

PC A IP
192.168.1.10

PC A MAC
AA-AA-AA-AA-AA-AA

Default Gateway IP
192.168.1.1

Default Gateway MAC
BB-BB-BB-BB-BB-BB

목적지 서버 IP
8.8.8.8

PC A가 목적지 서버로 패킷을 처음 전송할 때 다음 값은 무엇일까?

  • 출발지 IP
  • 목적지 IP
  • 출발지 MAC
  • 목적지 MAC

풀이

정답은 다음과 같다.

출발지 IP
192.168.1.10

목적지 IP
8.8.8.8

출발지 MAC
AA-AA-AA-AA-AA-AA

목적지 MAC
BB-BB-BB-BB-BB-BB

여기서 중요한 것은 IP 주소와 MAC 주소의 역할 차이다.

IP 주소
→ 최종 목적지를 나타냄

MAC 주소
→ 현재 네트워크 구간에서
  다음으로 전달할 장치를 나타냄

PC A는 최종적으로 8.8.8.8에 데이터를 보내고 싶기 때문에 목적지 IP는 그대로 8.8.8.8이다.

하지만 현재 PC A가 직접 프레임을 전달할 대상은 Default Gateway이므로 목적지 MAC은 Gateway의 MAC 주소가 된다.

핵심: IP는 최종 목적지, MAC은 현재 구간의 다음 전달 대상.


Q3. 라우터를 지나면 어떤 주소가 바뀔까?

PC A가 목적지 서버로 패킷을 전송하면서 여러 라우터를 지나간다.

라우터를 지날 때 일반적으로 변경되는 것은?

① 출발지 IP
② 목적지 IP
③ 출발지 MAC / 목적지 MAC
④ 출발지 IP / 목적지 IP 모두

풀이

정답은 ③ 출발지 MAC / 목적지 MAC

라우터는 프레임을 수신한 뒤 기존 2계층 헤더를 제거하고 다음 네트워크 구간에 맞는 새로운 프레임을 만든다.

예를 들어

PC A
 |
 v
Router A
 |
 v
Router B

PC A → Router A 구간에서는

출발지 MAC
→ PC A

목적지 MAC
→ Router A

Router A → Router B 구간에서는

출발지 MAC
→ Router A의 송신 인터페이스 MAC

목적지 MAC
→ Router B의 MAC

이 된다.

반면 일반적인 라우팅에서는 최종 목적지를 나타내는 IP 주소는 유지된다.

MAC
→ Hop마다 변경될 수 있음

IP
→ 일반적으로 종단 간 유지

단, NAT가 수행되는 경우 IP 주소가 변경될 수 있다.


Q4. ARP Request

PC A가 같은 네트워크에 있는 PC B의 IP 주소는 알고 있지만 MAC 주소는 모른다.

ARP Request는 어떻게 전송될까?

① PC B에게만 Unicast
② 같은 네트워크에 Broadcast
③ Gateway에게만 전송
④ 인터넷 전체에 Broadcast

풀이

정답은 ② Broadcast

처음에는

ARP 테이블에 있는 여러 MAC 주소에 한 번에 요청하는 것인가?

라고 생각했다.

하지만 ARP Request는 ARP 테이블에 있는 장치들에게 요청하는 것이 아니다.

PC A가 다음과 같은 메시지를 같은 네트워크에 브로드캐스트한다고 생각하면 된다.

"192.168.1.20을 사용하는 장치 누구야?
MAC 주소 알려줘!"

같은 네트워크의 장치들이 요청을 받아보지만 자신의 IP가 아니면 무시한다.

PC C
"내 IP 아닌데?"
→ 무시

PC D
"내 IP 아닌데?"
→ 무시

PC B
"192.168.1.20은 내 IP다!"
→ ARP Reply

일반적으로

ARP Request
→ Broadcast

ARP Reply
→ Unicast

방식으로 동작한다.


Q5. ARP Table

PC A의 ARP 테이블에 다음 정보가 이미 저장되어 있다.

192.168.1.20
→ BB-BB-BB-BB-BB-BB

PC A가 다시 192.168.1.20으로 데이터를 보내려고 한다.

어떻게 동작할까?

① 무조건 다시 ARP Request를 전송한다.
② ARP Table에 저장된 MAC 주소를 사용한다.
③ Default Gateway의 MAC 주소를 사용한다.
④ DNS 서버에 MAC 주소를 물어본다.

풀이

정답은 ②번

ARP 테이블에 유효한 IP-MAC 대응 정보가 이미 있다면 다시 ARP Request를 브로드캐스트할 필요가 없다.

192.168.1.20
        |
        v
ARP Table 조회
        |
        v
BB-BB-BB-BB-BB-BB

저장되어 있는 MAC 주소를 이용해 바로 프레임을 전송할 수 있다.

핵심: ARP Table은 이전에 확인한 IP와 MAC 주소의 대응 정보를 일정 시간 저장한다.


Q6. Go-Back-N ARQ

송신자가 다음 데이터를 연속으로 보냈다.

1 → 2 → 3 → 4 → 5

그런데 3번 데이터가 유실되었다.

Go-Back-N 방식에서는 무엇을 다시 전송할까?

① 3번
② 3, 4, 5번
③ 1~5번 전체
④ 재전송하지 않음

풀이

처음에는 ① 3번만 다시 전송한다고 생각했다.

하지만 정답은 ② 3, 4, 5번

Go-Back-N은 이름 그대로 오류가 발생한 지점으로 돌아가 이후 데이터를 다시 전송한다.

1 → 정상
2 → 정상
3 → 손실
4 → 전송
5 → 전송

재전송:

3 → 4 → 5

반면 유실된 데이터만 선택해서 재전송하는 방식은 Selective Repeat이다.

Go-Back-N
→ 문제가 발생한 지점부터 이후까지 재전송

Selective Repeat
→ 문제가 발생한 데이터만 선택적으로 재전송

Q7. TCP 흐름 제어

수신자가 처리할 수 있는 데이터보다 송신자가 너무 많은 데이터를 전송하지 않도록 조절하기 위해 사용하는 대표적인 방식은?

① Sliding Window
② DNS
③ NAT
④ ARP

풀이

정답은 ① Sliding Window

TCP에서는 수신자가 데이터를 처리할 수 있는 능력을 고려해 송신량을 조절한다.

이를 흐름 제어(Flow Control)라고 한다.

쉽게 생각하면

수신자
"지금 이 정도까지만 받을 수 있어!"

송신자
"확인. 그만큼만 보낼게."

와 같은 방식이다.

Flow Control
→ 수신자의 처리 능력 고려

Q8. TCP Slow Start

TCP 혼잡 제어 방식 중 하나인 Slow Start는 어떻게 동작할까?

풀이

정답은 Slow Start라는 것까지는 알았지만 처음에는

혼잡이 발생하면 데이터를 천천히 전달하도록 하는 방식?

이라고 생각했다.

Slow Start의 핵심은 처음 전송량을 작게 시작하는 것이다.

혼잡 윈도우를 작은 값에서 시작하고 ACK가 정상적으로 도착하면 전송량을 증가시킨다.

작은 혼잡 Window
      ↓
ACK 정상 수신
      ↓
Window 증가
      ↓
ACK 정상 수신
      ↓
Window 증가

Slow Start라는 이름 때문에 계속 천천히 증가한다고 생각할 수 있지만, 실제로는 초기에는 전송량을 빠르게 증가시킨다.

일반적으로 혼잡 윈도우는 RTT가 지날수록 지수적으로 증가한다.

이후

Slow Start Threshold

에 도달하면 증가 방식이 달라진다.

흐름 제어와 혼잡 제어

Flow Control
→ 수신자가 감당 가능한가?

Congestion Control
→ 네트워크가 감당 가능한가?

핵심: Slow Start는 혼잡이 발생한 뒤 천천히 보내는 기능이라기보다, 작은 전송량에서 시작해 네트워크 상황을 확인하면서 빠르게 증가시키는 혼잡 제어 방식이다.


Q9. HTTP Stateless

HTTP에서 서버가 이전 요청의 상태를 기본적으로 기억하지 않는 특성을 무엇이라고 할까?

① Stateful
② Stateless
③ Persistent
④ Connectionless

풀이

정답은 ② Stateless

HTTP는 기본적으로 각각의 요청을 독립적으로 처리한다.

Request 1
→ 독립적 처리

Request 2
→ 독립적 처리

Request 3
→ 독립적 처리

따라서 HTTP 자체는 이전 요청의 상태를 자동으로 기억하지 않는다.

하지만 실제 웹 서비스에서는 로그인 상태 등을 유지해야 하기 때문에

  • Cookie
  • Session

과 같은 기술을 함께 사용한다.

Stateless: 서버가 이전 요청의 상태를 기본적으로 유지하지 않는 특성


Q10. HTTP PUT과 PATCH

HTTP에서 리소스의 일부만 수정할 때 사용하는 메서드는?

① GET
② POST
③ PUT
④ PATCH

풀이

정답은 ④ PATCH

이 문제는 이전 복습에서 PUT과 PATCH를 헷갈려 틀렸던 문제였다.

이번에는 다음과 같이 기억해서 맞혔다.

PUT
→ 전체 수정 / 대체

PATCH
→ 일부 수정

예를 들어

{
  "name": "pingu",
  "age": 25,
  "job": "engineer"
}

중 age 값만 수정하고 싶다면 PATCH의 개념으로 이해할 수 있다.

핵심: PUT은 전체, PATCH는 일부.


Q11. HTTP 상태 코드

HTTP 응답이 다음과 같다.

404 Not Found

4xx 계열 상태 코드는 어떤 의미일까?

① 요청 성공
② Redirect
③ Client Error
④ Server Error

풀이

처음에는 C와 D 중에서 고민하다 Server Error라고 생각했다.

하지만 정답은 ③ Client Error

HTTP 상태 코드는 첫 번째 숫자로 큰 의미를 구분할 수 있다.

2xx
→ 성공

3xx
→ Redirection

4xx
→ Client Error

5xx
→ Server Error

따라서

404 Not Found

는 요청한 리소스를 찾을 수 없다는 의미이며 4xx 계열에 속한다.

대표적으로

200 OK
→ 요청 성공

404 Not Found
→ 요청한 리소스를 찾을 수 없음

500 Internal Server Error
→ 서버 내부 오류

와 같이 구분할 수 있다.


Q12. Wireshark와 캡슐화

Wireshark에서 HTTP 패킷을 확인했을 때 다음과 같은 구조가 보인다.

Ethernet II
→ IPv4
→ TCP
→ HTTP

이는 무엇을 의미할까?

풀이

정답은 캡슐화 구조

HTTP 데이터는 네트워크를 통해 전송되면서 각 계층의 헤더가 추가된다.

송신 측에서는

HTTP
  ↓
TCP
  ↓
IP
  ↓
Ethernet

순서로 캡슐화된다.

조금 더 자세히 보면

HTTP Data
    ↓
TCP Header 추가
    ↓
IP Header 추가
    ↓
Ethernet Header 추가

수신 측에서는 반대로

Ethernet
→ IP
→ TCP
→ HTTP

순서로 정보를 확인하고 헤더를 제거한다.

이를 역캡슐화(Decapsulation)라고 한다.


Q13. TCP 3-Way Handshake

TCP 연결을 설정하는 순서는?

① SYN → ACK → FIN
② SYN → SYN/ACK → ACK
③ ACK → SYN → ACK
④ FIN → ACK → FIN

풀이

정답은 ②번

Client                         Server

   SYN
   --------------------------->

             SYN + ACK
   <---------------------------

   ACK
   --------------------------->

        TCP 연결 완료

SYN

클라이언트가 서버에게 연결을 요청한다.

"TCP 연결하고 싶어!"

SYN + ACK

서버는 클라이언트의 SYN을 확인하고 ACK를 보내면서 자신의 SYN도 함께 전달한다.

"네 요청을 받았고,
나도 연결할 준비가 됐어."

ACK

클라이언트가 서버의 응답을 확인한다.

"서버 응답 확인했어."

TCP 연결: SYN → SYN/ACK → ACK


Q14. TCP 4-Way Handshake

TCP 연결을 정상적으로 종료할 때의 순서는?

① FIN → ACK → FIN → ACK
② SYN → ACK → SYN → ACK
③ FIN → FIN → ACK → ACK
④ ACK → FIN → ACK → FIN

풀이

정답은 ①번

FIN
 ↓
ACK
 ↓
FIN
 ↓
ACK

TCP는 양방향 통신이기 때문에 한쪽이 통신을 종료한다고 해서 반대쪽도 즉시 종료되는 것은 아니다.

한쪽에서

FIN
→ "나는 더 이상 보낼 데이터가 없어."

라고 전달하면 상대방은

ACK
→ "확인했어."

라고 응답한다.

상대방에게 아직 전송할 데이터가 있다면 모두 보낸 뒤 자신의 FIN을 전송한다.

마지막 ACK까지 전달되면 연결이 종료된다.

TCP 연결 설정: 3-Way Handshake
TCP 연결 종료: 일반적으로 4-Way Handshake


Q15. ICMP와 Ping

ping 명령에서 사용하는 대표적인 프로토콜은?

① TCP
② UDP
③ ICMP
④ ARP

풀이

정답은 ③ ICMP

Ping은 일반적으로 ICMP의 Echo 메시지를 사용하여 상대 장비의 응답 여부를 확인한다.

Echo Request

Type = 8
Code = 0

Echo Reply

Type = 0
Code = 0

동작 과정은 다음과 같다.

PC A                          PC B

ICMP Echo Request
----------------------------->

             ICMP Echo Reply
<-----------------------------

핵심: Ping은 ICMP Echo Request와 Echo Reply를 사용한다.


Q16. IPv4 단편화 - Identification

IPv4 패킷이 여러 조각으로 단편화되었을 때 같은 원본 패킷에서 나온 조각인지 구분하기 위해 사용하는 필드는?

① TTL
② Identification
③ Source Port
④ Sequence Number

풀이

처음에는 ④ Sequence Number라고 생각했다.

하지만 정답은 ② Identification

같은 원본 IP 패킷에서 나뉜 단편들은 동일한 Identification 값을 가진다.

예를 들어

원본 Packet
Identification = 100

이 세 개로 나뉘었다면

Fragment 1
Identification = 100

Fragment 2
Identification = 100

Fragment 3
Identification = 100

처럼 동일한 값을 공유한다.

수신 측은 이 값을 보고

"이 조각들은 같은 원본 패킷이구나."

라고 판단할 수 있다.

Sequence Number와 차이

TCP Sequence Number
→ TCP 데이터의 순서와 관련

IP Identification
→ 같은 원본 IP 패킷의 단편인지 구분

Q17. IPv4 단편화 - MF

단편화된 IPv4 패킷에서 이 단편 뒤에 아직 다른 단편이 더 존재하는지 알려주는 것은?

① Identification
② TTL
③ MF(More Fragments)
④ Fragment Offset

풀이

정답은 ③ MF

MF는

More Fragments

의 약자이다.

MF 설정
→ 뒤에 단편이 더 있음

MF 미설정
→ 마지막 단편

IPv4 단편화에서 같이 기억해야 할 필드는 다음과 같다.

Identification
→ 같은 원본 패킷인가?

Fragment Offset
→ 원본 데이터에서 어느 위치인가?

MF
→ 뒤에 단편이 더 존재하는가?

Q18. SPoF

하나의 서버나 네트워크 장비에 문제가 발생했을 때 그 하나의 장애 때문에 전체 시스템이 중단될 수 있는 지점을 무엇이라고 할까?

① Load Balancer
② SPoF
③ Active-Active
④ Health Check

풀이

처음에는 ① Load Balancer라고 선택했다.

하지만 정답은 ② SPoF

SPoF는

Single Point of Failure

의 약자이다.

하나의 구성 요소에 장애가 발생했을 때 시스템 전체 서비스에 영향을 미칠 수 있는 단일 장애 지점을 의미한다.

예를 들어

Client
   |
   v
Switch
   |
   v
Server

구조에서 스위치가 하나뿐이고 해당 스위치가 장애 나면 전체 서비스가 중단된다면 그 스위치는 SPoF가 될 수 있다.

SPoF는 물리 장비만 의미하지 않는다.

  • Server
  • Switch
  • NIC
  • Database
  • Web Server Program

등 다양한 요소가 SPoF가 될 수 있다.

대응 방법

이중화 등을 이용해 하나의 장애가 전체 서비스 장애로 이어지지 않도록 구성할 수 있다.


Q19. Active-Standby

다음과 같은 서버 구성 방식은 무엇일까?

서버 2대가 있지만 평소에는 1대만 실제 서비스를 처리하고, 나머지 1대는 대기한다.
운영 중인 서버에 장애가 발생하면 대기 서버가 서비스를 이어받는다.

① Active-Active
② Active-Standby
③ Round Robin
④ Least Connection

풀이

정답은 ② Active-Standby

Server A
Active
→ 실제 서비스 제공

Server B
Standby
→ 대기

Active 서버에 문제가 발생하면 Standby 서버가 서비스를 이어받을 수 있다.

Server A 장애
      ↓
Server B가 서비스 인계

반면 Active-Active는 두 서버가 평소에도 모두 서비스를 제공한다.

구분Active-StandbyActive-Active
평상시한 서버가 서비스두 서버 모두 서비스
다른 서버대기함께 서비스
장애 시Standby가 서비스 인계정상 서버가 계속 서비스
특징백업 서버 확보서버 자원 적극 활용

핵심: Active-Standby는 한 대가 동작하고 한 대가 대기한다.


Q20. Round Robin과 Least Connection

다음과 같은 서버들이 있다.

Server A
현재 연결 100개

Server B
현재 연결 20개

Server C
현재 연결 60개

현재 연결 수가 가장 적은 서버로 새로운 요청을 보내는 로드 밸런싱 알고리즘은?

풀이

정답은 Least Connection

현재 연결 수가

A → 100개
B → 20개
C → 60개

이므로 가장 연결 수가 적은 Server B로 새로운 요청을 전달한다.

Least Connection

현재 연결 수 확인
      ↓
가장 연결 수가 적은 서버 선택
      ↓
새로운 요청 전달

Round Robin

Round Robin은 현재 연결 수보다는 순서를 기준으로 요청을 전달한다.

서버가 A, B, C라면

1번 요청 → A
2번 요청 → B
3번 요청 → C
4번 요청 → A
5번 요청 → B
6번 요청 → C

처럼 반복된다.

차이

Round Robin
→ 순서 기준

Least Connection
→ 현재 연결 수 기준

📌 DAY 3 — 오답 및 헷갈렸던 개념

문제개념핵심 복습
Q4ARPARP Table의 장치들에게 요청하는 것이 아니라 ARP Request를 Broadcast
Q6Go-Back-N손실된 데이터만이 아니라 손실 지점 이후 데이터를 다시 전송
Q8Slow Start혼잡 발생 후 천천히 보내는 개념이 아니라 작은 Window에서 시작해 빠르게 증가
Q11HTTP 상태 코드4xx는 Client Error, 5xx는 Server Error
Q16IPv4 단편화Identification은 같은 원본 패킷의 단편을 구분
Q18SPoF하나의 장애가 전체 서비스 장애로 이어질 수 있는 단일 장애 지점

🔥 오늘 특히 기억해야 할 내용

ARP와 다른 네트워크 통신

같은 네트워크
→ 목적지 Host의 MAC 확인

다른 네트워크
→ Default Gateway의 MAC 확인

그리고

IP
→ 최종 목적지

MAC
→ 현재 구간의 다음 전달 대상

ARP Request / Reply

ARP Request
→ Broadcast

ARP Reply
→ 일반적으로 Unicast

ARP Table에 유효한 정보가 있다면 해당 MAC 주소를 재사용할 수 있다.


Go-Back-N / Selective Repeat

1 → 2 → 3(X) → 4 → 5

Go-Back-N

3 → 4 → 5

Selective Repeat

3

흐름 제어 / 혼잡 제어

Flow Control
→ 수신자가 감당할 수 있는가?

Congestion Control
→ 네트워크가 감당할 수 있는가?

Sliding Window는 흐름 제어와 관련되어 있다.

Slow Start는 혼잡 제어와 관련되어 있다.


HTTP 상태 코드

2xx
→ Success

3xx
→ Redirection

4xx
→ Client Error

5xx
→ Server Error
200 OK

404 Not Found

500 Internal Server Error

TCP 연결 / 종료

3-Way Handshake

SYN
↓
SYN + ACK
↓
ACK

4-Way Handshake

FIN
↓
ACK
↓
FIN
↓
ACK

ICMP

Ping
→ ICMP
Echo Request
Type 8 / Code 0

Echo Reply
Type 0 / Code 0

IPv4 단편화

Identification
→ 같은 원본 패킷의 단편인가?

Fragment Offset
→ 원본 데이터에서 어느 위치인가?

MF
→ 뒤에 단편이 더 있는가?

특히

TCP Sequence Number
≠
IPv4 Identification

이라는 점을 기억해야 한다.


고가용성

SPoF

Single Point of Failure

하나의 장애가 전체 서비스 장애로 이어질 수 있는 지점이다.

Active-Standby

Active
→ 서비스 중

Standby
→ 대기

Active-Active

Active
+
Active

→ 두 시스템 모두 서비스

Load Balancing

Round Robin

A → B → C → A → B → C

순서대로 요청을 분산한다.

Least Connection

현재 연결 수가
가장 적은 서버 선택

🎯 다음 복습 목표 — DAY 4

다음 복습에서는 오늘 헷갈렸던 내용을 다시 문제로 만나면서 완전히 익혀보자.

  • Go-Back-N과 Selective Repeat 다시 구분하기
  • Sliding Window와 Flow Control 복습하기
  • Slow Start 동작 과정 다시 확인하기
  • HTTP 4xx와 5xx 구분하기
  • IPv4 Identification, Fragment Offset, MF 다시 구분하기
  • TCP Sequence Number와 IPv4 Identification 구분하기
  • SPoF와 이중화 관계 이해하기
  • Active-Standby와 Active-Active 구분하기
  • Round Robin과 Least Connection 다시 비교하기
  • DAY1~DAY11 전체 범위에서 총 20문제 풀기

DAY 3 복습 완료! ✅

#네트워크 #혼자공부하는네트워크 #네트워크공부 #ARP #TCP #HTTP #Wireshark #ICMP #IPv4 #로드밸런싱 #정보보안 #복습

profile
성실하자:)

0개의 댓글