데이터 사이언스를 위한 네트워크 Part 1

데이터 사이언스를 위한 네트워크 Part 1

막상 공부하기는 귀찮은 네트워크에 대해 공부해보자

데이터 사이언스를 위한 네트워크 Part 1

왜 네트워크를 공부하게 되었나?

데이터 분야의 많은 분들이 자주 접하시지만 잘 느끼지 못하는 부분 중에 하나가 네트워크라고 생각합니다. 저만 하더라도 데이터 엔지니어링 업무를 맡기 전까지는 데이터가 어떻게 전달되고 받는 것인지 몰랐고, 알 필요도 없다고 생각했습니다. 하지만 업무를 진행하면 할 수록, 특히 AWS를 자주 접하게 될 수록 벽에 부딪히는 느낌이 들었습니다. 두 가지 벽이었는데 하나는 컴퓨터가 어떻게 작동하는지 모른다는 점이었고(CS, OS영역) 다른 하나는 네트워크에 대한 것이었습니다. 이 한계를 극복하고자 공부를 시작했고 이를 통해 조금이나마 넓어진 시야를 얻게되어 제가 갖게된 지식의 일부분을 잘 정리해보려고 합니다.

Part 1에서는 전반적인 개요와 이론적인 설명 -OSI 7 Layer에 대해서 설명할 예정이며, Part2에서는 AWS를 사용할 때 자주 등장하는 용어들에 대한 정리와 설명을 할 예정입니다.

네트워크

네트워크는 소셜이라는 말과 같이 있을 때 훨씬 더 친숙하게 느껴지는 것 같습니다. ‘소셜 네트워크 서비스’란 사용자 간의 자유로운 의사소통과 정보 공유, 그리고 인맥 확대 등을 통해 사회적 관계를 생성하고 강화해주는 온라인 플랫폼을 의미합니다. 이 SNS에서 가장 중요한 부분은 이 서비스를 통해 사회적 관계망을 형성하는 것입니다.(출처: 위키백과)

결국 네트워크는 어떤 망이라는 것을 뜻합니다. 소셜 네트워크는 사람 간의 사회적인 관계망을 의미하고, 우리가 파고들 네트워크는 인터넷 망, 그리고 컴퓨터 연결 망을 뜻하는 것입니다.

위키백과에서는 네트워크를 다음과 같이 설명합니다. “컴퓨터 네트워크 또는 컴퓨터망은 노드들이 자원을 공유할 수 있게 하는 디지털 전기통신망의 하나. 즉, 분산되어 있는 컴퓨터를 통신망으로 연결한 것을 말한다. 컴퓨터 네트워크에서 컴퓨팅 장치들은 노드 간 연결을 사용하여 서로에게 데이터를 교환한다.”

네트워크의 구조는 집단 크기와 사용자의 대역폭에 따라 달라집니다. 사람이 얼마나 많이 쓰느냐에 따라 구조를 바꿔야 되는 것입니다. 업종에 따라서도 달라질 수 있습니다. 서비스의 중요도에 따라서 달라지는 것인데, 예를 들어 공공기관과 게임 업종의 네트워크의 구조는 그 서비스의 중요도에 따라서 차이가 나게 됩니다.

네트워크의 통신은 서버-클라이언트 방식, 그리고 익숙한 P2P(Peer to Peer)가 있습니다. 네트워크를 구성하는 형태는 다양하며 대표적으로 star, ring, mesh, bus, tree, redundancy가 있습니다. 소개만 하고 넘어가겠습니다.

네트워크는 집단의 크기나 서비스의 중요도나 대역폭에 따라 달라진다고 앞서 말씀 드렸습니다. 이에 따라 크게 세 종류로 나눠볼 수 있습니다. 홈 네트워크, 기업용 네트워크, 그리고 클라우드 네트워크 입니다.

네트워크의 종류에 따라 인터넷이 거치게 되는 경로가 달라지게 되는데 간단하게 요약하자면 다음과 같습니다.

  1. 홈 네트워크
    • 인터넷→ISP(회선 업체)→모뎀(모뎀에는 한 대의 컴퓨터만 연결)→공유기(여러대 사용가능)→컴퓨터
  2. 기업용 네트워크
    • ISP → 전용선 → 라우터 → 방화벽 → L3 백본 → L2 스위치 → 서버,컴퓨터 → L4 로드밸런서 → DMZ(외부 공개)
  3. 클라우드 네트워크(AWS)
    • 인터넷 → Route53(DNS 서비스) → IGW → VPC → ELB → Auto Scaling → Security Group → EC2

