컴퓨터 네트워크 (11), Make Networking

2022. 6. 15. 19:59강의 내용 정리/컴퓨터 네트워크

728x90
반응형

Make Networking

1. Internet of Thing(IoT)

1) Kevin Ashton

앞으로 소프트웨어가 올라가고 계산이 가능한 컴퓨터는 작아지고 이는 네트워크로 연결되고, 인간이 만들어낸 정보보다 매우 많은 데이터를 만들어낼 것이다. 


- IoT라고 불리는 단어를 만든 사람으로 RFID 저널에 논문에서 처음 IoT를 얘기했다.

 

2) IoT 상품

- 2014년에 가장 영향력있는 IoT 물건들이다. 

- 무선으로 온도를 측정하고, 자동으로 냉난방기 돌리도록 하는 상품

- 네트워크에 연결된 웹캠

- 물리적인 열쇠를 꽂거나 wifi나 블루투스로 연결되어있으면 문을 열 수 있다.

- 콘센트 위에 꽂고 사용하면 단추를 눌러서 on off, 집 밖에서도 끌 수 있다.

- 스마트폰으로 전구를 켜거나 끌 수 있다.

- 대게 집에 있는 물건들이 IoT 상품으로 많이 나왔다.

- 과거에 엄청난 파장을 일으킬 것이라고 얘기했더라도 굳이 필요성을 느끼지 못해 아직까지 크게 바뀐 것은 없다.

- 미국은 단독주택이 많기에 비만에 영향을 미칠 것으로 얘기가 나와서 이를 자제하자는 목소리도 존재했다. 

 

 

3) IoT 회사

- 자본력이 강한 국가에서는 대게 아이폰이 많이 쓰이기 때문에  IoT 회사들이 애플과 함께하고자 하는 경우가 많았다. 특히 애플은 애플 디바이스를 강조하기 위해서 이를 도와주는 다른 무언가와의 통신하는 것에 거리낌이 없다. 

- 구글은 광고를 주수익원으로 가진다. 따라서 집 안에 있는 기기들과의 통신하는 것에 관심을 가지지 않는다. 이에 따라 영향력이 그리 높지는 않다.

 

4) IoT 사용 분야

- Home automation이 매우 많이 사용한다.

- American family는 보험회사이다. 보험회사는 집에 전기 콘센트를 끄지 않고 나갔는데, 전기오븐이나 가스레인지가 돌아서 집이 터질 수 있는데, 보험회사는 이에 많은 돈을 지불해야한다. 만약 IoT 기기를 통해 화재를 막을 수 있다면 비즈니스적으로 더 이득이 될 수 있다. 이에 따라 해당 기기를 사용하면 보험료를 깍아준다. 더불어서 자동차 블랙박스 사용, 운전 일수 등 조건에 따라 보험료를 깍아준다. 즉, 보험회사에 이에 관심이 많다.

- 스마트워치는 우리나라가 아닌 일부 다른 나라에서는 의료기기로 분류되어서 심부전, 부정맥 등을 진단할 수 있게 되었다. 스마트워치는 본인도 모르는 심계열, 피계열, 신경 계열 등에 대해 발견할 수 있다. 만약 사용자에게 큰 일이 발생한다면 사전에 등록한 번호로 연락이 간다. 이러한 것들은 보험회사에서 매우 도움이 될 수 있다.

- 제조사의 경우에도 IoT를 중요하게 생각한다. 만약 자동차 회사에서 센서를 단다면 안정성을 보장할 수 있고, 제조품 중 일부가 훼손되기 전에 이를 처리해서 조금 더 비즈니스에 도움이 되도록 한다. 

- 스마트워치는 심장쪽에서 안좋은 사람들에게는 굉장히 많은 영향을 미친다. -> 즉 특정 분야에서는 IoT가 매우 중요하기도 하다.

- 스마트 스피커는 아직까지는 활성화되지는 않았다.

- 교과서적인 IoT는 매우 확산이 될 것이라 강조하고 있지만 현실적으로는 아직까지 주변에서 모두 볼 수 있을 정도로 매우 활성화되지는 않았다.


2. Physical Computing

1) Term Definition

"Do it yourself"


- 모터나 불빛을 조절하거나 실세계에서 정보를 획득하고 센싱하는 등과 같은 실제 물리적인 시스템에 프로그램을 짠다. 

- 센서가 정보를 발견하면 모터나, 불빛 등과 같은 하드웨어를 제어한다. 입력은 주로 센서이지만 출력은 각 물리적인 시스템에 대해 제어하는 것으로 이뤄진다.

