11 분 소요

면접을 위한 CS 전공지식 노트 CHAPTER 2


SECTION 2.1 네트워크의 기초

📌 네트워크 정의

노드와 링크가 서로 연결되어 있거나 연결되어 있으면서 리소스를 공유하는 집합


2.1.1 처리량과 지연 시간

좋은 네트워크: 많은 처리량 처리, 짧은 지연 시간, 적은 장애 빈도, 좋은 보안

  1. 처리량
  • 링크 내에서 성공적으로 전달된 데이터의 양
  • 얼만큼의 트래픽을 처리했는지
  • 단위: bps(bits per second), 초당 전송, 수진되는 비트 수

트래픽이 많아졌다 = 흐르는 데이터가 많아졌다
처리량이 많아졌다 = 처리되는 트래픽이 많아졌다

  1. 지연 시간
  • 요청이 처리되는 시간
  • 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간

2.1.2 네트워크 토폴로지와 병목 현상

네트워크 토폴로지

노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형식

  1. 트리 토폴로지
  • 계층형 토폴로지
  • 장점: 노드의 추가, 삭제 쉬움
  • 단점: 특정 노드에 트래픽이 집중될 때 하위 노드에 영향 끼침
  1. 버스 토폴로지
  • 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크
  • 근거리 통신망(LAN)에서 사용
  • 장점: 비용 적음, 신뢰성 우수, 노드 추가•삭제 쉬움
  • 단점: 스푸핑 문제

스푸핑

LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
수신부로 가야 할 패킷이 악의적인 노드에 전달
  1. 스타 토폴로지
  • 중앙에 있는 노드에 모두 연결
  • 장점: 노드 추가•에러 탐지 쉬움, 패킷의 충돌 발생 가능성 적음
  • 단점: 중앙 노드에 장애가 발생하면 전체 네트워크 사용X, 비쌈

  1. 링 토폴로지
  • 각 노드가 양 옆의 두 노드와 연결
  • 장점: 노드 수 증가해도 네트워크 손실↓, 충돌↓, 에러 탐지 쉬움
  • 단점: 네트워크 구성 변경 어려움, 회선에 장애가 발생하면 전체에 영향 끼침
  1. 메시 토폴로지
  • 그물망 구조
  • 장점: 한 단말 장치에 장애가 발생해도 계속 사용 가능, 트래픽 분산 처리 가능

병목 현상

전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상


2.1.3 네트워크 분류

분류 설명 전송속도 혼잡도
LAN 근거리 통신망 빠름 낮음
MAN 대도시 지역 네트워크 평균 LAN보다 혼잡
WAN 광역 네트워크 느림 MAN보다 혼잡

2.1.4 네트워크 성능 분석 명령어

병목 현상 원인

  • 네트워크 대역폭
  • 네트워크 토폴로지
  • 서버 CPU, 메모리 사용량
  • 비효율적인 네트워크 구성

네트워크 관련 명령어

  1. ping
  • 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
  • 패킷 수신 상태, 도달 시간, 네트워크 연결 상태 확인 가능
  • ICMP 프로토콜을 통해 동작
  • ping www.google.com -n 12
  1. netstat
  • 접속되어 있는 서비스들의 네트워크 상태를 표시
  • 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 보여줌
  • 서비스 포트가 열려있는지 확인
  1. nslookup
  • DNS에 관련된 내용 확인
  • 특정 도메인에 매핑된 IP 확인
  1. tracert
  • 목적지 노드까지 네트워크 경로를 확인할 때
  • 어느 구간에서 응답 시간이 느려지는지 확인
  • tracert www.google.com

2.1.5 네트워크 프로토콜 표준화

네트워크 프로토콜

  • 다른 장치끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스
  • IEEE 또는 IETF 표준화 단체가 정함
  • ex) HTTP라는 프로토콜을 통해 웹 서비스 기반 데이터 주고 받음

SECTION 2.2 TCP/IP 4계층 모델

📌 인터넷 프로토콜 스위트 정의

  • 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합
  • TCP/IP 4계층 모델, OSI 7계층 모델

2.2.1 계층 구조

특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계

1) 애플리케이션 계층

  • FTP, HTTP, SSH, SMTP, DNS 등
  • 응용 프로그램이 사용되는 프로토콜 계층
  • 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층

용어

- FTP: 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH: 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP: World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP: 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS: 도메인 이름과 IP 주소를 매핑해주는 서버

