본문 바로가기
CS/네트워크

1주차. 컴퓨터 네트워크와 네트워크 레이어

by wch_t 2024. 1. 11.

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

더보기

컴퓨터 네트워크는 컴퓨터간에 서로 연결되어 데이터를 주고 받을 수 있는 통신망입니다.

현대에는 월드 와이드 웹(www)이라는 네트워크 통신망에서 주로 HTTP를 사용해 데이터를 주고 받습니다.

 

컴퓨터 네트워크는 컴퓨터 및 네트워크 장치들이 데이터를 주고받을 수 있도록 연결된 구조를 의미합니다.

 

 

 

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

더보기

컴퓨터 네트워크에서 데이터를 전송하는 방식은 회선 교환 방식과 패킷 교환 방식이 있습니다.

 

회선 교환 방식은 일대일 네트워크 연결 회선을 미리 점유해서 데이터 전송을 하는 방식입니다.

회선을 점유하는 동안은 다른 컴퓨터가 데이터를 전송할 수 없습니다.

패킷 교환 방식은 데이터를 패킷이라는 작은 단위로 나눠서 전송하는 방식입니다.

회선을 점유하지 않기 때문에 여러 컴퓨터들이 데이터 전송을 할때 회선을 효율적으로 사용할 수 있습니다.

 

데이터를 전송하는 방식은 분류 방식에 따라 정의할 수 있습니다.

 

케이블 유무선에 따른 분류 방식에는

크게 2가지로, 유선 전송 / 무선 전송으로 나뉩니다.

 

유선 전송에는 가장 흔하게 사용하는 이더넷과 광섬유 케이블을 이용한 데이터 전송 방식

무선 전송에는 WLAN을 이용한 Wifi, 블루투스 통신이 있습니다.

 

 

지리적 분포에 따른 분류 방식에는

크게 3가지로, LAN / MAN / WAN 으로 나뉩니다.

 

LAN ( 근거리 통신망 )

- 이더넷이나 Wifi 같은 기술을 사용하여 연결

 

MAN (도시 규모의 통신망 )

- 광섬유 케이블과 같은 고속 통신 기술을 사용여 연결

 

WAN ( 원거리 통신망 )

- 광섬유, 위성 통신과 기술을 사용하여 연결

 

 

 

데이터 전송 교환 기술에 의한 분류 방식에는

크게 2가지로, 점대점 / 브로드캐스팅으로 나뉩니다.

 

점대점

- 송신자와 수신자 간에 직접적인 연결이 이루어진 데이터 전송 방식

 

브로드캐스팅

- 한 송신자가 네트워크 상에 연결된 모든 수신자에게 데이터를 전송하는 방식

 

 

 

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

더보기

프로토콜은 네트워크에서 데이터를 주고 받기 위한 통신 규칙입니다.

예를들어 우리는 HTTP 라는 클라이언트-서버 구조의 프로토콜 규칙을 지키면서 데이터를 주고 받을 수 있습니다.

 

프로토콜은 컴퓨터 네트워크에서 규칙의 집합을 의미합니다.

이는 데이터를 주고받는 방식을 표준화하고 정의함으로써, 에러 처리 / 보안 등 상호 간에 원활한 통신을 가능하게 합니다.

 

통신 프로토콜

- 데이터를 주고받기 위한 규칙을 정의

   ex. TCP / IP 프로토콜

 

애플리케이션 프로토콜

- 특정 응용 프로그램이나 서비스 간의 통신 규칙을 정의

   ex. HTTP ( HyperText Transfer Protocol ) : 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜

 

 

 

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

더보기

물리 계층의 역할은 0과 1의 디지털 데이터를 광 신호, 전파 등 아날로그 신호로 바꾸어 통신하게 하는 것 입니다.

데이터링크 계층의 역할은 같은 네트워크에 존재하는 호스트와 통신하게 하는 것 입니다.

네트워크 계층의 역할은 다른 네트워크에 존재하는 호스트와 통신하게 하는 것 입니다.

트랜스포트 계층의 역할은 호스트의 애플리케이션끼리 통신하게 하는 것 입니다.

세션 계층의 역할은 애플리케이션 데이터 전송을 위한 논리적 연결로를 관리하는 것 입니다.

프레젠테이션 계층의 역할은 데이터를 통신 가능한 형식으로 변환하는 것 입니다.

애플리케이션 계층의 역할은 사용자에게 네트워크 애플리케이션을 제공하는 것입니다.

 

 

1) Physical Layer

- 역할 : 데이터를 전기적인 신호로 변환하여, 전송 매체에서 비트를 전송한다.

