[JSCODE] 컴퓨터 네트워크 - 1주차

서정범·2024년 1월 11일
0

면접 예상 질문

  • 컴퓨터 네트워크는 무엇인가요?
  • 컴퓨터 네트워크에서 데이터를 전송하는 방식에 대해 설명해주세요.
  • ⭐️ 프로토콜에 대해서 설명해주세요.
  • ⭐️ OSI 7 Layer에 대해서 설명해주세요.
  • ⭐️ TCP/IP에 대해서 설명해주세요.
  • OSI 7 Layer, TCP/IP 처럼 프로토콜을 계층화하는 이유가 뭘까요?
  • 컴퓨터 네트워크에서 캡슐화와 비캡슐화에 대해서 설명해주세요.
  • NIC, 리피터, 리피터 허브에 대해서 설명해주세요.
  • 브리지에 대해서 설명해주세요.
  • L2 스위치에 대해서 설명해주세요.
  • 라우터에 대해서 설명해주세요.
  • L3 스위치에 대해서 설명해주세요.
  • L7 스위치에 대해서 설명해주세요.
  • LAN과 WAN에 대해서 설명해주세요.

초기 답변

  • 컴퓨터 네트워크는 무엇인가요?

컴퓨터 네트워크는 여러 사용자들이 데이터를 주고받을 수 있도록 구축한 통신망입니다. 이 과정속에서 데이터의 안정성과 무결성을 최대한 보장하려고 노력하고 빠른 속도로 전달하기 위해 발전해 왔습니다.

  • 컴퓨터 네트워크에서 데이터를 전송하는 방식에 대해 설명해주세요.

컴퓨터 네트워크에서 데이터를 전송하는 방식에는 크게 두가지가 있습니다.

TCP 혹은 UDP로 전송하는 방식이 존재합니다.

TCP는 데이터의 안전성을 보장하고, 여러 호스트들이 네트워크를 공유하면서 문제없이 데이터를 전송하는 것을 목표로 합니다.

UDP는 데이터의 안정성보다는 빠르게 전달하는 것을 목표로 하고, 이 과정속에서 데이터가 손실된다던가, 오류가 발생하는 것에 대한 어떠한 보상도 이루어지지 않습니다.

  • ⭐️ 프로토콜에 대해서 설명해주세요.

프로토콜이란 일종의 약속으로 서로 다른 호스트들이 프로토콜이란 약속되어 있는 틀을 이용해서 별도의 질의없이 데이터를 송수신할 수 있도록 해줍니다.

  • ⭐️ OSI 7 Layer에 대해서 설명해주세요.

OSI 7계층은 데이터를 송수신하는 과정을 세분화하여 계층별로 구분해 놓은 구조입니다.

이렇게 하는 이유는 데이터를 송수신하는 과정이 여러 단계를 거치고, 복잡하기 때문에 그것을 계층별로 구분하여 관리하기 쉽게하고 각 계층에서 발생한 에러의 확산을 막아서 빠르게 해결하기 위함에 있습니다.

OSI 7계층은 다음과 같은 것들로 구성되어 있습니다.

  1. 응용 계층
  2. 표현 계층
  3. 세션 계층
  4. 전송 계층
  5. 네트워크 계층
  6. 링크 계층
  7. 물리 계층

각 계층은 자신들의 역할에 집중하고 이렇게 함으로써 분업을 한 형태와 같이 효율적인 작업 처리가 가능하게 됩니다.

  • ⭐️ TCP/IP에 대해서 설명해주세요.

TCP/IP는 네트워크 통신에서 가장 많이 사용하는 형태로 4계층인 전송 계층에서 TCP를 사용하면서 신뢰성 있는 전송을 보장하며, 3계층에서 가장 많이 사용하는 IP를 사용하는 것을 의미합니다.

TCP는 GBN과 SR의 혼합 형태로 데이터들을 파이프라이닝 형태로 전송하고 슬라이딩 윈도우를 사용하여 여러 데이터 패킷들을 묶어서 전달하면서 효율을 높였습니다.

또한, rwnd와 cwnd를 통해서 종단간의 호스트들만 고려하는 것이 아니라 여러 호스트들을 고려하여 공유하고 있는 네트워크에서 안정성 있는 데이터 전달을 수행하게 해줍니다.

IP는 ip 주소라고 불리는 것을 통해 송신자가 수신자의 주소를 사용해서 목적지를 설정하고 그 중간에 존재하는 라우터들이 가급적 최단 경로를 설정하여 패킷을 전송할 수 있도록 해줍니다. 이 과정에서 BGP 개념이 적용됩니다.

  • OSI 7 Layer, TCP/IP 처럼 프로토콜을 계층화하는 이유가 뭘까요?

프로토콜을 계층화한 이유는 수행하는 역할을 계층화 시켜서 나눔으로써 각 계층에서 발생하는 장애의 전파를 막고, 계층별로 확장성을 높이기 위함에 있습니다.

  • 컴퓨터 네트워크에서 캡슐화와 비캡슐화에 대해서 설명해주세요

컴퓨터 네트워크에서 캡슐화와 비캡슐화가 발생하는 계층은 3계층과 2계층입니다.

캡슐화는 상위 계층에서 전달받은 데이터를 페이로드에 넣고 자신의 계층의 헤더를 붙임으로써 상위 계층의 정보를 데이터 취급하는 것을 의미합니다.

비캡슐화는 이와 반대로 하위 계층에서 상위 계층으로 전달하기 위해서 자신의 계층의 헤더를 제거하고 페이로드에 담겨있던 데이터를 상위 계층에게 건네주는 것을 의미합니다.

이렇게 수행함으로써 상위 계층과 하위 계층은 독립성을 보장합니다.

  • NIC, 리피터, 리피터 허브에 대해서 설명해주세요.

NIC은 2계층에서 사용하는 네트워크 인터페이스 카드로 이것은 어댑터라고도 불립니다.

NIC은 고유한 MAC 주소를 ROM에 보유하고 있고 링크 계층의 스위치는 이것을 이용해서 프레임을 포워딩해줍니다.

리피터는 신호의 세기를 증폭시켜서 더 멀리 신호를 보내는 장치를 의미합니다.

데이터는 장치에서 사용하는 형태로 비트로 구성되어 있는데 실제 케이블을 통해 주고 받을때는 아날로그 신호로 주고 받아야 합니다.

