하향식 네트워크 스터디 1장 - 컴퓨터 네트워크와 인터넷

easyhooon·2026년 5월 26일

Network Study

목록 보기
2/4
post-thumbnail

서두

갑자기 나이먹고 컴공과 전공책으로 스터디를 하게된 이유

1. AI 가지고 이것저것 하려고 보니까 나의 무지함을 적나라하게 체감하였다.

최근에 취케팅을 위한 알림 프로그램(백그라운드 워커)을 개발해 운영을 하고 있었다. 로컬 맥 환경에서 계속 실행해두고 있어야하다보니 노트북의 sleep 상태 돌입으로 인한 조회 루프 중단, Wi-Fi 끊김으로 인한 API 호출/알림 전송 실패 등 은근히 신경써야할 것들이 많았다.

미니 PC, 라즈베리파이 등의 홈서버 방식도 고민해봤으나 최근에 가격들이 많이 올라 고민을해보다가,
클라우드 VM 환경으로 이전하면 발생했던 위의 문제들을 해결할 수 있겠다 판단하여 무료로 클라우드 환경을 이용할 수 있는 OCI(Oracle Cloud Infrastructure) Free Tier로 이전을 시도하였다.

클라우드 서버에 대한 운용 경험은 한번도 없었지만, 클로드/코덱스와 함께라면 아무런 문제가 없을 것이라 생각했다.

그러나 막상 클라우드 환경 세팅에 돌입해보니

  • SSH
  • VCN
  • subnet
  • route table
  • Internet Gateway
  • public IP
  • IPv4/IPv6
  • Security List
  • systemd
  • WAF
  • CDN
  • cloud IP range...
  • NAT
  • 그밖에 홈 서버를 환경 구성 관련 NAS 등등...
    와 같은 단어들이 줄줄히 따라왔다.

물론 AI가 하라는데로 그대로 따라서 어찌저찌 클라우드 환경을 구축하는데는 성공하였지만, 과연 성공했다고
끝내도 되는지가 우려되었다.

'최소한 위 단어들이 어떤 의미를 가지는지는 이해를 하고나서 서버를 운영하는게 도리상 맞지 않을까? 이후에 도움이 되지않을까?' 란 생각이 들게 되었고, 오카방에서 네트워크 관련 서적을 추천받아서 스터디를 진행하게되었다. 스터디라는 제도가 아니라면 절대 안읽을 것 같기도 하고

2. 회사 보안 취약점 검사

회사의 신규 서비스 런칭을 앞두고 앱의 보안 취약점 검사를 받았는데, 아무래도 클라이언트에서의 보안은 한계가 있다보니 지적 사항에 해결법은 거의 서버 쪽에서 이뤄진다.
ex. 클라이언트에서의 검증은 변조를 통해 우회가 가능하기에 검증은 서버를 통해 진행해라~

취약점 지적사항들에서도

  • TLS 버전 1.2 이상 권장
  • XSS
  • 쿠키 관련 HttpOnly/Secure/SameSite
  • CSRF
  • HTTP/HTTPS (HTTP 버전 vs TLS 버전)

위와 같은 키워드를 확인할 수 있었는데, 솔직히 까놓고 말해서 뭐하나라도 설명해봐라 이러면 입도 뻥끗 못할 자신이 있었다. 앱의 보안 취약점 결과다보니 내가 직접 작업자를 할당하여 지시를 드려야했었는데 위 내용들도 모르면서 작업을 지시한다는 행위가 좀 양심에 찔렸다... 네트워크 관련 공부가 필요한 시점이라고 느꼈다..!

빠르게 변하는 트렌드나 환경을 쫒는 것도 좋지만, 본질적이고 변하지 않는 것의 가치는 여전히 유효하다. - 어디서 주워들은 말

책의 내용을 곧이 곧대로 정리하기보단 책을 읽으면서 몰랐던 내용 위주로 작성하거나, 궁금한 내용을 더 파보는 식으로 정리를 해보려고 한다.

본론

1장은 개요 느낌이라 이후 나올 내용들을 간단하게 소개하는 단원이다보니 이번 장만 책의 내용을 간략히 정리하는 방식으로 서술^^

1.1 인터넷이란 무엇인가

