- toc {:toc}
Notice
Computer Networks 글은 경희대학교 소프트웨어융합대학 이성원 교수님의 [컴퓨터 네트워크 CSE302] 수업을 기반으로 정리한 내용입니다.
Introduction
- Computer Network(ing)
- 과거 : 장치와 장치간의 연결에 중시, 표준에 기반하여 장치 연결(장치)
- 현재 : 표준에 따르지 않고 내가 문제를 정의하고 해결할 수 있는 능력이 있다면 나만의 네트워크를 연결(행위, 소프트웨어)
OSI 7 Layer
- OSI 7 Layer : 컴퓨터 네트워킹의 가장 중요한 원칙(통신 표준 계층)
- Open Systems Interconnection Reference Model(OSI)
- OSI는 기초적인 내부 구조, 기술에 관계 없이 컴퓨팅 시스템 또는 소통 기능을 표준화한 개념적 모델이다.
- 표준 프로토콜을 통한 다양한 커뮤니케이션 시스템의 상호 운용성을 목표로 한다.
마리아와 앤이 통신하는 경우를 OSI layer로 표현해보자.
- 마리아가 메일를 보내는 경우
- 마리아가 보내려는 메일은 Layer 3에서 Layer 2로 이동해 암호화된다.
- 암호화된 메일는 Layer 1에서의 연결을 통해 보내진다.
- 보내진 메일은 앤의 Layer 1로 전달된다.
- 전달된 메일은 Layer 1에서 Layer 2로 이동해 복호화된다.
- 복호화된 메일은 앤에게 전달된다.
이때 마리아는 sender이고, 앤은 receiver가 되어, Layer 1의 carrier를 통해 정보를 주고 받는다. 마리아의 Layer 1과 앤의 Layer 1이 서로 통신한 것과 같이 같은 level의 Layer간 이루어지는 통신을 Peer Communcation이라 한다.
Physical Layer (Layer 1)
물리적인 연결(Physical medium)을 통한 비트 스트림의 송수신이 이루어진다. 즉, 왼쪽과 오른쪽의 장치를 유/무선으로 연결해 0과 1의 메시지를 주고 받는다. 1계층에서는 데이터를 전달하기만 할 뿐, 데이터가 무엇인지, 어떤 에러가 있는지는 신경쓰지 않는다.
장치 : 통신 케이블, 허브
- 허브 - 두 가지 기능으로 많이 사용된다.
- 리피터 : 전기적인 신호를 증폭시켜 들어온 데이터를 재전송한다.
- 멀티포트 : 한 번에 많은 디바이스를 연결할 수 있도록 한다.
허브는 단순한 분배 중계기이고 디바이스 수에 따라 전송 대역을 분리하는 역할만 한다. 10Mbps를 제공하는 이더넷에 5개의 디바이스를 연결하면 각 디바이스는 2Mbps의 대역폭만을 사용한다. 허브와 연결된 네트워크에서 하나의 디바이스로 전송된 데이터 프레임은 허브와 연결된 모든 디바이스에게 전부 전송하는 현상이 생겨 충돌이 많이 발생한다.
Data Link Layer (Layer 2)
Point-to-Point로 이어진 인접한 노드들 간의 신뢰성 있는 데이터 프레임의 전송을 목적으로 한다. 1계층의 데이터 전송의 경우 데이터 전달 과정에서 외부 요인들로 인해 0이 1로 변경되는 등의 노이즈, 에러가 발생할 가능성이 높다. 때문에 이런 오류를 검출하는 역할을 2계층에서 한다. 또한, 한 쪽으로 데이터가 몰리는 경우 속도가 느려지고 전달이 잘 되지 않는 경우 등에 대해 흐름 제어를 하는 역할을 한다.
대부분 1, 2계층이 합쳐져 있다. (이더넷, 4 or 5세대 이동통신) 1, 2계층은 왼쪽과 오른쪽 장치를 하나로 연결하는 것을 말한다. 2계층에서는 MAC(이하 맥) 주소를 가지고 통신한다. 계층에서 전송되는 단위를 프레임이라 한다.
장치 : 스위치, 브리지
- 스위치
스위치는 자신과 연결된 디바이스들의 맥 주소와 포트가 기록된 맥 주소 테이블을 가지고 있다. 따라서 프레임이 자신에게 올 경우 목적지를 확인해 디바이스에게 프레임을 전송(흐름 제어)한다. 만약, 자신의 맥 주소 테이블에 없는 주소가 전달되는 경우에는 연결되어 있는 모든 디바이스에 데이터를 전송한다. 또한, 데이터 전송 에러를 복구하는 기능을 가진다.
Network Layer (Layer 3)
2개 이상의 줄, 3개 이상의 장치를 구조화하고 다루는 경우를 3계층에서 다룬다. 1, 2계층에서의 연결의 경우 줄 하나로 이어져 있기 때문에 A 장치에서 보낸 메시지가 B 장치로 도착 후 C, D, E 장치로 전달해야 하는데, 이를 3계층에서 다룬다. 다음과 같이 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 라우팅이라 한다. 라우터를 통해 이루어진다.
네트워크 계층은 네트워크 관리자가 직접 주소를 할당하는 논리적인 주소 구조(IP)를 가지며 계층적이다.
- 라우터
{: width=“350” height=“350”}
정보를 주고 받을 때 송신정보(패킷)에 담긴 수신처의 주소를 읽고 가장 적절한 통신경로를 이용해 다른 통신망으로 전송하는 장치이다. 가장 효율적인 경로를 선택해 통신 흐름을 제어한다.
Transport Layer (Layer 4)
전송 계층은 양 끝단(End-to-End)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해준다. 예를 들면 컴퓨터에서 수신자의 이메일 서버로 이메일을 보낼 때를 생각해보자.
- 전송 제어 프로토콜(Transmission Control Protocol, 이하 TCP)을 통해 이메일 제공업체 서버에 연결한다.
- 이메일 클라이언트는 메시지를 작은 데이터 패킷으로 나누고 TCP는 시퀀스 번호를 추가한다.
- 전송 중 패킷이 손실되거나 손상된 경우 TCP는 이를 감지하고 누락되거나 손상된 패킷의 재전송을 요청한다.
- 이메일 서버가 처리할 수 있는 것보다 더 빠르게 데이터를 수신하는 경우 이메일 클라이언트에 신호를 보내 서버에 부담을 주지 않도록 데이터 전송 속도를 늦춘다.(흐름 제어)
- 이메일 제공업체의 서버가 모든 패킷을 수신하고 성공적으로 재정렬해 이메일 클라이언트에 승인을 보내 이메일이 수신되었음을 확인한다.
- 이메일이 성공적으로 전송되면 TCP연결이 닫힌다.
다음과 같이 4계층의 경우 여러 장치가 있는 복잡한 네트워크를 통과하더라도 오류 없이 안정적으로 전송되도록 보장한다.
Session Layer (Layer 5)
응용프로그램 사이의 논리적인 연결을 다룬다. Authentication, Permission, Session Restoration을 다룬다.
- Authentication : 비용 지불 유무를 통한 유튜브, 넷플릭스 서비스 이용
- Permission : 비용한 지불마다 각기 다른 서비스 제공
- Session : 영상을 서비스할 때 영상, 음성, 자막 등을 구분해서 보내는데 이렇게 하나의 서비스에 대해 여러 개의 통신 데이터를 주고 받는 것
- Session Restoration : 영상을 보다 음성, 영상, 자막 등에 대해 지연 발생 시 재 조립하는 것
양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
Presentation Layer (Layer 6)
- 문자/멀티미디어 암호화, 데이터 압축, 암호화/복호화와 같이 서비스와 응용 프로그램 사이의 데이터 전송을 다룬다.
- 코드 간의 번역을 담당해 사용자 시스템에서 데이터의 형식상 차이를 공통의 형식으로 변경하여 통일하는 역할을 한다.
- 예를 들어 해당 데이터가 txt인지, jpg인지 구분하는 역할을 한다.
- 쉽게 말해 우리가 주고받는 미디어에 대해 어떤 식으로 모양을 만들 것인지에 대해 정한다.
Application Layer (Layer 7)
응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다. ex) HTTP
Open Source Hardwares
해당 제품과 똑같은 모양 및 기능을 가진 제품을 만드는데 필요한 하드웨어의 회로도, 설계 도면 등을 공개한 제품을 말한다.
Arduino
- 2003년에 이탈리아 IDII(Interaction Design Institute Ivrea) 에서 저예산으로 디자인 작품을 손쉽게 제어하는 방법으로 아두이노 프로젝트를 시작했다.
- 아두이노는 단일 보드 마이크로 컨트롤러로 디자인, 조작 가능한 오픈소스 컴퓨터 하드웨어, 소프트웨어, 프로젝트, 커뮤니티이다.
- 아두이노 제품들은 LGPL 또는 GPL 라이선스 아래에 있는 오픈소스 소프트웨어 하드웨어이다.
- 처음에는 교육용으로 만들어져 CPU도 없었으나, 교육용 외로 많은 수요가 있었고, CPU와 통신기능을 탑재시키는 등 수요에 맞춘 다양한 변형이 탄생했다.
OCP(Open Compute Project)
- 기업 간에 데이터 센터 제품 설계를 공유하는 조직
- 메타, 페이스북이 데이터 센터를 오픈소스로 공유하면서 시작했다.
- 서버, 스토리지, 네트워크 등 데이터 센터의 모든 기술을 공유했다.
- 왜 만들었을까?
- 범용 제품의 경우에는 모든 사람의 조건을 충족해야 하기에 과도한 스펙을 가질 수 있다.
- 하지만 오픈소스 데이터 센터를 통해 업계 표준을 제시했고, 개인의 입장에서는 하드웨어를 내가 원하는 최적으로 설정할 수 있게 됐다.
- 이를 통해 인프라에 대한 혁신을 축진하고, 비용 절감 등의 효과를 불러 일으켰다.
Single Board Computer (SBC) - Raspberry Pi
- 라즈베리파이는 영국에서 학교, 개발도상국에서 기본적인 컴퓨터과학을 가르치기 위해 고안한 방식으로 작은 single-board computer 시리즈이다.
- 컴퓨터 가격적인 부담으로 인해 적은 비용으로, 리눅스 오픈소스를 올려 사용할 수 있도록 고안됐다.
- 라즈베리파이는 모듈성으로 인해 로봇공학과 같은 다른 분야에서도 인기를 끌었고 이에 다양한 분야에서 널리 사용되었다.
참고문헌
- Fig1 - https://sites.google.com/site/21herecomeputer/2
- Fig2 - 나무위키 허브
- Fig3 - 현대 HDS
- Fig4 - 위키백과 라우터
연결문서
- 다음 노트 - 2023-10-02-ComNet-L02-Basic