2) 전송 계층

  • 송신자와 수신자를 연결하는 통신 서비스를 제공
  • 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공

용어

TCP: 패킷 사이의 순서를 보장, 연결지향, 신뢰성 구축, 수신 여부 확인
'가상회선 패킷 교환 방식': 각 패킷에 가상회선 식별자 포함, 완료되면 가상회선 해제, '순서대로' 도착
UDP: 순서 보장x, 수신 여부 확인x
'데이터그램 패킷 교환 방식': 패킷이 독립적으로 이동, 최적의 경로, 다른 경로로 전송 가능

✏️ TCP 연결 성립 과정: 3-웨이 핸드셰이크 1️⃣ SYN 단계: 클라이언트→서버, ISN을 담아 SYN을 서버에 보냄(ISN: 초기 네트워크 연결할 때 할당된 32비트 고유 시퀀스 번호)
2️⃣ SYN + ACK 단계: 서버→클라이언트, SYN을 수신하고 서버의 ISN와 승인번호로 ISN+1을 보냄
3️⃣ ACK 단계: 클라이언트→서버, 서버의 ISN+1를 담아 ACK를 보냄

✏️ TCP 연결 해제 과정: 4-웨이 핸드셰이크 1️⃣: 클라이언트→서버, FIN으로 설정된 세그먼트 보냄, 클라이언트는 FIN_WAIT_1 상태•응답 기다림
2️⃣: 서버→클라이언트, ACK라는 승인 세그먼트 보냄, 서버는 CLOSE_WAIT, 클라이언트는 FIN_WAIT_2 상태
3️⃣: 서버→클라이언트, FIN이라는 세그먼트 보냄
4️⃣: 클라이언트→서버, 클라이언트 TIME_WAIT, 서버로 ACK 보냄, 서버 CLOSED, 클라이언트 CLOSED

※ TIME_WAIT

1. 지연 패킷이 발생할 경우를 대비(데이터 무결성 문제)
2. 두 장치가 연결이 닫혔는지 확인(서버가 LAST_ACK 상태일 때 클라이언트가 닫히면 안 됨)

3) 인터넷 계층

  • 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하는 계층
  • IP, ARP, ICMP 등
  • 패킷 수신 주소를 지정하여 데이터 전달
  • 비연결형(상대방이 제대로 수신했는지 보장x)

4) 링크 계층

  • 전선, 광섬유, 무선 등
  • 실질적으로 데이터를 전달하며 장치 간에 신호를 주고 받는 ‘규칙’을 정하는 계층
  • 네트워크 접근 계층
  • 물리 계층(0과 1) + 데이터 링크 계층(에러 확인, 흐름 제어, 접근 제어)

✏️ 유선 LAN(IEEE802.3)

  1. 전이중화 통신
  • 양쪽 장치가 동시에 송수신할 수 있는 방식
  • 송신로와 수신로로 나눔
  • 현대의 고속 이더넷
  1. CSMA/CD
  • 반이중화 통신
  • 데이터를 ‘보낸 이후’ 충돌이 발생한다면 일정 시간 이후 재전송
  • 한 경로 기반, 충돌에 대비

✏️ 유선 LAN을 이루는 케이블

  1. 트위스트 페어 케이블
  • 8개의 구리선을 두개씩 꼬아서 묶은 케이블
  • UTP 케이블: 실드x, 흔함
  • STP 케이블: 실드o
  1. 광섬유 케이블
  • 광섬유로 만든 케이블
  • 레이저 이용, 장거리, 고속 통신
  • 광섬유 내부와 외부를 다른 밀도를 가지는 유리나 플라스틱 섬유로 제작
  • 한 번 들어간 빛이 내부에서 계속적으로 반사하며 전진
  • 코어: 굴절률이 높은 부분
  • 클래딩: 굴절률이 낮은 부분


✏️ 무선 LAN(IEEE802.11)

  1. 반이중화 통신
  • 수신과 송신이 같은 채널 사용
  • 수신하기 시작하면 응답하기 전에 전송이 완료될 때까지 기다려야 함
  1. CSMA/CA
  • 반이중화 통신 중 하나
  • 무선 매체 살핌 → 캐리어 감지: 회선이 비어있는지 → IFS: 랜덤 값만큼 기다림, 시간 늘려가면서 기다림 → 데이터 송신