- 본인이 개발할 수 있는 능력과 하드웨어가 존재한다면 직접 이를 자동화한다. 이를 IoT보단 Physical Computing이라 한다.

- 라즈베리파이와 아두이노는 Physical computing과 함께 서로 확산되었다. 

- IoT와 비슷하지만 Physical computing은 직접만든다. 이는 전자공학, 메카트로닉스, 로보틱스, 임베디드 소프트웨어에 대한 지식이 있다면 이를 구현할 수 있다. 

 

- 센싱을 받아서 Activate한다.

- 사람이 직접한 일을 상당량 줄여준다. 

- 수동적으로 제품을 받는 입장의 IoT보단 개발 능력이 있다면 개발하라는 physical computing으로 확산되었다.

 


3. Cyber Physical System(CPS)

1) CPS란?

- trans-disciplinary하여 모니터링되고 있고, 이 모든 것은 컴퓨팅에 의해 돌아가며 특정 알고리즘에 의해 돌아가고 인터넷에 통해 연결되어있다. 

- 다양한 학문들이 들어와야지 가능하다. 

- Physical computing은 개인이나 몇명의 취미 등을 강조하지만 CPS는 더 큰 범위에서 공장이나, 생산 라인 등에서의 개발을 의미한다.

- 공장이나 큰 장비들에 대해 CPS를 얘기한다.

- Physical computing은 개인적인 측면이 강조되는 반면 CPS는 공장 제조라인 등에 대해 강조를 하고 있다. 이에 따라 규모가 커지고 있고, 이들이 모두 협업을 해서 움직이는 만큼 기기들 간의 협업이 중요하다. 더불어서 만들어지는 데이터의 양과 이를 분석하는 프로세싱 파워와 저장할 디스크가 매우 커지게 된다. 

- 대규모로 커진 Physical computing 환경과 여러 기기와 정보가 사이버 상에서 존재해야한다. 사이버 상에서도 이들은 소프트웨어적으로 대응하게 존재해야하며 이들이 정보를 주고받고, 이들 간에 상호 연동을 해야한다.

- 제어를 하는 것은 맞으나 매우 큰 레벨에서 동작을 한다. 

- Conputation, Control, Communication이 매우 큰 레벨에서 동작한다.

- 이는 4차 산업혁명을 이끄는데 주요 동력이된다. 

 

- 4차 산업혁명을 실현하는 기술이 바로 CPS이다. 

 

 


4. Opensource DIY Networking

1) Arduino

- 아두이노는 Physical computing에서 디지털/아날로그 입출력이 가능하도록 도와주는 하드웨어이다. 운영체제가 없기에 단순한 프로세싱만 하도록 한다.

- 오픈소스 하드웨어이다.

 

2) RaspberryPi

- Arm 계열의 CPU와 리눅스 운영체제가 있는 컴퓨터이다. 블루투스와 와이파이가 이미 합쳐져있기에 별도의 장치가 없더라도 해당 통신을 제공한다. 유선 이더넷도 사용 가능하다. USB 통신도 가능하며 하드웨어를 붙일 때에는 컴퓨터 인터페이스를 사용가능하다.

- 낮은 레벨의 통신을 통해 기기를 제어하기위한 GPIO가 있다. 카메라를 꽂을 수 있는 포트도 있다. 즉, 가격이 매우 저렴한 컴퓨터이다. 

- 회로는 공개되지 않았기에 오픈 소스는 아니지만 필요에 의해 하드웨어에 접근할 수 있기에 오픈 하드웨어이다.

 

 

3) Arduino and RaspberryPi

- 두 개의 기술은 몇 몇 변화를 이뤄냈다.

 

(1) Wifi router

- RaspberryPi를 활용해 Wifi를 만들 수 있다. 실제 와이파이 라우터의 대부분이 OpenWrt 기술을 사용한다.

 

(2) Pirate Box

- 월가에 대해 데모를 할 때도 SNS 업체가 돈을 벌기에 이에 반감을 가지기 시작해 스스로 네트워크를 만들어서 데모를 한다. 

- 자체 네트워크를 만들 수 있으며, 라즈베리파이 위에 소프트웨어를 올려서 게시판을 만들고, 채팅, 미디어를 주고받는 등을 할 수 있게된다. 이렇게 함으로서 와이파이를 쓰기에 통신사에 돈을 주지 않고, 서버를 따로 만들기에 데모 행위의 본질을 훼손하지 않게 되었다.