1.1.1 구성요소로 본 인터넷

호스트 혹은 종단 시스템:

종단 시스템: 인터넷에 연결되는 컴퓨터와 그 밖의 장치를 컴퓨터 네트워크 용어로 종단 시스템이라고 부름

종단 시스템은 웹 브라우저 프로그램, 웹 서버 프로그램, 전자메일 클라이언트 프로그램 또는 전자 메일 서버 프로그램같은 애플리케이션을 수행하므로 호스트라고도 부름. 호스트는 클라이언트서버로 구분됨

종단 시스템 = 통신 링크 + 패킷 스위치의 네트워크로 연결

패킷 스위치

패킷(packet): 데이터를 세그먼트로 나누고 각 세그먼트에 헤더를 붙혀 만든 정보 패키지

패킷 스위치 1. 라우터

  • 인터넷에서는 패킷 스위치를 라우터라고 부름

패킷 스위치 2. 링크 계층 스위치

프로토콜

프로토콜 1. TCP

프로토콜 2. IP

1.1.2 서비스 측면에서 본 인터넷

애플리케이션에 서비스를 제공하는 인프라스트럭처로서 인터넷을 기술할 수 있음

1.1.3 프로토콜이란 무엇인가?

  • 통신하는 둘 이상의 원격 객체가 포함된 인터넷의 모든 활동은 프로토콜이 제어
  • 둘 이상의 통신 개체 간에 교환되는 메세지 포맷과 순서뿐만 아니라, 메세지의 송수신과 다른 이벤트에 따른 행동들을 정의

1.2 네트워크의 가장자리

1.2.1 접속 네트워크

DSL, 케이블, FTTH, 5G 고정 무선

기업(그리고 가정) 접속: 이더넷과 와이파이

광역 무선 접속: 3G와 LTE 4G와 5G

1.2.2 물리 매체

꼬임쌍선 - UTP, LAN

동축케이블

광섬유

지상 라디오 채널

위성 라디오 채널

1.3 네트워크 코어

인터넷의 종단 시스템을 연결하는 패킷 스위치와 링크의 그물망(mesh)

1.3.1 패킷 교환

  • 종단 시스템들은 서로 메세지를 교환
  • 송신 시스템은 출발 -> 목적지 종단 시스템으로 메세지를 보내기 위해 긴 메세지를 패킷이라고 하는 데이터 덩어리로 분리
  • 패킷은 송신, 수신 사이에서 통신 링크와 패킷 스위치(라우터와 링크 계층 스위치)를 거치게 됨

저장-후-전달

  • 대부분 패킷 스위치는 저장-후-전달 전송 방식을 이용
  • 저장 후 전달은 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 함을 의미

큐잉 지연과 패킷 손실

  • 각 패킷 스위치는 접속된 여러 개의 링크를 갖고 있음
  • 각 링크에 대해 패킷 스위치는 출력 버퍼와 출력 큐를 갖고 있음, 링크로 송신하려고 하는 패킷을 저장

큐잉 지연: 도착한 패킷이 한 링크로 전송되어야 하는데, 그 링크가 다른 패킷을 전송하고 있어 도착한 패킷이 출력 버퍼에서 대기(앞선 저장 후 전달 지연과 더불어)

패킷 손실: 도착하는 패킷 혹은 이미 큐에 대기중인 패킷을 폐기

포워딩 테이블과 라우팅 프로토콜

라우터는 어떻게 도착한 패킷을 다른 링크로 전달해야 하는지를 결정하는가

  • 인터넷에 모든 종단 시스템은 IP 주소라고 하는 주소를 갖음
  • 출발지는 패킷의 헤더에 목적지의 IP 주소(우편 주소)를 포함함
  • 패킷이 네트워크에 한 라우터에 도착하면 라우터는 패킷의 목적지 주소의 일부를 조사, 그 패킷을 이웃 라우터로 전달
    -> 각 라우터는 목적지 주소(혹은 주소의 일부)를 라우터의 출력 링크로 매핑하는 포워딩 테이블을 갖고 있음
  • 포워딩 테이블은 어떻게 설정되는가? (5장에서 논의)
  • 인터넷은 자동으로 포워딩 테이블을 설정하는데 이용되는 여러 특별한 라우팅 프로토콜을 갖고 있음

