외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 4기

컴퓨터 네트워크 1주차 스터디 정리

dohyeon2 2024. 1. 8. 14:26

이번에 좋은 기회로 "CS 면접 끝장내기 - 컴퓨터 네트워크 4기" 스터디에 참여하게 되었습니다. 앞으로 5주동안 실제 개발자 면접에 자주 나오는 질문에 답변하기 위해 자기주도적으로 학습하며 "알고있는 내용을 조리있게 설명하는 능력"과 "CS 지식에 대한 기본기"를 다져보고자 합니다.


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

더보기

컴퓨터 네트워크란 서로 데이터를 교환하고 리소스를 공유할 수 있는 상호 연결된 컴퓨팅 디바이스의 모음을 말합니다. 이러한 디바이스들은 프로토콜이라고 하는 통신규약에 기반하여 유선 또는 무선으로 데이터를 전송합니다.

 

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

더보기

컴퓨터 네트워크에서 데이터를 전송하는 방식은 크게 "회선교환 방식"과 "패킷 교환 방식" 2가지로 나뉩니다.

현재는 데이터 회선을 점유하여 대역폭 낭비가 발생하는 회선교환 방식보다는 패킷 교환 방식을 주로 사용합니다.

간략한 순서는 다음과 같습니다.

  • 패킷화: 데이터를 패킷이라 부르는 작은 단위로 분할
    (패킷에는 해당 패킷이 어떤 데이터의 몇번째 패킷인지, 송신 IP, 수신 IP, 포트 등 전송에 필요한 데이터를 헤더에 담고있습니다)
  • 라우팅: 각 패킷을 최적경로를 통해 수신 컴퓨터로 전달
    (이때 최적경로는 단순하게 거리뿐만 아니라, 망의 혼잡도(대역폭 사용율), 연결상태 등에 따라 그때그때 달라지기 때문에 경로는 수시로 변경될 수 있습니다. 따라서 특정한 데이터가 100개의 패킷으로 분할되어 전송된다면, 100개의 패킷들은 라우터에 의해 서로다른 경로로 전송될 수 있고, 일정하지 않은 순서로 목적지에 도착하게 됩니다.)
  • 복원: 수신 컴퓨터에서 원 데이터로 복원
    (일정하지 않은 순서로 수신된 패킷들은 패킷에 저장된 헤더정보를 통해 어떤 데이터의 몇번째 패킷인지 알게되고 원 데이터 형태로 복원하게 됩니다.)

패킷 교환 방식은 필요할 때 필요한 만큼만 회선을 이용하기 때문에 회선 교환 방식에 비해 효율적으로 데이터를 주고받을 수 있습니다. 또한 전송중에 패킷이 손상되더라도 해당 패킷만 재전송하면 되기 때문에 복구가 간편합니다. 이러한 이유 때문에 요즘은 데이터 전송에서 패킷 교환 방식을 주로 사용합니다. 

 

Reference

 

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

더보기

프로토콜이란 컴퓨터나 원거리 통신 장비 사이에서 데이터를 주고받을 때, 수신자와 송신자가 서로 동일한 내용을 주고받을 수 있도록 하는 일종의 통신 규약입니다. 예를들어 서로 다른 나라사람이 각자의 언어로 이야기하면 의사소통이 불가능하지만, 서로 알고있는 공통의 언어(ex 영어)로 이야기하면 의사소통이 가능합니다. 이와 마찬가지로 컴퓨터끼리 데이터를 주고 받을 때 서로 알고있는 공통의 언어를 공식화 한것을 프로토콜이라고 합니다.

 

Reference

 

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

더보기

OSI 7 Layer는 네트워크에서 통신이 일어나는 과정을 7개의 추상적인 계층으로 나눈 것을 말합니다. 

출처: 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p14