✏️ 무선 LAN을 이루는 주파수

  1. 와이파이
  • 무선 접속 장치(공유기) 필요
  • 유선 LAN에 흐르는 신호를 무선 LAN 신호로 바꿈
  • +) 지그비, 블루투스
  1. BSS
  • 기본 서비스 집합
  • BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조
  • 근거리 무선 통신, 하나의 AP만을 기반 → 자유롭게 이동 불가
  1. ESS
  • 하나 이상의 연결된 BSS 그룹
  • 장거리 무선 통신, 가용성, 이동성


✏️ 이더넷 프레임: 에러 검출, 캡슐화

  • Preamble: 이더넷 프레임이 시작임을 알림
  • SFD: 다음 바이트부터 MAC 주소 필드가 시작됨을 알림
  • DMAC, SMAC: 수신, 송신 MAC 주소
  • EtherType: IP 프로토콜, IPv4, IPv6
  • Payload: 전달받은 데이터
  • CRC: 에러 확인 비트

계층 간 데이터 송수신 과정


✏️ 캡슐화 과정

  • 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시킴
  • 해당 계층의 헤더를 삽입
  • 애플리케이션 계층 → 전송 계층, 데이터 → 세그먼트, 데이터그램화, TCP(L4) 헤더 붙여짐
  • 전송 계층 → 인터넷 계층, IP(L3) 헤더 붙여짐, 패킷화
  • 인터넷 계층 → 링크 계층, 프레임 헤더•프레임 트레일러 붙음, 프레임화


✏️ 비캡슐화 과정

  • 하위 계층에서 상위 계층으로 가며 헤더 부분 제거
  • 프레임화 → 패킷화 → 세그먼트, 데이터그램화 → 메세지화 → 사용자에게 애플리케이션의 PDU인 메세지로 전달


2.2.2 PDU

네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위

애플리케이션 계층: 메시지
전송 계층: 세그먼트(TCP), 데이터그램(UDP)
인터넷 계층: 패킷
링크 계층: 프레임(데이터 링크 계층), 비트(물리 계층)

SECTION 2.3 네트워크 기기

2.3.1 네트워크 기기의 처리 범위

상위 계층 기기는 하위 계층 처리 가능
반대는 불가능

  • 애플리케이션 계층: L7 스위치
  • 인터넷 계층: 라우터, L3 스위치
  • 데이터 링크 계층: L2 스위치, 브리지
  • 물리 계층: NIC, 리피터, AP

2.3.2 애플리케이션 계층을 처리하는 기기

L7 스위치(로드밸런서)

  • 여러 장비 연결, 데이터 통신 중재, 목적지가 연결된 포트로만 신호 보냄
  • 서버의 부하 분산, 클라이언트 요청을 여러 서버로 나누는 역할, 트래픽 처리량 증가
  • 바이러스 필터링, 트래픽 모니터링, 헬스 체크로 장애 서버 감시

✏️ L4 스위치 VS L7 스위치

  • L4 스위치: 전송 계층을 처리, IP와 포트를 기반으로 트래픽 분산, NLB 컴포넌트로 로드밸런싱
  • L7 스위치: IP, 포트 외에도 URL, HTTP 헤더, 쿠키 등을 기반으로 트래픽 분산, ALB 컴포넌트로 로드밸런싱

✏️ 헬스체크

  • 정상•비정상 서버 판별
  • 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청
  • 서버 부하가 되지 않을 만큼 요청 횟수 설정

✏️ 로드밸런서를 이용한 서버 이중화

  • 로드밸런서 대표 기능: 서버 이중화(2대 이산 서버 필수)
  • 2대 이상의 서버를 기반으로 가상 IP를 제공하고 이를 기반으로 안정적인 서비스를 제공

2.3.3 인터넷 계층을 처리하는 기기

라우터

  • 여러개의 네트워크를 연결, 분할, 구분시켜주는 역할
  • 패킷 소모 최소화, 경로 최적화 → 최소 경로로 패킷을 포워딩

L3 스위치

  • L2 스위치 + 라우팅 기능
  • 하드웨어 기반의 라우팅을 담당

2.3.4 데이터 링크 계층을 처리하는 기기

L2 스위치

  • 장치들의 MAC주소를 MAC 주소 테이블을 통해 관리
  • 패킷 전송 담당
  • IP 주소를 기반으로 라우팅은 불가능
  • 단순히 패킷의 MAC 주소를 읽어 스위칭 함
  • 목적지가 MAC 주소 테이블에 없다면 전체 포트에 전달