이것을 위해서 데이터 비트를 신호로 바꿔주는 작업이 필요한데, 이때 데이터 신호와 클록 신호를 결합하면서 어느 정도의 데이터 무결성을 잡아줍니다.

하지만, 과거 동축케이블을 사용하던 시절에는 해당 신호의 전달 범위가 넓지 않아서 그것을 증폭시켜주기 위한 장비가 필요했습니다. 이럴때 사용하는 것이 리피터였습니다.

리피터 허브는 리피터와 허브를 합친 형태로 허브의 특정 포트로 들어온 신호를 비트로 바꿔서 복사하고 신호로 바꿔주는 과정을 거친 후 증폭시킨 다음 해당 포트를 제외한 모든 포트로 전달해주는 장치를 의미합니다.

허브는 1계층에서 동작하는 장치로 1계층은 어떠한 주소 체계도 가지고 있지 않으므로 해당 데이터가 어디 목적지로 가는지 알 수 없습니다. 따라서 허브는 필연적으로 다른 모든 포트로 데이터를 전송할 수 밖에 없기 때문에 다른 모든 포트로 브로드캐스트 하는 방식으로 동작합니다.

  • 브리지에 대해서 설명해주세요.

잘 모르겠습니다.

  • L2 스위치에 대해서 설명해주세요.

L2 스위치는 링크 계층에서 동작하는 패킷 전송 장치로 과거에 허브를 사용하던 것이 발전하여 나오게된 장치입니다.

L2 스위치는 각 장치가 특정 알고리즘을 수행하여 경로를 계산할 수 있지만 현대에는 SDN 구조를 사용하여 SDN 컨트롤러가 이 과정을 대체해주고 카운터 정보를 전송해서 플로우 테이블을 업데이트 합니다.

이로 인해 L2 스위치는 하드웨어적으로 빠르게 동작하여 프레임을 포워딩하는 것에 집중하고 필요에 따라서 VLAN을 사용하기도 합니다.

  • 라우터에 대해서 설명해주세요.

라우터는 3계층에서 수행하는 패킷 전송 장치로 IP 주소를 기반으로 동작합니다.

라우터는 보통 서브넷에서 외부 서브넷과 연결해주는 게이트웨이 역할을 수행합니다. 각 서브넷과 연결된 링크를 링크 인터페이스라고 부르고 하나의 링크 인터페이스마다 IP 주소와 어댑터를 가지고 있습니다.

라우터는 외부 서브넷의 호스트와 내부 서브넷의 호스트의 경로를 연결하기 위해서 BGP를 수행하여 라우팅 테이블을 업데이트하고 수행하는 알고리즘으로는 뜨거운 감자 라우팅을 사용합니다. 물론, 실제로 라우팅을 할 때 적용되는 우선순위는 AS 정책, AS-PATH, 뜨거운 감자 라우팅, 사용자 설정에 따라 적용됩니다.

  • L3 스위치에 대해서 설명해주세요.
  • L7 스위치에 대해서 설명해주세요.

이 둘은 현재 잘 모르겠습니다.

  • LAN과 WAN에 대해서 설명해주세요.

Local Area Network와 World Area Network의 차이는 서브넷에 따라 구별됩니다.

LAN은 하나의 서브넷으로 구성된 네트워크를 의미하며, WAN은 여러 개의 서브넷으로 구성된 네트워크를 의미합니다.

LAN은 ARP와 DHCP와 같은 브로드캐스트가 필요한 작업들이 이루어지는 그룹이며, WAN은 BGP와 같은 동작들을 통해 전체적인 라우팅을 수행하는 그룹입니다.

부족한 개념 정리

  1. 브리지
  2. L3 스위치
  3. L7 스위치
  4. LAN과 서브넷 그리고 AS

브리지

브리지는 스위치와 동일하게 두개 이상의 네트워크 세그먼트를 연결하는 네트워크 장치입니다.

브리지는 허브의 한 단계 위의 장치로 중요한 기능으로 콜리전 도메인을 나눈 것을 볼 수 있습니다.

여기서 콜리전 도메인에 대해서 설명을 해보자면,

먼저, 충돌(Collision)은 데이터의 비트의 충돌을 의미하며, 이것이 발생할 경우 데이터 전송 오류가 발생하게 됩니다. 허브는 브로드캐스트하는 작업으로 인해 동시에 다른 포트에서 데이터가 들어올 경우 이러한 상황이 발생하게 되고, 이 과정을 해결하기 위해서 CSMA/CD를 사용하기도 합니다.

이것을 막기 위해서 영역을 브리지로 나누어서, 영역 내에서 이루어지는 통신은 브리지를 건너지 않고 통신을 하게 되고, 영역 외 통신을 하기 위해선 브리지를 건너야 통신이 가능하게 됩니다.

이렇게 함으로써, 브로드캐스트가 필요한 상황에서 Collsion을 피할 수 있게 됩니다.

브리지도 스위치와 같이 MAC 주소를 사용하는데 그렇다면 스위치와의 차이점에 대해서 알아볼 필요가 있겠네요.

먼저, 브리지에 대해서 정리를 해보자면 다음과 같습니다.

브리지

  1. 기본 기능: 브리지는 두 개 이상의 네트워크 세그먼트를 연결하고, MAC 주소를 기반으로 트래픽을 필터링 및 전달하는 기능을 가집니다.
  2. 장비 유형: 전통적인 브리지는 일반적으로 2개 또는 소수의 포트를 가지며, 주로 소규모 네트워크 환경에서 사용됩니다.
  3. 프로세싱 방식: 브리지는 소프트웨어 기반으로 패킷을 처리하며, 네트워크 트래픽을 관리하는데 중점을 둡니다.

스위치

  1. 기본 기능: 스위치는 여러 네트워크 세그먼트를 연결하며, 각각의 연결된 장치에 대해 전용 통신 채널을 제공합니다. 스위치 역시 MAC 주소를 기반으로 트래픽을 필터링하고 전달합니다.
  2. 장비 유형: 스위치는 일반적으로 더 많은 수의 포트를 가지고 있으며, 다양한 크기와 형태의 네트워크에 적용할 수 있습니다.
  3. 프로세싱 방식: 현대의 스위치는 주로 하드웨어 기반의 고속 처리를 사용하여 트래픽을 처리합니다. 이를 통해 높은 성능과 효율성을 제공합니다.

