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

정지범·2일 전

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

오늘도 네트워크 복습 20문제를 진행했다.

이번 복습에서는 특히

  • Hub와 Switch
  • Collision Domain / Broadcast Domain
  • VLAN
  • NIC
  • Cable
  • MAC Address Table
  • HTTP
  • DNS
  • ARP
  • Routing 과정에서의 IP/MAC 변화
  • ICMP
  • Redirect
  • CSMA/CD

등을 복습했다.


Q1. Hub와 Collision Domain

다음과 같은 환경이 있다.

PC A
PC B
PC C
  │
 Hub

PC A가 PC B에게 Ethernet Frame을 전송한다.

Hub는 PC B의 MAC Address를 알지 못한다.

이때 Hub는 Frame을 어떻게 처리할까?

또한 Hub에 연결된 장치들이 하나의 Collision Domain을 공유하는 이유는 무엇일까?

내가 작성한 답

drop한다?

collision Domain 충돌 도메인을 공유하는 이유라..
네트워크 혼잡 상황을 방지 하기 위해?

결과

❌

풀이

Hub는 MAC Address를 이해하지 못한다.

따라서 특정 Destination MAC Address를 보고 원하는 Port로만 Frame을 보내는 기능이 없다.

Hub가 한 Port에서 신호를 받으면 다른 Port로 그대로 전달한다.

즉,

PC A
  │
 Hub
 ├── PC B
 └── PC C

PC A가 PC B에게 Frame을 보내더라도 Hub는

PC B에게만 전달

하지 못하고 다른 Port에도 Frame을 전달한다.

이러한 동작을 Flooding이라고 볼 수 있다.

Hub는 또한 Half-Duplex 방식으로 동작하며 하나의 전송 매체를 여러 장치가 공유한다.

따라서 두 장치가 동시에 데이터를 보내면 충돌이 발생할 수 있다.

Hub
→ 하나의 Collision Domain

기억

Hub
→ MAC Address 인식 X
→ 들어온 신호를 다른 Port로 전달
→ Half-Duplex
→ Collision 발생 가능
→ 하나의 Collision Domain

헷갈렸던 부분

처음에는 Hub가 모르는 MAC Address의 Frame을 Drop한다고 생각했다.

하지만 Hub는 애초에 MAC Address를 기반으로 판단하지 못한다.


Q2. Switch의 MAC Address 학습

Switch는 MAC Address Table을 만들 때 다음 중 어떤 주소를 학습할까?

① Destination MAC Address
② Source MAC Address
③ Source IP Address
④ Destination IP Address

내가 작성한 답

2

결과

⭕ 정답

풀이

정답은

② Source MAC Address

이다.

Switch가 Frame을 수신하면

Source MAC Address
+
Frame이 들어온 Port

를 확인한다.

예를 들어

Source MAC : AA:AA:AA:AA:AA:AA
입력 Port : Port 1

이라면 Switch는 MAC Address Table에

AA:AA:AA:AA:AA:AA → Port 1

처럼 저장한다.

기억

Switch
→ Source MAC Address를 보고 학습

Q3. VLAN과 Broadcast

다음과 같이 VLAN이 구성되어 있다.

PC A → VLAN 10
PC B → VLAN 10

PC C → VLAN 20
PC D → VLAN 20

PC A가 Broadcast Frame을 전송한다.

PC C와 PC D도 해당 Broadcast를 받을까?

내가 작성한 답

다른 vlan이라서 frame이 전송 되지 않을 것같은데

결과

⭕ 정답

풀이

VLAN은 하나의 물리적인 LAN을 논리적으로 나누는 기술이다.

VLAN 10
→ 하나의 Broadcast Domain

VLAN 20
→ 또 다른 Broadcast Domain

따라서 VLAN 10에서 발생한 Broadcast는 VLAN 20으로 전달되지 않는다.

PC A Broadcast

VLAN 10
→ PC B 수신

VLAN 20
→ PC C, PC D 수신 X

서로 다른 VLAN끼리 통신하려면 일반적으로 Layer 3 Routing이 필요하다.

