요즘은 위와 같이 switch를 이용해서 star형으로 토폴로지를 구성함.
버스형에서 전체가 collision domain인 것과 달리 성형은 collision domain이 분리되어 있어서, 다른 도메인에 있는 애들은 동시에 데이터를 보낼 수 있음.
switch는 맥 주소도 없고 아무것도 없음. 각 호스트 입장에서는 스위치의 존재를 모름.
중간에서 교통 정리를 해줌.
스위치 내에 스위치 테이블이 존재. 어떤 destination MAC addr로 가는 데이터는 어떤 port로 나가도록 하면 되는지(+TTL)이 적혀있는 테이블.
switch table을 채우는 방법: self-learning
예를 들어 A에서 A'으로 가는 데이터가 있다면, 일단 그 데이터가 들어오는 순간 A라는 호스트가 어느 포트와 연결되는지를 알 수 있어서 이걸 기록함. 그리고 A'라는 호스트를 찾기 위해서는 flooding
(전체에 다 보냄)를 함. 그리고 나중에 A가 dest로 적혀있는 데이터가 드러오면 그때는 selectively send
해줌.
우리가 어떤 데이터를 보낼 때 nexthop은 게이트웨이 라우터인데, 사실은 바로 라우터로 연결된게 아니라 그 사이에 여러 스위치들이 존재할 수 있음.
cf) switch vs. 공유기
공유기 = 게이트웨이 라우터의 역할 (Forwarding
)
작은 컴퓨터. Application Layer까지 가짐. IP 주소가 배정된 선을 모뎀을 통해 공유기에 꽂음.
NAT가 동작해서, 원래 IP를 가지고 private IP를 생성해서 주는 것.
DHCP가 동작해서 내가 여기로부터 IP를 받아옴.
로컬 DNS도 여기에서 동작을 하면서, 도메인 네임 쿼리를 처리해줌.
IP 주소, MAC 주소 다 가짐
switch (Switching
)
게이트웨이 라우터랑은 다름! 라우터는 붙이는 순간 새로운 서브넷(다른 prefix)이 또 생김.
컴퓨터의 수가 너무 많아졌을 때 게이트웨이 라우터에 바로 연결할 수 없어서 중간에 switch를 두는 것.
큰 서비스 회사는 리퀘스트가 너무 많기 때문에, 서버 컴퓨터 중에서 가장 로드가 적은 애를 선택해서 리퀘스트를 전달해줌.
이 서버들도 결국 스위치로 연결이 되어 있음.
외부에서 리퀘스트가 들어오면, 우선 로드 밸런서로 가서 어떤 애한테 일을 시키는게 가장 적합한지 판단해서 거기로 Forwarding이 되고 거기서 작업을 처리한 후 response가 나감.