주요 차이점

  • 포트 수와 확장성: 스위치는 일반적으로 브리지보다 더 많은 포트 수를 가지며, 더 크고 복잡한 네트워크 환경에 적합합니다.
  • 처리 속도와 성능: 현대의 스위치는 브리지에 비해 더 빠른 데이터 처리 속도와 높은 성능을 제공합니다.
  • 사용 목적: 브리지는 주로 소규모 또는 단순한 네트워크에서 네트워크 세그먼트를 연결하는 데 사용되는 반면, 스위치는 다양한 크기의 네트워크에 걸쳐 보다 효율적인 트래픽 관리와 세분화된 네트워크 제어를 제공합니다.

최종적으로 보자면, 네트워크의 크기와 요구 사항에 따라 장치를 선택할 필요가 있습니다.

L3 스위치

L3 스위치는 기존에 2계층의 주소만 이용해서 동작하던 스위치에 IP 주소까지 사용가능하게 함으로써 등장한 스위치입니다.

L2 스위치는 플로우 테이블을 이용해서 MAC 주소로 소프트웨어적으로 포워딩을 수행했습니다.

L3 스위치의 필요성에 대해서 살펴봅시다.

초기에는 LAN 상에서 데이터를 전송하는 과정은 MAC 주소를 사용하는 것만으로 충분하였고, 라우터의 링크 인터페이스를 이용해서 서브넷으로 영역을 나누는 것은 VLAN 기술을 사용함으로써 문제를 해결할 수 있기 때문에 크게 문제가 되지 않았습니다.

하지만, VLAN 기술에는 치명적인 단점이 존재하는데 VLAN은 스위치의 포트를 이용해서 브로드캐스트 도메인(그룹)을 지정한 후 그룹 내에서 ARP나 DHCP를 사용하는 과정에서 발생하는 브로드캐스트의 영역을 좁혀주는 기능을 가지고 있습니다. 이로 인해 LAN 내부의 트래픽을 크게 줄여줄 수 있습니다.

하지만, 만약 하나의 스위치가 아닌 여러 스위치에 걸쳐서 브로드캐스트 도메인을 설정해야 되는 상황이 발생한다고 가정해보면, 해당 방식으로는 구현이 불가능 합니다.

따라서, VLAN Truncking을 이용하여 특수 포트를 설정하여 스위치끼리 연결을 함으로써 해당 문제를 해결하죠.

⚡️ VLAN 트렁킹 ⚡️

VLAN 트렁킹 기술은 특수 포트를 서로 다른 스위치끼리 연결함으로써 그룹영역을 확장할 수 있도록 해줍니다. 만약, LAN영역 내에서 L2 브로드캐스트를 수행하면 LAN 영역에 있는 모든 네트워크 장비에 브로드캐스트를 하게 되는데 이때 VLAN Truncking 기능이 탑재된 스위치는 해당 패킷을 특수 포트로 보내고 VLAN 태그를 헤더에 추가하게 됩니다. 연결되어 있는 다른 스위치로 패킷은 이동하게 되고 해당 태그를 보고 어느 그룹인지 식별을 한 후 해당 그룹에 속해있는 모든 호스트들에게 패킷을 전달하게 되면서 브로드캐스트 기능을 완벽히 수행하게 됩니다.

VLAN 기능을 좀 더 유심히 살펴보면 다음과 같은 문제점을 발견할 수 있습니다.

만약, VLAN 스위치를 이용하여 A그룹과 B그룹이 스위치 안의 영역에 존재한다고 해보자.

이때 A그룹에 속해있는 호스트가 B그룹으로 프레임을 전송하려고 하면 반드시 이 스위치를 거쳐야만 한다.

문제는 여기서 발생하는데, 하나의 네트워크 장비에서 포트 by 포트 이동은 불가능하다.

따라서 A그룹에서 B그룹으로 프레임을 전송하려면 해당 스위치의 외부 네트워크 장비를 사용해야 되는데, 선택지가 두 개 존재한다.

  1. 스위치
  2. 라우터

1번은 MAC 주소를 활용하는 것이고, 2번은 ip 주소를 활용하는 것이다.

여기서 스위치의 기본 동작중에 다음과 같은 동작이 있습니다.

  • 특정 MAC 주소를 가진 프레임이 인터페이스 x에 도달하는 상황에서 스위치 테이블에 해당 MAC 주소에 등록되어 있는 엔트리 인터페이스가 x로 설정되어 있는 경우, 프레임은 필터링을 하여 해당 패킷을 버려버립니다.

간단하게 말하자면, VLAN 스위치의 외부 스위치 입장에서 봤을 때 A그룹이나 B그룹 결국 같은 서브넷을 가진 하나의 그룹으로 취급하기 때문에 패킷을 VLAN 스위치에서 외부 스위치로 전송을 하는 것이 아니라 버려 버리는 것입니다.

따라서, 어쩔 수 없이 라우터를 사용해야 합니다.

라우터는 스위치보다 한 계층 위에서 동작하기 때문에 속도가 느리고, 무엇보다 비쌉니다.

이 문제를 해결해주는 것이 L3 스위치입니다.

설명이 길어졌는데, 이제 L3 스위치의 기능에 대해서 정리해보겠습니다.

L3 스위치의 기능

  1. 라우팅 기능: L3 스위치는 IP 주소를 기반으로 데이터를 라우팅할 수 있습니다. 이를 통해 다른 서브넷 또는 VLAN간의 통신이 가능해집니다.
  2. 고속 스위칭: L3 스위치는 레이어 2 스위치의 고속 스위칭 기능을 유지하면서 라우팅을 빠르게 수행할 수 있습니다.
  3. VLAN 지원: VLAN 간의 라우팅을 지원하여, 각 VLAN의 트래픽을 효율적으로 관리할 수 있습니다.
  4. 정적 및 동적 라우팅 프로토콜 지원: L3 스위치는 정적 라우팅 경로 설정과 동적 라우팅 프로토콜(예: OSPF)을 지원하여, 네트워크의 다양한 라우팅 요구 사항을 충족할 수 있습니다.

L3 스위치의 활용 사례는 다음과 같습니다.