기억

VLAN
→ Broadcast Domain 분리

Q4. NIC

NIC의 역할은 무엇이며 NIC와 관련된 대표적인 주소는 무엇일까?

내가 작성한 답

자산을 식별하는 장치?
mac 주소?

결과

△

풀이

MAC Address는 맞았다.

하지만 NIC의 역할은 자산을 식별하는 것이 아니다.

NIC는

Network Interface Controller

의 약자이다.

컴퓨터와 Network 전송 매체를 연결해주는 장치이다.

쉽게 말하면

Computer
↕
NIC
↕
Network

구조라고 볼 수 있다.

Ethernet Adapter나 Wi-Fi Adapter 등이 NIC에 해당할 수 있다.

NIC에는 통신 과정에서 사용되는 MAC Address가 있다.

기억

NIC
→ Host와 Network를 연결하는 Interface

대표 주소
→ MAC Address

헷갈렸던 부분

NIC = 자산 식별 장치

라고 생각했지만,

정확히는

Host ↔ Network 연결 장치

이다.


Q5. Twisted Pair Cable과 Fiber Optic Cable

다음 특징에 해당하는 Cable은 무엇일까?

A

구리선을 사용한다.
RJ-45 Connector를 많이 사용한다.

B

빛을 이용한다.
빠르고 장거리 전송에 유리하다.

내가 작성한 답

A : UTP
B : Fiber Cable

결과

⭕ 정답

풀이

A는 정확히는 Twisted Pair Cable이다.

대표적으로

UTP
STP
FTP

등이 있다.

일반적인 LAN 환경에서는 UTP Cable을 매우 많이 사용한다.

Twisted Pair
→ 구리선
→ RJ-45

B는 Fiber Optic Cable이다.

Fiber Optic Cable
→ 빛 사용
→ 빠른 전송
→ 장거리 통신에 유리

Q6. MAC Address Aging

Switch의 MAC Address Table에 오래전에 학습했지만 더 이상 사용하지 않는 MAC Address가 있다.

Switch는 이 정보를 어떻게 처리할까?

내가 작성한 답

사용안하는 MAC Address는 저장된지 오래된 mac 주소부터 삭제한다?

결과

⭕ 정답

풀이

방향은 맞았다.

Switch는 일정 시간 동안 사용되지 않은 MAC Address Entry를 MAC Address Table에서 제거한다.

이를

Aging

이라고 한다.

단순히 무조건 가장 오래된 순서대로 하나씩 지우는 개념보다는

일정 시간 동안 갱신되지 않은 Entry
→ 만료
→ 삭제

라고 이해하는 것이 정확하다.

필요한 이유는 장치가 다른 Port로 이동했는데 기존 정보가 계속 남아 있으면 잘못된 Port 정보를 사용할 수 있기 때문이다.

기억

Learning
→ MAC 학습

Forwarding / Filtering
→ Frame 전달 여부 판단

Aging
→ 오래 사용되지 않은 Entry 제거

Q7. Collision Domain과 Broadcast Domain

Hub, Switch, Router는 각각 Collision Domain과 Broadcast Domain을 어떻게 나눌까?

내가 작성한 답

1 : hub
2 : switch, router

결과

△

풀이

두 Domain을 정확히 구분할 필요가 있다.

Collision Domain

Hub

Hub에 연결된 모든 장치
→ 하나의 Collision Domain

Switch

Switch는 Port마다 Collision Domain을 분리한다.

Port 1 → Collision Domain
Port 2 → Collision Domain
Port 3 → Collision Domain

현대 Ethernet의 Full-Duplex 환경에서는 실제 충돌 자체는 사실상 발생하지 않는다.


Broadcast Domain

Hub

Broadcast Domain을 분리하지 않는다.

Switch

기본적인 Switch도 Broadcast Domain을 분리하지 않는다.

Broadcast Frame은 같은 VLAN 내부의 Port로 전달된다.

VLAN

VLAN 10 → Broadcast Domain 1
VLAN 20 → Broadcast Domain 2

Router

Router는 Broadcast Domain을 분리한다.

