운영체제(OS) & Network

계층별(L1~L3) 장비 비교 & 분석

jih0ssang 2023. 9. 18. 16:57

학습목표

1. 허브와 스위치, 라우터를 공통점과 차이점을 비교할 수 있다.

2. switch의 looping이 왜 생기는지 이해하고 방지하는 방식을 말할 수 있다.


계층별 장비들에 대해 알아보고 서로 비교분석하며 차이점과

공통점에 대해 알아봅시다.

 

다음은 허브와 스위치의 공통점과 차이점을 정리한 표입니다.

Flooding=들어온 포트 빼고 모든 포트에게 메시지 전송(broadcast방식을 사용하는 것을 플루딩이라고 합니다.)

허브는 L1장비여서 mac address(L2) ip address(L3)를 읽지 못하고,

스위치는 L2장비이기 때문에 ip address(L3)를 읽지 못하므로 ip주소를 모르는 상태가 됩니다.

그러면 이전에 예시를 들었던, 맹구가 떡잎유치원 안에 있는 모든 사람에게 방송한 것처럼

나를 제외한 모든 노드에게 메시지를 전송하는 Flooding을 하는 것입니다.

 

네트워크 장비별 분석을 더 해봅시다.

repeater

- L1, 데이터와 전기신호 변환, 신호를 멀리 보낼 수 있음

 

Hub

- L1, 데이터와 전기신호 변환, '리피터+포트 많음=허브' , 더미허브를 주 사용
- 
2개 이상 시스템이 동시에 보내면 충돌이 남. → 고로 CSMA/CD 사용

- Collision Domain 내에 있음.

 

Bridge

- L2, 데이터와 전기신호 변환, 이더넷 프로토콜 인식 가능
- Collision Domain 을 나누어줌, Broadcast Domain 내에 있음.

 

Switch

- L2, 데이터와 전기신호 변환, 이더넷 프로토콜 인식 가능, '브릿지+인터페이스 여러개=스위치' ,
- Collision Domain 을 나누어줌, Broadcast Domain 내에 있음.
- src/dst MAC주소로 스위칭함,  
MAC Address Table(learning, flooding, forwarding, filtering, aging)

 

switch가 MAC Address Table을 생성하는 과정을 좀 더 구체적으로 알아봅시다.

1) learning

2) Flooding

3) Forwarding

4) Filtering

5) Aging

 

1. learning

어느 인터페이스에서 보냈는 지 보낸이의 mac주소, 받는이의 mac주소, 포트번호

익힙니다. 그리고 자신의 mac address table(스스로 생성)에 저장합니다.

 

2. Flooding

만약 받는이의 mac주소를 모른다면, Flooding하여 알아냅니다.

 

3. Forwarding

받는이의 mac주소를 알아냈다면, 해당 포트로 보냅니다.

 

Forwarding routing의 차이

- Forwarding: 라우터의 입력포트에서 출력포트로 패킷을 이동시키는 것

- Routing: 출발지에서 목적지까지의 경로를 결정하는 것

 

4. Filtering

다른 포트로 가지 못하게 막아둡니다.

 

5. Aging

mac address table에 있는 mac address를 언제까지 갖고 있을까요?

특정시간이 지나도록 패킷이 오지 않으면 mac address table에서 삭제해버립니다.

 

스위치의 데이터 전달 방식은 스토어 앤 포워드(Store-and-forwarding) 방식

컷스루(Cust-throught) 방식, 프래그먼트-프리(Fragment-free) 방식이 있습니다.

 

스토어 앤 포워드 방식은 스위치가 들어오는 프레임을 이것저것 보고, 에러 체크도 하며

꼼꼼하게 파악한 후, 전송하는 방식입니다.

 

컷스루 방식은 스위치가 들어오는 프레임의 목적지 주소만 보고 바로 전송하는 방식입니다.

에러 체크도 하지 않습니다. 그래서 아주 빠릅니다.

 

프래그먼트-프리는 스토어 앤 포워드 + 컷스루 방식을 혼합한 방식으로,

꼼꼼하게 파악하되, 속도도 빠릅니다.

 

 

switch 여러 개를 연결하면 어떻게 될까요?

Router ------ Switch ===== Switch ------Server

 

switch-switch 연결(다중연결)

미리 케이블을 이중화하여 연결  가용성 제고

하지만 broadcast storm문제가 발생!

broadcast storm=broadcast 통신 방식을 사용했다가 looping이 계속 돼 네트워크에 부하가 많이 걸려서 멈추는 현상

 

looping(루핑)

네트워크에서 떠도는 유령같이, 끝나지 않고 무한 반복하는 것을 의미합니다.

PC A PC B와 통신하려고 합니다.

B A와 같은 네트워크에 있다는 것을 알고, B mac주소를 알아내기 위해 Flooding합니다.

switch Flooding 메시지를 받으면 들어온 포트를 제외한 모두에게 메시지를 뿌려주게 되어있습니다.

왼쪽 switch와 오른쪽 switch 둘다 Flooding 메시지를 받았기 때문에

왼쪽 switch는 오른쪽 switch에게, 오른쪽 switch는 왼쪽 switch에게 뿌려주는 것이

무한 반복이 되기 때문에 broadcast storm이 발생하여 looping이 되는 것입니다.

 

이를 방지하기 위해서 STP(스패닝트리 프로토콜)을 동작합니다.

스패닝트리 프로토콜이란,

대장 switch를 정하고, 모두 트리구조 형태로 구성하는 것입니다.

주 경로를 정하고 나머지는 임시로 막아둡니다.

주 경로에 이상이 생겼을 경우, 막아놨던 노드를 풀어놓습니다.

한계점은 switch-switch 간에 여러 케이블을 꽂아 놓아도 하나만 사용한다는 것입니다.

 

이 한계점을 극복하기 위해 시스코의 이더채널이 등장했습니다.

시스코의 이더채널이란,

물리적인 여러 인터페이스를 가상으로 하나로 묶어서 하나인 것처럼 동작하는 것입니다.

, 물리적으로 여러 케이블을 꽂아두고, 가상으로 하나의 케이블인 것처럼 묶어서 동작시키는 것입니다.

 

스위치

- 허브의 문제인 ‘collision domain’을 나눠주는 역할 수행

- broadcast domain(방송 영역) 안에 있음

 

떡잎 유치원은 하나의 네트워크이며,

떡잎 유치원(방송할 수 있는 영역) 안에서만 방송이 이루어지고,

떡잎 유치원 바깥을 나가면 방송을 할 수 없습니다.

 

라우터

- broadcast가 방송영역 바깥으로 나가는 것을 차단하는 역할

- broadcast domain(방송 영역)을 나누어줌

- LAN 네트워크(이더넷) LAN 네트워크를 나누어줌

- 라우터끼리 네트워크 목록을 동기화합니다.  (dynamic routing protocol)

- L3 장비이므로 hub switch와는 다르게, mac, IP protocol 모두 인식할 수 있음

- 들어온 패킷의 IP header 안에 있는 IP address

이정표(IP routing table에서 찾아서 다음 라우터에 전달해줌

- IP routing table은 엔지니어가 만들어주거나 프로세스를 실행하여 유지하도록 함

- 그래도 IP address를 모를 경우, 해당 패킷을 버림(drop).



라우터에서는 looping 문제가 발생하면 어떻게 할까요?

packet의 L2 header에 TTL을 같이 넣어 looping을 방지합니다.

TTL은 라우터를 거치는 횟수를 카운트하여 0이 되면 라우터가 버립니다. 

그리고 라우터는 출발지에게 ICMP 에러메시지를 전송합니다.

TTL=Time to Live