L3 스위치의 활용 사례

  • Inter-VLAN 라우팅: L3 스위치는 VLAN 간 라우팅을 수행하여, 서로 다른 VLAN 간의 통신을 가능하게 합니다.
  • 소규모 네트워크 라우터 대체: 소규모 또는 중규모 네트워크에서 L3 스위치는 전통적인 라우터를 대체할 수 있으며, 더 높은 성능과 유연한 네트워크 처리를 제공합니다.
  • 성능 중심의 네트워크 환경: 고속 데이터 전송이 필요한 네트워크 환경에서 L3 스위치는 빠른 데이터 처리와 효율적인 트래픽 관리를 제공합니다.

마지막으로 L3 스위치와 라우터의 차이점까지 살펴보고 마무리하겠습니다.

먼저 라우터에 대해서 정리를 해보겠습니다.

라우터

  1. 기본 기능: 라우터는 서로 다른 네트워크서브넷 간의 트래픽을 라우팅하는 데 사용됩니다. 이는 IP 주소를 기반으로 패킷의 경로를 결정합니다.
  2. WAN 기능: 라우터는 일반적으로 광대역 연결이나 기업의 WAN 연결에 사용됩니다.
  3. 다양한 프로토콜 지원: 라우터는 다양한 네트워크 프로토콜을 지원하며, 보안, NAT, VPN 등의 고급 네트워크 기능을 제공할 수 있습니다.
  4. 인터넷 라우팅: 서로 다른 AS간의 트래픽을 라우팅하는데 중요한 역할을 합니다.

L3 스위치

  1. 기본 기능: L3 스위치는 전통적인 레이어 2 스위치 기능과 더불어 레이어3의 라우팅 기능을 제공합니다.
  2. 내부 네트워크 사용: L3 스위치는 주로 내부 네트워크, 특히 대규모 LAN 환경에서 사용됩니다. 이는 VLAN 간의 라우팅을 포함할 수 있습니다.
  3. 고속 스위칭: L3 스위치는 높은 처리 속도와 효율적인 스위칭 성능을 제공합니다. 이는 대규모 내부 네트워크에서 고속 데이터 전송에 적합합니다.
  4. 간소화된 라우팅: L3 스위치는 라우터보다 간소화된 라우팅 기능을 제공하지만, WAN 연결이나 복잡한 라우팅 프로토콜을 다루는 데는 한계가 있습니다.

주요 차이점은 다음과 같습니다.

주요 차이점

  • 사용 목적: 라우터는 주로 서로 다른 네트워크 간의 연결 및 외부 인터넷 연결에 사용되며, L3 스위치는 주로 대규모 내부 네트워크의 효율적인 데이터 관리 및 라우팅에 사용됩니다. -> 규모의 차이

  • 기능적 복잡성: 라우터는 더 복잡한 네트워크 환경과 다양한 프로토콜을 처리할 수 있는 반면, L3 스위치는 내부 네트워크의 고속 라우팅 및 스위칭에 최적화되어 있습니다. -> L3 스위치는 결국 L2 스위치에 라우터의 라우팅 기능이 추가된 것이다.

  • 성능과 효율성: L3 스위치는 라우터에 비해 일반적으로 더 빠른 처리 속도와 성능을 제공합니다. 하지만 라우터는 WAN 연결과 같은 더 복잡한 네트워크 기능을 수행할 수 있습니다. -> L3는 빠른 속도를 자랑하지만 복잡한 네트워크 기능을 수행할 수는 없습니다.

L7 스위치

L7 스위치는 OSI 7계층 애플리케이션 레이어에서 동작하는 것으로 이를테면 이메일 제목이나 문자열을 보고 내용을 파악하거나 HTTP의 URL 또는 FTP의 파일명, 쿠키 정보, 특정 바이러스 패턴등을 분석해서 보안에 더욱 유리하고 더욱 정교한 로드밸런싱이 가능해집니다.

L7 스위치에 대해서 이해하기 위해서 먼저, L4 스위치에 대해서 살펴볼 필요가 있습니다. L7 스위치는 L4 스위치의 기능에서 패킷의 내용을 확인해서 좀 더 인텔리전스 한 결정을 내릴 수 있도록 설계가 된 것이기 때문입니다.

아까, L3 스위치는 L2 스위치의 기능에 라우터의 라우팅 기능(IP 주소 처리)를 추가한 것이라고 말했습니다.

L4 스위치는 L3 스위치에서 4계층 정보를 이용해서 서버나 네트워크 트래픽의 트래픽을 로드밸런싱하는 스위치입니다. TCP, UDP 등의 헤더를 보고 그게 FTP, SMTP, HTTP 어느 프로토콜인지 확인해 스위칭의 우선순위를 판단합니다.

VLAN, 그룹화, 부하 분산과 같은 기능들을 수행한다고 볼 수 있습니다. (추가적으로 NAT 기능까지 동작 가능한 것으로 보입니다.)

L7 스위치에서 좀 더 알아볼 것은 데이터의 내용까지 확인해야 하기 때문에 생기는 특징으로 송신자와 3-way handshake를 맺어야 한다는 점입니다.

이 과정을 통해서 사용자가 보낸 데이터의 내용을 확인할 수 있고 빠른 패킷 전송을 위해 클라이언트 측과 맺은 연결을 적절히 관리해야 합니다.(Keep-Alive 또는 지속 커넥션)

LAN과 서브넷 그리고 AS

LAN과 서브넷 그리고 AS 용어는 비슷해 보인다. 정확히 개념을 잡고 어떤 상황에서 어떤 용어를 사용해야 될 지 잡고 갈 필요성이 있어보입니다.

각각 먼저 설명을 정리해보도록 하겠습니다.

LAN(Local Area Network)

  1. 정의: LAN은 일반적으로 한 건물, 캠퍼스, 사무실과 같이 제한된 지역 내에서 컴퓨터 및 기타 장치들을 연결하는 네트워크입니다.
  2. 장비: LAN에서는 주로 스위치가 사용됩니다. 스위치는 LAN 내에서 여러 장치들을 연결하고 데이터 패킷을 효율적으로 전달합니다.
  3. VLAN 사용: VLAN은 하나의 물리적 LAN을 여러 논리적 네트워크로 분할할 수 있게 해줍니다. 이를 통해 네트워크 관리와 보안을 개선할 수 있습니다.

