혼자 공부하는 네트워크 학습에 대한 정리 내용
통신 매체를 통해 송수신되는 메시지는 다른 호스트에게 전달되는 과정에서 네트워크 장비를 거칠 수 있습니다.
대표적인 네트워크 장비로 물리 계층에는 허브가 있고, 데이터 링크 계층에는 스위치가 있습니다.
주소 개념이 없는 물리 계층
물리 계층에는 주소 개념이 없다. 송수신지를 특정할 수 있는 주소는 데이터 링크 계층부터 존재하는 개념이다.
허브
여러 대의 호스트를 연결하는 장치이다. 리피터 허브라 부르기도 하고, 이더넷 네트워크의 허브는 이더넷 허브라고도 부른다.
저 네 개의 연결지점을 포트라고 하는데, 이 포트에 호스트와 연결된 통신 메체를 연결할 수 있다.
특징
오늘날 잘 사용하지는 않는다.
1. 전달받은 신호를 다른 모든 포트로 그대로 다시 내보낸다.
허브가 물리계층이고, 이 물리계층에는 위에 언급했던 것처럼 주소 개념이 없기 때문에 허브는 수신지를 특정할 수 없다. 따라서 신호를 전달받으면 송신지를 제외한 모든 포트에 그저 내보내기만 한다.
그 뒤 신호를 받은 모든 호스트는 데이터 링크 계층 패킷의 MAC 주소를 확인하고 자신과 관련 없는 주소는 폐기한다.
2. 반이중 모드로 통신한다.
반이중 모드는 양방향이 아니라 단방향으로 송수신을 번갈아 가면서 하는 통신 방식이다.
즉, 동시에 송수신이 불가능하다.
반면, 전이중 모드는 송수신을 동시에 양방향으로 할 수 있는 통신 방식이다.
콜리전 도메인
한 호스트가 허브에 송신하는 동안 다른 호스트는 송신하고 싶어도 기다려야 한다. 하지만 동시에 허브에 신호를 송신하면 충돌이 발생한다.
충돌이 발생할 때, 패킷이 깨질 수가 있다.
이때, 충돌이 발생할 수 있는 영역을 콜리전 도메인이라고 한다. 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속한다.
이 콜리전 도메인 문제를 해결하기 위해서는 CSMA/CD 프로토콜을 사용하거나, 스위치 장비를 사용해야 한다.
CSMA/CD
이 프로토콜은 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜이다.
1. CS (Carrier Sense) → 캐리어 감지
반이중 이더넷 네트워크에서 메시지를 보내기 전에 현재 네트워크 상에서 전송 중인 것이 있는지를 확인한다.
2. MA (Multiple Access) → 다중 접근
캐리어 감지를 함에도 불구하고 두 개 이상의 호스트가 네트워크를 사용하려 할 때가 있다. 이때를 다중 접근 이라고 하며, 충돌이 발생하게 된다.
3.CD (Collision Detection) → 충돌 검출
충돌을 감지하면 전송이 중단되고, 충돌을 검출한 호스트는 충돌이 발생했음을 알리기 위해 다른 호스트에 잼 신호라는 특별한 신호를 보낸다.
그 뒤 임의의 시간 동안 기다린 뒤 다시 전송한다.
스위치
스위치는 데이터 링크 계층에 위치해 있기 때문에, MAC 주소를 사용할 수 있다. 이 MAC 주소를 바탕으로 전달 받은 신호를 원하는 포트로 내보낼 수 있다.
스위치는 2계층에서 사용한다 하여 L2 스위치라고도 부른다.
스위치의 여러 포트에 호스트를 연결할 수 있는데, 이 점은 허브와 유사하다.
하지만 허브와 달리 MAC 주소를 학습해, 특정 MAC 주소를 가진 호스트에만 프레임을 전달할 수 있고, 전이중(양방향) 모드를 지원한다. 이러한 점에서 CSMA/CD 프롵콜이 필요하지 않다.
특징
특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억한다는 점이다. 이를 바탕으로 원하는 호스트에만 프레임을 전달할 수 있다.
→ 이러한 기능을 MAC 주소 학습이라 한다.
주소 학습을 위해 포트와 연결된 호스트의 MAC 주소를 저장할 필요가 있는데, 주소를 저장한 테이블을 MAC 주소 테이블이라 한다.
MAC 주소 학습
MAC 주소 테이블에 채워지는 과정을 살펴보면 다음과 같다.
- 플러딩
- 포워딩과 필터링
- 에이징
호스트 A,B,C가 각각 포트 1,2,3번에 연결되어 있는 상태이다.
플러딩
스위치는 처음에 호스트 A,B,C의 MAC 주소와 연결된 포트의 연관 관계를 알지 못한다.
송신자 호스트 : A, 수신자 호스트 : C 일때,
이때, 스위치의 MAC 주소 학습은 프레임 내 ‘송신지 MAC 주소’ 정보를 바탕으로 호스트 A의 MAC 주소와 연결된 포트를 MAC 주소 테이블에 저장한다.
하지만 수신자 호스트 C가 어느 포트에 연결되었는지 알지 못한다.
이때 스위치는 허브와 같이 송신지 포트를 제외한 모든 포트로 프레임을 전송한다. 이를 플러딩이라 한다.
호스트 B,C는 프레임을 전달받는데, 호스트 B에 경우 자신과 관련 없는 프레임을 전송받았기 때문에 이를 폐기한다.
하지만 C는 스위치로 응답 프레임을 전송한다. 이를 통해 호스트 C의 MAC 주소와 연결된 포트를 알아내어 이 정보를 MAC 주소 테이블에 기재한다.
필터링
이제 스위치가 호스트 A와 C의 MAC 주소와 연결된 포트를 알고 있기 떄문에 두 호스트가 프레임을 주고 받을 때에는 다른 포트로 프레임을 보낼 필요가 없게된다.
전달받은 프레임을 어디로 보내고 보내지 않을지, 결정하는 스위치의 기능을 필터링이라 한다.
포워딩
프레임이 전송될 포트에 실제로 프레임을 내보내는 것이다.
정리
정리하자면, 호스트 A가 호스트 C에게 프레임을 전송하면 스위치는 호스트 B가 연결된 포트로는 내보내지 않도록 필터링하고, 호스트 C가 연결된 포트로 프레임을 포워딩한다.
에이징
만약 MAC 주소 테이블에 등록된 특정 포드에서 일정 시간 동안 프레임을 전송받지 못했을 때 해당 항목이 삭제된다.
'Basic > 네트워크' 카테고리의 다른 글
[네트워크] IP 주소 (0) | 2024.07.24 |
---|---|
[네트워크] 네트워크 기기 (0) | 2024.07.23 |
[네트워크] 데이터링크 계층 - 이더넷 (1) | 2024.07.08 |
[네트워크] 네트워크 참조 모델 - OSI 7계층 (0) | 2024.07.05 |
[네트워크] TCP/IP 4계층 (0) | 2024.07.02 |