브리지

  • LAN을 상호 접속할 수 있도록 하는 통신망 연결 장치
  • 포트와 포트 사이의 다리 역할
  • MAC 주소를 MAC 주소 테이블로 관리

2.3.5 물리 계층을 처리하는 기기

NIC

  • LAN 카드(NIC 카드)는 2대 이상의 컴퓨터 네트워크를 구성하는 데 사용
  • 네트워크와 빠른 속도로 송수신하게 하는 확장 카드
  • 고유의 MAC 주소가 있음

리피터

  • 약해진 신호 정도를 증폭하여 다른 쪽으로 전달
  • 광케이블 보급 이후 사용 잘 안 함

AP

  • 패킷을 복사하는 기기
  • AP에 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술을 사용하여 무선 네트워크 연결 가능

SECTION 2.4 IP 주소

2.4.1 ARP

  • 컴퓨터와 컴퓨터 통신: IP 주소(가상 주소)에서 ARP를 통해 MAC 주소(실제 주소)를 찾아 MAC 주소 기반으로 통신
  • ARP Request 브로드캐스트(1대다) 보내서 MAC 주소 찾기 ↔ ARP Reply 유니캐스트(1대1)로 MAC 주소 반환

2.4.2 홉바이홉 통신

  • 홉(건너뛰는 모습): 여러개의 라우터를 건너가는 모습을 비유적으로 표현
  • 수많은 서브네트워크 안에 있는 라우터의 라우팅 테이블 IP를 기반으로 전달

라우팅 테이블
* 라우팅: IP 주소를 찾아가는 과정
- 라우터에 들어가 있는 목적지 정보들과 방법이 들어있는 리스트
- 게이트웨이, 다음 라우터 정보

게이트웨이
- 네트워크 간의 통신을 가능하게 하는 관문 역할 컴퓨터•소프트웨어
- 통신 프로토콜 변환


2.4.3 IP 주소 체계

  • IPv4: 32비트를 8비트 단위로 점 찍음
  • IPv6: 64비트를 16비트 단위로 점 찍음
  • IPv4를 많이 사용

클래스 기반 할당 방식

  • A, B, C는 일대일 통신
  • D는 멀티캐스트 통신
  • E는 예비용
  • A:0.0.0.0~ , B:128.0.0.0~ , C:192.0.0.0~

  1. 맨 왼쪽: 구분 비트 - 네트워크 구별 주소
  2. 가운데: 컴퓨터에 부여할 수 있는 호스트 주소
  3. 맨 오른쪽: 브로드캐스트용 주소 - 네트워크에 속해 있는 컴퓨터에 데이터를 보낼 때

단점: 사용하는 주소보다 버리는 주소가 많음


DHCP

IP주소 자동으로 할당


NAT

  • 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑
  • 공인 IP와 사설 IP 나눔
  • 공유기: 여러대의 호스트가 공인 IP 주소 사용
  • 장점: 내부 네트워크 보안
  • 단점: 접속 속도 느려질 수 있음

2.4.4 IP 주소를 이용한 위치 정보

IP 주소 기반으로 네트워크 주소와 위치 찾음


SECTION 2.5 HTTP

애플리케이션 계층


2.5.1 HTTP/1.0

한 연결당 하나의 요청 처리 RTT 증가 초래

RTT 증가

그림22

RTT: 패킷 왕복 시간
TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT 증가

RTT 증가 해결 방법

1. 이미지 스플리팅
많은 이미지 다운받고, nth-child(1)과 position으로 표기

2. 코드 압축
개행 문자, 빈칸 없애서 코드 크기 최소화 → 용량 줄음

3. 이미지 Base64 인코딩
이미지 파일을 64진법으로 이루어진 문자열로 인코딩
이미지에 대해 서버에 HTTP 요청할 필요가 없음


2.5.2 HTTP/1.1

매번 TCP 연결을 하는 것이 아니라 한 번 TCP를 초기화 한 이후에 keep-alive라는 옵션으로 여러개의 파일을 송수신할 수 있게 바꿈

HOL Blocking

네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 ‘성능 저하 현상’


2.5.3 HTTP/2

  • 지연 시간↓, 응답 시간↑
  • 멀티플렉싱, 헤더 압축, 서버 푸시, 요청 우선순위 처리