서브넷(Subnet)

  1. 정의: 서브넷은 IP 네트워크를 더 작은 부분으로 나누는 방법입니다. 각 서브넷은 고유한 IP 주소 범위를 가지며, 네트워크 효율성을 높이고 관리를 용이하게 합니다.
  2. 라우터와의 관계: 서브넷 간의 통신을 위해 라우터가 사용됩니다. 라우터는 서로 다른 서브넷(또는 LAN) 사이에서 트래픽을 라우팅하며, 네트워크 경계를 정의합니다.
  3. VLAN과 서브넷: VLAN은 서브넷팅의 물리적 구현을 제공할 수 있습니다. 즉, VLAN을 통해 서로 다른 서브넷을 논리적으로 분리할 수 있습니다.

AS(Autonomous System)

  1. 정의: AS는 인터넷에서 독립적인 라우팅 정책을 가진 하나의 네트워크 또는 네트워크 그룹입니다. 각 AS는 고유한 AS 번호를 가지고 있으며, 인터넷 상의 독립적인 라우팅 단위로 작동합니다.
  2. BGP: AS는 BGP(Border Gateway Protocol)를 사용하여 다른 AS와 라우팅 정보를 교환합니다.

이제 차이점과 연관성에 대해서 살펴봅시다.

차이점과 연관성

  • 범위와 목적: LAN은 로컬 영역 네트워크를, 서브넷은 IP 네트워크의 논리적 분할을, AS는 인터넷 상의 큰 라우팅 정책 단위를 나타냅니다.
  • 장비와 기술: LAN에서는 스위치와 VLAN이 중요한 역할을 하고, 서브넷에서는 라우터가 중요한 역할을 하며, AS에서는 BGP와 라우터가 중요합니다.
  • 네트워크 관리와 구성: 각각의 개념은 네트워크의 효율적인 관리와 구성에 기여합니다. LAN과 VLAN은 로컬 네트워크의 세분화와 관리에, 서브넷은 IP 주소 관리와 트래픽 흐름 제어에, AS는 인터넷 상의 라우팅 정책과 대규모 네트워크 구성에 기여합니다.

그렇다면 여기서 생기는 궁금증이 있습니다.

❓ VLAN을 사용해서 물리적 LAN을 논리적 LAN으로 나눌 경우, 논리적 LAN은 각자의 서브넷을 가지게 되는 것 아닌가?

위에서 서브넷의 경우 라우터와 밀접한 관련이 있다고 했습니다. 물리적 LAN을 VLAN을 사용해서 논리적 LAN으로 나눌 경우에 이 구분은 IP 주소를 통해서 이루어 질 것 입니다.
또한 논리적 LAN들은 각자의 서브넷을 가지게 됩니다.
서브넷은 라우터와 밀접한 관련이 있다고 설명을 적어놨지만, 이 말 뜻은 정확히 말하자면 라우터가 아닌 L3 스위치로도 VLAN의 기술 구현이 가능하기 때문에 IP 주소와 밀접한 관련이 있다는 의미입니다.

답변 정리 및 개념 확장

  • 컴퓨터 네트워크란?

노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망 중 하나입니다.

즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것을 의미합니다.

기존의 답변에서 크게 벗어나지 않았다고 느껴서 넘어가도록 하겠습니다.

  • 컴퓨터 네트워크에서 데이터를 전송하는 방식에 대해 설명해주세요.

컴퓨터 네트워크에서 데이터 전송은 여러 계층과 프로토콜을 통해 이루어집니다. 일반적으로 데이터 전송은 OSI 7계층 구조를 따르며, 각 계층은 특정한 기능과 책임을 가집니다.

기존의 답변을 보았을 때, TCP와 UDP를 언급하면서 이야기를 했는데 이와 같이 답변을 한 이유는 여기서 말하는 데이터는 응용 계층에서 사용하는 데이터를 전부 엮어서 하나의 데이터로 보고 그것을 4계층으로 넘겨줄 때 데이터를 넘겨준다고 말하는데 그러한 관점에서 4계층에 대한 언급을 했었습니다.

TCP와 UDP는 전송 방식이라는 표현보다는 전송 계층에서 사용되는 프로토콜이라고 볼 수 있습니다. 따라서 데이터 전송 방식이라고 말했을 때는 OSI 7계층에 대한 얘기가 나오는 것이 맞고 계층화된 구조에서 각 계층마다 목적성에 맞는 프로토콜을 사용한다는 내용이 나오는 것이 올바른 것 같습니다.

  • ⭐️ 프로토콜에 대해서 설명해주세요.

기본적으로 정의되는 프로토콜의 정의는 다음과 같습니다.

프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.

사실 이 말 뜻을 풀어서 생각하면 메시지를 주고 받는 과정에서 통신 규약 및 약속으로 행동을 정의하여 서로간의 송수신 절차의 편의성을 제공해주는 것입니다.

기존의 답변도 충분히 프로토콜에 대한 설명으로 적합하다고 판단하여 넘어가도록 하겠습니다.

  • ⭐️ OSI 7 Layer에 대해서 설명해주세요.

이것 또한 기존의 설명이 적합하다고 판단하여 넘어가도록 하겠습니다.

여기서 조금만 더 설명을 붙이자면, 세션 계층과 표현 계층에 대한 역할을 적어놓고 가겠습니다.

  • 세션 계층(Session Layer): 통신 세션을 구성, 관리, 종료하는 역할을 합니다. 이 계층은 통신의 시작과 끝을 담당합니다.
  • 표현 계층(Presiontation Layer): 데이터 형식 변환, 암호화 및 압축을 담당합니다. 이 계층은 데이터가 응용 계층과 네트워크 계층 사이에서 올바르게 번역되도록 합니다.

이러한 역할을 수행을 하는데, OSI 7계층이 아닌 TCP/IP 5계층은 이 두 계층이 빠진 나머지 계층들로 구성되어 있습니다.

TCP/IP 모델은 OSI 7계층 모델을 더 실용적이고 간결하게 표현한 것으로, 인터넷 발달과 함께 널리 퍼지게 되었습니다.

  • ⭐️ TCP/IP에 대해서 설명해주세요

위에서도 잠깐 정리했지만, TCP/IP는 OSI 7계층을 더 실용적이고 간결하게 표현한 것입니다.

