[네트워크] 혼자 공부하는 네트워크 1주차

gunny·2024년 7월 4일
0

[CS] OS, Network

목록 보기
2/5

서론

이직 전 혼공학습단 8기에서 혼자 공부하는 SQL, 9기에서 혼자 공부하는 컴퓨터구조 운영체제,
10기에서 혼자 공부하는 얄팍한 코딩 지식을 했었다.
퇴사하고 구직하고 새로운 회사에 적응하고 공부할게 많이 생겼는데 공부하고 있는 분야랑 겹치는 책이 없어서 잠시 드랍했었다. 이번에 혼자 공부하는 네트워크 책이 나왔다고 하길래 이직 하면서 면접 공부하려고 다시 참여했다. (추구미 : 이직준비생)
사실 네트워크 공부가 필요해서 시스코 책을 샀었는데 책이 약간 두꺼워서 읽다가 방치해뒀는데 반 강제로라도 혼자 공부하는 네트워크 책으로 한번 쓱 훑고나서 시스코 책으로 들어가려고 한다.

원래 8,9,10기는 노션 + 블로그 플랫폼을 이용했는데 이번에는 velog 로만 작성하려고 한다.
블로그로 쓰니까 자꾸 개드립치고 싶어서 대충 사회적 가면(개발자인척 하는 가면)을 잘쓰고 정중한 말투로 작성하는 velog에 써야겠다. 또 예전에는 유투브에 올라와있는 강의는 대충 봤는데 유투브 강의 보고 -> 책 읽고 -> 정리하고 -> 과제하고 -> 업로드 순으로 가려고 한다.

그리고 원래 작성 순서가 이론 정리 -> 숙제 과제 -> 마무리 였는데
혼공족장쓰가 본인에겐 무의미할 수 있는 이론 정리를 보고 숙제 과제를 내리기에는 스크롤도 내려야하고 손목터널 증후군을 가지고 있는 나로서는 개빡치는 일이 아닐 수 없어서 괴상하지만 글의 스트럭처를 숙제(과제) -> 이론 정리 -> 마무리로 가려고 한다.(다른 직장인 생각하는 나 직장인 폼 어떤데)

혼공학습단 12기 1주차

혼자 공부하는 네트워크

2024.07.01 ~ 2024. 07.07

  • 진도: Chapter 01
  • 기본 숙제(필수): OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조를 작성해 보기(p. 62 참조)
  • 추가 숙제(선택): Ch.01(01-1) 확인 문제 2번(p.35), (01-3) 확인 문제 2번(p.73) 풀고 설명하기

숙제(과제)

기본숙제(필수)

  • 기본 숙제(필수): OSI 모델 및 TCP/IP 모델 차이점을 정리하고, 이를 바탕으로 네트워크 계층 구조를 작성해 보기(p. 62 참조)

OSI 모델과 TCP/IP 모델은 네트워크를 통해 정보를 주고 받을 때, 즉 통신이 일어나는 과정을 계층으로 나눈 구조인 네트워크 참조 모델 인데 OSI 계층이 '이상적 설계'에 가깝다면 TCP/IP 모델은 '실용적 구현'에 가깝다. 즉 OSI 계층은 이론의 느낌이고 TCP/IP 모델은 구현에 중점을 둔 네트워크 참조 모델이다.

발그림으로 네트워크 계층 구조를 작성해보자면

추가숙제

  • 추가 숙제(선택): Ch.01(01-1) 확인 문제 2번(p.35), (01-3) 확인 문제 2번(p.73) 풀고 설명하기

Ch.01 (01-1) 확인문제 2번

답 3.

풀이 : 개발자자가 컴퓨터 네트워크를 알아야 하는 이유는 여기서 개발자들의 업무를 프로그램을 만드는 업무, 만들어진 프로그램을 유지 보수하는 업무를 한다고 정의했을 때 네트워크에 대한 이해는 프로그래밍 언어와 웹 프레임워크 혹은 라이브러리를 사용할 때 네트워크에 대한 배경지식이 있어야 활용할 수 있다.
즉, 네트워크에 대한 배경 지식을 알게되면 프로그램을 만들고 유지보수 하는데 도움을 줄 수 있다.
고로 2번의 (1) 네트워크에 대한 이해는 프로그램을 만드는 과정에 도움을 주지 않습니다 -> (X)
도움을 줄 수 있다.