1.3.2 회선 교환

  • 링크와 스위치의 네트워크를 통해 데이터를 이동시키는 방식에는 회선 교환패킷 교환 두 가지 기본 방식이 존재
  • 회선 교환 네트워크에서 종단 시스템 간에 통신을 제공하기 위해 경로상에 필요한 자원은 통신 세션 동안에 확보 또는 예약
  • 송신자가 정보를 보내기 전에 네트워크는 송신자와 수신자 간의 연결을 설정해야ㅎ함
  • 송신자와 수신자 간의 경로에 있는 스위치들이 해당 연결 상태를 유지해야 하는 연결 - 이 연결을 회선이라고 함
  • 회선 교환과 달리 패킷은 링크 자원을 예약하지 않고 네트워크로 보내짐

회선 교환 네트워크에서의 다중화

패킷 교환 대 회선 교환

  • 링크 전송률을 공유하는 두 방식의 가장 큰 차이점은 회선 교환이 요구에 관계없이 전송 링크의 사용을 할당하는 반면에 패킷 교환은 요구할 때만 링크의 사용을 할당
  • 오늘날 많은 회선 교환 전화망이 패킷 교환으로 전환되고 있음

패킷 교환은 회선 교환보다 효율적, 구현 비용이 적으나 앞서 언급한 예측할 수 없는 종단 간의 지연(큐잉 지연 등) 발생 가능.

1.3.3 네트워크의 네트워크

1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율

1.4.1 패킷 교환 네트워크에서의 지연 개요

전체 노드 지연

노드 처리 지연 + 큐잉 지연 + 전송 지연 + 전파 지연

전송 지연: 라우터가 패킷을 내보내는데 필요한 시간
전파 지연: 비트가 한 라우터에서 다음 라우터로 전파되는데 걸리는 시간

1.4.2 큐잉 지연과 패킷 손실

패킷 손실

패킷이 도착해서 큐가 꽉찬 것을 발견할 경우(패킷 저장 불가), 그 패킷을 버린다.

손실 패킷은 모든 데이터가 궁극적으로 출발지에서 목적지까지 전달되었음을 보장하기 위해 종단 간에 재전송될 수 있다.

1.4.3 종단 간 지연

종단 시스템, 애플리케이션 그리고 그 밖의 지연

  • 패킷을 전송하고자 하는 종단 시스템은 다른 종단 시스템과 매체를 공유하기 위해 프로토콜의 일부로 전송을 의도적으로 지연시킬 수 있음
    ex. VoIP(Voice-over-IP) 애플리케이션에 있는 미디어 패킷화 지연

1.4.4 컴퓨터 네트워크에서의 처리율

1.5 프로토콜 계층과 서비스 모델

1.5.1 계층구조

프로토콜의 계층화

  • 네트워크 프로토콜의 설계 구조를 제공하기 위해, 네트워크 설계자는 프로토콜(프로토콜을 구현하는 네트워크 하드웨어와 소프트웨어)을 계층으로 조직
  • 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 구현할 수 있음
  • 다양한 계층의 프로토콜을 모두 합하여 프로토콜 스택이라고 부름

애플리케이션 계층

  • 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳
  • HTTP(웹 문서 요청과 전송 제공), SMTP(전자메일 전송 제공), FTP(두 종단 시스템 간의 파일 전송 제공)
  • 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어 한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷을 교환하는데 이 프로토콜을 사용

    애플리케이션 계층에서의 이 정보 패킷을 메세지라고 부름

트랜스포트 계층

  • 클라이언트와 서버 간에 애플리케이션 계층 메세지를 전송하는 서비스를 제공
  • TCP, UDP 두 가지 트랜스포트 프로토콜이 있으며 이들은 애플리케이션 계층 메세지를 전달
  • TCP는 애플리케이션에게 연결지향형 서비스를 제공
    • 메시지 전달 보장과 흐름 제어(송신자/수신자의 속도 일치)를 포함
    • 긴 메시지를 짧은 메시지로 나누고 혼잡 제어 기능을 제공하여 네트워크가 혼잡할 때 출발지의 전송률을 줄임
  • UDP 프로토콜은 애플리케이션에 비연결형 서비스를 제공
    • 신뢰성, 흐름 제어, 혼잡 제어를 제공하지 않는 아주 간단한 서비스
  • 이 책에서는 트랜스포트 계층 패킷을 세그먼트라고 함