TCP/IP 모델은 인터넷의 기본 프로토콜 스택으로 현재 인터넷 표준으로 자리 잡았습니다. 5계층으로 이루어진 것이 특징입니다.

TCP와 IP에 대한 설명으로 답변을 했는데, 그것보다는 TCP/IP 모델에 대한 언급을 하면서 OSI 7계층에서 빠진 2계층에 대한 언급을 하며 답변을 하는 것이 올바른 것 같습니다.

  • OSI 7 Layer, TCP/IP 처럼 프로토콜을 계층화하는 이유가 뭘까요?

해당 답변은 적합하다고 판단합니다.

좀 더 이유를 덧붙이자면 다음과 같은 것들이 존재합니다.

  • 표준화: 계층화는 네트워크 장비와 프로토콜의 표준화를 촉진합니다. 각 계층은 특정 기능과 표준을 따르므로, 다양한 제조사의 장비와 기술이 서로 호환될 수 있습니다.
  • 개발 및 디버깅 용이성: 네트워크 시스템을 개발하고 디버깅하는 과정이 계층화를 통해 단순화됩니다. 개발자는 특정 계층의 기능에만 집중할 수 있으며, 문제 발생 시 해당 계층만을 검토하면 됩니다.
  • 모듈식 접근: 계층화는 모듈식 접근을 가능하게 하여, 네트워크 설계와 구현을 더 쉽고 효율적으로 만듭니다.

이러한 특징들은 MVC 방식이나 관심사 분리와 같은 것들을 통해 가지게 되는 이점과 유사합니다.

  • 컴퓨터 네트워크에서 캡슐화와 비캡슐화에 대해서 설명해주세요

캡슐화와 비캡슐화는 OSI 7계층 모델의 모든 계층에서 발생하며, 특히 3계층과 2계층 그리고 4계층에서도 중요한 역할을 합니다.

캡슐화(Encapsulation)

  • 정의: 캡슐화는 데이터가 네트워크의 각 계층을 통과하면서 해당 계층의 헤더(및 때때로 트레일러) 정보가 추가되는 과정입니다.

비캡슐화(Decapsulation)

  • 정의: 비캡슐화는 데이터가 목적지의 네트워크 계층을 통과하면서 각 계층의 헤더가 제거되는 과정입니다.

캡슐화와 비캡슐화가 가지는 중요성은 다음과 같습니다.

캡슐화와 비캡슐화의 중요성

  • 독립성 보장: 각 계층은 독립적으로 작동하며, 캡슐화와 비캡슐화를 통해 각 계층 간의 인터페이스를 명확하게 정의합니다.
  • 유연성 및 확장성: 캡슐화는 네트워크의 다양한 부분에서 다른 기술이나 프로토콜을 사용할 수 있게 해주며, 비캡슐화는 데이터의 원할한 해석과 처리를 가능하게 해줍니다.

위에서 언급한 답변도 나쁘지 않지만, 잘못된 개념이 있다면 OSI 7계층 모든 계층에서 발생한다는 점이고, 유연성 및 확장성은 계층간의 분리와 캡슐화, 비캡슐화 개념이 같이 적용되면서 가지게 되는 이점으로 생각할 수 있을 것 같습니다.

  • NIC, 리피터, 리피터 허브에 대해서 설명해주세요.

해당 설명은 기본적으로 나쁘지 않다고 생각합니다.

하지만, 몇가지 수정해야 되는 점들이 존재합니다.

먼저, 리피터가 작동하는 방식에서 케이블로 신호를 보내기 위해서 아날로그 신호로 변환을 한 후 증폭하는 과정을 거친다고 설명을 했습니다.

하지만, 현대의 네트워크에서 리피터는 디지털 신호를 그대로 증폭합니다. 이전의 아날로그 신호 전송 시스템과 다르게, 현대의 이더넷 네트워크는 주로 디지털 신호를 사용합니다.

또한 허브에 대한 언급을 할 때 다른 모든 포트로 브로드캐스트하는 특징으로 인해서 Collsion Domain이 증가한다는 점을 언급하는 것도 나쁘지 않아 보입니다.

  • 브리지에 대해서 설명해주세요.

해당 내용은 부족한 개념에 대한 설명에서 충분히 언급을 해놨습니다.

간단하게만 여기서 요약을 해보고 넘어가자면, 결국 브리지는 허브의 상위 호환 개념으로 2계층을 기반으로 동작을 하며 브리지를 사용함으로써 영역을 나누어서 Collision Domain의 발생을 피하기 위함에 있습니다.

2계층을 사용한다는 점에서 스위치와 비슷하지만 스위치보다 소규모로 영역에서 동작을 하며, 소프트웨어적으로 동작하는 점에서 스위치보다 느린 속도로 동작합니다. 또한 스위치는 포트에 연결되어 있는 링크마다 서로 다른 속도를 지원할 수 있지만, 브리지는 모두 같은 속도를 지원합니다.

요즘에는 브리지보다는 스위치를 많이 사용한다고 합니다.

  • L2 스위치에 대해서 설명해주세요.

해당 답변은 나쁘지 않아 보입니다.

여기서는 개념 확장을 위해서 좀 더 구체적으로 설명을 해보도록 하겠습니다.

L2 스위치는 기본적으로 MAC 주소를 기반으로 동작을 합니다.

각 스위치는 플로우 테이블을 가지고 있고 해당 플로우 테이블 업데이트는 현대의 네트워크에서는 중앙 제어 장치인 SDN 컨트롤러가 담당하고 있습니다. 이때 오픈플로우 프로토콜을 사용하게 됩니다.

또한 2계층에서 동작하는 중요한 프로토콜로는 ARP가 있는데 이것들은 LAN 영역 혹은 VLAN 영역에서 브로드캐스트 하면서 동작하는 것들로 ARP는 IP 주소와 MAC 주소를 변환해주는 중요한 임무를 가지고 있습니다.

ARP는 각 호스트가 송신 호스트의 MAC 주소를 받아오기 위해 사용하고, ARP 모듈이 이 작업을 수행해 줍니다. 이 작업이 수행되는 동안 각 호스트의 ARP 테이블 업데이트는 물론, 스위치의 스위칭 테이블 또한 업데이트가 이루어질 수 있기 때문에 데이터 전송 과정에서 각 호스트가 어느 링크 인터페이스와 연결되어 있는지 스위치는 알 수 밖에 없습니다.