(01-3) 확인 문제 2번(p.73)

답 2.

TCP/IP 모델은 4개 혹은 5개(물리 계층을 포함한다면) 로 구분할 수 있는데, 통상적으로 네트워크 액세스 계층, 인터넷 계층, 전송 계층, 응용 계층으로 통신 과정을 구분할 수 있다.

정리

01 컴퓨터 네트워크 시작하기

컴퓨터 네트워크 지식의 필요성, 컴퓨터 네트워크의 큰 그림, 컴퓨터가 네트워크를 통해 대화하는 과정 이해

01-1. 컴퓨터 네트워크를 알아야하는 이유

  • 컴퓨터 네트워크(Computer network, 이하 네트워크) : 여러 개의 장치가 서로 연결되어 정보를 주고 받을 수 있는 통신망
  • 인터넷(Internet) : 네트워크의 네트워크로 즉 네트워크를 연결하는 네트워크
    여러 장치들이 네트워크를 통해 연결되어 주변의 장치하고만 정보를 주고 받는 것이 아니라, 네트워크로 연결된 지구 반대편에 있는 장치와도 정보를 주고 받을 수 있
    게 된다. 이를 가능하게 하는 것이 인터넷.

01-2. 네트워크 거시적으로 살펴보기

  • 네트워크의 형태
    : 네트워크는 노드(node)와 간선(edge)로 이루어진 graph(그래프) 자료구조의 형태이다.
    모든 네트워크는 '노드', 노드를 연결하는 '간선', 노드 가 주고 받는 '메시지'로 구성됨

    노드 : 정보를 주고 받을 수 있는 장치
    간선 : 정보를 주고받을 수 있는 유무선의 통신 매체

  • 네트워크의 구조
    : 호스트(host), 네트워크 장비, 통신 매체, 메시지로 구성

(1) 호스트(host)
네트워크의 가장자리에 위치한 노드로, 종단 시스템(end system) 이라고도 하며 대표적인 역할로 서버와 클라이언트가 있음
- 서버는 어떠한 서비스를 제공하는 호스트, 클라이언트는 서버에게 어떠한 서비스를 요청하고 서버의 응답을 제공받는 호스트

(2) 네트워크 장비
호스트간 주고받을 정보가 중간에 거치는 중간노드
대표적으로 이더넷 허브, 스위치, 라우터, 공유기
호스트 간 주고 받는 정보가 원하는 수신지 까지 안정적이고 안전하게 전송될 수 있게 함

(3) 통신 매체
호스트와 네트워크 장비를 연결하는 간선
통신 매체를 유선으로 연결하는 유선 매체, 무선으로 연결하는 무선매체가 있음

(4) 메시지
통신 매체로 연결된 노드가 주고 받는 정보

  • 범위에 따른 네트워크 분류
    (1) LAN (Local Area Network) : 근거리 통신망
    (2) WAN (Wide Area Network): 원거리 통신망
    WAN은 멀리 떨어진 LAN을 연결할 수 있는 네트워크
    인터넷이 WAN으로 분류됨

여기서 ISP(Internet Service Provider)가 등장하는데, 사용자에게 인터넷과 같은 WAN에 연결 가능한 회선을 임대하거나 다양한 서비스를 제공하는 것을 말한다. 국내의 KT, SK브로드밴드, LG유플러스

추가로 범위에 따라서 학교 또는 회사의 건물 단위로 연결되는 규모인 CAN(Campus Area Network), 도시나 대도시 단위로 연결되는 규모인 MAN(Metropolitan Area Network) 도있다.

범위를 큰 순서대로 나열하자면 WAN > MAN > CAN > LAN 이다.

  • 메시지 교환 방식에 따른 네트워크 분류
    (1) 회선 교환 방식(circuit switching)
    (2) 패킷 교환 방식(packet switching)