기억

Collision Domain
Hub
→ 하나를 공유

Switch
→ Port별 분리


Broadcast Domain
Hub
→ 분리 X

Switch
→ 기본적으로 분리 X

VLAN
→ VLAN별 분리

Router
→ 분리

Q8. Broadcast / Multicast / Anycast

다음 설명에 해당하는 전송 방식을 작성하시오.

1

모든 Host에게 데이터를 전송한다.

2

특정 Group에 속한 Host에게 데이터를 전송한다.

3

같은 Group에 속한 여러 Host 중 가장 가까운 Host에게 데이터를 전송한다.

내가 작성한 답

1. Broadcast
2. Multicast
3. Anycast

결과

⭕ 정답

풀이

Unicast
→ One-to-One

Broadcast
→ One-to-All

Multicast
→ One-to-Group

Anycast
→ Group 중 가장 가까운 Host

Q9. HTTP Cache와 304 Not Modified

Browser가 이전에 받아둔 Resource를 가지고 있다.

Server에게 Resource 변경 여부를 확인했더니 다음 응답을 받았다.

304 Not Modified

Browser는 어떻게 동작할까?

내가 작성한 답

브라우저는 이미 저장된 리소스를 재사용? 한다

304 Not Modified는 리소스가 수정된게 없다는 뜻

결과

⭕ 정답

풀이

정확하다.

304 Not Modified
→ Resource가 변경되지 않음

따라서 Browser는 동일한 Resource를 다시 다운로드할 필요가 없다.

기존 Cache
→ 그대로 사용

흐름

Browser
→ Resource가 변경되었는지 확인

Server
→ 304 Not Modified

Browser
→ 기존 Cache 재사용

Q10. HTTP Request Start Line

다음 HTTP Request를 보고 Start Line에 들어 있는 정보를 설명하시오.

GET /hello?q=world HTTP/1.1

내가 작성한 답

GET 프로토콜
/? 경로
HTTP 버전

결과

⭕ 정답

단,

GET = Protocol

부분만 수정이 필요했다.

풀이

HTTP Request Start Line은 다음과 같이 구성된다.

Method + Request Target + HTTP Version

예를 들어

GET /hello?q=world HTTP/1.1

은

GET
→ HTTP Method

/hello?q=world
→ Request Target

HTTP/1.1
→ HTTP Version

이다.

기억

GET
→ Protocol X
→ HTTP Method O

Q11. HTTP Header

다음 HTTP Header의 의미를 설명하시오.

Host: example.com

Content-Type: application/json

내가 작성한 답

HOST = 요청할 도메인

Content-Type = 지원하는 형식

결과

△

풀이

Host는 맞았다.

Host: example.com
→ 요청 대상 Host / Domain 정보

Content-Type은

지원하는 형식

보다는

Message Body에 들어있는 데이터의 형식

을 의미한다고 이해하는 것이 좋다.

Content-Type: application/json
→ Body가 JSON 형식

기억

Host
→ 요청 대상 Host

Content-Type
→ 현재 Message Body의 데이터 형식

Q12. FQDN과 Subdomain

다음 Domain Name을 보자.

mail.google.com

Subdomain은 무엇일까?

그리고 왜 전체를 FQDN이라고 볼 수 있을까?

내가 작성한 답

mail?

결과

△

풀이

mail이라는 방향은 맞았다.

mail.google.com

에서

google.com

을 기준으로 보면

mail.google.com

은 Subdomain이다.

앞쪽의

mail

은 Subdomain을 구분하는 Label이다.

FQDN은

Fully-Qualified Domain Name

의 약자이다.

Domain 계층을 모두 표현하여 특정 Host를 식별할 수 있는 전체 Domain Name을 의미한다.

mail.google.com
→ 전체 Domain Name
→ FQDN

Q13. hosts 파일

hosts 파일에는 어떤 정보가 저장될까?

DNS와 비교했을 때 어떤 역할이라고 볼 수 있을까?

내가 작성한 답

도메인 정보?

결과

△

풀이

단순히 Domain 정보만 저장하는 것이 아니라

