지식 창고/CS 전공 지식

[ 릴레이 블로깅 챌린지 3탄 ]네트워크 제 0 편 : 네트워크란 ? 찍먹으로 알아보는 네트워크 기본

감귤밭호지차 2023. 4. 29. 21:30

릴레이 블로깅 챌린지 3탄의 주제가 네트워크 로 선정 한 만큼 겸사 겸사 미뤄왔던 모든 네트워크 정리를 몰아서 해보도록 하겠습니다. 글 정리하다보니 네트워크 편을 쓰다 만 것이 3개나 있었더군요. 반성하는 마음으로 제대로 정리해보도록 하겠습니다. 

 

 

※ 속편 심화 편들은 작성 중이며, 전체 작성 완료 시 이 문구는 사라집니다. ※

 

 

   Network 란 ..?

 

네트워크는 두 대 이상의 컴퓨터가 데이터나 자원 (하드에어, 소프트웨어)를 공유할 수 있도록 연결 되어 있는 구조를 의미합니다.

 

유선 / 무선으로 연결되어있으며 " 인터넷 " 과 같은 다양한 네트워크가 존재합니다. 우리는 네트워크를 통해 데이터를 " 패킷 " 단위로 주고 받을 수 있으며 공통으로 사용하는 자원에 접근하여 작업을 수행할 수 있습니다. 

 

패킷 (packet) : 0과 1로 이루어진 전기 신호 
                       네트워크 통신 시 데이터를 작게 조각내어 주머니에 담아 전송하는 형태
                       패킷에는 조각으로 나누어진 파일 데이터와, 주소, 에러 데이터목적지 등의 정보가 기록 됨.

 

패킷 단위로 데이터를 전송함으로써 가장 효율적인 방식으로 데이터가 이동할 수 있게 되었습니다. 패킷 교환 방식의 프로토콜인 ( IP : 인터넷 프로토콜 ) 은 출발지와 목적지의 정보를 IP 주소라는 특정한 숫자값으로 표기하고 " 라우터 (Router) " 라는 네트워크 장비를 통해 데이터를 전송하고 있습니다. 

 

* IP 주소 : 각 컴퓨터에 부여된 주소

 

 

P.S.

IP 프로토콜은 OSI 7 계층에서 " 네트워크 계층 " , TCP/IP 4계층에서는 " 인터넷 계층 "에서 존재합니다. 

 

 

 

 

      IP 의 한계점             

 

(1) . 비연결성

패킷을 받을 재상이 없거나 서비스 불능 상태여도 패킷은 우선 전송된다는 한계가 있습니다. 

 

(2) . 비신뢰성 

중간에 패킷이 사라지거나 전송하는 패킷의 순서를 보장할 수 없다는 한계가 있습니다. 특히나 전달해야 할 데이터의 용량이 클 경우 패킷 단위로 쪼개져서 전달 되는데 중간 중간 다른 노드( 서버/컴퓨터) 들을 통해 전달 되는 경우가 있기 때문에 원하는 순서대로 도착하지 않을 수 있습니다. 

 

 

     좋은 네트워크란??

좋은 네트워크란 많은 처리량을 처리하면서 지연 시간이 짧고, 장애 빈도가 적으며, 보안성이 좋은 네트워크를 의미합니다.

 

(1) . 성능

'처리량 - 단위 시간 당의 데이터 양' 과 ' 지연시간 - 경유시간, 응답시간, 왕복시간 ' 측면에서 측정이 가능

 

(2) . 신뢰성

'장애 빈도 ' , ' 장애 발생 후 회복 시간 ' , ' 재난에 대한 견고성 ' 등으로 측정 가능

 

(3) . 보안성

불법적인 침입이나 정보 유출에 대한 보안 확보

 

 

     네트워크의 분류 : LAN 과 WAN  / 배치(Topology)에 따른 구분

 

01. 크기, 소유권, 구조 등에 따른 구분

계층이 나눠져 있기 때문에 특정 계층에서 변경 프로토콜이 발생하였을 경우에도 다른 계층은 영향을 받지 않습니다.

 

[1] LAN ( Loval Area Network ) 

건물 이나 특정 지역을 범위로 하는 네트워크 

 

[2] WAN ( World Area Network ) 

지리적으로 넓은 범위에 구축 된 네트워크 

지리적으로 멀리 떨어져있는 컴퓨터들을 연결 하기 위해 ISP ( Internet Service Provider ) : 인터넷 서비스 제공자 ( 통신사 )가 제공하는 서비스를 사용하여 구축된 LAN 과 LAN 을 연결한 형태라고 생각하면 됩니다. 

 

 

 

02. 네트워크의 배치(topology)에 따른 구분

기관이나 기업에서는 한 가지 토폴로지만 사용하는 것이 아닌 복합된 형태의 토폴로지를 사용하기도 합니다. 

 

[1] Mesh

그물 / 망 형태로 아래의 구조들에 속하지 않는 형태를 의미

[2] Star

각 장치가 중앙의 장치(Hub) 에 일 대 일로 별 모양 처럼 연결 되어 통신하는 형태

[3] Bus

하나의 선에 다수의 컴퓨터들이 연결 된 형태 (버스 정류장 같은 모양 )

[4] Ring

노드와 링크가 링 형태로 이어져 구성되는 형태 ( 링을 따라 한 쪽 방향으로 전달 ) 

[5] Tree

트리 형태로 계층형 토폴로지라고도 함 ( 토너먼트 형태 )

 

 

 

 

 

     네트워크 프로토콜

