CS

네트워크 스터디 1주차

급해서 별표만 공부하는 벼락치기  공부 start..

흩어져있던 내 지식 모아모아
 

프로토콜이란?

컴퓨터 간에 데이터 통신을 위한 규약.
이러한 프로토콜의 집합을 네트워크 아키텍처(프로토콜 스택, 프로토콜 스위트)라고 부른다.
언어처럼 컴퓨터 간의 통신에서 같은 "네트워크 아키텍처"를 사용하는 것이 중요하다고 한다. - ex) TCP/IP )
(tcp/ip는 개념이 다른데 항상 붙어 있어서 맨날 헷갈렸는데 "tcp/ip"는 묶어서 고유명사처럼 컴퓨터 간 통신에 사용하는 언어의 종류라고 생각하니 이해하기 쉬워졌다.)
 

osi 7 layer?

프로토콜 집합은 그냥 아무렇게나 있지 않다. 통신을 위해 해야하는 일을 나누고 "계층"을 가지고 "캡슐화", "추상화" 되어있다. 
각 계층은 하는 일이 내부적으로는 아주 복잡하지만 다른 계층들끼리 서로 내부적으로 어떻게 동작하는지는 알 필요가 없다. 
단지 내려주거나 올려줄 때, 내가 무엇을 받을지, 줄지만 결정하면 되는 것이다!
물리 / 데이터링크 / 네트워크/ 전송 / 세션 / 프레젠테이션 / 어플리케이션 계층 이렇게 7개로 구성되어있다.

단, 좀 더 추상화하여 4계층을 실무에서 많이 사용한다고 한다.
 
1. 네트워크 인터페이스 계층
MAC 주소로 스위칭을 하는 L2 스위치가 여기서 아주 중요하다. L2 스위치로 하나의 네트워크를 구성하고 같은 네트워크 내에 인터페이스(NIC) 간에 데이터를 전송한다. 이때 전기신호 등을 물리적 신호로 변환해 전달한다.
주로 사용하는 프로토콜은 이더넷이나 무선 LAN 등이다. 
 
2. 인터넷 계층
여기서는 앞서 말한 L2로 구성된 네트워크 간 데이터 전송(엔드투엔드 전송)을 하는 계층을 말한다. 
이때 중요한 것은 라우팅과 라우터이다. 네트워크끼리 연결하고 데이터를 전송하는 기기가 라우터, 네트워크끼리 연결하고 데이터를 전송하는 것을 라우팅이라고 한다. 이때 "IP 주소"가 어떤 엔드에서 어떤 엔드로 보내고 받을지를 결정하는 "식별"정보가 된다. 
이때 목적지가 몇 개가 되냐에 따라 IP를 유니캐스트, 멀티캐스트, 브로드캐스트로 나눌 수도 있고 
이용범위에 따라 글로벌 IP, 사설 IP 등으로도 나눌 수 있다.
주료 사용하는 프로토콜은 IP, 그리고 IP를 도와주는 ARP, ICMP와 같은 프로토콜이다. 

 
3. 전송계층
전송계층에서는 한 PC에서 사용되는 여러 어플리케이션에 데이터를 분배해주는 역할을 하게 된다. 
여기서 사용되는 프로토콜이 대표적으로 TCP, UDP 같은 것들이다.
특히 TCP는 데이터를 분할,조립, 재전송 제어, 데이터 순서 제어, 신뢰성 보장을 위한 3-way handshake 구조 등이 들어가 있는 특징이 있다.
 
4. 어플리케이션 계층 
어플리케이션 계층에서는 데이터의 형식과 처리절차를 담당하고 있다. 사람이 인식할 수 있는 데이터로 표현한다든지, 서로 통신하는 어플리케이션들끼리 어떻게 통신할 것인지, 어떻게 요청하고 응답을 받을 것인지 등을 정해두고 있다.
 
대표적인 프로토콜로는 HTTP, DNS 등이 있다.
 
 
참고) 
https://www.youtube.com/watch?v=y8rPmcYRsrk
https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-a-protocol/