네트워크 계층

  • 한 호스트에서 다른 호스트로 데이터그램을 라우팅하는 책임을 짐

데이터그램은 발신지에서 목적지까지 데이터를 전달하기 위해 생성되는 독립적인 정보 전송 단위(패킷)을 뜻함

  • 출발지 호스트에서 트랜스포트 계층 세그먼트와 목적지 주소를 네트워크 계층으로 전달
  • 목적지 호스트의 트랜스포트 계층으로 세크먼트를 운반하는 서비스를 제공

네트워크 계층의 두 가지 주요 요소

  • IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의하는 프로토콜을 갖고 있음 - IP 프로토콜

오직 하나의 IP 프로토콜이 있고 네트워크 계층을 가진 모든 인터넷 요소는 IP 프로토콜을 수행해야만 함

  • 출발지와 목적지 사이에 데이터 그램이 이동하는 경로를 결정하는 라우팅 프로토콜을 포함

  • IP가 인터넷을 함께 묶는 역할을 한다는 사실을 반영하여 흔히 IP 계층으로 불림

링크 계층

  • 경로상의 한 노드(호스트 혹은 패킷 스위치)에서 다른 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존해야 함
  • 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고 링크 계층은 그 데이터그램을 경로상의 다음 노드에 전달
  • 다음 노드에서 링크 계층은 그 데이터그램을 상위 네트워크 계층으로 보냄
  • 링크 계층 프로토콜 - ex. 이더넷, 와이파이,
  • 이 책에서 링크 계층 패킷을 프레임이라고 함
    -> 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것이 링크 계층의 기능

물리 계층

  • 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것
  • 이 계층의 프로토콜들은 링크에 의존하고, 더 나아가 링크의 실제 전송 매체(꼬임쌍선, 단일 모드 광케이블)에 의존
    ex. 이더넷은 여러 가지 물리 계층 프로토콜을 갖고 있음(꼬임쌍선용, 동축케이블용, 광케이블용 등)

1.5.2 캡슐화

  • 애플리케이션 계층 메시지와 트랜스포트 계층 해더 정보는 모두 트랜스포트 계층 세그먼트를 구성
  • 트랜스포트 계층 세그먼트는 애플리케이션 계층 메시지를 캡슐화

1.6 공격받는 네트워크

호스트에 멀웨어(악성코드)를 침투

  • 봇넷(DoS 공격)
  • 자기 복제

서버와 네트워크 인프라스트럭처를 공격

  • 취약성 공격
  • 대역폭 플러딩
  • 연결 플러딩

패킷을 탐지

  • 패킷 스니퍼

신뢰하는 사람인 것처럼 위장

  • IP 스푸핑

컴퓨터 네트워킹과 인터넷 역사

1.7.1 패킷 교환 개발: 1961 ~1972

1.7.2 독점 네트워크와 인터네트워킹: 1972~1980

1.7.3 네트워크의 확산: 1980~1990

1.7.4 인터넷 급증: 1990년대

1.7.5 새천년

결론

1.8 요약

  • 컴퓨터 네트워크를 구성하는 여러 하드웨어와 소프트웨어 요소
  • 종단 시스템과 애플리케이션을 살펴봄으로써 네트워크의 가장자리부터 시작했고 종단 시스템에서 수행한느 애플리케이션에 제공되는 트랜스포트 서비스를 봄
  • 링크 계층 기술과 접속 네트워크에서 전형적으로 찾을 수 있는 물리 매체에 대해 알아봄
  • 패킷 교환 네트워크의 지연, 처리율과 패킷 손실의 원인을 알아봄
  • 네트워킹에서의 프로토콜 계층화와 서비스 모델, 주요 구조 원리를 조사
  • 오늘날 널리 퍼져 있는 보안 공격 종류를 알아봄

앞으로 스터디 화이팅~

Reference

profile
실력은 고통의 총합이다. Android Developer

0개의 댓글