어디를 가든 규칙이 존재하듯이 네트워크에도 공통으로 사용할 수 있는 표준 구격 : 프로토콜이 존재합니다. 대표적으로 < 1. OSI  7계층 모델 > 과 2. < TCP/IP 4 계층모델 > 이 있습니다.

 

** 네트워크 프로토콜 계층 모델 들에 대해서는 더 자세하게 작성하기  제 1편 심화편서 다루고 있습니다. 

 

 

# OSI 7계층 모델 

Open Systems Interconnection 의 약자로 1984년 국제 표준화 기구 (ISO) 에서 발표한 컴퓨터 통신 기능을 계층 구조로 나눠서 정리한 통신 규칙 모델입니다. OSI 모델은 규칙들이 정의되고 이전의 프로토콜들을 표준화하기 위한 목적으로 만들어졌습니다. 

 

** 물리 계층 -  데이터 계층 -  네트워크 계층 - 전송 계층 - 세션 계층 - 표현 계층 - 응용계층

 

 

# TCP / IP 4계층 모델

1970년대 말 부터 미국 국방부에서 개발되고 정의된 초기 인터넷에부터 현재까지 가장 널리 사용되고 있는 네트워크 통신 표준 모델입니다. 현재 인터넷 프로토콜의 기본이 되고 있습니다. 

 

** 네트워크 접속 계층 - 인터넷 계층 - 전송 계층 - 응용 계층 

 

 

 

 

 

     서버에 무언가를 요청할 때 사용하는 방식 2 가지 : GET / POST

서버에 무언가를 요청할 때 HTTP 프로토콜을 이용해서 요청하는 방식 2 가지가 있습니다. GET 방식POST 방식이 있습니다.

 

# GET 방식 

요청하는 데이터가 HTTP Request Message의 Header 부분에 url이 담겨서 전송되는 방식

 

# POST 방식

요청하는 데이터가 HTTP Request Message의 Body 부분에 데이터가 담겨서 전송되는 방식 

 

 

 

 

     HTTP 와 HTTPS

 

[1] HTTP

무상태 프로토콜(Stateless), 비 연결성 (Connectionless)

 

서버가 클라이언트의 상태를 보존하지 않고 요청할 때 필요한 데이터를 담아 보내는 HTTP 의 특징으로 인해 응답 서버를 쉽게 바꿀 수 있어 무한한 서버 증설이 가능합니다.

 

다만 HTTP 는 통신 상대를 확인하지 않고 중간에서 제 3자가 데이터 도청이 가능하기 때문에 해킹의 위험이 큽니다. 물론 이러한 문제점들은 암호화하지 않는 다른 프로토콜에도 공통적으로 해당 되는 문제접입니다. 

 

 

 

 

[2] HTTPS

HTTP + 암호화 + 인증 + 완전성 보호 

 

 HTTPS는 SSL 의 껍질을 덮어쓴 HTTP라고 할 수 있습니다. HTTS는 새로운 애플리케이션 계층의 프로토콜이 아니라 HTTP 통신하는 소켓 부분SSL 혹은 TLS 이라는 프로토콜로 대체하는 것 뿐입니다.

 

* SSL / TLS

서버 인증과 데이터 암호화를 진행하는 프로토콜로 SSL 이 표준화되며 바뀐 이름이 TLS 입니다. 

  • CA 를 통한 인증서 사용
  • 대칭 키, 공개 키 암호화 방식이 혼합된 하이브리드 방식을 사용 

CA 는 서버의 신원을 보증해주는 인증서를 발급해주는 공인된 기간들입니다. : Certificate Authority

 

 

 

 

HTTPS는 요청과 응답을 암호화 하기 때문에 중간에 제 3 자에게 데이터를 탈취되더라도 제 3자는 그 내용을 알아 볼 수 없습니다. 암호화 방식에는 2 가지가 있습니다.

 

 

(1). 대칭 키 암호화 방식

암호화와 복호화가 하나의 키 = 동일한 키로 진행됩니다. 연산 속도가 빠르지만 하나 뿐인 키를 탈취당한다면 암호화의 의미가 없기 때문에 키 관리가 매우 중요합니다. 

 

(2). 공개 키 암호화 방식

암호화 할 때와 복호화 할 때의 키가 따로 존재합니다. 누구나 공개 키를 사용해 암호화 된 데이터를 보내면 비밀 키를 가진 사람만이 암호화된 내용을 복호화할 수 있습니다. 비밀 키는 해킹 당하지 않는 이상 탈취되지 않습니다. 그렇기에 보안성은 더 좋지만 암호화하고 다시 다른 방식으로 복호화하기 위해 복잡한 연산이 필요하여 더 많은 시간을 소모한다는 단점이 있습니다. 

 

 

 


                                                               ** 목차 **

1. 네트워크 0 편 : 네트워크란?  찍먹으로 알아보는 네트워크 기본
2. 네트워크 1 편 : [심화편] OSI 7계층과 TCP/IP 계층
3. 네트워크 2 편 : [심화편] 임시 - HTTP와 HTTPS - GET/POST
4. 네트워크 3편  : [심화편] 임시 - 서버 랜더링  -

 

 

 

 


참고 문헌 : 주홍철 「면접을 위한 CS 전공지식 노트」 (주)도서출판 길벗(2022)
참고 문헌 : 우에노 센 「그림으로 배우는 HTTP & Network」(주) 영진닷컴
참고 문헌 : 미즈구치 카츠야 「모두의 네트워크」(주) 도서출판 길벗 
참고 강의 : 안성진(성균관대학교)  「K-Mooc, 네트워크 기초」
참고 자료 : git - Tech Interview for Beginner