- 스케이트 보드 밑에 라즈베리파이를 붙여서 여기에 연결해 기부도 할 수 있고, 어떤 동작을 할 수 있도록 했다. 하지만 이는 근거리 통신만 가능했다. 이에 따라 Mesh network를 만드는 사람들이 등장한다.

 

(3) Open Mesh

- 오픈 소스로 만든 것으로 사람들이 와이파이 유무선 공유기를 연결한다. 

- 와이파이를 쓰면 소프트웨어를 설치했을 때 서로 라즈베리파이를 연결해서 Mobile add-hoc이다. 꽤나 큰 커버리지를 만들 수 있게되었다.

 

(4) OpenWRT

- openFlow Software로 와이파이 라우터를 만들 수 있다.

 

(5) Serval

- 뉴질랜드 적십자사가 찾아와서 재난이 발생했을 때는 휴대폰은 아무것도 할 수 없지 않냐?라고 질문을 던졌고, 이에 따라 Serval Mesh를 만들어서 안드로이드 휴대폰끼리 네트워크를 만들어서 그들간에 정보를 주고받도록 했다.

- 안드로이드 밑에 리눅스가 있기에 매쉬네트워킹을 기술적으로 못할 이유는 없다.

 

(6) 구글과 애플

- 휴대폰 간에 정보를 주고받을 수 있도록 이에 대한 정보를 심어놨다.

- IOS 7은 애플 기기들 간에는 Mesh network를 할 수 있도록 한다. air drop하는 기능도 있다. 하지만 이를 일부러 강조할 필요가 없기에 하지 않을 뿐이다.

- 구글은 사막 등에서 네트워킹 프로젝트를 지속하고 있다.

 

(7) Tox

- 위의 기능을 모두 할 수 있다.

- 서버가 없어도 된다. 하지만 근거리에 같은 네트워크에만 있을 때에만 커뮤니케이션이 가능하다.

 

(8) RADICAL NETWORKS

- 디자이너들이 공학도와 함께 주최한 단체

- 네트워크 기술이 너무 돈 버는 데에만 집중하는 현재 추세에 대해 의문을 가지고 서로 배우고자 개최했다.

- 공학적인 이해와 네트워크 기술을 활용해서 어떤 것을 할 수 있는지 디자이너와 공학도가 서로 배우고자 했다. 

- 컨트롤을 탈중앙화하고, 내 컨텐츠는 내가 가지고 있을 것이니 내 컨텐츠는 손대지 말자! cf) 팀 버너스리

- 이러한 것들은 라즈베리파이와 아두이노가 나오면서 불러일으킨 변화이다.

 

 

(9) Open Source Basestation

- 이동통신에서 휴대폰에 가장 가까운 시스템을 베이스 스테이션이라고 한다. 이를 직접 만든다.

- Base transiver system: 2G basestation의 고유 이름이다.

- 2009년에서 2010년까지 GSM 기술을 직접 만들었다. 이는 발전해서 2014년에 3G를 만나서 이를 발전시켰다.

- 2세대 3세대 무선일뿐 서비스는 SIP 기반으로 여러가지를 할 수 있다.

- API를 열어서 위치추적과 이머전시 상황에서도 사용할 수 있다.

- Range Network에서 이를 사용해 공장이나, 캠퍼스 등 굉장히 큰 커버리지를 가지는 회사들에서 통신을 할 때 스스로 해당 네트워크를 구축하도록 돕는다. 커버리지는 안테나를 쓰면 늘어난다.

- 3세대로 가면서 속도는 더 빨라진다. 

- Yate BTS: 러시아 회사로 4세대 서비스로 확장한다. 음성품질을 올리면 VoLTE로 이동통신 IP로 음성을 주고받고, LTE가 잘 안되면 휴대폰 내부에서 3세대 이동통신의 음성을 사용한다. 4세대에서는 VoLTE를 사용하기에 음성 품질을 높인다. 3사 이동통신 회사들은 모두 VoLTE를 사용한다. 

- 오픈소스 4세대 이동통신을 만들기도 했다.

- 이제껏 4세대, 3세대, 2세대 이동통신과 무선랜 등 여러 네트워크 통신 등에서도 외국에서는 오픈소스화되고 있다는 것을 알 수 있다.

 

4) 실사례

(1) Papua vilage