가장 상위 계층부터 설명드리면

  • 7계층(응용 계층)은 사용자 또는 애플리케이션이 네트워크에 접근할 수 있게 해주는 기능을 합니다. UI를 제공하며, 사용자에게 보이는 유일한 계층입니다. 예를들어, 메일전송 or 인터넷 접속등의 동작이 7계층에서 일어납니다.
  • 6계층(표현 계층)은 데이터를 애플리케이션 계층에서 사용하는 형태로 변환해주는 기능을 합니다. 인코딩이나 디코딩 등의 동작이 이루어집니다. 문자열을 ASCII 코드로 변환해주는 동작을 예로 들 수 있습니다.
  • 5계층(세션 계층)은 네트워크상 양쪽 연결을 관리하고, 연결을 지속시켜주는 계층입니다. 주로 TCP/IP 세션을 만들고 유지하며, 세션이 종료되거나 전송이 중단될 시 복구해주는 기능을 합니다.
  • 4계층(전송 계층)은 데이터를 전송하고, 전송 속도를 조절하며 오류가 발생된 부분을 복구하는 기능을 합니다. 
  • 3계층(네트워크 계층)은 패킷을 전달할 최적의 경로를 선택하고, 수신지의 주소를 정한 뒤, 경로에 따라 패킷을 전달해 주는 기능을 합니다. 이 계층에서 쓰이는 장비는 라우터, L3 스위치 등이 있습니다.
  • 2계층(데이터링크 계층)은 데이터가 무엇인지, 어떤 에러가 있는지 검사하여 물리 계층의 신뢰성을 확보하는 기능을 합니다. 이 계층에서 쓰이는 장비는 브릿지와 L2 스위치 등이 있습니다.
  • 1계층(물리 계층)은 디지털 데이터를 물리적 전송 매체로 보내기 위한 변환/변조 처리를 합니다. 이때, 단지 데이터를 전달만 할 뿐 전송하거나 받으려는 데이터가 무엇인지, 어떤 에러가 있는지는 전혀 신경쓰지 않습니다. 이 계층에서 쓰이는 장비는 통신케이블, 리피터, 리피터 허브 등이 있습니다.

Reference

 

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

더보기

TCP/IP는 다른말로 인터넷 프로토콜 스위트라고도 하는데, 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음입니다. TCP/IP는 크게 TCP와 IP 두가지 프로토콜로 이루어져 있습니다.

TCP는 노드간에 패킷을 안정적으로, 순서대로, 에러 없이 교환할 수 있도록 만들어진 통신규약을 말하고, IP는 노드간에 데이터를 주고받을 때 각 노드를 식별할 수 있도록 주소를 숫자로 정의한 통신규약입니다. IP는 TCP와 달리 데이터의 재조합이나 손실여부 확인이 불가능하며, 단지 데이터를 전달하는 역할만을 담당합니다.

 

출처: 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p13

 

예상 꼬리질문1 - TCP는 어떤 방식으로 패킷을 안정적으로 교환할 수 있도록 하나요?

: 송신자의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 흐름제어 기법을 활용하거나,

네트워크 내의 패킷 수가 넘쳐 네트워크를 혼잡하지 않도록 하는 혼잡 제어 기법, 송신 측에서 보낸 패킷을 수신측에서 받지 못하면 재전송하는 등의 방식을 활용하여 패킷을 안정적으로 교환할 수 있도록 합니다.

 

예상 꼬리질문2 - TCP의 단점은 뭐가 있나요?

: 먼저 1:1 통신만 가능하고, UDP와 같이 비연결 지향형 프로토콜에 비해 전송속도가 떨어진다는 단점이 있습니다. 그럼에도 TCP를 주로 사용하는 이유는 데이터 전송의 신뢰성을 보장하기 때문입니다.

 

Reference

 

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

더보기

통신이 일어나는 과정을 단계별로 파악할 수 있기 때문입니다. 계층화를 하면 데이터의 흐름을 한 눈에 알아보기 쉽고, 각 단계중 특정한 곳에 이상이 생기면 다른 단계의 장비나 소프트웨어를 건드리지 않고 이상이 생긴 단계만 살펴보면 되서 시간과 노력을 절약할 수 있습니다.

 

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

더보기

송신 단말은 먼저 애플리케이션 계층에서 데이터에 헤더를 붙여 PDU(Protocol Data Unit)로 만듭니다. 그런 다음 하위 계층으로 전달합니다. 이때, 헤더를 추가하는 행위를 캡슐화라고 합니다. 수신 단말은 최하위 계층에서 PDU로부터 헤더를 제거하고 데이터만을 상위 계층으로 전달합니다. 이때, 헤더를 제거하는 행위를 비캡슐화라고 합니다.

 

예상 꼬리질문1 - 캡슐화를 하는 이유가 뭔가요?

: 수신 단말의 동일 계층에서 헤더정보를 바탕으로 데이터를 복원하기 위해 사용합니다.

 

Reference

  • 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p19

 

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

더보기

