Star 토폴로지에서 쓰이는 Switch 장비를 알아보자.
스위치에 연결된 호스트가 프레임을 보내면, 스위치가 프레임에있는 헤더 안의 dest(목적지)를 보고 알맞은 대상에게 프레임을 전송한다. 이 때, 목적지에 보내려면 몇 번 포트로 보내야 할까? 스위치 테이블에서 목적지의 포트번호를 찾아 해당 포트번호로 보낸다. 스위치 테이블에 해당하는 목적지 정보가 없다면 플러딩을 통해 전송하고, 새로운 정보를 얻을 때마다 스위치 테이블에 저장하는 셀프러닝을 한다.
Switch
스위치는
- link-layer 장비이다. (=L2장비)
- 이더넷 프레임을 수신하고, 전달한다.
- 프레임을 수신하고, 하나 이상의 링크로 프레임을 전달한다.
- CSMA/CD가 적용된다.
세번째 설명에서, 하나 이상의 링크로 프레임을 전달한다고 하는데,
아니, 전달하는데 한 군데로 보내면 되지 두개 이상의 링크로 보낼 일이 있나? ...라는 생각을 할 수 있다.
앞서 배운 ARP 프로토콜을 사용하거나(IP주소만 알 때 브로드캐스팅하여 MAC주소를 알아내기)
뒤에 나오는 플러딩 등에서 스위치가 여러 갈래로 프레임을 보낼 때도 있다.
네번째 설명에서, CSMA/CD가 적용된다고 하는데,
BUS토폴로지 일 때는 CSMA/CD 쓰고, 스위치는 collision발생 없을테니까 적용 안 하면 안되나? ...라는 생각을 할 수 있다.
하지만, (Transparent) 호스트는 스위치와 연결되어 있는지, 버스 토폴로지로 연결되어 있는지 알 수가 없다.
그래서 때에 따라 다르게 적용하자는 것은 불가능하므로 CSMA/CD를 적용시키는 것이다.
스위치는
- 각 호스트와 전용 선으로 연결되어있다.
- 버퍼가 있다
- collision이 없다
각 호스트와 스위치가 전용 선으로 연결되어 있기 때문에 collision이 발생하지 않는다.
여러 호스트가 스위치로 프레임들을 동시에 보낸다고 하자.
스위치는 받은 프레임들을 순차적으로, 하나씩 하나씩 보낼 것이다.
이 때 버퍼에 잠깐 저장해둔다.
스위치 통신방법과 스위치테이블
스위치에 A,B,C,D가 연결되어 있다고 하자. switch table은 비어있는 상태다.
이 때, A가 프레임을 하나 보냈다.
A가 C에게 보내는 프레임이다.
1번 포트에서 온 프레임이고, src가 A라는 것을 보고 A는 1번포트구나 알 수 있다.
이것을 스위치테이블에 작성한다(셀프 러닝)
스위치가 프레임을 받았다.
C가 몇 번 포트인지 모르겠다.
스위치 테이블을 봐도 C의 정보가 없다..
정보가 있었으면 그걸 보고 바로 보내면 되는데~ 없으니까 어쩌지?
플러딩 한다.
A에게서 온 프레임이니까 A한테는 안 보내고,
나머지 모든 호스트들에게 프레임을 전송한다.
그럼 호스트들은 프레임의 dest를 보고, 자신의 것이면 받고 아니면 버릴 것이다.
(참고로 플러딩과 브로드캐스트는 다르다. 브로드캐스트는 맥 주소를 모르니 FFF...로 채워 모두에게 보내고,
플러딩은 프레임이 왔던 곳을 제외한 모든 곳으로 프레임을 보낸다)
스위치는 계층적으로 연결될 수 있다.(트리 모양)
이 때도 똑같은 방식으로 데이터를 주고받을 수 있다.
'2022-2 > 데이터통신' 카테고리의 다른 글
[데이터통신] Wireless LAN(2) (CSMA/CA) (0) | 2022.12.08 |
---|---|
[데이터통신] Wireless LAN (0) | 2022.12.04 |
ARP and Ethernet (0) | 2022.11.16 |
[데이터통신] Data Link Layer (0) | 2022.11.02 |
Analog Transmission (0) | 2022.10.19 |
댓글