- 스패닝 트리 프로토콜 (Spanning Tree Protocol, STP):
- 딜레마: 네트워크 안정성을 위해 스위치 간에 예비 링크(이중화 경로)를 연결하면 **루프(Loop)**가 생깁니다. 이 루프는 **브로드캐스트 스톰(Broadcast Storm)**이라는 치명적인 장애를 일으켜 네트워크 전체를 마비시킵니다.
- STP의 역할: 물리적으로는 루프가 있는 풍부한 링크를 유지하되, 논리적으로는 루프가 없는 나무(Tree) 구조의 경로 하나만 활성화합니다. 나머지 링크는 차단(Blocking) 상태로 두었다가, 활성화된 경로에 장애가 생기면 자동으로 예비 경로를 활성화하여 네트워크 중단을 막습니다.
- 결론: STP는 안정성(이중화)과 루프 방지라는 두 마리 토끼를 동시에 잡는 필수적인 프로토콜입니다.
충돌 도메인(Collision Domain)과 방송 도메인(Broadcast Domain)
2. 충돌(Collision)의 완벽한 제거
- 이것이 스위치가 가져온 가장 혁신적인 변화입니다. 강의에서 여러 시나리오(A→A', B→B' 동시 전송 등)를 통해 설명했듯이, 스위치 환경에서는 이론적으로 충돌이 발생하지 않습니다.
- 이유:
- 독립된 경로: 각 포트가 물리적으로 분리된 전선을 사용하므로, 서로 다른 포트 간의 통신은 애초에 충돌할 일이 없습니다.
- 버퍼(Buffer)의 존재: 하나의 포트로 여러 프레임이 동시에 향하는 경우(다대일 통신), 스위치는 포트마다 있는 **버퍼(임시 저장 공간)**에 프레임을 잠시 저장했다가 순차적으로 내보내기 때문에 충돌이 발생하지 않습니다.
- 풀 듀플렉스(Full-Duplex): 송신과 수신 경로가 분리되어 있어 데이터를 보내는 동시에 받을 수 있습니다.
- 결과: 충돌이 없으므로, 이더넷의 핵심 기술이었던 CSMA/CD가 사실상 무의미해집니다. "보내고 싶을 때 아무 때나 보내도" 되기 때문입니다.
1. 이더넷 스위치의 자기 학습 (Self-Learning) 과정
(1) 자기 학습이란 무엇인가?
스위치가 어떤 포트에 어떤 MAC 주소를 가진 장치가 연결되어 있는지 스스로 학습하여 MAC 주소 테이블(MAC Address Table)을 자동으로 생성하고 유지하는 과정입니다. 이 기능 덕분에 관리자가 수동으로 설정할 필요 없는 'Plug-and-Play' 장치로 동작할 수 있습니다.
(2) 자기 학습의 동작 과정 (매우 중요)
스위치는 들어오는 모든 프레임을 보고 2단계로 동작합니다.
1단계: 학습 (Learning) - 출발지를 보고 배운다
- 프레임이 특정 포트(예: 1번 포트)로 들어오면, 스위치는 그 프레임의 **'출발지(Source) MAC 주소'**를 확인합니다.
- "아, MAC 주소 'A'를 가진 장치는 1번 포트에 연결되어 있구나!"라는 정보를 파악하고, 이 (MAC 주소, 포트 번호) 쌍을 자신의 MAC 주소 테이블에 기록하거나 갱신합니다.
- 이 과정은 목적지가 어디인지는 전혀 신경 쓰지 않고 오직 출발지만을 보고 이루어집니다.
2단계: 전달 또는 플러딩 (Forwarding or Flooding) - 목적지를 보고 결정한다
- 학습을 마친 후, 스위치는 이제 프레임의 **'목적지(Destination) MAC 주소'**를 확인합니다.
- 자신의 MAC 주소 테이블을 찾아보고, 두 가지 경우에 따라 다르게 행동합니다.
- 아는 목적지 (Forwarding): 만약 목적지 MAC 주소가 테이블에 있다면, 스위치는 테이블에 기록된 해당 포트로만 프레임을 **정확하게 전달(Forwarding)**합니다. 이것이 스위치의 핵심적인 '똑똑한' 동작입니다.
- 모르는 목적지 (Flooding): 만약 목적지 MAC 주소가 테이블에 없다면, 스위치는 목적지가 어디 있는지 모르므로, 프레임이 들어온 포트를 제외한 나머지 모든 포트로 프레임을 복제하여 뿌립니다(Flooding). 이는 일시적으로 허브처럼 동작하는 것입니다.
2. 스패닝 트리 프로토콜 (Spanning Tree Protocol, STP)
(1) STP의 특징 및 필요성 (핵심)
STP는 스위치 네트워크에서 안정성과 루프 방지라는 상충되는 두 가지 목표를 동시에 달성하기 위한 필수 프로토콜입니다.
- 딜레마의 시작 (장애 대비의 필요성): 네트워크의 안정성을 높이려면 스위치 간에 여러 개의 예비 링크(이중화 경로)를 연결해야 합니다. 주 경로에 장애가 발생했을 때 예비 경로로 통신을 유지할 수 있기 때문입니다.
- 치명적인 문제 발생 (루프의 단점): 하지만 예비 링크를 연결하면 네트워크에 물리적인 루프(Loop) 구조가 형성됩니다. 이 루프는 **브로드캐스트 스톰(Broadcast Storm)**이라는 치명적인 장애를 유발합니다. 하나의 브로드캐스트 프레임이 루프를 따라 무한히 복제되고 순환하면서 네트워크의 모든 대역폭과 스위치의 CPU 자원을 고갈시켜 결국 네트워크 전체를 마비시킵니다.
- STP의 역할: STP는 이러한 딜레마를 해결합니다. 물리적으로는 루프가 있는 풍부한 링크 구성을 허용하되, **논리적으로는 루프가 없는 하나의 트리(Tree) 경로만 남기고 나머지 예비 경로는 비활성화(Blocking)**시킵니다.
(2) STP의 장점과 단점
- 장점:
- 루프 방지 및 안정성 확보: 브로드캐스트 스톰을 원천적으로 방지하여 네트워크의 안정성을 보장합니다.
- 자동 경로 복구 (Fault Tolerance): 평소에 사용하던 활성 경로에 장애가 발생하면, STP가 이를 자동으로 감지하고 차단해 두었던 예비 경로를 활성화시켜 통신을 신속하게 복구합니다.
- 단점:
- 느린 수렴 시간 (Convergence Time): 활성 경로에 장애가 발생했을 때, 새로운 트리 구조를 계산하고 경로를 전환하는 데 시간이 걸립니다. 구형 STP의 경우 30초에서 50초까지 소요될 수 있으며, 이 시간 동안 해당 경로의 통신은 일시적으로 두절됩니다. (물론 최신 RSTP 등은 이 시간을 크게 단축했습니다.)
- 비효율적인 대역폭 사용: 차단(Blocking)된 예비 링크는 장애가 발생하기 전까지는 전혀 사용되지 않고 유휴 상태로 대기만 합니다. 따라서 구매한 전체 링크의 대역폭을 100% 활용하지 못하고 낭비되는 측면이 있습니다.
네, 그럼요. 제공해주신 내용을 명확한 **'예상 문제'**와 '모범 답안' 형식으로 깔끔하게 나누어 정리해 드리겠습니다. 시험공부에 바로 활용하실 수 있도록 구성했습니다.
★★★★★ 출제 확률 매우 높은 핵심 주제
문제 1: TCP와 UDP의 비교
[예상 문제]
TCP와 UDP의 차이점을 연결 설정, 신뢰성, 데이터 전송 방식, 속도, 주요 사용 사례의 관점에서 비교하여 서술하시오.
[모범 답안]
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 신뢰성과 연결 설정 여부에서 근본적인 차이를 보입니다.
- 연결 설정: TCP는 데이터를 보내기 전 3-way handshake를 통해 연결을 설정하는 연결형 프로토콜인 반면, UDP는 연결 과정 없이 데이터를 보내는 비연결형 프로토콜입니다.
- 신뢰성: TCP는 데이터의 순서 보장, ACK를 통한 수신 확인, 유실 시 재전송을 지원하여 신뢰성이 높습니다. 반면 UDP는 전송을 보장하지 않는 최선형(Best-Effort) 서비스로 신뢰성이 낮습니다.
- 데이터 전송 방식: TCP는 데이터의 경계가 없는 스트림(Stream) 기반으로 동작하고, UDP는 독립적인 패킷 단위인 데이터그램(Datagram) 기반으로 동작합니다.
- 속도: TCP는 신뢰성 확보를 위한 제어 기능 때문에 헤더가 크고 속도가 느린 반면, UDP는 제어 기능이 없어 헤더가 작고 속도가 빠릅니다.
- 주요 사용 사례: 신뢰성이 중요한 웹(HTTP), 이메일(SMTP) 등은 TCP를 사용하고, 속도가 중요한 실시간 스트리밍, 온라인 게임 등은 UDP를 사용합니다.
문제 2: 이더넷 허브와 스위치의 비교
[예상 문제]
이더넷 허브와 스위치의 동작 방식을 비교하고, 이로 인해 발생하는 '충돌 도메인(Collision Domain)'의 차이점을 설명하시오.
[모범 답안]
허브와 스위치는 물리적인 모양은 비슷하지만 동작 방식과 성능에서 큰 차이를 보입니다.
- 허브(Hub): 물리 계층(1계층) 장비로, 한 포트로 들어온 전기 신호를 **모든 포트로 복제(Flooding)**하여 전달합니다. 이 때문에 허브에 연결된 모든 장치는 단일 충돌 도메인에 속하게 되어, 전체 대역폭을 공유해야 하고 한 번에 하나의 장치만 통신할 수 있습니다.
- 스위치(Switch): 데이터 링크 계층(2계층) 장비로, MAC 주소를 학습하여 프레임의 목적지 주소를 보고 **해당 포트로만 선별적으로 전달(Forwarding)**합니다. 각 포트가 독립적인 충돌 도메인을 형성하므로, 여러 장치가 동시에 서로 간섭 없이 통신할 수 있습니다.
결론적으로, 스위치는 **"충돌 도메인을 나누어주는 장치"**로서 허브보다 훨씬 효율적인 통신을 가능하게 합니다.
문제 3: CSMA/CD와 CSMA/CA의 비교
[예상 문제]
CSMA/CD와 CSMA/CA의 전체 이름을 쓰고, 각각의 핵심 동작 원리와 주 사용 환경(유선/무선)이 다른 이유를 설명하시오.
[모범 답안]
두 프로토콜은 공유 매체 접근 제어 방식이지만, 충돌을 다루는 전략이 다릅니다.
- CSMA/CD (Carrier Sense Multiple Access with Collision Detection): '충돌 감지' 방식이며 유선(이더넷) 환경에서 사용됩니다. "일단 전송을 시작하고, 통신 중에 충돌이 발생하면 이를 감지하여 즉시 전송을 중단한 후 랜덤 시간 동안 대기(백오프)하고 재전송"하는 방식입니다. 송신 신호가 강해 충돌을 감지하기 용이한 유선 환경에 적합합니다.
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance): '충돌 회피' 방식이며 무선(Wi-Fi) 환경에서 사용됩니다. "전송을 시작하기 전에 미리 랜덤 시간 동안 대기하여, 동시에 전송할 가능성 자체를 줄여 충돌을 사전에 회피"하는 방식입니다. 무선은 신호 감쇠가 심하고 '숨은 노드' 문제 등으로 충돌을 '감지'하기가 매우 어려워, 애초에 충돌을 피하는 전략을 사용합니다.
★★★★☆ 출제 가능성 높은 중요 주제
문제 4: 스위치 네트워크의 루프 문제와 STP
[예상 문제]
네트워크 안정성을 위해 스위치 간에 이중화 링크를 구성할 때 발생하는 문제점은 무엇이며, 스패닝 트리 프로토콜(STP)은 이 문제를 어떻게 해결하는지 그 역할을 서술하시오.
[모범 답안]
- 문제점: 안정성을 위해 스위치 간 링크를 이중화하면 물리적인 루프(Loop) 구조가 형성됩니다. 이 루프는 하나의 브로드캐스트 프레임이 네트워크 내에서 무한히 순환하고 복제되는 **브로드캐스트 스톰(Broadcast Storm)**을 유발하여, 네트워크 대역폭과 장비의 CPU를 고갈시켜 전체 네트워크를 마비시킵니다.
- STP의 해결책: STP는 물리적으로 루프가 있는 링크 구성을 유지하면서, 논리적으로는 루프가 없는 트리(Tree) 경로 하나만 활성화합니다. 나머지 예비 경로는 평소에 차단(Blocking) 상태로 두었다가, 활성 경로에 장애가 발생하면 STP가 이를 감지하여 차단된 경로를 자동으로 활성화시켜 통신을 복구합니다. 즉, STP는 안정성을 위한 이중화와 루프 방지를 동시에 달성하는 역할을 합니다.
문제 5: 멀티스레딩의 필요성 (채팅 프로그램의 한계)
[예상 문제]
단일 스레드 TCP 소켓 프로그램이 채팅 서비스에 부적합한 이유를 서버와 클라이언트의 입장에서 각각 설명하시오.
[모범 답안]
단일 스레드 프로그램의 한계는 '블로킹(Blocking)' 함수 때문에 발생합니다.
- 서버의 한계: 서버는 **accept()**를 통해 새로운 클라이언트의 접속을 기다리고, **recv()**를 통해 이미 접속한 클라이언트의 메시지를 기다려야 합니다. 단일 스레드에서는 이 두 가지 블로킹 동작을 동시에 할 수 없습니다. 즉, 한 클라이언트와 통신(recv)하는 동안에는 다른 클라이언트의 새로운 접속(accept)을 처리할 수 없어 동시 접속 서비스가 불가능합니다.
- 클라이언트의 한계: 클라이언트는 **recv()**를 통해 서버의 메시지를 기다리고, **gets_s()**를 통해 사용자의 키보드 입력을 기다려야 합니다. 단일 스레드에서는 서버의 메시지를 기다리기 위해 recv()에서 멈춰 있는 동안, 사용자의 키보드 입력(gets_s) 및 송신(send)을 처리할 수 없습니다. 이로 인해 송신과 수신을 동시에 할 수 없습니다.
★★★☆☆ 알아두면 좋은 기타 주제
문제 6: 이더넷 스위치의 자기 학습(Self-Learning) 원리
[예상 문제]
이더넷 스위치가 어떤 포트에 어떤 MAC 주소의 장치가 연결되어 있는지 알아내는 '자기 학습' 과정에 대해 설명하시오.
[모범 답안]
스위치는 자신에게 들어오는 프레임의 **'출발지(Source) MAC 주소'**와 **해당 프레임이 들어온 '포트 번호'**를 확인합니다. 그리고 이 (MAC 주소, 포트 번호) 쌍 정보를 자신의 MAC 주소 테이블에 자동으로 기록하거나 갱신합니다. 이 과정을 통해 스위치는 어떤 장치가 어느 포트에 연결되어 있는지 스스로 학습하게 되며, 이후 해당 MAC 주소로 가는 프레임을 정확한 포트로 전달할 수 있게 됩니다.
문제 7: Wi-Fi의 에러 제어 방식
[예상 문제]
유선 이더넷과 달리 Wi-Fi(무선)가 에러 컬렉션(오류 복구)을 수행하는 이유는 무엇이며, 어떤 방식을 사용하는지 설명하시오.
[모범 답안]
- 이유: 무선 환경은 유선보다 신호 간섭 등으로 인해 오류 발생률이 훨씬 높습니다. 이 많은 오류를 상위 계층인 TCP에만 맡기면, 잦은 재전송으로 인해 전체 네트워크 성능이 급격히 저하됩니다. 따라서 데이터 링크 계층에서 직접 오류를 복구하여 성능 저하를 최소화합니다.
- 방식: 데이터 프레임 하나를 보낸 후, 상대방으로부터 ACK(긍정 응답) 프레임이 올 때까지 기다리는 Stop-and-Wait ARQ 방식을 사용하여 수신을 확인하고, ACK가 오지 않으면 프레임을 재전송합니다.
단점: 예비 링크의 비효율성 (대역폭 낭비)
교수님께서 직접적으로 언급하신 단점은 바로 예비 링크의 비효율성입니다.
STP는 루프를 막기 위해 활성화된 트리 경로 외의 모든 예비 링크를 차단(Blocking) 상태로 만듭니다. 교수님께서는 이 상태의 링크를 **"평소에는 밥값을 못해요"**라고 표현하셨습니다.
이는 해당 링크가 물리적으로 연결되어 있고 비용을 지불하여 설치했음에도 불구하고, 평상시에는 어떠한 데이터 트래픽도 전달하지 않고 유휴 상태로 대기만 한다는 의미입니다. 즉, 네트워크의 전체 대역폭을 늘리거나 트래픽을 분산(Load Balancing)하는 데 전혀 기여하지 못하고, 오직 주 경로의 장애 발생 시에만 사용됩니다. 이처럼 설치된 자원(대역폭)을 100% 활용하지 못하고 낭비하는 것이 STP의 명백한 단점입니다.
대충 같은 다른 섞여있는거 같은데
가령 같은 장비<cross(다른)
다른 장비<스트레잇
왜지
- 른 장비끼리 (PC ↔ 스위치): 한쪽은 오른손잡이, 다른 쪽은 왼손잡이라서 이미 악수할 준비가 되어 있습니다. 그래서 **그대로 연결(스트레이트)**하면 됩니다.
- 같은 장비끼리 (PC ↔ PC): 둘 다 오른손잡이라서 이대로는 악수가 안 됩니다. 그래서 중간에서 손을 바꿔주는(크로스오버) 역할이 필요합니다.
'25년2학기 > 컴퓨터 네트워크' 카테고리의 다른 글
| 컴넷)기출(10.19) (0) | 2025.10.19 |
|---|---|
| 컴넷)시험대비1 (10.19) (0) | 2025.10.19 |
| 컴넷 )강의 내용(10.17) (0) | 2025.10.17 |
| 컴넷)과제 (10.17) (0) | 2025.10.17 |
| 컴넷)예상문제 (10.15) (0) | 2025.10.15 |