홈 네트워크의 경로만 눈에 익숙하고 다른 경로들에서는 낯선 용어들이 많이 보일 것으로 생각됩니다. 그나마 클라우드 네트워크에서 조금 다뤄본 용어들이 등장하는 것 같습니다. 이제 본격적으로 네트워크를 다뤄보면서 용어들에 익숙해져 보도록 하겠습니다.


OSI 7 Layer(Open Systems Interconnection)

네트워크에 대해서 조금 맛 만이라도 본 분들은 OSI 7 Layer를 들어보셨을 것입니다. 네트워크 하면 바로 나오는 게 사실 OSI 7 Layer입니다. 하지만 누군가가 갑자기 와서 Layer 4가 뭐지 라고 물어보거나 OSI 7 Layer 자체가 무엇이냐고 물어보면 당황하는 표정을 숨기며 애써 뭐였지 뭐였지 배웠는데, 기억하는 척을 하는 자신을 만나게 될 것입니다.

이제 OSI 7 Layer에 대해 알아보면서 데이터의 흐름이 어떻게 되는 건지 파악하면서 자연스럽게 머리에 남겨 보도록 합시다.

OSI 7 Layer는 개방형 시스템으로, 네트워크 프로토콜과 통신을 7계층으로 표현한 것입니다. 프로토콜을 기능 별로 나누고 계층 별로 구분을 하기 위해서 만들어 졌습니다. 이렇게 나눈 이유는 벤더 간에 호환성을 위한 표준이 필요했기 때문입니다. 이런 체계가 잡힌 이후에 표준에 의한 용이성과 쉬운 접근성, 그리고 유지관리의 수월성을 통해 기술의 발전이 일어나게 되었고 지금처럼 네트워크의 트래픽 흐름을 살펴볼 수 있게 되었습니다. 자잘한 역사는 넘어가도록 하겠습니다.

OSI 7 Layers의 구조

OSI 7 Layers

아래로 갈수록 기계가 받아들이기 쉬운 언어이며 위로 갈수록 사람이 보기 편한 언어입니다. 즉, 전기적 신호가 인간이 이해하는 언어로 바뀌어 가는 과정이라고 보면 이해가 되실 겁니다. 이 레이어를 거치면서 어떻게 전기 신호가 인간에게 도달하는 지 살펴 보겠습니다.

간단하게 살펴보고 깊게 들어가보겠습니다. 가장 밑단의 Layer는 1단계부터 시작합니다. 1단계에서부터 시작하고 7단계로 올라가서 우리가 볼수있는, 인간에게 친숙한 변환된 정보를 마주하게 됩니다.

이제, 인터넷 선을 컴퓨터에 꽂겠습니다.

Layer 1

Physical. 물리 계층으로서 네트워크 하드웨어 전송 기술들로 구성되어 있습니다.

장치(컴퓨터)와 통신 매체 사이의 비정형 데이터의 전송을 담당하며 하드웨어 부분에 해당됩니다. 디지털 bit인 0,1을 전기 무선 또는 광 신호로 변환하고, 전송되는 방법과 제어 신호, 기계적 속성 등을 정의합니다. 데이터 전달의 역할만을 합니다. 대표적인 장비로는 케이블, 인터페이스(110V 220V), 허브, 리피터 등이 있습니다.

Layer 2

Data Link. 이더넷, 랜카드, MAC 통신을 담당하며 에러를 검출하고 재전송하는 역할을 합니다.

동일 네트워크 내에서 데이터를 전송하고 링크를 통해서 연결을 설정하고 관리하고 물리계층에서 발생할 수 있는 오류를 감지하고 수정합니다. 두 장치 간의 신뢰성 있는 정보 전송을 담당합니다. 전송 단위는 Frame이며 데이터 링크 계층은 MAC과 LLC로 이루어져 있습니다. 캡슐화하는 프레이밍과 흐름제어, 에러제어를 담당합니다.

  • MAC(Media Access Control) 장비들이 통신하기 위한 각각의 일련번호
  • LLC(Logical Link Control)