(1) 회선 교환 방식
메시지 전송로인 회선(circuit)을 설정하고 메시지를 교환함. 호스트들이 메시지를 주고받기 전 두 호스트를 연결하고 연결된 경로로 메시지를 주고 받는 것
주어진 시간 동안 전송되는 정보의 양이 비교적 일정하지만, 회선 이용 효율이 떨어짐

회선 교환 네트워크가 올바르게 동자갛기 위해 호스트간 회선을 적절하게 설정하는 회선 스위치 존재

(2) 패킷 교환 방식
회선 교환 방식의 문제점을 해결한 방식으로 메시지를 패킷이라는 작은 단위로 쪼개서 전송. 패킷은 패킷 교환 네트워크 상에서 송수신되는 메시지의 단위
패킷 교환 방식은 정해진 경로로만 메시지를 송수신 하지 않아 다양한 중간 노드를 거쳐서 패킷 스위치가 존재해 패킷이 수신지까지 올바르게 도달할 수 있도록 최적의 경로를 결정하거나 패킷의 송수신지를 식별함.
대표적인 패킷 스위치 네트워크 장비는 라우터(router), 스위치(switch)

패킷을 통해 전송하고자 하는 데이터는 페이로드(payload) 라고 하는데, 페이로드와 더불어 헤더(header), 트레일러(trailer)로 패킷에 붙은 일종의 부가 정보로, 제어 정보가 있음

즉, 패킷은 페이로드와 헤더로 구성되고 때로는 트레일러도 포함됨

패킷의 헤더에 담기는 대표적인 정보로는 주소(address)가 있는데, 송수신자를 특정할 수 있는 정보이다.
이러한 송수신지를 특정할 수 있는 주소(유형)에 따라서 전송방식인 유니캐스트(unicast), 브로드캐스트(broadcast), 멀티캐스트(multicast), 애니캐스트(anycast) 가 있다.

(1) 유니캐스트(unicast)
일반적인 형태의 송수신 방식, 송신지와 수신지가 일대일로 메시지를 주고 받음
(2) 브로드캐스트(broadcast)
자신을 제외한 네트워크 상의 모든 호스트들에게 전송
브로드캐스트가 전송되는 범위 : 브로드캐스트 도메인(broadcast domain)
즉, 브로드캐스트의 수신지 ->브로드캐스트 도메인
(3) 멀티캐스트(multicast)
동일 네트워크 그룹의 호스트에게만 전송
(4) 애니캐스트(anycast)
동일 그룹의 호스트 중 가장 가까운 호스트에게 전송하는 방식

01-3. 네트워크 미시적으로 살펴보기

  • 프로토콜
    현대 인터넷은 호스트 간 패킷을 교환하는 방식으로 패킷 교환 방식을 사용하는데, 이러한 호스트 간의 패킷 교환 시 '노드 간에 정보를 올바르게 주고 받기 위해 합의된 규칙이나 방법' 이다.
    즉, 서로 다른 통신 장치들이 젇보를 주고 받기 위해서는 프로토콜이 필요하다.
    이러한 프로토콜은 저마다의 목적특징 이 있다.
    그래서 이에 부합하는 정보도 달라지며 특정 프로토콜로 주고 받는 패킷의 부가 정보가 달라진다. 즉, 프로토콜마다 패킷의 헤더 내용이 달라 지는 것이다.

  • 네트워크 참조 모델
    네트워크를 통해 정보를 주고 받을 때 정형화된 여러 단계를 거치는데 이 과정을 계층으로 표현할 수 있다.
    이렇게 통신이 일어나는 각 과정을 계층으로 나눈 구조를 네트워크 참조 모델(network referencd model) 이라고 한다.
    계층으로 표현한다는 점에서 네트워크 계층 모델이라고 부른다.

    이와 같이 통신 과정을 계층으로 나눈 이유는 (1) 네트워크 구서오가 설계가 용이함 (2) 네트워크 문제 진단과 해결이 용이하기 때문이다.

    대표적인 네트워크 참조 모델로 OSI 모델, TCP/IP 모델 이 있다.

    이러한 OSI 모델은 통신 단계를 7계층으로 나누는데, 각각 최상위 계층으로 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이다.

