군만두의 IT 개발 일지

[스터디11] 4. 네트워크 본문

학습일지/CS

[스터디11] 4. 네트워크

mandus 2025. 8. 29. 13:01

목차

    CHAPTER 05 네트워크

    여러 대의 장치가 그물처럼 연결되어 정보를 주고받는 통신망

    1. 네트워크의 큰 그림

    네트워크의 기본 구조

    • 네트워크: 노드(네트워크 기기)와 간선(유무선 통신 매체)으로 이루어진 그래프 형태
    • 네트워크 토폴로지(Network Topology): 노드 간 연결 구조로, 망형, 트리형, 링형, 성형, 버스형(선형) 등이 있음.

    네트워크 구성 요소

    • 호스트(Host): 네트워크의 가장자리에 위치하며 데이터를 송수신하는 최종 장치 (예: 노트북, 서버 컴퓨터)
    • 클라이언트와 서버: 요청(request)을 보내는 호스트를 클라이언트, 응답(response)을 보내는 호스트를 서버라고 함.
    • 중간 노드: 호스트 간의 데이터 전송을 돕는 네트워크 장비 (예: 스위치, 라우터)

    LAN과 WAN

    네트워크는 규모에 따라 나뉜다.

    • LAN(Local Area Network): 가정이나 기업처럼 비교적 가까운 거리를 연결하는 근거리 네트워크
    • WAN(Wide Area Network): LAN과 LAN을 연결하는 원거리 네트워크로, 인터넷이 가능하게 함.
      • ISP(인터넷 서비스 제공업체)가 주로 구축하고 관리

    패킷 교환 네트워크

    • 오늘날의 네트워크는 데이터를 패킷(packet)이라는 작은 단위로 쪼개어 송수신하고, 수신지에서 재조립하는 패킷 교환 방식을 사용함.
    • 하나의 패킷은 실제 데이터인 페이로드(payload)와 부가 정보인 헤더(header), 트레일러(trailer)로 구성됨.

    주소와 전송 방식

    • 주소: 패킷을 올바르게 전달하기 위해 필요하며, 대표적으로 IP 주소MAC 주소가 있음.
    • 전송 방식:
      • 유니캐스트: 1:1 통신 방식
      • 브로드캐스트: 네트워크 내의 모든 호스트에게 메시지를 전송하는 방식

    프로토콜과 네트워크 참조 모델

    • 프로토콜(Protocol): 네트워크에서 노드 간 통신을 위한 합의된 규칙이나 방법으로, 대표적으로 IP, ARP, TCP, UDP, HTTP 등이 있음.
    • 네트워크 참조 모델: 통신 과정을 계층적으로 표현한 모델
      • OSI 7계층 모델: 국제 표준화 기구(ISO)에서 만든 이론적인 모델로, 7개의 계층(물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용)으로 구성됨.
      • TCP/IP 모델: 구현과 프로토콜에 중점을 둔 실용적인 모델로, 4개의 계층(네트워크 액세스, 인터넷, 전송, 응용)으로 나뉨.

    캡슐화와 역캡슐화

    • 캡슐화: 송신 측에서 데이터를 보낼 때, 각 계층을 지나면서 필요한 정보(헤더)를 덧붙이는 과정
    • 역캡슐화: 수신 측에서 데이터를 받을 때, 각 계층을 지나면서 헤더를 제거하여 원본 데이터를 얻는 과정

    통신이 이루어지는 가장 근원적인 계층으로, LAN 내 통신 기술을 다룬다.

    이더넷(Ethernet)

    • 오늘날 대부분의 유선 LAN에서 사용하는 기술 표준(IEEE 802.3)
    • 통신 속도, 매체, 프레임 형식 등을 정의

    이더넷 프레임

    • 이더넷 네트워크에서 주고받는 데이터 단위
    • 수신지/송신지 MAC 주소, 타입, 데이터(페이로드), FCS(오류 검출) 등의 필드로 구성

    유무선 통신 매체

    • 유선 (트위스티드 페어 케이블): 구리선을 꼬아 만든 케이블로, '카테고리' 등급에 따라 성능이 결정됨.
    • 무선 (전파, WiFi): 전파를 이용하는 무선 LAN 기술(IEEE 802.11)로, 2.4GHz, 5GHz 등의 주파수 대역을 사용하며, 신호 간섭을 피하기 위해 채널로 세분화됨.

    네트워크 장비

    • NIC (네트워크 인터페이스 컨트롤러): 컴퓨터를 네트워크에 연결하는 하드웨어로, MAC 주소가 부여됨.
    • 허브: 물리 계층 장비로, 들어온 신호를 모든 포트로 전달함. (반이중 통신)
    • 스위치: 데이터 링크 계층 장비로, MAC 주소 테이블을 학습하여 목적지 포트로만 프레임을 전달함. (전이중 통신)

    3. 네트워크 계층 - IP

    LAN을 넘어 다른 네트워크와 통신하기 위한 계층으로, 핵심 프로토콜은 IP(Internet Protocol)다.

    IP의 목적과 특징

    • IP의 주된 목적은 주소 지정(addressing)단편화(fragmentation)
    • 전송을 보장하지 않는 신뢰할 수 없는(unreliable) 프로토콜이자, 사전 연결 과정이 없는 비연결형(connectionless) 프로토콜

    IP 주소

    • 네트워크상에서 호스트를 식별하기 위한 32비트(IPv4) 주소
    • 네트워크 주소호스트 주소로 나뉨

    주소 체계

    • 클래스풀 주소 체계: 네트워크 크기에 따라 A, B, C 클래스로 나누어 관리했지만 주소 낭비 문제가 있었음.
    • 클래스리스 주소 체계 (CIDR): 서브넷 마스크를 사용하여 네트워크와 호스트 부분을 유연하게 구분하는 방식

    공인 IP와 사설 IP

    • 공인 IP: 전 세계에서 유일한 주소
    • 사설 IP: LAN과 같은 내부 네트워크에서만 사용되는 주소
    • NAT 기술을 통해 사설 IP가 공인 IP로 변환되어 인터넷과 통신

    IP 주소의 할당

    • 정적 할당: 수동으로 IP 주소를 직접 설정
    • 동적 할당: DHCP 프로토콜을 통해 자동으로 IP 주소를 할당받음.

    관련 프로토콜

    • ICMP: IP의 비신뢰성을 보완하기 위한 프로토콜로, 패킷 전송 과정에서 발생하는 오류 보고나 네트워크 진단 정보를 제공
    • ARP: 동일 네트워크 내에서 IP 주소를 통해 상대방의 MAC 주소를 알아내기 위한 프로토콜

    4. 전송 계층 - TCP와 UDP

    호스트 내에서 실행되는 특정 프로세스까지 데이터를 전달하는 역할을 한다.

    포트(Port)

    • 하나의 호스트에서 실행 중인 여러 프로세스를 구분하기 위한 번호
    • IP 주소와 포트 번호의 조합으로 특정 프로세스를 식별

    TCP (Transmission Control Protocol)

    • 신뢰성 있는 연결형 프로토콜

    TCP의 주요 특징

    • 3-way 핸드셰이크: 데이터 전송 전, SYN과 ACK 패킷을 주고받으며 연결을 수립함.
    • 오류/흐름/혼잡 제어:
      • 재전송을 통한 오류 제어
      • 수신 측의 처리 속도에 맞추는 흐름 제어
      • 네트워크 혼잡 상황에 따라 전송량을 조절하는 혼잡 제어 기능을 제공함.
    • 4-way 핸드셰이크: 데이터 전송 후, FIN과 ACK 패킷을 주고받으며 연결을 종료함.

    UDP (User Datagram Protocol)

    • 비신뢰성, 비연결형 프로토콜
    • 신뢰성 보장을 위한 기능이 없어 TCP보다 빠르지만, 데이터 유실이나 순서 변경이 발생할 수 있음.

    5. 응용 계층 - HTTP의 기초

    사용자와 가장 밀접한 계층으로, 다양한 네트워크 서비스를 제공한다.

    DNS (Domain Name System)

    • www.example.com과 같은 도메인 네임을 실제 IP 주소로 변환해주는 시스템이자 프로토콜

    URI/URL

    • URI (Uniform Resource Identifier): 웹상의 자원(HTML, 이미지 등)을 식별하기 위한 통일된 방식
    • URL (Uniform Resource Locator): 자원의 '위치'를 기반으로 식별하는 방식으로, URI의 한 종류

    HTTP (Hypertext Transfer Protocol)

    웹에서 클라이언트와 서버가 자원을 주고받기 위한 프로토콜

    HTTP의 주요 특징

    • 요청-응답 기반: 클라이언트가 요청 메시지를 보내면 서버가 응답 메시지를 보냄.
    • 스테이트리스(Stateless): 서버가 클라이언트의 이전 요청 상태를 기억하지 않음.
    • 지속 연결: 하나의 TCP 연결 위에서 여러 요청과 응답을 주고받을 수 있음. (HTTP/1.1 이상)
    • HTTP 메시지 구조: 시작 라인(요청/상태 라인), 헤더, 메시지 본문으로 구성됨.

    6. 응용 계층 - HTTP의 응용

    HTTP의 기능을 확장하고 보완하는 다양한 기술들이다.

    쿠키(Cookie)

    • 서버가 클라이언트에 저장하는 작은 데이터 조각
    • HTTP의 스테이트리스(stateless) 특성을 보완하여 사용자 상태(로그인 정보 등)를 유지하는 데 사용됨.

    캐시(Cache)

    • 자주 요청하는 자원을 미리 저장해두었다가 재사용하여 응답 속도를 높이고 네트워크 부하를 줄이는 기술

    콘텐츠 협상

    • 하나의 URL에 대해 클라이언트가 선호하는 언어, 인코딩 방식 등에 따라 서버가 가장 적절한 버전의 자원을 제공하는 기술

    보안: SSL/TLS와 HTTPS

    • HTTPS: HTTP에 보안 계층인 SSL/TLS를 추가하여 통신 내용을 암호화하는 프로토콜
    • SSL/TLS 핸드셰이크: 클라이언트와 서버가 암호화 통신을 시작하기 전에 암호화 방식, 키 등을 교환하는 과정

    7. 프록시와 안정적인 트래픽

    클라이언트와 서버 사이에서 중개 역할을 하는 서버 및 관련 기술들이다.

    프록시 서버

    • 클라이언트와 서버 사이에서 요청과 응답을 중개하는 서버

    가용성(Availability)

    • 시스템이 중단 없이 정상적으로 운영되는 시간의 비율을 의미

    로드 밸런싱(Load Balancing)

    • 여러 서버에 들어오는 트래픽을 분산시켜 특정 서버의 과부하를 막고 시스템 전체의 안정성을 높이는 기술

    스케일링(Scaling)

    • 시스템의 처리 용량을 늘리는 것
      • 스케일 업: 서버 성능 향상
      • 스케일 아웃: 서버 대수 증가

    기술 면접 질문

    • TCP와 UDP의 차이점을 설명해주세요.
    • 3-way 핸드셰이크와 4-way 핸드셰이크에 대해 설명해주세요.
    • HTTP와 HTTPS의 차이점을 설명해주세요.
    • 쿠키와 세션의 차이점을 설명해주세요.

     

    이 글은 『 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접』 책을 읽고 학습한 내용을 정리한 것입니다.
    Comments