1. 멀티플렉싱

  • 여러 개의 스트림 사용하여 송수신
  • 특정 패킷 손실되어도 멀쩡
  • 단일 연결을 사용하여 병렬로 요청 → HOL Blocking 해결

2. 헤더 압축

허프만 코딩

  • 문자열을 문자 단위로 쪼갠 후 빈도수 셈
  • 빈도↑: 적은 비트 수
  • 빈도↓: 많은 비트 수
  • 비트양 줄이기

3. 서버 푸시

클라이언트 요청 없이 서버가 바로 푸시 가능
ex) css 파일 요청이 없어도 푸시 가능


2.5.4 HTTPS

애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 HTTP 요청 → 통신 암호화

SSL/TLS
전송 계층에서 보안을 제공하는 프로토콜
메시지 도청, 변조 막음

암호화 알고리즘

1. 디피-헬만 키 교환 암호화 알고리즘

  • 개인키, 공개키 생성
  • 나머지로 구함

2. 해싱 알고리즘

  • 더 작고, 섞여 있는 조각
  • SHA-256 알고리즘: 전처리된 메시지를 기반으로 해시 반환

HTTPS 구축 방법

  1. CA에서 구매한 인증키 기반
  2. HTTPS 로드밸런서
  3. CDN

2.5.5 HTTP/3

QUIC 계층에서 돌아감(TLS x)
UDP 기반(TCP x)
멀티플렉싱
초기 연결 설정시 지연 시간↓: 3-웨이 핸드셰이크x

퀴즈

1. TCP 연결 해제 과정인 4-웨이 핸드셰이크에서 4번째 단계의 클라이언트는 왜 TIME_WAIT 상태였다가 CLOSED 되나요?

정답 보기 1. 지연 패킷이 발생할 경우를 대비하기 위해서이다. 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생한다. 2. 두 장치가 연결이 닫혔는지 확인하기 위해서이다. 만약 LAST_ACK 상태에서 닫히게 되면 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어있기 때문에 접속 오류가 나타난다.

2. TCP와 UDP의 차이점

정답 보기 - TCP는 연결형 서비스로 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있습니다. - UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단점이 있지만, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있습니다. - TCP는 신뢰성이 중요한 파일 교환과 같은 경우에 쓰이고, UDP는 실시간성이 중요한 스트리밍에 자주 사용됩니다.

3. HTTP와 HTTPS의 차이

정답 보기 HTTP : 웹 브라우저와 웹 서버 간의 통신에서 HTML 문서, 이미지, 오디오, 비디오 등의 리소스를 전송하기 위해 사용하는 규칙 HTTPS는 HTTP+SSL(secure socket layer)

4. HTTP 구조

정답 보기 Start Line / Header / Blank Line / Body <요청메시지> - Start Line [HTTP Method] [Request target] [HTTP version] - Header [Header Field]:value 헤더 필드 : Host, User-agent, Accept, Authorization, Origin, Cookie 등 <응답메시지> - Start Line [HTTP version] [Status code] [Status message] 코드 200이면 성공, 3xx면 리다이렉션, 4xx는 클라이언트 오류, 5xx 서버오류 - Header [Header Field]:value 헤더필드 : Location, Content-Type, Proxy-Authenticate 등 </details> --- 5\. 웹 통신의 큰 흐름: https://www.google.com/ 을 접속할 때 일어나는 일
정답 보기 1) Host가 google.com을 검색하면 OS에서 NIC(network Interface Card, 이거 하나 당 IP하나씩 받을 수 있음)를 통해 요청을 보내야 한다. Host는 google의 IP주소를 알아야 한다. 2) 내가 IP주소를 아는지 모르는지 판단하기 위해 hosts와 DNS cache에서 mapping 정보를 확인한다.(DNS Lookup) 3) 2)에서 없으면 DNS서버로 요청을 보내서 응답을 받는다. (공유기 / 라우터가 DNS를 알고있음. 인터넷 망을 통해 DNS서버로 요청을 한다.) 4) 그 IP주소로 http request를 보내고 응답을 받는다. (해당 IP로 가는 경로는 중간중간의 Router들의 Routing Table에 저장되어있다.)
--- 6\. ARP와 RARP
정답 보기 ARP: IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜 ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP주소로 변환

카테고리:

업데이트:

댓글남기기