비전공자의 전공자 따라잡기 - 네트워크, HTTP

클라이언트 - 서버모델, OSI 7계층 소개

클라이언트 - 서버모델

요청과 응답은 클라이언트(프론트)와 서버(백엔드)로 나눌 수 있는데 브라우저에서 서버로 요청을 보낼 수도 있고, 서버에서 서버로도 요청이 가능하다.
요청을 보내는 쪽은 클라이언트라고 할 수 있다.
(서버에서 요청을 보내는 거라면 그 서버도 클라이언트라고 할 수 있는 것)
일반적인 경우는 클라이언트가 서버에 요청을 보내고 응답을 받을 수 있지만 요청없이 응답만 받는 경우도 있다.

OSI(Open Systems Interconnection Reference Model)

네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.

요청과 응답은 데이터(필요한 메시지)가 전송이 되는 것인데 그 데이터가 어떻게 만들어지느냐는 OSI 7계층을 배우면 된다.
7계층을 다 외울필요는 없지만 내용을 이해하는 것이 중요하다.
물리, 데이터 링크, 네트워크, 전송, (세션, 표현, 응용)으로 알아두자.


물리계층(L1, Physical)

물리계층

컴퓨터는 0과 1밖에 모른다는 말이 있다. 0과 1은 비트(bit)
랜선을 컴퓨터에 꽂고 전기신호를 통해 데이터를 주고 받을 수 있게 된다.
전기신호를 0과 1로 바꿔주는 것이 랜카드다. 컴퓨터에는 랜카드가 있는 것이다.
반대로도 생각하면, 우리가 작업한 것을 랜카드가 전기신호를 0과 1로 바꾸어 전달을 해주는 것이다.
컴퓨터가 전기신호를 가로와 세로로 나누어서 0과 1을 인식하는 선이 있다.
전기신호가 최적의 상황이 아닌, 랜선의 문제 등으로 인해 전기신호가 애매하게 오는 경우가 있다.
그런 경우 1이 되고 싶었던 신호가 0이 될 때가 있다. 이것을 검증해주는 것이 패리티 비트다.
우리는 잘 알지 못해도 컴퓨터가 일을 한다. !패리티 비트 검색 참고!

패리티 비트 쉬운 예시

주민등록번호 마지막 자리 숫자로 검증을 하던 때가 있었다.
마지막 자리의 검증코드로 올바른 주민번호인지 확인할 수 있는 것이 패리티 비트다.
주민번호 마지막 자리가 일치하지 않으면 유효하지 않는 것이라고 나온다.


데이터 링크 계층

0과 1로 구성된 데이터가 어디로 어떻게 갈까?

데이터 신호 예시 : 0101 110011 0011 0011 100
프레임 : 목적지 + 출발지 + 유형 + 데이터 + 트레일러로 구분한다. 묶어서 프레임이라고 한다.
MAC 주소(랜카드의 ID) 예시 : 00-0C-29-6C-F3-E5 / 48bit » 4bit씩 12자리

출발지는 내 MAC주소, 목적지는 다른사람 MAC주소라고 보면 된다.

목적지의 MAC주소를 어떻게 알고 데이터를 전송하는 걸까?

옆사람에게 물어보는 식이다. 건너건너 주소를 받아서 결국에는 그 사람을 찾게 된다.
그 빠른시간 안에 데이터를 주고 받을 수 있다는 게 정말 신기하고 믿기진 않지만…

스위치와 허브

스위치 : 여러 개의 MAC주소 연결 가능한 장치다. 목적지의 MAC주소는 스위치로 되어있다.
스위치는 컴퓨터를 여럿 연결할 수 있는데 서로 주소를 기억하기 때문에 연결된 것끼리 데이터를 주고 받을 수 있다.