ARP 수행 과정에서 만약 수신자의 호스트가 서브넷 외부에 있다면 디폴트 게이트웨이를 이용하여 MAC 주소를 받아오는 과정을 거칩니다.(서브넷 안에 여러 라우터가 있더라도 해당 동작은 Fix)

L2 스위치로 들어오는 데이터들의 속도의 차이가 발생할 수 있기 때문에 프레임은 7바이트로 구성된 프리앰블이라는 헤더 필드를 가지고 있고, VLAN을 수행하는 경우에는 VLAN 스위치에서 VLAN 태그(tag)를 헤더필드에 추가하고 삭제하기도 합니다.

보통 스위치가 있는 영역은 LAN이고, LAN의 라우팅 알고리즘은 Link-State Algorithm으로 대표적으로 다익스트라 알고리즘이 SDN의 제어 응용에서 이루어 집니다.

마지막으로 프레임의 오류 검출은 FCS(Frame Check Sequence)로 CRC를 이용하고 이것을 사용해서 오류 검출을 수행합니다.

  • 라우터에 대해서 설명해주세요.

위에서 답변한 설명들로 충분히 라우터에 대한 설명이 되었다고 판단합니다.

여기서 몇가지 개념들만 더 확장해서 적용해보자면 다음과 같은 것들이 언급될 수 있습니다.

  • 최장 프리픽스 매칭 규칙: 라우터는 IP 주소를 기반으로 동작하고 이것을 링크 인터페이스와 연결시켜주는 포워딩 테이블을 사용하기 때문에 CIDR 주소체계를 가지고 있는 IP 주소의 서브넷을 이용하여 포워딩 작업을 수행할 수 있습니다.
  • 패킷 손실: 4계층에서 주로 언급되는 패킷 손실은 라우터와 스위치에서 발생을 하는데 여기서 주 요인이 바로 큐 오버플로우입니다. 이외에도 TTL, 방화벽, 오류 검출과 같은 동작으로 인해서 패킷이 손실되는 상황이 발생합니다.
  • 변환기: 초기에는 메모리 전송 방식을 사용했지만 점차적으로 버스를 사용하는 방식으로 바뀌었고 현대에서는 여러 버스를 사용하는 크로스바 방식을 구현하여 사용합니다.
  • 패킷 스케줄링: 큐로 들어오는 패킷들을 어떻게 처리할지 정하는 방법으로 FIFO, 우선순위 큐잉, Round Robin 과 WFQ(Weighted Fair Queuing)과 같은 기술들이 언급됩니다.
  • 주소 체계: 과거에는 클래스 주소 체계를 사용했지만 현재는 CIDR 방식을 이용합니다.
  • IPv6와 NAT: IPv4의 주소만으로 주소가 부족해지며 이때 나온 것이 NAT(Network Address Transform)이고 하나의 공인 IP 주소를 가진 라우터가 사설 네트워크망을 형성하게 해주는 장치입니다. 이것을 이용하여 보안 및 주소 사용에 있어서 이점을 가져가게 됩니다. 하지만, 이것만으로는 IPv4의 부족함을 완전히 대체하기 힘들고 그러기 위해서 나온 것이 IPv6입니다. IPv6는 IPv4에서 사용하던 불필요한 헤더 필드(옵션, 헤더필드, fragment와 관련된 필드, 체크섬)을 삭제하여 효율을 높였습니다.

이정도 정리를 할 수 있을 것 같습니다.

  • L3 스위치에 대해서 설명해주세요.
  • L7 스위치에 대해서 설명해주세요.

해당 개념들은 위에서 자세하게 다루었으므로 넘어가도록 하겠습니다.

  • LAN과 WAN에 대해서 설명해주세요.

LAN은 소규모 네트워크의 영역을 의미하는 것으로 주로 한 건물 혹은 캠퍼스와 같은 소유자 네트워크 망을 지칭합니다.

WAN은 LAN보다 더 큰 규모의 네트워크 영역을 의미하는 것으로 도시 혹은 국가 및 대륙간의 네트워크 통신망을 의미합니다.

위의 답변에서 LAN과 WAN의 답변으로 서브넷을 언급하였는데 이것은 옳지 않은 접근이라고 판단합니다. LAN과 WAN은 규모의 관점에서 보는 네트워크 영역이고 서브넷은 IP 주소의 관점에서 보는 영역을 의미합니다. 비슷하지만 서로 다른 개념을 적용하고 있으므로 엮어가며 개념을 설명하는 것은 좋지 않은 것 같습니다.

답변 추상화 시키기

  • 컴퓨터 네트워크는 무엇인가요?

컴퓨터 네트워크는 모든 노드들이 자원을 공유할 수 있도록 구축된 통신망입니다. 즉, 여러 호스트들이 데이터를 주고 받을 수 있는 것을 목표로 설계되었습니다.

  • 컴퓨터 네트워크에서 데이터를 전송하는 방식에 대해 설명해주세요.

데이터를 전송하는 방식에는 두 가지 모델로 구분됩니다. OSI 7계층을 이용하거나 TCP/IP 방식이 있습니다.

OSI 7계층에는 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층으로 구성되어 있고 여기서 표현 계층과 세션 계층을 빼서 좀 더 실용적이고 간단한 형태로 만들어진 모델이 TCP/IP 입니다.

  • ⭐️ 프로토콜에 대해서 설명해주세요.

프로토콜은 송수신자들이 메시지를 주고 받는 과정을 특정 규약 및 약속을 통해 행동을 규제함으로써 서로 간에 통신을 원할하게 수행할 수 있도록 해줍니다.

  • ⭐️ OSI 7 Layer에 대해서 설명해주세요.

OSI 7계층은 데이터를 송수신할 때 사용하는 모델 중 하나입니다.

7계층은 다음과 같은 구조로 이루어져 있습니다.

  1. 물리 계층
  2. 데이터 링크 계층
  3. 네트워크 계층
  4. 트랜스포트 계층
  5. 세션 계층
  6. 표현 계층
  7. 애플리케이션 계층

계층별로 역할을 분리하여 수행함으로써 서로에 대한 독립성과 확장성을 보장해주고 오류 확산을 막아주는 효과를 가져다 줍니다.

  • ⭐️ TCP/IP에 대해서 설명해주세요.