- 장치 : 케이블, 리피터, 허브

 

2) Data Link Layer

- 역할 : 물리 계층에서 받은 데이터를 프레임이라는 작은 단위로 나누어, 인접한 노드 간의 오류 검출 / 재전송 / 흐름 제어 등을 수행한다.

             → MAC 주소를 사용해 통신한다.

- 장치 : 브리지, 스위치

 

3) Network Layer

- 역할 : 라우팅을 통해 목적지까지의 경로를 결정하고, 패킷을 목적지까지 전달한다.

             → IP 주소를 사용해 통신한다.

- 장치 : 라우터

 

4) Transport Layer

- 역할 : 포트를 통해 데이터의 전송을 관리하고, 종단 간의 오류 복구 / 흐름 제어 / 데이터 전송 순서를 관리한다.

             → TCP 프로토콜을 사용한다.

- 장치 : 게이트웨이

 

5) Session Layer

- 역할 : 데이터 교환의 시작, 유지, 종료 등 세션 관리를 수행한다.

- 장치 : X

 

6) Presentation Layer

- 역할 : 데이터의 인코딩 / 디코딩 / 압축 / 암호화 등을 담당하여 서로 다른 데이터 형식 간의 상호 운용성을 제공한다.

- 장치 : X

 

7) Application Layer

- 역할 : 사용자 인터페이스 및 응용 프로그램과 네트워크 간의 상호 작용을 지원한다.

             → 최종 목적지로서 HTTP / FTP / SMTP 등과 같은 프로토콜이 있다.

- 장치 : 웹 브라우저, 이메일 클라이언트

 

 

 

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

더보기

TCP/IP는 총 4개 계층으로 구분되는 네트워크 계층 모델입니다.

 

링크 계층 역할은 데이터를 물리적 전송 매체를 통해 전송하는 것이고,

인터넷 계층의 역할은 호스트간 통신 경로를 확보해서 데이터를 전송하는 것입니다.

트랜스포트 계층의 역할은 프로세스간 데이터 전송하는 것이고,

애플리케이션 계층은 사용자에게 네트워크 애플리케이션을 제공하는 것입니다.

 

TCP 프로토콜 (Transmission Control Protocol)

- 양 끝단 호스트 간의 신뢰적인 연결지향성 서비스 제공

 

1) 신뢰성 

     - 하위 계층인 IP 계층의 신뢰성 없는 서비스에 대한 신뢰성을 제공한다.

        → 패킷 손실 / 중복 / 순서바뀜 등이 없도록 보장

 

소실 / 중복 / 순서바뀜에 의한 재전송
- 누적 수신확인
     - 중복 ACK 세그먼트를 수신함으로써, 소실된 세그먼트 파악
         → 빠른 재전송 : 3개의 중복 ACK가 도착하면 TimeOut과 무관하게 누적 수신 확인 다음 세그먼트 재전송 )
              3개의 중복 ACK (경미한 혼잡)
                 : 순서가 바뀐 세그먼트 or 중간 세그먼트 손실

- 단일 타이머
     - 누적 수신이 확인이 되지 않은 가장 오래된 세그먼트에 대한 재전송 타이머를 통해 소실된 세그먼트 파악
         → TimeOut에 의한 재전송 (심각한 혼잡)


흐름제어
- 수신 TCP의 overflow 데이터 손실이 발생하는 문제를 방지하는 방법
- 수신 TCP의 수신 윈도우(수신 버퍼 여유 공간의 크기)를 송신 TCP에게 통지하여, 적은 양의 데이터를 송신

   cf. 수신 윈도우 0
         수신 TCP는 송신 TCP로 전송할 세그먼트가 없어, 수신윈도우 변화를 통보하지 못하고 Deadlock 상태에 진입하게 된다.
         이를 방지하고자 송신 TCP가 수신 TCP에게 주기적으로 1바이트인 Probe 세그먼트를 보내어 수신윈도우 정보를 확인한다.


혼잡제어
- 트래픽 증가로 인해 라우터/스위치 버퍼의 큐잉 지영시간 증가 및 오버플로우 발생

- TCP Tahoe
    1. 임계치를 현재 혼잡 윈도우의 1/2로 설정
    2. 슬로우 스타트 개시
    3. 혼잡 윈도우가 임계치에 도달하거나 넘어가면 혼잡 회피 수행

- TCP Reno 
    1. TimeOut 발생 시, Taho와 동일하게 동작
    2. 3개 중복 ACK 발생 시 Fast Recovery 알고리즘 적용

- AIMD

 

 