스위치의 옆은 라우터다. 라우터는 가장 가까운 다른 사람의 라우터에게 물어보고 그 라우터는 다른 사람의 스위치한테 물어본다.
그 스위치는 MAC주소를 아니까 그 컴퓨터(MAC)에게 물어본다.
허브는 여러 데이터를 동시 전송하면 충돌 문제 등이 있어서 대부분 스위치를 많이 사용한다. 요즘은 허브라고 해도 스위치인 경우가 많다.

Ethernet과 Protocol

Ethernet : 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격이다. 쉽게 말해 랜선이다.

Protocol : 어떤 하나의 데이터를 컴퓨터마다 의미를 다르게 해석하면 소통이 되지 않기 때문에 생긴 것이 프로토콜(통신규약)이다. 소통을 위해 약속

WIFI - 무선 데이터 링크

WIFI : 무선으로 데이터를 주고 받을 수 있다. 무선으로 MAC주소를 받아서 주고 받는다.
액세스 포인트(AP)가 필요하다.
액세스 포인트(wireless access point, WAP)는 ‘무선으로 통신 네트워크에 연결 해주는 장치’를 말한다.
예를 들어, 출발지가 내 MAC주소라면 목적지는 공유기의 주소로 되어있다.


네트워크 계층(L3, Network)

네트워크 계층

목적지 + 출발지 + 유형 + 데이터 + 트레일러 » 여기서 데이터는 ‘네트워크 계층’의 데이터다.
네트워크 데이터 : 목적IP(옆라우터) + 출발IP(내 라우터) + 전송계층 데이터
MAC이 컴퓨터의 고유한 주소라면, IP는 그 여러 개 MAC의 네트워크 주소다.

IP 예시 : 135.182.15.17 / 32bit / IPv4

32bit인 이유

IP를 데이터 0과 1로 나누면 8bit씩 4자리다.

IPv6이 있는데 128bit다. 사용하지 않는 이유

자리수가 더 많지만 알파벳도 있고 더 복잡하여 사람이 외우기 쉽지 않다. 더 익숙한 IPv4를 쓴다.

공인IP와 사설IP

공인IP는 43억개의 제한이 있다.
전 세계의 인구수보다 적기때문에 네트워크의 대표주소로 고갈 상태다. 대표하는 IP를 두고 그 내부에는 사설IP를 사용한다.

사설IP은 앞자리가 10, 172, 192, 168이다.
다른사람들과 소통하려면 공인IP를 사용해야 한다.
앞자리를 알아두자. 인터넷 연결이 제대로 되지 않는 것을 예상할 수 있다.

집에 있는 IP들을 본다면…

공유기 : 192.168.0.1 / 에어컨 : 192.168.0.34

주소의 마지막 자리는 0~255까지의 대역을 나눌 수 있는데 예약되어 있는 것이 있다. 보통은 공유기가 0이나 1일 것이다.
사설IP를 대표하는 ‘0, 1, 255’는 사용하지 않는다.

브로드 캐스트(방송)

255는 브로드 캐스트 주소라는 것이 있는데 그 255 주소로 어떤 데이터를 보내면 그 내부 네트워크 전체로 전송이 된다.

특수IP(Loopback)

예시 : 127.0.0.1
(도메인)localhost » 내 컴퓨터다.

라우터 이해하기

패킷 » 목적IP(옆라우터) +출발IP(내 라우터)

집에 스위치가 있고 옆 집에도 있고 그것들을 묶어서 위에 라우터가 있다.
우리 집 건물에 라우터가 있고 옆 건물에 라우터가 있다. 서로 소통을 공인IP로 할 수 있다.
스위치와 라우터가 꼭 정석적으로 같이 존재하는 것은 아니다. 개념상으로는 알아두자.

깨알

윈도우 : 터미널에 명령어를 ipconfig라고 명령을 치면 사설IP와 공인IP가 나온다.
맥 : ipconfig getifaddr en0라고 명령을 치면 사설IP주소, curl ifconfig.me라고 명령을 치면 공인IP를 볼 수 있다.