경희대학교 이성원 교수님의 컴퓨터 네트워크 수업을 기반으로 정리한 글입니다.
Contents
- Introduction (with Physical Computing & CPS)
- OSI 7 Layer
- Open Source Hardwares
- Single Board Computer (SBC)
- Linux
Introduction (with Physical Computing & CPS)
Computer Network(ing)
컴퓨터들이 연결된 것
What is Computer?
프로그램 가능하여 개발자가 만든 소프트웨어가 들어갈 수 있는 것
Latest Definition
Networking > Network
과거엔 정해진 기능을 하는 장치들을 연결했다면,
지금은 그렇지 않다.
우리가 연결하는 장치들은 컴퓨터들이고 flexible하다.
필요한 기능을 필요할 때 넣을 수 있고, 소프트웨어 변경도 가능하다.
A와 B를 연결한다고 할 때, 하드웨어의 고정된 기능을 연결하는 것 보다,
소프트웨어들로 flexible하고 바뀔 수 있는 걸 연결한다.
즉, 중요한 건 소프트웨어이다.
Industry 4.0
💡 OSI 7 Layer
컴퓨터 네트워크의 가장 중요한 원칙
Peer Communication
같은 계층끼리 의미있는 행동을 하는 것
What is this? (Top-Down)
컴퓨터들이 많아지던 시기에 컴퓨터들끼리 통신을 하려 하니,
모두가 각자 따로 만든 통신 기술과 통신 소프트웨어를 사용하고 있었다.
이때 통신 장치를 만들던 회사끼리 모여,
제조업체가 다르더라도 장치끼리 통신이 가능한 개방형 통신 시스템을 만들고자 하였다.
이 단체가 바로 OSI(Open Systems Interconnection)이고, 여기서 만든 개념이 바로 OSI 7 Layer이다.
- 1. Physical Layer: 왼쪽에 있는 장치와 오른쪽에 있는 장치를 유선, 혹은 무선으로 연결한 다음에 0과 1의 조합을 주고 받는다.
- 2. Data Link Layer: 왼쪽 장치와 오른쪽 장치 사이에 에러가 났을 때, 에러를 검출하고 복구한다. 또한, 성능 차이로 인한 속도 차이 발생시 flow control로 에러 상황을 방지한다.
- 3. Network Layer: 줄이 여러 개일 때 라우팅 혹은 스위칭한다. 또한, network 장치에 이름을 붙여주는 network addressing을 한다. ex) IP
- 4. Transport Layer: 에러 검출 및 복구를 한다. ex) TCP (에러 검출 및 복구 O), UDP (에러 검출 및 복구 X)
- 5. Session Layer: 사용자가 합법적인지 확인하고, 사용자에 따라 차별적 서비스를 제공하며, 서비스를 구성하는 데이터 간의 관계를 관리한다.
- 6. Presentation Layer: media에 대해 어떤 식으로 모양을 만들지 정한다.
- 7. Application Layer: 사용자가 접하는 최종 접경이다.
OSI Layer as a SW and HW
▶ OSI 7 Layer과 장치들을 연결할 수 있다.
ex) Router는 왼쪽과 오른쪽을 연결하는 Physical과 Data link가 있고, 왼쪽에서 받은 것을 어디쪽으로 보낼지 결정하는 Network 기능이 있구나! OSI 1, 2, 3를 지원하는 구나!
OSI 7 Layer는 처음 만들어질 땐, 제품들에 1:1 반영되길 원했지만 현재 그건 아니다.
현재는 위 예시처럼 기존의 장치를 이해하거나 Network를 설계할 때 어떤 장치가 필요할지를 추상적으로 정의할 수 있도록 도와주는 좋은 도구이다.
Simplified Model for Internet Service and Network
Layering Operation Concept
- PDU: ↓ , 위에 있는 레이어가 아래에 있는 레이어에게 메시지를 전달하는 것
- SDU: ↑ , 아래에 있는 레이어가 위에 있는 레이어에게 메시지를 받는 것
Layering Example (Practical)
※ 802.15.4: Bluetooth, Wi-Fi: 무선랜
Open Source Hardwares
Arduino
저가의 범용으로 쓸 수 있는 하드웨어 보드
What is it?
소프트웨어 소스 코드를 읽을 수 있는 자유, 공부할 수 있는 자유, 쓸 수 있는 자유, 개선할 수 있는 자유를 가지고 다른 사람에게 배포할 의무를 가지는 것을 Open Source Softwares라고 한다.
Arduino는 Open Source 개념을 하드웨어에 적용한 것이다.
Hardware
▶ Arduino UNO
※ ATmega328: 운영체제가 없이 정해진 일을 전원이 들어왔을 때 반복하는 micro controller로, 프로그램을 짜서 안에 집어 넣으면 된다. 전원이 꺼졌을 땐 그대로 프로그램이 기억되어 있는다.
Arduino는 아날로그와 디지 정보를 받아 ATmega에서 처리한 후,
다시 아날로그와 디지털로 출력하는 단순한 보드이다.
Hardware - Official Boards
▶ 개발자들이 자기들이 만들고자 하는 하드웨어를 이러한 Arduino를 통해 쉽고 저렴하게 구현할 수 있게 되었다.
이러한 덕에, 프로그램의 대상이 서버나 데스크탑, 스마트폰을 넘어서는 세상이 왔다.
즉, Arduino는 컴퓨터가 여기저기 퍼지는 계기가 되었다.
Hardware - Shields
▶ Arduino에 없는 기능 강화에 쓰인다.
Arduino는 범용성이 있어야 하기에 특정 분야에 대한 것을 하지 못하지만,
이러한 Shiled는 구체적인 분야에 특화될 수 있다.
Single Board Computer (SBC )
Raspberry Pi
SBC에는 대표적으로 Raspberry Pi가 있는데,
이는 오픈 소스는 아니지만 조그마하고 저렴한 컴퓨터이다.
대부분 운영체제로는 리눅스를 사용한다.
이동 통신과 같은 사람이 end user인 것에서,
이쪽 분야의 새로운 기술을 찾는 것으로 컴퓨터 네트워크의 패러다임이 바뀌고 있다.
Linux
Linux totally dominates supercomputers
모든 디바이스들 위에 동일한 개발환경, 리눅스 운영체제
※ 운영체제 ex) Windows, Android, Mac OS, iOS
Father of Linux
▶ Linus Torvalds
Linux Foundation
리눅스라는 운영체제의 소프트웨어를 개발, 발전, 프로모션을 총괄하는 비영리 단체
Linux Variants
리눅스의 변종, Distro는 굉장히 많은데, Android도 그 중 하나이다.
Linux for Desktop
▶ 개발자 입장에서 도움이 될만한 운영체제는 Ubuntu이다.
Ubuntu Linux for Server, Cloud & IoT
참고 자료
https://www.youtube.com/watch?v=4BA2d_myjYo&list=PLz7S5PHCu4OlB-lUP_BqYmgiuLkvKY5aX
'전공 과목 > 컴퓨터 네트워크' 카테고리의 다른 글
Computer Network Lecture.02 MAC (5) | 2024.09.04 |
---|