2) 연결지향적

     - UDP가 비연결성인 것과는 달리, TCP는 연결지향적이다.

        → 연결 관리를 위한 연결설정 및 연결종료 필요

 

 

1 : 1 소켓 연결

- 서버 IP 주소와 서버 Port 번호 공유 가능

 

 

3 way Handshake

    : 클라이언트와 서버 간에 synchronization을 맞추는 과정

 

 

 

IP 프로토콜

- 네트워크의 주소(IP)를 정의하고, IP 패킷의 효율적인 전달 및 라우팅을 담당한다.

 

1) 비신뢰성 (Best-Effort Service)

     - 에러제어 및 흐름제어 기능이 전혀 없다.

     - 패킷의 완전한 전달(소실 / 중복 / 지연 / 순서바뀜 등이 없게 함)을 보장 하지 않음

 

2) 비연결성

     - 비연결성 데이터그램 방식으로 전달한다. (통신 속도 ↑)

 

 

 

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

더보기

크고 복잡한 네트워크 시스템을 역할을 갖는 여러개의 독립적인 계층으로 나누어 관리하면,

통신 흐름을 단계적으로 이해할 수 있고 각 계층의 유지보수가 용이해집니다.

계층간 의존성이 줄어들에 독립적인 계층으로 나눠서 관리하면,

다른 계층과 상관없이 특정 계층의 프로토콜 스펙을 쉽게 수정할 수 있기 때문입니다.

 

네트워크 통신을 효율적으로 설계하고 관리하기 위해서입니다.

 

계층화를 통해 각 부분이 독립적으로 동작하도록 하여, 의존성을 줄이고 본인 계층의 역할에만 집중해서 높은 효율로 동작할 수 있습니다.

또한 새로운 서비스를 추가하거나, 에러가 발생했을 경우에서의 유지보수가 훨씬 쉬워집니다.

 

 

 

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

더보기

캡슐화는 프로토콜 상위 계층에서 하위 계층으로 패킷을 전달할때 상위 계층의 헤더를 붙이는 것입니다.

비캡슐화는 반대로 하위 계층에서 상위 계층으로 패킷을 전달할때 헤더의 정보를 참조하고 떼어내는 것입니다.

 

캡슐화와 비캡슐화는 데이터가 네트워크를 통해 전송될 때 거치는 프로세스입니다.

 

먼저 송신 측에서 응용 계층에서 전송하려는 데이터를 전송 계층에서 세그먼트로 변환합니다.

각 계층을 거치면서 헤더와 트레일러가 추가되어 캡슐화가 되며, 물리 계층에서 물리적인 신호로 변환되어 전송합니다.

수신 측에서는 이러한 과정을 역으로 진행하여, 각 계층을 거치면서 헤더를 제거하는 비캡슐화를 진행합니다.

최종적으로 응용 계층에 도달하여 원본 데이터를 복원하게 됩니다.

 

 

캡슐화

: 캡슐화는 컴퓨터 네트워크에서 데이터를 전송하기 위해 데이터를 캡슐 or 패킷으로 둘러싸는 과정입니다.

   여러 계층의 프로토콜을 거치면서 각 계층에서 Header와 Trailer를 추가하는 과정을 거칩니다.

 

1. 데이터 변환 : 응용 계층에서의 데이터가, 전송 계층에서 세그먼트로 변환

2. 헤더 추가 : 패킷 = 세그먼트 + 헤더(출발지 및 목적지 포트 번호, 시퀀스 번호, 체크섬, 수신윈도우 크기 등)

3. 프레임 전송 : 프레임 = 패킷 + 헤더(네트워크 계층)

4. 신호 전송 : 프레임은 물리 계층으로 전송되어, 물리적인 신호로 변환하는 작업이 수행된다.

 

 

비캡슐화

: 수신 측에서, 전송된 데이터를 각 계층에서 제거하여 응용 계층에 도달하도록 하는 과정입니다.

   

1. 프레임 수신 : 물리적인 신호를 프레임으로 변환하고 데이터 링크 계층에서 이를 수신

2. 헤더 제거 : 네트워크 계층에서 프레임의 헤더를 제거하고, 이를 패킷으로 변환한다.

3. 세그먼트 전달 : 전송 계층에서 헤더를 제거하고 세그먼트로 변환한다.

4. 데이터 복원 : 응용 계층에서 최종적으로 원본 데이터가 복원된다.

 

 

 

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

더보기

NIC와 리피터는 물리 계층에서 동작하는 네트워크 기기입니다.

 

NIC는 컴퓨터를 네트워크에 연결해주는 하드웨어 장치입니다.

컴퓨터는 NIC를 통해 패킷을 회선이나 전파로 변환해 전송합니다.

 