- 매우 외진 마을인데 통신망을 설치하는데 비용이 많이 들기에 이를 통신사에서 설치하는 것이 아니라 직접 엔지니어를 불러서 이를 설치해서 내부적으로 설치할 때는 무료로 통신할 수 있도록 했다.

 

(2) 남극/북극 생태정보

- 멀리 떨어져있기에 위에서 봤던 기술을 활용해 데이터를 수집할 수 있다.

 

(3) 아프리카 이동통신

- OpenBTS에 상응하는 range network사의 장비를 가지고 네트워크를 주고받았다.

 

 


5. Specialized OS for IoT

1) Zephyr란?

매우 작은 컴퓨터에서 사용 가능한 운영체제


- 원래 IoT에 상응하는 운영체제가 없었기에 매우 작은 수준에서만 IoT가 가능했다. 하지만 Zephyr라는 운영체제가 등장해 IoT와 같이 매우 작은 컴퓨터에서도 운영체제를 사용할 수 있게 되었다.

- 리눅스 파운데이션과 윈드 리버에 의해 만들어진다.

- 라즈베리 파이가 만들어지고, 네트워크 장비가 만들어지고 이후에 제퍼가 탄생했다.

- 2016년에 이를 만들었다.

- 애시당초 IoT를 위해 만들어졌다.

- IPv4, IPv6, MQTT, LTS, BLE도 가능하다.

- 리얼타임 OS를 표방하고 기존 인터넷이 지원하는 3, 4계층과 블루투스도 사용가능하다.

- 지원하는 디바이스도 점점 많아지고 있다.

 

2) Zephyr 특징

- run on system as small as 8kb or memory all the way up to 512 kb. 매우 작은 메모리에서도 잘 돌아간다는 것을 강조한다. 애플2나 맥캔토시 정도의 메모리 사이즈를 가지고 있다. 

- 제퍼의 사이즈가 매우 작고, 리얼타임이며 보안도 되며 웬만한 통신도 지원하기에 여러가지 동작이 가능한 것을 확인할 수 있다.

- 제퍼의 IoT OS를 가지고 소프트웨어를 짤 수 있다. 

 


6. OCP Telecom infra Project

1) Open Compute Project

- 매우 큰 규모에서의 오픈소스 하드웨어

- 데이터 센터라고 부르는 서버가 굉장히 많은 환경에서 아래의 것들을 오픈소스로 만든다. 

- 과거에 지원하지 못한 것도 가능하게되며, 오픈소스로 공개되어있는 기술도 나왔다. 

- OCP의 5G 이동통신을 만드는 TIP는 Telecom infra project의 약자로 오픈소스 하드웨어와 오픈소스 소프트웨어로 SK telecom과 kt와 같은 대형회사나 여러 대규모 회사에서 이동통신을 구현한다. 5G 이동통신에서 다루는 소프트웨어는 인공지능과 머신러닝을 통해 자동화하는 것과 SDN을 네트워크에서 구동해서 트래픽이 돌아가는 모든 구간을 마음대로 제어하는 슬라이싱, GPPP를 가지고 오픈소스에 기반한 openRAN을 가지고 이동통신 네트워크를 사용할 수 있도록 한다.

-  Optical Packet Transport: 이동통신 네트워크를 만들어 사용할 수 있도록 한다. Optical한 패킷 트랜스포트로 초고속이 필요하면 광통신을 사용하는데 광통신 장치도 오픈소스 대상으로 해서 이를 제어하는 오픈소스 소프트웨어도 만들고자 한다.

- 오픈 소스 소프트웨어를 통합하고 최적화하는 것도 카테고리 내부에 있다. 

- Virtualized RAN(vRAN): 줄로 연결된 이동통신 기지국을 원하는 트래픽에 맞춰서 사용하고, 외부에서 요구하는 사항도 만족시켜줄 수 있도록 한다.

- 수많은 회사가 오더라도 이를 만족시킬 수 있도록 해준다.

- Edge Computing와 무선기술인 mmWave Network도 포함된다.  중간에 있는 모든 것이 OCP TIP의 대상이다.

- 5G 이동통신은 외국에서 주로 고정체에 대해서 얘기를 많이 한다. 집이나 건물 내에서 무선으로 대체하는 의미로 많이 쓰인다. 필요하다면 와이파이를 만들기도 한다.

- 페이스북에서 이를 실제로 만들어봤다.  (TERRAGRAPH) 전봇대 위에 설치해서 이를 구현했고, TIP는 삼성전자와 SKT가 적극적으로 이를 개발 중이다. 