Domain Name ↔ IP Address

대응 관계를 저장한다.

예를 들어

192.0.2.10 example.com

과 같은 형태이다.

쉽게 말하면 hosts 파일은 내 PC에 저장된

개인 전화번호부

와 비슷하다.

Domain Name
→ 사람 이름

IP Address
→ 전화번호

처럼 대응시켜 생각할 수 있다.

기억

hosts
→ Domain Name과 IP Address의 대응 관계 저장

Q14. ARP Request와 ARP Reply

같은 Network에 있는 PC B의 IP Address는 알고 있지만 MAC Address를 모른다.

이때

ARP Request
ARP Reply

는 각각 Broadcast일까 Unicast일까?

내가 작성한 답

Broadcast
Unicast?

결과

⭕ 정답

풀이

ARP Request
→ Broadcast

ARP Reply
→ 일반적으로 Unicast

PC A가 PC B의 MAC Address를 모르면 같은 LAN에

이 IP 쓰는 장치 누구야?
MAC Address 알려줘!

라는 ARP Request를 Broadcast한다.

해당 IP를 사용하는 PC B가 자신의 MAC Address를 알려주는 ARP Reply를 PC A에게 보낸다.

기억

ARP Request
→ Broadcast

ARP Reply
→ Unicast

Q15. Router를 지날 때 IP와 MAC Address

PC A가 여러 Router를 거쳐 Server까지 Packet을 보낸다.

Router를 하나 지날 때마다 다음 중 어떤 값이 바뀔까?

1. Source IP
2. Destination IP
3. Source MAC
4. Destination MAC

내가 작성한 답

1번?

각 라우터 마다 ip 가 다르고 목적지 ip는 정해져있으니까?

결과

❌

풀이

일반적인 Routing 환경에서는

3. Source MAC
4. Destination MAC

이 바뀐다.

Router는 Frame을 수신한 뒤 기존 Layer 2 Header를 제거한다.

그리고 다음 Network 구간으로 전송하기 위해 새로운 Ethernet Frame을 만든다.

따라서 각 Hop마다 MAC Address가 달라질 수 있다.

예를 들어

PC A
↓
Router A
↓
Router B
↓
Server

라고 하면

PC A → Router A

Source MAC
→ PC A MAC

Destination MAC
→ Router A MAC

Router A → Router B

Source MAC
→ Router A의 송신 Interface MAC

Destination MAC
→ Router B MAC

이처럼 MAC Address는 바뀐다.

하지만 일반적인 Routing 상황에서

Source IP
→ PC A

Destination IP
→ 최종 Server

는 계속 유지된다.

단 NAT가 적용된다면 IP Address도 변경될 수 있다.

기억

IP Address
→ 일반적으로 End-to-End 유지

MAC Address
→ Hop마다 변경 가능

헷갈렸던 부분

Router마다 IP Address가 다르기 때문에 Source IP도 바뀐다고 생각했다.

하지만 Router는 Packet의 최종 목적지를 변경하는 것이 아니라 다음 Hop으로 전달하는 역할을 한다.


Q16. HTTP Request Target

다음 URL에 접속한다.

http://www.example.com/hello?q=world

HTTP Request가 다음과 같다면

GET ? HTTP/1.1

?에 들어갈 Request Target은 무엇일까?

내가 작성한 답

/hello?q=world

결과

⭕ 정답

풀이

정확하다.

URL
http://www.example.com/hello?q=world

에서 Request Target은

/hello?q=world

이다.

따라서 Start Line은

GET /hello?q=world HTTP/1.1

이 된다.


Q17. ICMP Echo Request / Echo Reply

Ping에서 사용하는 ICMP Message의 Type 값은 무엇일까?

Echo Request
Echo Reply

각각 작성하시오.

내가 작성한 답

?

결과

❌

풀이

정답은

Echo Request
→ Type 8
→ Code 0

Echo Reply
→ Type 0
→ Code 0

이다.

Ping을 보내는 쪽에서

Echo Request

를 보내고,

상대 장치가 응답하면

Echo Reply

를 반환한다.