모뎀, 스위치, 브릿지가 대표적인 장비입니다.


Layer 3

Network. IP통신과 라우팅을 담당합니다.

다른 네트워크로 데이터를 전송하고 IP 주소로 통신 출발지 IP에서 목적지 IP로 데이터 통신 시 중간에서 어떻게 중계할 것 인가를 정합니다. 전송단위는 패킷이고 목적지까지 경로 설정을 합니다. 처리 데이터가 큰 경우에는 분할(패킷화)하고 전송 후에 목적지에서 재 조립하여 붙여진 sequence 넘버대로 메시지를 구현합니다. 대표적인 장비로는 L3 스위치, 라우터가 있습니다.

Layer 4

Transport. TCP / UDP 통신 후 어떤 서비스를 할지 결정합니다.

호스트 간의 데이터(서비스) 전송을 포트로 정의해주는 레이어로 오류 복구 및 흐름 제어, 완벽한 데이터 전송을 보장합니다. TCP/UDP 방식이 존재하고 전송단위는 세그먼트이며 이 레이어 부터 소프트웨어 레벨에 해당합니다. 포트를 제어한다는 의미로 L4 로드밸런서가 있습니다. L4스위치는 3계층에서 온 트래픽을 분석하여 서비스 종류를 구분해 줍니다.

로드밸런서의 역할?

EC2에서 로드 밸런서를 보셨을 겁니다. L4장비인 로드밸런서의 역할을 거의 그대로 하고 있다고 생각하면 됩니다. 로드밸런서는 날라오는 요청들을 받아서 잘 나누어 주는 역할을 합니다. 로드밸런서가 없다면, 요청이 한 곳으로 몰려서 비효율적으로 작업을 처리하게 되거나 심할 경우, 서버에 장애가 생겨 안정적인 서비스를 하기 힘들어집니다.

Layer 5

Session. TCP/IP 통신 연결을 수립 유지 중단하는 역할을 합니다.

로컬 및 원격 애플리케이션 간의 IP/ Port 연결을 관리합니다.

Session Table에 구성되어 있으며 데이터는 테이블에 적혀있는 IP/Port로 연결됩니다.

1
netstat -an #명령어로 Session Table 확인가능

Layer 6

Presentation. 인코딩, 암호화 압축을 담당하고 데이터를 사람이 이해하도록 인코딩합니다.

사용자 프로그램과 네트워크 형식간에 데이터를 변환해 표현과 독립성을 제공합니다. 인코딩, 디코딩, 암호화, 압축이 이 레이어에 속하게 됩니다. ASCII, JPG, MPEG 등의 번역을 합니다.

Layer 7

Application. 다양한 응용 서비스 계층입니다. HTTP, SMTP, 모바일 서비스 등이 여기에 해당됩니다.

응용 프로세스 간의 정보 교환을 담당하며, 사용자와 가장 밀접한 소프트웨어 단입니다. 이메일 서비스(SMTP), 파일전송(FTP)

근데 데이터를 어떻게 전송하고 받는거지…

OSI 7 Layer를 공부해도 데이터가 어떻게 왔다갔다 하는지 잘 모르겠습니다. 이제 이론을 배웠으니 흐름이 어떻게 되는 건지 알아보도록 합시다.

데이터는 인캡슐레이션과 디캡슐레이션을 통해서 Layer 위로 올라가기도 하고 내려가기도 합니다. 인캡슐레이션은 쉽게 말해서 헤더를 붙이는 것을 말하고, 디캡슐레이션이란 헤더를 떼는 것을 말합니다.

인캡슐레이션과 디캡슐레이션이 왜 필요한데요? 라고 물어보실 수 있습니다. 왜냐면 데이터 자체로는 상대방에게 전달이 되지 않기 때문입니다. 우리가 어떤 물건을 상대방에게 보내려고 할때 택배회사를 이용하는 것과 비슷하다고 보면 이해가 되실 겁니다. 물론 상대방에게 물건을 갖다가 주거나 앞에서 매몰차게 던지는 경우도 있긴 하지만, 품격있는 사회인인 우리는 택배회사를 이용한다고 가정해보겠습니다.