- 페이스북의 ARIES는 매우 큰 규모로 만들어졌다. 

- 이러한 것들을 오픈소스로 풀었다. 

 

2) Open/R

(1) Open/R이란?

- 심지어 Open/R이라는 소프트웨어도 만들었다. 여기서 R은 라우팅을 얘기한다. 라우팅 프로토콜을 바꾸기 위해 다양한 것들, 실시간, 즐거워할만한 컨텐츠를 실어나자!라며 기존의 라우팅 프로토콜에 문제제기를 했으며 심지어 SDN에도 지능을 네트워크에서 빼서 컨트롤러에 넣는 것도 문제가 있다며 얘기한다. 기존의 라우팅 알고리즘을 대체하며 rich하며 리얼 타임에 대해 할 수 있도록 만든 것이 Open/R이다. 이는 특정 알고리즘이 아니라 플랫폼 위에서 원하는 것을 짜서 쓰도록 지원한다. 이에 따라 새로운 소프트웨어도 공개했다.

- cost metrix: 주변에 있는 라우터와 통신해서 메세지를 주고받아서 어디로 보낼지 판단한다. 

- 죽었다 살아났을 때 잘 살아나고, 에러가 발생하면 빠르게 복구하고, 기능추가, IP 주소체계를 스스로 전달하는 등의 기능을 지원한다.

- 오픈소스로 이를 제공해서 스스로 구현하도록 한다. 라우팅 소프트웨어가 했던 것을 잘게 찢고 본인이 직접할 수 있도록 했다. 주변 라우터와 정보를 주고받을 수 있도록 만들고, 라우팅 알고리즘/테이블을 만들어서 직접 구현하도록 한다.

- 인터넷에 접속이 안되면 network prefix를 만들어야하는데 이를 직접 구현할 수 있도록 한다.

- 위의 기능을 지원하는 라이브러리를 공개한다.

- http 버전이 올라갈수록 어플리케이션 레벨에서 이를 돌렸다. 라우터 알고리즘은 원래 운영체제 밑에 있어야한다. Open/R은 http 3에서 했던 것처럼 어플리케이션 계층에서 이를 돌린다. 

- ZeroMQ를 사용해서 주변에 있는 것들과 통신하고, 통신 프로토콜과 관련된 메세지를 전문으로 하는 오픈소스인 Thrift를 사용한다. 이를 통해 기술적 오버헤드를 많이 줄이고, 빠르게 할 수 있도록 지원한다.

- 전통적인 것들도 레퍼런스 코드를 주어 기존 라우터와의 연동도 가능하게 했다. 

- 만들고 싶은 것을 스스로 만들어서 사용할 수 있도록 한다. 

 

(2) 특징

- IPv6와 IPv4도 지원한다. IPv6를 우선적으로 지원한다. 

- ad-hoc 네트워크이다. 길거리에 있는 것들간에 네트워크를 하는 것을 목적으로 해서 만들어졌기에 원하는 것 내부에서 통신이 가능하도록 지원하는 것이 포인트였다. 

- 기존 서비스가 지원되면서 부드럽게 넘어갈 수 있도록 도와준다. 

- 새로운 노드나 링크를 지원할 수 있도록 한다.

- 주변에 있는 것들과 통신을 한다. 

- 정적/동적 값을 사용한다.

- 오류 시에 빠르게 정상화, 살았는지 죽었는지 수시로 체크한다.

- API가 제공된다. 원하면 중앙집중화되어있는 컨트롤러에서 무언가를 할 수 있도록 지원한다.

- 파이썬 라이브러리를 통해 지원이 가능하다. -> 쉽게 사용이 가능하다.

 

- OpenR의 초기 목적은 5G 이동통신이 Mesh network 형태로 주어지니 이들 간에 통신을 하는 것이 목적이었으나 개발환경을 지원하기에 급격히 많아지고 있는 데이터 센터의 내부의 트래픽을 적용하고자 했다. 문제를 잘 이해하고있다면 원하는 대로 개발할 수 있도록 지원해준다. 

 


7. Conclusion

- 매쉬네트워크가 가능한 컴퓨터들간에 연결이 가능하도록 하는 OLPC 랩탑을 한 대 사면 개발도상국 어린이에게 한대가 더 제공된다. 

- 우분투가 윈도우에 직접 올라간다. 

- 소프트웨어와 하드웨어를 직접 만들 수 있으며 본인이 만들고 싶은 것을 직접 만들 수 있다.

 

728x90
반응형