학습 범위: 네트워크 DAY 1 ~ DAY 11
복습 방식: 20문제 풀이 및 해설
학습 내용: Wireshark, DNS, TCP 재전송, Proxy, HTTP 상태 코드, DHCP, HTTP 메서드, IPv4 단편화, SPoF, TCP Handshake, 이중화, Load Balancing, ARP, CIDR, TLS, BGP
기존에 공부했던 네트워크 내용을 다시 복습해보자.
이번 복습도 하루에 20문제씩 풀면서 기억이 나지 않거나 헷갈리는 부분을 다시 정리하는 방식으로 진행한다.
다음 조건의 패킷만 보고 싶다.
출발지 IP
10.0.0.15
목적지 TCP Port
80
Wireshark Display Filter를 작성해보자.
처음에는 다음과 같이 작성했다.
ip.src == 10.0.0.15 && dst.port == TCP.80
출발지 IP 부분은 맞았지만 목적지 TCP 포트 문법이 잘못되었다.
정확한 필터는 다음과 같다.
ip.src == 10.0.0.15 && tcp.dstport == 80
Wireshark에서 자주 사용하는 필터는 다음과 같다.
ip.src
→ 출발지 IP
ip.dst
→ 목적지 IP
tcp.srcport
→ TCP 출발지 Port
tcp.dstport
→ TCP 목적지 Port
그리고 조건을 연결할 때는
&&
→ AND
||
→ OR
를 사용할 수 있다.
핵심:
dst.port가 아니라tcp.dstport를 사용한다.
다음 DNS Record와 역할을 연결해보자.
A
AAAA
MX
CNAME
정답은 다음과 같다.
A
→ IPv4 주소
AAAA
→ IPv6 주소
MX
→ Mail Server 정보
CNAME
→ 다른 Domain Name에 대한 Alias
이전 복습에서는 A와 CNAME을 헷갈렸지만 이번에는 정확하게 구분했다.
example.com
→ A
→ 192.0.2.10
www.example.com
→ CNAME
→ example.com
핵심: A는 IPv4, AAAA는 IPv6, MX는 Mail, CNAME은 Alias.
TCP 송신자가 같은 ACK 번호를 3번 중복해서 받았다.
이때 송신자는 어떻게 할까?
① 재전송 Timer가 끝날 때까지 기다린다.
② 손실된 것으로 추정되는 Segment를 빠르게 재전송한다.
③ TCP 연결을 종료한다.
④ Slow Start를 무조건 처음부터 다시 시작한다.
정답은 ②번
TCP는 동일한 ACK 번호를 여러 번 반복해서 받으면 중간 Segment가 손실되었을 가능성을 판단할 수 있다.
일반적으로 동일한 ACK를 3번 중복해서 받으면
Duplicate ACK
Duplicate ACK
Duplicate ACK
↓
손실 가능성 판단
↓
Timer 만료 전에 재전송
을 수행할 수 있다.
이를 Fast Retransmit이라고 한다.
Fast Retransmit
→ Duplicate ACK를 보고 빠르게 재전송
Selective Repeat
→ 손실된 데이터만 선택적으로 재전송
Go-Back-N
→ 손실 지점부터 이후 데이터까지 재전송
Slow Start
→ Congestion Control
다음과 같은 상황이 있다.
외부 사용자
|
v
Proxy Server
|
v
내부 WEB Server
외부 사용자는 실제 내부 WEB Server의 주소를 몰라도 된다.
어떤 Proxy일까?
정답은 Reverse Proxy
Reverse Proxy는 Server 측을 대신하여 외부 Client의 요청을 받는다.
외부 Client
|
v
Reverse Proxy
|
v
내부 Server
반대로 Forward Proxy는 Client 측을 대신한다.
내부 Client
|
v
Forward Proxy
|
v
외부 Internet
Forward Proxy
→ Client를 대신
Reverse Proxy
→ Server를 대신
Reverse Proxy가 뒤쪽 WAS에 요청을 보냈는데 WAS가 제한 시간 안에 응답하지 않았다.
어떤 HTTP 상태 코드일까?
① 404
② 500
③ 502
④ 504
정답은 ④ 504 Gateway Timeout
처음에는 502를 Gateway Server 자체에 문제가 있을 때 발생하는 코드라고 생각했다.
하지만 정확히는 다음과 같다.
502 Bad Gateway
→ 뒤쪽 Server에서 받은 응답이 유효하지 않음
504 Gateway Timeout
→ 뒤쪽 Server가 제한 시간 안에 응답하지 않음
따라서
Reverse Proxy
|
v
WAS
응답 없음
↓
Timeout
↓
504
로 이해할 수 있다.
핵심: 502는 응답이 이상함, 504는 응답이 늦어서 시간 초과.
DNS Resolver가 Domain의 IP 주소를 찾기 위해 조회하는 일반적인 순서는?
① Root → TLD → Authoritative
② TLD → Root → Authoritative
③ Authoritative → TLD → Root
④ Root → Authoritative → TLD
처음에는 ④번이라고 생각했다.
정답은 ① Root → TLD → Authoritative
순서는 다음과 같다.
Root Name Server
↓
TLD Name Server
↓
Authoritative Name Server
".com 담당 Server는 저쪽이야."
TLD Name Server의 위치를 안내한다.
"example.com 담당 Server는 저쪽이야."
Authoritative Name Server의 위치를 안내한다.
실제 Domain의 DNS Record를 제공한다.
example.com
→ IP Address
Root
↓
TLD
↓
Authoritative
DHCP에서 Offer 단계는 어떤 의미일까?
① Client가 DHCP Server를 찾는다.
② DHCP Server가 사용할 IP를 제안한다.
③ Client가 해당 IP를 사용하겠다고 요청한다.
④ DHCP Server가 최종 승인한다.
정답은 ②번
DHCP의 전체 과정은 DORA라고 기억할 수 있다.
Discover
→ Offer
→ Request
→ ACK
처음에는
Discover = Detect?
ACK = Access?
처럼 기억하고 있었다.
정확한 명칭은 다음과 같다.
D
Discover
O
Offer
R
Request
A
ACK
Client가 DHCP Server를 찾는다.
"DHCP Server 있나요?"
DHCP Server가 사용할 수 있는 IP를 제안한다.
"이 IP 사용하는 건 어때?"
Client가 제안받은 IP를 사용하겠다고 요청한다.
"그 IP를 사용하겠습니다."
DHCP Server가 최종 승인한다.
"확인. 사용해."
사용자 프로필 전체를 새로운 데이터로 교체하고 싶다.
어떤 HTTP Method를 사용하는 것이 적절할까?
① GET
② POST
③ PUT
④ PATCH
정답은 ③ PUT
이번에는 정확하게 구분했다.
PUT
→ 전체 수정 / 대체
PATCH
→ 일부 수정
예를 들어
{
"name": "pingu",
"age": 25,
"job": "engineer"
}
에서 age만 수정한다면 PATCH의 개념으로 이해할 수 있다.
전체 데이터를 새로운 내용으로 교체한다면 PUT을 사용할 수 있다.
다음 설명 중 올바른 것은?
① DF = 1이면 단편화 허용
② DF = 0이면 단편화 금지
③ MF = 1이면 뒤에 단편이 더 있음
④ MF = 0이면 무조건 첫 번째 단편
정답은 ③번
MF는
More Fragments
의 약자이다.
MF = 1
→ 뒤에 Fragment가 더 있음
MF = 0
→ 뒤에 Fragment가 없음
→ 마지막 Fragment
DF는 처음에 Default Fragment 정도로 기억하고 있었다.
정확한 명칭은
Don't Fragment
이다.
DF = 1
→ 단편화 금지
DF = 0
→ 단편화 허용
DF
→ Don't Fragment
→ 쪼개지 마
MF
→ More Fragments
→ 뒤에 더 있어
SPoF란 무엇일까?
① 장애가 발생해도 전체 서비스에 영향이 없는 장치
② 하나의 장애가 전체 서비스 장애로 이어질 수 있는 단일 지점
③ Active-Active 구조
④ Health Check 기능
정답은 ②번
SPoF는
Single Point of Failure
의 약자이다.
하나의 장비나 구성 요소에 장애가 발생했을 때 전체 서비스에 영향을 줄 수 있는 지점을 의미한다.
예를 들어
Client
|
v
Load Balancer
|
+---+---+
| |
WEB A WEB B
WEB Server가 두 대이더라도 Load Balancer가 한 대뿐이고 반드시 그 장비를 거쳐야 한다면 Load Balancer가 SPoF가 될 수 있다.
대표적인 방법은 이중화이다.
장비 1대
→ 장애 시 전체 영향
장비 이중화
→ 한쪽 장애 시 다른 장비가 서비스 지속
TCP 연결 설정에서 두 번째 단계에서 Server가 보내는 것은?
① SYN
② ACK
③ SYN + ACK
④ FIN + ACK
정답은 ③ SYN + ACK
전체 과정은 다음과 같다.
Client Server
SYN
---------------------->
SYN + ACK
<----------------------
ACK
---------------------->
연결 완료
Client가 연결 요청을 보낸다.
"연결하고 싶어."
Server는
ACK
→ Client의 SYN을 받았다는 확인
SYN
→ Server도 연결을 시작할 준비가 됐다는 의미
를 함께 전달한다.
Client가 Server의 응답을 확인한다.
다음 중 Active-Active 구조에 해당하는 것은?
① 한 Server는 서비스, 한 Server는 대기
② 두 Server 모두 평소 실제 서비스 처리
③ 자동 전환 기능이 없는 구조
④ Server가 한 대만 존재
처음에는 ③번이라고 생각했다.
하지만 정답은 ②번
Active-Active는 두 시스템 모두 평소에 실제 서비스를 처리한다.
Server A
Active
Server B
Active
반면 Active-Standby는
Server A
Active
→ 실제 서비스
Server B
Standby
→ 대기
구조이다.
Active-Active
→ 두 시스템 모두 서비스
Active-Standby
→ 하나는 서비스
→ 하나는 대기
둘 다 이중화 구성 방식으로 볼 수 있다.
다음과 같은 서버가 있다.
Server A
120 Connections
Server B
35 Connections
Server C
80 Connections
현재 연결 수가 가장 적은 Server로 새로운 요청을 전달하는 알고리즘은?
① Round Robin
② Least Connection
③ Active-Standby
④ Health Check
정답은 ② Least Connection
Least Connection은 현재 연결 수가 가장 적은 Server를 선택한다.
따라서 위 상황에서는
Server B
35 Connections
가 선택된다.
반면 Round Robin은
A
↓
B
↓
C
↓
A
↓
B
↓
C
처럼 순서대로 요청을 분산한다.
Round Robin
→ 순서 기준
Least Connection
→ 현재 연결 수 기준
HTTP 상태 코드 중 Client Error에 해당하는 범위는?
① 2xx
② 3xx
③ 4xx
④ 5xx
정답은 ③ 4xx
상태 코드의 큰 분류는 다음과 같다.
2xx
→ Success
3xx
→ Redirection
4xx
→ Client Error
5xx
→ Server Error
예를 들어
404 Not Found
→ 4xx
500 Internal Server Error
→ 5xx
이다.
다음 두 장치가 있다.
PC A
192.168.1.10/24
PC B
192.168.2.20/24
PC A가 PC B로 데이터를 보내려고 할 때 ARP를 통해 알아내야 하는 MAC 주소는?
두 장치는 /24이므로 서로 다른 네트워크에 있다.
PC A
192.168.1.0/24
PC B
192.168.2.0/24
따라서 PC A는 PC B의 MAC을 직접 알아내는 것이 아니라 Default Gateway의 MAC 주소를 알아내야 한다.
PC A
|
| ARP
v
Default Gateway MAC 확인
|
v
Gateway로 Frame 전달
|
v
Routing
|
v
PC B 방향으로 전달
이번 문제를 풀면서 /22라면 같은 네트워크가 될 수 있다는 것도 확인했다.
/22
= 255.255.252.0
세 번째 Octet이 4단위로 묶인다.
192.168.0.0
~
192.168.3.255
따라서
192.168.1.10/22
192.168.2.20/22
는 같은 네트워크에 포함될 수 있다.
이 경우에는 목적지 Host의 MAC 주소를 직접 ARP로 확인할 수 있다.
다음 IP 주소의 네트워크 주소, 브로드캐스트 주소, 사용 가능한 Host 범위를 구하자.
192.168.5.200/28
IPv4는 32bit이다.
32 - 28
= 4bit
Host Bit가 4bit이므로
2^4
= 16
주소가 16개 단위로 나뉜다.
0 ~ 15
16 ~ 31
32 ~ 47
...
192 ~ 207
208 ~ 223
...
200은
192 ~ 207
범위에 포함된다.
따라서
Network Address
→ 192.168.5.192
Broadcast Address
→ 192.168.5.207
Host Range
→ 192.168.5.193 ~ 192.168.5.206
사용 가능한 Host 수는
2^4 - 2
= 14개
이다.
처음 답을 적을 때 Broadcast Address를
192.168.207
이라고 작성했지만 정확한 주소는
192.168.5.207
이다.
DNS Resolver의 Cache에 Domain 정보가 이미 존재하고 TTL도 아직 만료되지 않았다.
이 경우 Resolver는 어떻게 동작할까?
① Root부터 다시 조회
② Cache 정보 사용
③ DHCP Server에 조회
④ ARP를 사용
정답은 ② Cache 정보 사용
이미 유효한 DNS 정보가 Cache에 있다면 굳이
Root
↓
TLD
↓
Authoritative
과정을 다시 수행할 필요가 없다.
Cache를 사용하면
등의 장점이 있다.
핵심: TTL이 유효한 Cache가 있다면 우선 Cache를 사용한다.
HTTPS 통신에서 Client가 Server 인증서의 유효성을 확인할 때 확인하는 항목으로 올바른 것은?
① 인증서의 유효기간과 Domain 일치 여부
② Server의 MAC 주소
③ DHCP 임대 기간
④ TCP 목적지 Port만 확인
정답은 ①번
Client는 Server가 제공한 Certificate를 확인하면서 다음과 같은 항목을 검증할 수 있다.
Certificate 유효기간
접속 Domain과 Certificate의 Domain 일치 여부
신뢰 가능한 CA인지
Certificate Chain
전자 서명
인증서는 단순히 암호화에 사용하는 파일이라기보다 접속한 Server의 신원을 검증하기 위한 수단으로 이해할 수 있다.
다음 중 올바른 설명은?
① iBGP는 서로 다른 AS 사이에서 사용
② eBGP는 같은 AS 내부에서 사용
③ eBGP는 서로 다른 AS 사이에서 사용
④ RIP는 AS 간 경로 교환에 사용
정답은 ③번
eBGP는
External BGP
로, 서로 다른 AS 사이에서 BGP 경로 정보를 교환한다.
AS 100
|
eBGP
|
AS 200
iBGP는
Internal BGP
로, 같은 AS 내부의 BGP Router끼리 BGP 정보를 교환한다.
처음에는 iBGP를
Interior Border Gateway Protocol
이라고 생각했지만 정확한 명칭은
Internal BGP
이다.
RIP에 대한 설명은 다음과 같이 기억하고 있었다.
RIP
→ Distance Vector
→ Hop Count 기준
→ AS 내부
이는 맞다.
마지막에는 AS 간 경로 교환에 OSPF를 사용하는 것으로 생각했지만 OSPF 역시 IGP이다.
RIP
→ IGP
OSPF
→ IGP
BGP
→ AS 간 경로 정보 교환
다음 설명 중 틀린 것은?
① RIP는 Hop Count를 기준으로 경로를 선택한다.
② OSPF는 AS 내부에서 사용할 수 있는 IGP이다.
③ eBGP는 서로 다른 AS 사이에서 경로 정보를 교환한다.
④ iBGP는 RIP, OSPF와 같은 IGP의 한 종류이다.
정답은 ④번
iBGP는 같은 AS 내부에서 사용되기 때문에 이름에 Internal이 포함되지만 IGP는 아니다.
IGP
├─ RIP
└─ OSPF
BGP는
BGP
├─ iBGP
└─ eBGP
처럼 동작 관계에 따라 나눌 수 있다.
같은 AS 내부에서
BGP Route 정보 교환
서로 다른 AS 사이에서
BGP Route 정보 교환
따라서 반드시 기억해야 할 것은
iBGP ≠ IGP
이다.
| 문제 | 개념 | 핵심 복습 |
|---|---|---|
| Q1 | Wireshark | tcp.dstport 문법 다시 확인 |
| Q5 | HTTP | 502는 응답 문제, 504는 Timeout |
| Q6 | DNS | Root → TLD → Authoritative |
| Q7 | DHCP | Discover / Offer / Request / ACK |
| Q9 | IPv4 | DF = Don't Fragment, MF = More Fragments |
| Q12 | 이중화 | Active-Active는 두 Server 모두 서비스 |
| Q16 | CIDR | Broadcast Address 전체 Octet 정확히 작성 |
| Q19 | BGP | iBGP = Internal BGP |
| Q19 | Routing | OSPF는 AS 간이 아니라 IGP |
| Q20 | BGP | iBGP는 IGP가 아님 |
ip.src
→ Source IP
ip.dst
→ Destination IP
tcp.srcport
→ TCP Source Port
tcp.dstport
→ TCP Destination Port
예시:
ip.src == 10.0.0.15 && tcp.dstport == 80
A
→ IPv4
AAAA
→ IPv6
MX
→ Mail Server
CNAME
→ Alias
Root
↓
TLD
↓
Authoritative
Cache에 유효한 정보가 있다면 DNS Resolver는 해당 Cache를 우선 사용할 수 있다.
Duplicate ACK 3번
↓
Packet 손실 추정
↓
Timer 만료 전 재전송
Fast Retransmit
→ Duplicate ACK 기반
Selective Repeat
→ 손실된 것만
Go-Back-N
→ 손실 지점부터 이후까지
Forward Proxy
→ Client를 대신
Reverse Proxy
→ Server를 대신
2xx
→ Success
3xx
→ Redirection
4xx
→ Client Error
5xx
→ Server Error
502
→ 뒤쪽 Server 응답 문제
504
→ 뒤쪽 Server 응답 Timeout
Discover
→ Offer
→ Request
→ ACK
DORA
DF
= Don't Fragment
DF = 1
→ 단편화 금지
DF = 0
→ 단편화 허용
MF
= More Fragments
MF = 1
→ 뒤에 Fragment 있음
MF = 0
→ 마지막 Fragment
SPoF
= Single Point of Failure
하나의 장애가 전체 서비스에 영향을 줄 수 있는 단일 장애 지점이다.
이중화를 통해 SPoF를 줄일 수 있다.
Server뿐 아니라
Load Balancer
Switch
NIC
Database
등도 전체 구조를 보고 이중화 여부를 검토해야 한다.
Active-Active
→ 두 Server 모두 서비스
Active-Standby
→ 한 Server 서비스
→ 한 Server 대기
Round Robin
→ 순서 기준
Least Connection
→ 연결 수 기준
같은 Network
→ 목적지 Host MAC 확인
다른 Network
→ Default Gateway MAC 확인
그리고
IP
→ 최종 목적지
MAC
→ 현재 구간의 다음 전달 대상
IGP
├─ RIP
└─ OSPF
BGP
├─ iBGP
└─ eBGP
iBGP
= Internal BGP
→ 같은 AS 내부
eBGP
= External BGP
→ 서로 다른 AS 사이
주의:
iBGP ≠ IGP
그리고
RIP
→ Distance Vector
→ Hop Count
OSPF
→ IGP
BGP
→ AS 간 Route 정보 교환
다음 복습에서는 오늘 헷갈렸던 내용을 다시 문제로 만나면서 확실하게 익혀보자.
Root → TLD → Authoritative 순서 다시 확인하기Discover → Offer → Request → ACK 정확한 용어 기억하기DAY 5 복습 완료! ✅
#네트워크 #혼자공부하는네트워크 #네트워크공부 #TCP #UDP #DNS #HTTP #Wireshark #DHCP #IPv4 #Proxy #TLS #BGP #로드밸런싱 #정보보안 #복습