NIC,리피터,리피터 허브는 물리 계층에서 동작하는 네트워크 기기입니다. 주로 패킷을 광 신호/전기 신호로 변환하거나 전파로 변조하는 역할을 수행합니다. 

  • NIC(Network Interface Card): PC나 서버 등 컴퓨터를 네트워크에 연결하기 위해 필요한 하드웨어입니다. PC나 서버, 스마트폰 등 모든 네트워크 단말은 애플리케이션과 운영체제가 처리한 패킷을 NIC를 이용해 LAN 케이블이나 전파로 보냅니다.
    (예를들어, 우리는 네트워크를 사용하기 위해 모뎀에서 LAN선을 PC에 연결합니다. 이때 정확하게는 모뎀과 PC내의 NIC가 연결되어 네트워크를 사용할 수 있게 됩니다.)  
  • 리피터: LAN 케이블에 흐르는 전기 신호는 전송거리가 100m 정도 되면 신호가 손상됩니다. 리피터는 이러한 전기 신호를 한번 더 증폭하여 전송 거리를 늘려주는 데 사용합니다. 그러나 최근 전송거리가 매우 긴 광섬유 케이블이 보급됨에 따라 많이 사용하지 않고 있습니다.
  • 리피터 허브: 전달받은 패킷의 복사본을 그대로 다른 포트에 전송하는 기기입니다.

Reference

  • 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p24-25

 

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

더보기

브리지는 데이터링크 계층에서 동작하는 네트워크 기기로서, 이름 그대로 포트와 포트 사이의 다리 역할을 합니다. 브리지의 역할은 단말에서 받아들인 MAC 주소를 MAC 주소 테이블로 관리하고 전송합니다. 이 전송 처리를 브리징이라고 부릅니다. 그러나 최근 L2 스위치가 보급됨에 따라 거의 사용하지 않습니다.

 

Reference

  • 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p27

 

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

더보기

L2 스위치는 많은 포트를 가진 브리지입니다. L2 스위치의 기능은 브리지와 마찬가지로 단말에서 받아들인 MAC 주소를 MAC 주소 테이블로 관리하고 전송합니다. 이 전송 처리를 L2 스위칭이라고 부릅니다. L2 스위치는 브리지보다 많은 단말에 접속할 수 있어 범용성이 높고 오늘날 대부분의 유선 단말은 L2 스위치를 통해 네트워크에 연결됩니다.

 

Reference

  • 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p28

 

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

더보기

라우터는 네트워크 계층에서 동작하는 네트워크 기기입니다. 라우터는 단말로부터 받아들인 IP 패킷의 IP 주소를 보고, 자신이 속한 네트워크를 넘는 범위에 있는 단말로 전달하는 즉, LAN과 WAN간에 데이터를 전송하는 역할을 합니다. 

스위치는 동일한 네트워크 장치 그룹간(LAN)에 데이터를 전달하는 반면, 라우터는 서로 다른 네트워크 간(LAN과 WAN)에 데이터를 전달합니다.

 

Reference

 

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

더보기

L3 스위치는 라우터에 L2 스위치를 추가한 기기입니다. 여러 포트가 있기 때문에 여러 단말을 연결할 수 있으며, IP 패킷을 라우팅 할 수도 있습니다. L3 스위치는 MAC 주소 테이블과 라우팅 테이블을 패킷전송 처리 전용 하드웨어에 기록하고 스위칭 또는 라우팅합니다. 

 

Reference

  • 미야타 히로시, "그림으로 공부하는 TCP/IP 구조", p31

 

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

더보기

L7 스위치는 다른말로 부하 분산장치로 불리는데 이름 그대로 서버의 부하를 분산하는 기기입니다. 클라이언트로부터 받아들인 패킷을 뒤쪽에 있는 여러 서버들로 나눠줌으로써 시스템 전체적으로 처리 가능한 트래픽양을 확장하는 역할을 합니다.

예를들어 AWS의 로드밸런싱 기능을 떠올려보면,

  1. 클라이언트가 로드밸런서에게 트래픽을 요청
  2. 로드밸런서는 백엔드의 여러 서버들을 헬스체크하고 적합한(로드가 적은) 서버 탐색
  3. 적합한 서버에게 트래픽을 분산

해주었습니다. 이와 같은 역할을 해주는 기기입니다.

 

Reference

 

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

더보기

LAN은 Local Area Network의 약자로, 특정 지리적 영역으로 제한된 네트워크를 말합니다. LAN에는 일반적으로 단일 라우터가 필요합니다.

반면, WAN은 넓은 지리적 영역에 분산된 대규모 네트워크를 말합니다. 예를 들어, 전국의 여러 위치에서 운영되는 회사는 각 위치마다 별도의 LAN이 필요하며, 이 LAN은 다른 LAN과 연결되어 WAN을 형성합니다. WAN은 넓은 영역에 분산되어 있으므로 여러 라우터와 스위치가 필요한 경우가 많습니다.

 

Reference