기억

Ping

Request
→ Type 8

Reply
→ Type 0

Q18. DNS Cache

DNS Resolver가 example.com의 IP Address를 이미 Cache에 가지고 있다.

Cache의 TTL도 아직 유효하다.

이 경우 다시

Root
→ TLD
→ Authoritative Name Server

순서로 조회할까?

내가 작성한 답

해당 단계 건너뛰고 연결

결과

⭕ 정답

풀이

맞다.

유효한 DNS Cache가 있다면 Resolver는 Cache에 저장된 IP Address를 사용한다.

따라서 다시

Root
↓
TLD
↓
Authoritative

과정을 수행할 필요가 없다.

DNS Cache 존재
+
TTL 유효

↓

Cache의 IP 사용

↓

해당 Server로 연결

DNS Cache를 사용하면 불필요한 Query를 줄일 수 있고 DNS 응답 속도도 빨라진다.


Q19. HTTP Redirect

다음 두 HTTP Status Code의 차이는 무엇일까?

301 Moved Permanently

302 Found

내가 작성한 답

음 모르겠네

302는 요청을 찾을수 없다인거같은데

결과

❌

풀이

둘 다

3xx
→ Redirection

계열이다.

301 Moved Permanently

영구적 Redirect

자원이 새로운 위치로 완전히 이동한 경우이다.

기존 URL
→ 새로운 URL로 영구 이동

302 Found

일시적 Redirect

자원의 위치가 임시로 변경된 경우에 사용한다.

헷갈렸던 부분

302
→ Resource를 찾을 수 없음

이라고 생각했다.

하지만 Resource를 찾을 수 없는 것은

404 Not Found

이다.

기억

301
→ Permanent Redirect

302
→ Temporary Redirect

404
→ Not Found

Q20. CSMA/CD

Hub 환경처럼 충돌이 발생할 수 있는 Ethernet 환경에서 사용하는 CSMA/CD란 무엇일까?

내가 작성한 답

모르겠ㄲ다 ㅋㅋ

결과

❌

풀이

CSMA/CD는

Carrier Sense Multiple Access with Collision Detection

의 약자이다.

하나씩 보면

Carrier Sense
→ 다른 장치가 통신 중인지 확인
Multiple Access
→ 여러 장치가 하나의 전송 매체를 공유
Collision Detection
→ 충돌이 발생했는지 감지

Hub 환경은 여러 장치가 하나의 Collision Domain을 공유하고 Half-Duplex 방식으로 통신하기 때문에 충돌이 발생할 수 있다.

따라서 CSMA/CD와 같은 방식이 사용된다.

추가로 일반적인 동작을 이해하면

전송 매체 확인
↓
비어 있으면 전송
↓
충돌 발생 여부 확인
↓
충돌 발생
↓
전송 중단
↓
일정 시간 대기
↓
다시 전송 시도

정도로 이해할 수 있다.

기억

CSMA/CD
→ Collision이 발생할 수 있는 Ethernet 환경
→ 대표적으로 Hub 환경

오늘 복습 결과

총 문제

20문제

정답 ⭕

Q2
Q3
Q5
Q6
Q8
Q9
Q10
Q14
Q16
Q18

총 10문제

부분 이해 △

Q4
Q7
Q11
Q12
Q13

총 5문제

오답 ❌

Q1
Q15
Q17
Q19
Q20

총 5문제


오늘 반드시 다시 볼 내용

1. Hub

Hub
→ MAC Address 인식 X
→ Frame을 다른 Port로 전달
→ Half-Duplex
→ Collision 발생 가능
→ 하나의 Collision Domain

처음에는 Hub가 모르는 Destination MAC Address를 Drop한다고 생각했는데 잘못된 개념이었다.


2. NIC

NIC
→ Network Interface Controller
→ Host와 Network를 연결
→ MAC Address 사용

NIC를 자산 식별 장치로 생각하지 않도록 주의한다.


3. Collision Domain / Broadcast Domain

Hub
→ Collision Domain 공유

Switch
→ Port별 Collision Domain 분리