리피터는 회선에 흐르는 전기 신호를 증폭해주는 기기입니다.

회선에 흐르는 전기 신호는 전송거리에 따라 감쇠될 수 있기 때문입니다.

 

1) NIC (Network Interface Card)

- 컴퓨터에 장착되어 네트워크와의 통신을 가능하게 하는 HW 장치입니다.

   주로 이더넷이나 Wifi 같은 통신 기술을 지원하며, 각각의 카드는 고유한 MAC 주소를 가지고 있어 네트워크 상에서 식별됩니다.

 

2) Repeater

- 네트워크에서 신호의 감쇠를 최소화하고, 전송 거리를 연장하기 위해 사용되는 장치입니다.

   전기적인 신호를 증폭하고 재전송함으로써 네트워크 성능을 향상시킵니다.

 

3) Repeater Hub

- 포트를 여러 개 가지고 있어, 리피터의 역할을 수행하면서 동시에 여러 기기 간의 연결을 허용하는 장치입니다.

   그러나 데이터를 패킷 단위로 분석하거나 관리하지는 않으면서, 최근에는 대부분의 환경에서 스위치로 대체되어 사용됩니다.

   

 

 

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

더보기

브리지는 데이터링크 계층에서 동작하는 네트워크 기기입니다.

브리지는 MAC 주소 테이블을 통해 단말의 포트간 프레임 패킷 전송을 합니다.

이를 브리징이라고 부릅니다.

 

브리지는 네트워크에서 논리적으로 분리된 여러 개의 세그먼트 간에 효과적으로 데이터를 전달하고 관리하는 장치입니다.

주로 데이터 링크 계층에서 동작하며, 여러 개의 다른 네트워크가 물리적으로 연결되어 있을 때 사용됩니다.

 

 

주요 기능

- 필터링 : 출발지와 목적지가 같은 세그먼트에 있을 때, 브리지를 넘어가지 못하게 막는다.

 

- 학습 : 감시하는 세그먼트 장치들의 MAC 주소를 학습하여 자신의 주소 테이블을 업데이트 한다.

             이를 통해 어떤 장치가 어느 세그먼트에 있는지 파악한다.

 

- 포워딩 : 출발지와 목적지가 다른 세그먼트에 있을 때, MAC 주소 테이블을 참고하여 데이터를 전달한다.

 

 

장점 

- 트래픽 분리

     : 브리지를 사용하면, 두 세그먼트 간의 트래픽을 분리되어 충돌을 방지하고 대역폭을 효율적으로 사용할 수 있다.

 

- 확장성

     : 브리지를 추가하여, 네트워크를 확장할 수 있으며 각각의 세그먼트는 독립적으로 동작할 수 있다.

 

 

 

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

더보기

L2 스위치는 데이터링크 계층(2계층)에서 동작하는 네트워크 기기입니다.

L2 스위치는 MAC 주소 주소 테이블을 통해 같은 네트워크에 있는 단말의 포트간 프레임 패킷 전송을 합니다.

기본적으로 브리지와 기능이 같습니다.

하지만 브리지 보다 더 많은 단말이 접속할 수 있습니다.

그래서 네트워크 상의 유선 연결은 대부분 L2 스위치로 연결되어 있습니다.

 

L2 스위치는 MAC 주소를 기반으로 세그먼트을 전달하는 역할을 합니다.

브리지와 유사하지만 더 발전된 형태로, 여러 포트를 가진 장비들 간의 빠른 데이터 전송과 효율적인 네트워크 관리를 가능하게 합니다.

 

장점

- 빠른 전송 속도

     : HW 처리 방식으로, SW 처리 방식인 브리지에 비해 속도가 빠르다.

 

- 포트별 지원 속도

     : 브리지는 모든 포트가 같은 속도를 지원하지만, 스위치는 포트별로 다른 속도를 연결해줄 수 있다.

 

- 포트 수

     : 기본적으로 제공하는 포트 수가 많다.

 

 

 

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

더보기

라우터는 네트워크 계층에서 동작하는 네트워크 기기입니다.

라우터는 IP주소를 통해 IP패킷을 서로 다른 네트워크로 전송합니다.

패킷의 경로를 결정하는 것을 라우팅,

라우팅 테이블을 참조해서 패킷을 전송하는 것을 포워딩이라고 합니다.

 

라우터는 IP 주소를 기반으로 네트워크 간에 패킷을 전송하는 장치입니다.

주로 네트워크 계층에서 동작하며, 다양한 네트워크 간의 연결을 관리합니다.

 

 

주요 기능

