일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스
- JUnit 5
- 백준
- dfs
- mst
- 완전탐색
- CS
- 그리디
- Network
- 이분탐색
- 수학
- java
- Effective Java
- 문자열
- 유니온 파인드
- 백트래킹
- Kotlin
- 구현
- swea
- 세그먼트 트리
- 동적계획법
- BFS
- 후니의 쉽게 쓴 시스코 네트워킹
- 시뮬레이션
- 투 포인터
- 스택
- 알고리즘
- 위상정렬
- 플로이드-와샬
- 에라토스테네스의 체
반갑습니다!
[Network] 후니의 쉽게 쓴 시스코 네트워킹 Part 4 본문
랜카드
역할
랜카드는 유저의 데이터를 케이블에 실어서 허브나 스위치, 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에게 전달해주는 역할을 한다.
-
Plus and Play (P&P)
PC가 알아서 랜카드 드라이버를 설치해서 네트워크에 연결하는 기
랜카드의 선택
PC의 버스(Bus) 방식에 따라 랜카드를 선택해야한다. 크게 3가지로 나눌 수 있는데, PCI 방식, ISA 방식, EISA 방식이 있다.
버스 (Bus) : 컴퓨터에서 데이터가 지나다니는 길
랜카드에 접속하는 케이블의 종류에 따라서 TP 포트를 가진 랜카드, BNC나 AUI 포트를 가진 랜카드, 광케이블과 접속하는 랜카드 등으로 종류를 나눌 수 있다.
허브
한마디로 멀티포트 리피터(Multiport Repeater)라고 할 수 있다. 즉, 포트가 여러개 달린 장비인데, 한 포트로 들어온 데이터를 나머지 모든 포트로 뿌려주는 역할을 한다.
리피터(Repeater) : 한쪽에서 들어온 데이터를 다른 쪽으로 전달해주는 장비
같은 허브에 연결된 PC 끼리는 서로 통신이 가능하다. (허브로만 구성된 네트워크의 경우 외부와의 통신은 불가능하다)
특징
허브는 CSMA/CD의 적용을 받기 때문에 같은 허브에 연결되어있는 모든 PC들은 모두 같은 콜리전 도메인(Collision Domain)에 있다고 할 수 있다. 즉 같은 콜리전 도메인에 있으므로 허브에 붙어있는 한 PC가 통신을 하게 되면 다른 모든 PC는 통신을 할 수 없고, 하나의 PC에서 콜리전이 발생하면 모든 PC가 영향을 받는다. 이러한 허브를 셰어드(Shared) 허브라고 한다.
종류
- 인텔리전트(Intelligent) 허브
- 인텔리전트 허브는 NMS(Network Management System)에서 모든 데이터를 분석/제어할 수 있다.
- 인텔리전트 허브는 문제가 생긴 PC가 연결된 포트를 찾아내서 자동으로 Isolation 시킨다. 이러한 기능을 Auto Partition 이라고 한다. (요즘에는 더미 허브에도 있는 경우가 많다)
- 더미(Dummy) 허브
- 세미 인텔리전트(Semi-Intelligent) 허브
- 기본적으로 더미 허브이지만, 인텔리전트 허브와 연결하면 인텔리전트 허브가 된다.
스위치(Switch)
연결할수록 콜리전 도메인이 커진다는 허브의 한계를 극복해줄 수 있는 네트워크 장비이다.
(원래는 브리지가 콜리전 도메인을 나눠주는 역할을 했는데, 요즘에는 브리지보다 스위치의 성능이 더 좋기때문에 굳이 브리지를 사용할 이유가 없다.)
스위치는 예를 들어 1번 포트에 연결된 PC가 2번 포트에 연결된 PC와 데이터를 주고받는 동안에도 3번 포트에 연결된 PC 와 4번 포트에 연결된 PC가 서로 데이터를 주고받을 수 있게 해주는 장비이다. 이를 '포트별로 콜리전 도메인이 나뉘어 있다'라고 한다.
상황에 따라서 허브와 스위치를 적절하게 사용하는 것이 중요하다. ex) 서버의 경우 사용자의 접속이 많기 때문에 스위치를 연결하는 것이 좋다. 그리고 허브를 스위치에 연결해서 네트워크를 확장한다.
브리지 (Bridge)
브리지가 가지고 있는 모든 특성은 스위치의 특성이기 때문에 브리지를 알아야 스위치를 이해할 수 있다.
브리지는 허브로 만들어진 콜리전 도메인 사이를 반으로 나누고 통신이 브리지를 통과해야하는 경우에만 데이터를 통과시키는 방식으로 동작한다.
브리지와 스위치
특징
- Learning: 배운다
- Flooding: 모르면 들엉온 포트를 제외한 모든 포트로 뿌린다
- Forwarding: 해당 포트로 건내준다
- Filtering: 다른 포트로 못 건너가게 한다
- Aging: 나이를 먹는다
Learning
브리지나 스위치는 자신에 포트에 연결된 'A'라는 PC가 통신을 하기 위해 프레임을 내보내면 그 때 이 PC의 MAC 주소를 읽어서 자신의 MAC Address Table(브리지 테이블)에 저장한다. 그리고 나중에 어떤 PC가 'A'에게 통신할 경우 자신의 브리지 테이블을 참고해 브리지를 통과시킬지 결정한다.
통신이 발생할 때마다 브리지 테이블을 갱신한다
Flooding
브리지에 들어온 프레임이 찾아가는 주소가 브리지 테이블에 없다면 브리지는 통과시켜도 될지 차단시켜야할지 구분할 수 없다. 이 때 사용되는 것이 Flooding인데, 들어온 포트를 제외한 모든 포트로 프레임을 뿌려주는 방식이다. Flooding은 브로드캐스트나 멀티캐스트의 경우에도 발생한다.
Forwarding
브리지가 목적지의 MAC 주소를 자신의 브리지 테이블에 가지고 있고, 목적지가 출발지의 MAC 주소와 다른 세그먼트에 존재하는 경우에 발생한다. 즉, 목적지가 어디 있는지 알고있고 목적지가 브리지를 통과해야하는 경우에 Forwarding이 발생한다. Forwarding은 Flooding 과 다르게 해당 포트쪽으로만 프레임을 뿌려준다.
Filtering
Filtering은 브리지를 못 넘어가도록 막는 것을 의미한다. 필터링은 브리지가 목적지의 MAC 주소를 알고, 출발지와 목적지가 같은 세그먼트에 있는 경우이다. 브리지의 필터링 기능 때문에 허브와 다르게 콜리전 도메인을 나눌 수 있는 것이다.
Aging
메모리는 한정적이기 때문에 어느 정도 시간이 지나면 브리지 테이블에서 정보를 지우게 된다. 그 시간의 기준은 Default로 5분인데, Aging은 이와 같은 타이머를 말한다. 즉 어떤 MAC 주소를 브리지 테이블에 저장하고 나면 그 때부터 Aging이 가동되어서 300초가 지나도록 그 주소를 가진 프레임이 들어오지 않으면 브리지 테이블에서 삭제시킨다. 이 때 Aging 타이머가 다 끝나기 전에 같은 출발지를 가진 프레임이 브리지로 들어오게 되면 브리지는 타이머를 리셋하고 처음부터 다시 카운트를 센다. 이것을 Aging 타이머를 Refresh한다고 한다.
브리지와 스위치
차이점
- 스위치는 처리 방식이 하드웨어로 이뤄지기 때문에 소프트웨어적으로 프레임을 처리하는 브리지에 비해서 훨씬 빠르다. (스위치는 처리 절차를 미리 칩에 구워서 하드웨어 방식으로 만드는 ASIC(Application-Specific Integrated Circuit) 방식이므로 훨씬 빠르다)
- 브리지는 포트들이 같은 속도를 지원하지만 스위치는 서로 다른 속도를 연결해줄 수 있다.
- 스위치가 브리지에 비해 제공하는 포트 수가 훨씬 많다. (브리지는 보통 2~3개, 스위치는 몇 십~몇 백개)
- 스위치는 Cut-through, 또는 Store-and-forward 방식을 사용하지만 브리지는 오직 Store-and-forward 방식만을 사용한다.
- Store-and-forward: 이 방식은 스위치나 브리지가 일단 들어오는 프레임을 받아들인 후 처리를 시작하는 방식이다. 이 때 프레임에서 에러가 발견되면 재전송을 요구하므로 에러 복구 기능이 뛰어나다. 그러므로 이 방식은 회선에 에러가 자주 발생하거나 목적지의 전송 매체가 다른 경우에 자주 이용된다.
- Cut-through: 이 방식은 스위치가 들어오는 프레임의 목적지 주소만 본 후 바로 전송 처리를 시작하는 방식이다. 목적지 주소만 본 후 바로 목적지로 전송하기 때문에 처음 48비트만 확인한다. 따라서 Store-and-forward 방식보다 훨씬 빨리 처리한다는 장점이 있지만, 에러 복구 능력에는 약점이 있다.
- Fragment-free: Store-and-forward 방식과 Cut-through 방식의 장점을 결합한 방식으로 Cut-through 방식처럼 48비트만 보는 것이 아니라 512비트를 보기 때문에 에러 감지 능력이 Cut-through 방식보다는 뛰어나다.
Looping
프레임이 네트워크 상에서 무한정으로 뱅뱅 돌기 때문에 이더넷 특성상 데이터 전송이 불가능해지는 상태를 의미하는데, 이는 브리지나 스위치의 디자인에서 가장 신경써야하는 문제이다.
이를 예방하기 위한 알고리즘으로 '스패닝 트리 알고리즘'이 있다.
스패팅 트리 알고리즘(Spanning Tree Algorithm)
스패닝 트리가 세팅되어 있으면 루핑이 발생할 수 있는 상황을 막아주는 역할을 한다. 스위치나 브리지에서 발생할 수 있는 루핑을 미리 막기 위해 두 개 이상의 경로가 발생하면 하나를 제외하고 나머지 경로를 자동으로 막아두었다가 기존 경로에 문제가 생기면 막아둔 경로를 풀어서 데이터를 전송하는 알고리즘이다. 모든 스위치는 스패닝 트리 알고리즘을 지원한다.
Fault Tolerant
네트워크상에 어떤 문제가 발생했을 때를 대비해서 미리 장애 대비를 해두는 것이다. 일반적으로 폴트 톨러런트는 장애 대비책으로 이중 구조를 의미하고, 전체 네트워크가 하나의 지점에서 발생한 장애로 인해 영향을 받는 것을 방지하기 위한 대책이다.
Load Balancing
말 그대로 로드를 분산하는 것인데, 로드를 분산시켜 성능을 끌어올리는 것을 말한다. 예를 들어 하나의 인터넷 회선을 이요한 인터넷 접속 대신 두 개의 인터넷 회선을 사용하는 것이다. 이렇게 되면 데이터가 두 라인 중 하나를 선택해서 이용하기 때문에 로드가 분산되는 효과를 얻을 수 있다. 즉, 속도가 2배가 된다. 그러다가 회선 하나가 끊어지면 다른 회선으로 이전할 수 있는데, 이럴 경우 로드 밸런싱과 폴트 톨러런트를 겸하게 된다.
대부분의 로드 밸런싱은 폴트 톨러런트가 가능하다. 하지만 폴트 톨러런트는 로드 밸런싱이 안되는 경우도 있다.
라우팅
브로드캐스트 도메인을 나누는 것은 매우 중요한데, 이는 스위치만으로는 불가능하다. 이런 브로드캐스트 도메인을 나누기 위해서는 라우터가 필요하다. (레이어 3 스위치는 라우터의 기능도 하기 때문에 가능하다)
또한 라우터는 스위치가 보장 못하는 패킷 필터링 기능(보안 기능)을 제공한다. 따라서 네트워크 주소에 따라 전송을 막았다가 풀었다 하는 필터 기능을 제공함으로써 불필요한 트래픽이 전송되는 것을 막는다. 그리고 '로드 분배' 기능을 제공함으로써 한쪽 경로에 문제가 생겨도 다른 경로를 사용할 수 있도록 해준다. 이외에도 프로토콜이나 데이터의 크기, 중요도 등 상황에 따라 트래픽의 전송 순서를 조정해주는 QoS(Quality of Service) 기능도 제공한다.
'CS' 카테고리의 다른 글
[알고리즘] 위상 정렬 (0) | 2020.10.06 |
---|---|
[Network] 후니의 쉽게 쓴 시스코 네트워킹 Part 5 (0) | 2020.10.04 |
[Network] 후니의 쉽게 쓴 시스코 네트워킹 Part 3 (0) | 2020.10.03 |
[Network] 후니의 쉽게 쓴 시스코 네트워킹 Part 2 (0) | 2020.10.03 |
[Network] 후니의 쉽게 쓴 시스코 네트워킹 Part 1 (0) | 2020.10.03 |