섹션1 개념정리
네트워크 기초를 배우기 전 알아야 할 것
- bit, byte 등 정보 표현의 단위
- 1byte는 8bit임을 인지
- bit단위 논리연산 가능
- 2진수 -> 16진수 변환
- 1024MB = 1GB임을 인지
- Process와 Program 차이
- OSI 7 layer 외울 것
- 범용 운영체제는 User mode와 Kernel mode가 존재한 다는 것을 알고 있다.
- Buffer의 의미를 알고 있다.
- 개념(Abstraction)과 구현(implementation)의 차이를 안다
Layer와 Layered 구조

< 도식화 Layered 구조 >
- 숫자들 = 요소 = Layer
> 요소들 간의 관계를 정의하는 것 = 설계 = 이를 도식화 한 것 = Layered
의미
4는 3에게 의존적이다.
= 행위 및 기능 -> 한정적으로 의존적
= 존립 -> 4는 3이 없으면 성립하지 않는 것
위 와같이 경우가 2가지로 나눠진다.
즉, Layered 구조로 나와있다면, 존립이 의존적이구나로 이해할 것.
ex) 4는 3의 전제 조건하에 존재함.(3이 존재해야 4가 존재)
이는 OSI 7 Layer 이해를 위한 개념.
네트워크와 네트워킹 그리고 개념
네트워크 = 관계로 정의 한다면
네트워킹 = 상호작용 즉, 관계를 맺는 행
ex) 철수가 올리비아와 상호작용을 하고 싶다. 하지만 '영어'라는 수단이 있어야 상호작용이 가능하다. 그리고 전달하는 수단은 말, 글(Word)가 필요할 것이며, 그 이전에 가깝거나, 공기층이 있어야 할 것이다.
즉, 물리적이고 공기층이 있어야하는 Layer가 존재해야하며, 말 또는 글로 전달 수단인 Layer가 있을 것이고, '영어'라는 언어 가 있어야 상호작용이 가능한 Layer가 필요할 것이다.
---------------------------------L3 영어(언어)----------------------------------
---------------------------------L2 말,글(Word)-------------------------------
---------------------------------L1공기층,거리---------------------------------
위 그림과 같이 L3까지가 아닌 L7까지 존재하는 개념이 OSI L7 Layer이다.
각 계층별(Layer 별) 규칙을 정하는데, 이 규칙을 프로토콜(Protocol)이라고 한다.
User mode와 Kernel mode

어떤 하드웨어(RAM, CPU 등)가 존재한다면, 이를 제어하기 위한 소프트웨어를 'Driver'라고 한다.
그리고 이 위에 Kernel을 이루고 있는 구성 요소가 존재하는데, 여기에 프로토콜(규칙)이 구현된 소프트웨어가 있다
그 중에 만약, TCP/IP가 있다고 해보자.
그리고 Kernel mode와 User mode는 신의 세상과 인간 세상 차이라고 가정을 하자. 인간 세상에서 신에게 기도를 할 때, 기도는 메세지가 되고, 이를 신에게 전달 할려면 신이 정해준 환경. 즉, 인터페이스(기도 예시->아멘)가 있을 것이다. 그리고 이 인터페이스 형태가 보통 File 형태일 것이다.
그런데 TCP/IP를 추상화한 File이 있어야 할 텐데, 이것을 Socket 소켓 이라고 부른다.
네트워크를 추상화한 File(MP3 같은)이 Socket이며, Socket열었다 의미는 File을 열었다 의미이며, 이를 여는 주체는 Process이다. 즉, 어떤 프로세스가 어떤 소켓을 어떤 파일을 열었다 라고 한다.
그리고 TCP/IP 중 TCP는 L4 계층인 전송 계층이며, IP는 L3 계층인 네트워크 계층이다.
그 아래 H/W인 RAM, CPU 등 부터 Driver 까지는 L1, L2이고 H/W인 RAM, CPU 등 물리적 장비만 L1이며,
그 위 일정수준 펌웨어부터 Driver 까지는 L2이다.
User mode는 일반 애플리케이션이, Kernel mode는 운영체제 핵심 및 드라이버가 실행되며, 접근 권한과 역할이 명확히 구분돼요. 시스템의 핵심 자원은 Kernel mode만 접근 가능하죠.