Switch
→ 기본적으로 Broadcast Domain 분리 X

VLAN
→ Broadcast Domain 분리

Router
→ Broadcast Domain 분리

4. Content-Type

Content-Type
→ 지원 가능한 형식 X
→ 현재 Message Body의 데이터 형식

예)

Content-Type: application/json
→ Body가 JSON

5. hosts

hosts
→ 단순 Domain 정보 X

Domain Name
↕
IP Address

대응 관계를 저장

6. Router를 통과할 때 주소 변화

오늘 가장 중요한 부분 중 하나이다.

IP
→ 일반적으로 End-to-End 유지

MAC
→ Hop마다 변경

예)

PC
→ Router 1
→ Router 2
→ Server

각 구간마다 Source / Destination MAC Address는 달라질 수 있다.

하지만 일반적인 Routing에서는 Source / Destination IP Address는 유지된다.

단 NAT가 존재하면 IP Address는 변경될 수 있다.


7. ICMP Ping

Echo Request
→ Type 8 / Code 0

Echo Reply
→ Type 0 / Code 0

암기할 것.

Request = 8
Reply = 0

8. HTTP Redirect

301
→ Moved Permanently
→ 영구 Redirect

302
→ Found
→ 일시적 Redirect

404
→ Not Found
→ 요청한 Resource를 찾을 수 없음

오늘

302 = 찾을 수 없음

으로 잘못 기억하고 있었다.


9. CSMA/CD

CSMA/CD
→ Carrier Sense Multiple Access with Collision Detection

Hub와 같이 Collision이 발생할 수 있는 Ethernet 환경과 연결해서 기억한다.

Carrier Sense
→ 통신 중인지 확인

Multiple Access
→ 여러 장치가 공유

Collision Detection
→ 충돌 감지

오늘의 핵심 요약

Hub
→ MAC 모름
→ Collision Domain 하나

Switch
→ Source MAC 학습
→ Port별 Collision Domain

VLAN
→ Broadcast Domain 분리

NIC
→ Host와 Network 연결

304
→ Resource 변경 X
→ 기존 Cache 사용

HTTP Start Line
→ Method + Request Target + HTTP Version

Content-Type
→ Body의 데이터 형식

hosts
→ Domain Name ↔ IP Address

ARP Request
→ Broadcast

ARP Reply
→ Unicast

Routing
→ IP는 일반적으로 유지
→ MAC은 Hop마다 변경

ICMP Echo Request
→ Type 8

ICMP Echo Reply
→ Type 0

301
→ 영구 Redirect

302
→ 일시 Redirect

404
→ Not Found

CSMA/CD
→ Collision Detection

오늘의 복습 평가

오늘은 Layer 2 영역인

Hub
Switch
VLAN
Collision Domain
Broadcast Domain

에서는 기본 개념은 어느 정도 잡혀 있었지만 세부 동작에서 헷갈리는 부분이 있었다.

특히

Hub가 Frame을 어떻게 처리하는지
Collision Domain과 Broadcast Domain의 차이

는 다시 확인할 필요가 있다.

또한 Routing 부분에서는

Router를 지나면 IP가 변경된다

고 생각했는데,

일반적인 Routing에서는

IP Address
→ 유지

MAC Address
→ Hop마다 변경

된다는 점을 다시 정리했다.

HTTP에서는

304
Request Target
Host

등은 잘 이해하고 있었지만

Content-Type
301 / 302

에서 일부 혼동이 있었다.

추가로

ICMP Type
CSMA/CD

는 기억이 거의 나지 않았기 때문에 다음 복습에서 다시 확인해야겠다.


다음 복습 목표

다음 복습에서는 오늘 틀렸거나 애매했던 내용을 단순히 같은 문제로 반복하기보다는 다른 상황에 적용해보면서 다시 확인한다.

특히

Hub / Switch 실제 Frame 전달 과정

Collision Domain
vs
Broadcast Domain

Router 통과 시
IP / MAC 변화

ICMP Type

HTTP Redirect

CSMA/CD

를 다시 복습한다.

profile
성실하자:)

0개의 댓글