OSI 7 계층

(1) 물리 계층 (Physical layer)

  • 1과 0으로 표현되는 계층

  • 통신 매체에 맞는 신호로 운반되도록 비트 데이터의 변환이 이루어지고 통신 매체를 통한 송수신이 이루어지는 계층

    (2) 데이터 링크 계층 (data link layer)

  • 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층

  • 물리 계층을 통해 주고 받는 정보에 오류가 없는지 확인하고 MAC 주소 체계로 네트워크 내 송수신지 특정함

    (3) 네트워크 계층 (Network layer)

  • 메시지를 다른 네트워크에 속한 수신자까지 전달하는 계층
    네트워크 간의 통신이 이루어지고, 인터넷을 가능하게 하는 계층

    (4) 전송 계층 (Transport layer)

  • 신뢰성 있고 안정성 있는 전송을 해야할 때 필요한 계층

  • 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고 안정적인 전송이 이루어지도록 함

    (5) 세션 계층 (Session layer)

세션(session) : 통신을 주고 받는 호스트의 응용 프로그램 간 연결 상태

  • 이러한 연결 상태를 생성하거나 유지하고 종료 되었을 때 끊어주는 역할

    (6) 표현 계층(presentation layer)

  • 사람이 이해할 수 있는 언어 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나, 압축, 암호화 같은 작업이 수행됨

    (7) 응용 계층(Application layer)

  • 사용자가 이용할 응용 프로그램에 대한 다양한 네트워크 서비스를 제공

TCP/IP 모델

이론보다는 구현에 중점을 둔 네트워크 참조 모델
OSI 계층이 '이상적 설계'에 가깝다면 TCP/IP 모델은 '실용적 구현'에 가까움

TCP/IP 모델은 TCP/IP 4계층, 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택이라고 불린다.

여기서 IP(Internet Protocol)는 인터넷 프로토콜의 약자

(1) 네트워크 액세스 계층(Letwork Access Layer)
= 링크 계층(link layer), 네트워크 인터페이스 계층(nework interface layer)

  • OSI 계층의 데이터 링크 계층과 유사
  • 상위 계층으로부터 전달받은 패킷에 물리적 주소로 MAC 주소 정보인 헤더를 추가

(2) 인터넷 계층(Internet Layer)

  • OSI 모델에서의 네트워크 계층과 유사

(3) 전송 계층(Transport Layer)

  • OSI 계층의 전송 계층과 유사

(4) 응용계층(Application Layer)

  • OSI 계층의 세션, 표현, 응용 계층을 합친것과 유사
  • 캡슐화(encapsulation)와 역캡슐화(decapsulation)
    캡슐화 : 송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정
    역캡슐화 : 수신 과정에서 캡슐화 과정의 헤더 및 트레일러를 확인한 후 제거
  • PDU(Protocol Data Unit)
    상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더(및 트레일러)를 추가하면 현재 계층의 PDU가 됨

각 계층에 따라 설명하자면
물리적 계층 : 비트(bit)
데이터 링크 계층 : 프레임(frame)
네트워크 계층 : 패킷(packet)
전송 계층 : 세그먼트(segment), 프레임(frame)
세션 계층, 표현 계층, 응용 계층 : 데이터(data)

참고로 '패킷'은 패킷 교환 네트워크에서 쪼개져 전송되는 단어를 통칭하기 위한 일반 용어로 사용되기도 하고, 네트워크 계층에서 송수신 단위를 지칭하기 위해 사용되기도 함

마무리

일단 오늘도 404 맞다가 공부하면서 영상으로 404 보니까 PTSD 올 뻔했음
최대한 쉽게 쓰려고 노력한게 보이는 저자의 의도가 있어서, 그냥 머리에 때려박았던 기본 네트워크 지식들이 정리가 되는 느낌이라 좋았다
와라 네트워크야. 이런책 기다리고 있었다. 귀하다 와라

profile
꿈꾸는 것도 개발처럼 깊게

1개의 댓글

comment-user-thumbnail
2024년 7월 5일

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 말투가 너무 재밌으시네요

답글 달기