TCP/IP는 OSI 7계층을 좀 더 간단하고 실용적으로 만든 모델입니다.

현대의 네트워크에서 TCP/IP는 표준 모델로 사용되고 있습니다.

다음과 같은 계층으로 이루어져 있습니다.

  1. 애플리케이션 계층
  2. 트랜스포트 계층
  3. 네트워크 계층
  4. 데이터 링크 계층
  5. 물리 계층

네트워크의 발전으로 해당 모델을 사용할 수 있게 되었습니다.

  • OSI 7 Layer, TCP/IP 처럼 프로토콜을 계층화하는 이유가 뭘까요?

프로토콜을 계층화 시키는 이유는 다음과 같습니다.

먼저 확장성을 보장해줍니다. 역할을 분리하여 수행하고 독립적으로 모듈을 구성함으로써 각자의 기능을 확장하기 쉽게 해줍니다.

또한 오류 확산을 방지해줍니다. 각 계층에서 발생한 오류를 각 계층에서 확인하여 신속하게 처리할 수 있도록 도와줍니다.

이 외에도 디버깅을 하기 쉽게 해주고, 각 계층에서 여러 프로토콜을 사용할 수 있도록 해줍니다.

  • 컴퓨터 네트워크에서 캡슐화와 비캡슐화에 대해서 설명해주세요.

캡슐화와 비캡슐화는 OSI 7계층에서 전반적으로 사용되는 기술입니다.

캡슐화는 상위 계층으로부터 받은 데이터에 하위 계층의 헤더를 붙여서 만들어 줍니다.

비캡슐화는 하위 계층에서 헤더를 제거하여 상위 계층으로 전달해주는 작업을 수행합니다.

이렇게 캡슐화와 비캡슐화를 사용하면서 각 계층간의 불필요한 접근을 막아 서로에 대한 결합성을 낮춰 효율성과 유연성을 높여줍니다.

  • NIC, 리피터, 리피터 허브에 대해서 설명해주세요.

NIC는 네트워크 인터페이스 카드로 어댑터라고도 불립니다. 해당 장치는 고유한 MAC 주소를 가지고 있습니다. NIC은 2계층에서 작동합니다.

리피터는 들어온 신호를 증폭시켜서 더 멀리까지 전달할 수 있는 기능을 수행합니다. 요즘은 데이터 신호의 형태를 사용하기 때문에 이전과는 다르게 들어온 데이터 신호를 그대로 증폭하여 동작을 수행합니다.

리피터 허브는 리피터와 허브를 결합한 장치로 특정 포트로 들어온 데이터 신호를 증폭시켜서 다른 모든 포트로 전부 내보내는 작업을 수행합니다.

  • 브리지에 대해서 설명해주세요.

브리지는 2계층에서 동작하는 패킷 전송 장치로 허브에 단점을 보완하기 위해 등장했습니다. 허브는 Collsion Domain의 발생이 일어나는데 이것을 해결하기 위해 브리지를 사용하고 브리지는 영역을 나눠 영역간의 데이터 전송을 할 때 MAC 주소를 이용하여 동작합니다.

  • L2 스위치에 대해서 설명해주세요.

L2 스위치는 2계층에서 동작하는 패킷 전송 장치로 브리지와 유사하지만 좀 더 넓은 규모에서 사용됩니다.

2계층에서 동작하기 때문에 MAC 주소를 기반으로 동작하고 MAC 주소와 링크 인터페이스로 구성된 플로우 테이블을 사용합니다.

플로우 테이블은 SDN 환경에서 SDN 컨트롤러에 의해 업데이트 작업이 수행되므로 L2 스위치는 패킷을 입력 포트로 받아 출력 포트로 전송해주는 작업에 집중하여 하드웨어적으로 빠르게 동작할 수 있습니다.

  • 라우터에 대해서 설명해주세요.

라우터는 3계층에서 동작하는 패킷 전송 장치로 주로 대규모 네트워크 간에 통신 연결을 위해서 사용됩니다. 3계층에서 동작하기 때문에 IP 주소를 기반으로 동작하고 라우팅 테이블을 가지고 있으며 여기서 파생되는 포워딩 테이블을 통해서 패킷들을 전송해주는 작업을 수행합니다.

라우터가 제공하는 기능으로 VPN이나 NAT 기능 등이 있습니다.

  • L3 스위치에 대해서 설명해주세요.

L3 스위치는 기존에 있던 L2 스위치에 IP 주소를 기반으로 동작하는 라우팅 기능이 추가된 형태의 스위치를 의미합니다.

라우터와 유사해 보이지만 라우터보다는 더 빠른 속도의 패킷 포워딩 작업을 수행할 수 있지만 복잡한 기능들은 수행할 수 없습니다.

L3 스위치를 사용할 수 있게 되면서 VLAN에서 VLAN 트렁킹 기능을 사용하기 위해서 필요한 라우터를 대체할 수 있게 되었습니다.

  • L7 스위치에 대해서 설명해주세요.

L7 스위치는 L4 스위치에서 패킷 데이터를 확인하여 로드 밸런싱 하는 작업을 할 수 있게 된 장치입니다. L4 스위치는 4계층 헤더 정보를 이용하여 프로토콜마다 우선순위를 매겨서 동작하는데 L7 스위치는 여기에 추가적으로 데이터의 내용까지 확인하여 그것을 토대로 동작할 수 있습니다.

L7 스위치는 데이터의 내용을 확인해야 하기 때문에 송신자와 3-Way handshake를 맺는 과정이 필요하며 빠른 전송을 위해서 지속적인 연결을 고려해야 합니다.

  • LAN과 WAN에 대해서 설명해주세요.

LAN과 WAN은 규모에 따라 네트워크 망을 구분하는 용어입니다.

먼저, LAN은 소규모 예를 들어 한 건물 혹은 캠퍼스와 같은 영역에서 사용하는 네트워크 영역을 의미합니다.

반면에 WAN은 대규모 예를 들어 도시 혹은 국가, 대륙간의 네트워크 연결에 사용되는 네트워크 영역을 의미합니다.

참고한 자료

  • 컴퓨터 네트워크 - 하향식 접근
  • 성공과 실패를 결정하는 1%의 네트워크 원리
profile
개발정리블로그

0개의 댓글