- 패킷 전송 및 경로 선택

     : 패킷이 목적지로 가는 최적의 경로를 선택하고 전송하는 역할을 한다.

 

- 서브넷 분리 및 통제

     : 서로 다른 IP 서브넷을 분리하고, 각 서브넷 간의 통신을 관리한다.

       이를 통해 네트워크를 논리적으로 분할하고 보안 및 성능을 향상시킨다.

 

- NAT, NAPT(Network Address Port Translation)

     : 사설 네트워크에서 공인 IP 주소로 통신하기 위해 주로 NAT를 사용하여 변환합니다. (내부 IT 주소 → 공인 IP 주소)

 

- 패킷 필터링 및 보안 기능

     : 특정 유형의 트래픽을 차단하거나 제어할 수 있다.

 

 

 

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

더보기

L3 스위치는 네트워크 계층에서 동작하는 네트워크 기기입니다.

L3 스위치는 라우터에 L2 스위치가 추가된 기기입니다.

MAC 주소 테이블과 라우팅 테이블을 조합한 정보를 FPGA라는 하드웨어에 기록하여

고속으로 패킷 전송을 할 수 있습니다.

 

L3 스위치는 스위치와 라우터의 기능을 결합한 것으로,

IP 주소를 기반으로 패킷을 전송하며 스위치의 빠른 전송 속도와 라우터의 고급 기능을 모두 갖춘 장치입니다.

데이터 링크 계층뿐만 아니라 네트워크 계층에서도 동작합니다.

 

 

주요 기능

- 스위치 및 라우팅 기능

     : 스위치의 빠른 전송 속도와 라우터의 다양한 기능을 한 장치에서 제공하여 네트워크의 유연성을 높인다.

 

- VLAN 지원

     : 가상 LAN을 지원하여 네트워크를 논리적으로 분할하고 관리할 수 있어, 유연한 네트워크 구성이 가능하다.

 

- 고급 보안 및 QoS(Quality of Service)

      : 패킷 필터링, ACL(Access Control List) 등의 보안 기능과 트래픽 우선순위 설정을 통한 QoS 기능을 제공한다.

 

 

 

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

더보기

L7 스위치는 애플리케이션 계층에서 동작하는 네트워크 기기입니다.

L7 스위치는 로드 밸런싱을 통해 큰 트래픽을 뒷단의 서버들로 분산해주는 기능을 합니다.

추가로 뒷단에 있는 서버들을 대상으로 서버가 가용한 상태인지 헬스 체크를 해주는 기능도 합니다.

 

L7 스위치는 애플리케이션 레이어의 정보를 기반으로 트래픽을 처리하는 장치입니다.

응용 계층에서 동작합니다.

 

 

주요 기능

- Deep Packet Inspection

     : 패킷의 내용(URL, 캐시, 쿠키)까지 자세히 살펴보고 분석할 수 있다.

 

- High Load Balacing

     : 여러 서버에 대한 트래픽을 분산시키는 로드 밸런싱 기능을 제공한다. (Layer 7 수준)

 

- SSL Inspection

     : 암호화된 SSL/TLS 트래픽도 해독하여 내용을 확인하고 분석한다.

 

- 웹 애플리케이션 방화벽(WAF)

     : HTTP 트래픽에서 공격 시도를 탐지하고 차단하는 방화벽을 지원한다.

 

 

 

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

더보기

LAN은 Local Area Network로 가정이나 기업등 한정된 범위의 로컬 네트워크를 뜻합니다.

WAN은 Wide Area Network로 거리상 멀리 떨어진 범위의 네트워크를 뜻합니다.

인터넷과 VPN 등을 예시로 들 수 있습니다.

 

LAN

- 라우터, 스위치와 같은 장치를 사용하여 물리적으로 서로 가까운 기기들을 연결

   (동일한 네트워크 세그먼트에 있는 디바이스 간의 통신을 설정하고 유지)

 

- 이더넷 케이블 or 무선 엑세스 포인트 등을 통한 물리적 연결

 

- 전파 지연이 적고, 데이터 전송 속도가 빠르다. (제한된 수 사용자 지원)

 

 

WAN

- ISP가 제공하는 서비스를 사용하여 구축된 네트워크

 

- 넓은 지역에서 통신할 수 있도록 여러 LAN을 연결하는 네트워크

    (라우터를 통해 서로 다른 네트워크 세그먼트 간에 데이터를 라우팅한다.)

 

- 퍼블릭 인터넷을 통한 가상 연결

     → VPN 연결을 사용하여 데이터를 익명으로 안전하게 전송할 수 있다.

 

- 전파 지연이 길고, 데이터 전송 속도가 느리다.