우리가 물건을 받으면 물건은 포장에 아름답게 쌓여져 있습니다. 우리는 소중한 존재이기에 예쁜 포장지로 쌓여져 있다고 생각해보겠습니다. 겉 리본을 풀고 예쁜 포장지를 풀고, 뾱뾱이를 제거하고 종이포장을 제거하고 … 해서 우리가 원하는 물건을 받게 됩니다.

데이터 받아라!

데이터 역시 이와 같습니다. 데이터 또한 헤더로 쌓여져 있는 포장지를 디캡슐레이션 해나가서 최종단계인 Application 레이어에 도달해 우리가 이해할 수 있게 되어 있는 데이터를 마주하게 되는 것입니다.

다른 상대방에게 보낼 때는? 똑같이 역으로 예쁘게 포장을 해서 상대방에게 보내면 됩니다.

우리가 상대방에게 데이터를 전송한다고 해봅시다. 흐름은 다음 같습니다.

데이터(인코딩) → 세그먼트(Layer4) → 패킷(Layer3) → 프레임(Layer2) → 비트(Layer1)

인간이 이해하기 쉬운 형태로 되어있는 데이터가 기계가 이해할 수 있게 인코딩되고 헤더를 붙여나가면서, 최종적으로는 비트로 표현되어 다른 곳으로 보내어질 준비를 마치게 됩니다.

OSI 7 Layer 요약

Layer PUD Protocol Device Function
7 (Application) Data HTTP, FTP, DNS, DHCP, SMTP, NFS, RTSP 사용자가 네트워크에 접근할 수 있도록 해주는 계층이다.사용자 인터페이스, 전자우편, 데이터베이스 관리 등 서비스를 제공한다.
6 (Presentation) Data JPEG, MPEG, SMB, AFP 데이터를 하나의 표현 형태로 변환한다.필요한 번역을 수행하여 두 장치가 일과되게 전송 데이터를 이해할 수 있도록 한다.
5 (Session) Data(Payload) SSH, TLS, ISO8327, Apple talk, NetBIOS 통신 세션을 구성하는 계층으로 포트(port) 연결이라고도 할 수 있다. 통신 장치 간의 상호 작용을 설정하고 유지하며 동기화한다. 사용자 간의 포트 연결(세션) 이 유효한지 확인하고 설정한다.
4 (Transport) Segments TCP, UDP, RTP, SCTP, SPX Gateway End to End Commnication전체메시지를 발신지 대 목적지 간 제어와 에러를 관리한다. 패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성 있는 통신을 보장하며 머리 말에는 Segment 가 포함된다.
3 (Network) Packets IP, ARP, ICMP, IGMP, RIP, IPX, DDP,OSPF, IS-IS, BGP Router 다중 네트워크 링크에서 패킷을 발신지로부터 목적지로 최단 거리로 전달할 책임을 갖는다. 각 패킷이 시작지점에서 최종목적지까지 성공적으로 전달 되도록 한다.
2 (Data Link) Frames Ethernet, PPP, Wireless Len Bridge, Switch 오류없이 한 장치에서 다른 장치로 프레임(비트의 모음)을 전달하는 역할로 스위치 같은 장비의 경우 MAC 주소를 이용하여 정확한 장치로 정보를 전달한다.
1 (Physical) Bits Ethernet, RS-232C,Modem Hub, Reafiter 물리적 매체를 통해 비트 흐름을 전송하기 위해 요구되는 기능들을 조정한다.케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고네트워크의 두 노드를 물리적으로 연결시켜준다.

출처 : https://kin3303.tistory.com/247


Reference

https://ko.wikipedia.org/wiki/OSI_모형

http://blog.naver.com/PostView.nhn?blogId=pst8627&logNo=221670903384

https://jhnyang.tistory.com/194

https://kin3303.tistory.com/247

데이터 사이언스를 위한 네트워크 Part 1

http://tkdguq05.github.io/2020/11/29/network-part1/

Author

SangHyub Lee, Jose

Posted on

2020-11-29

Updated on

2023-12-08

Licensed under

Comments