티스토리 뷰

시작과 동시에 나온 단어는 역시 OSI 7 계층이었다.

 

이걸 설명한 글이 있으니 이 부분은 많이 다루지는 않겠다.

 

자 일단 네트워크는 서비스를 받는 입장(Client or Host)과 서비스를 제공하는 입장(Server)으로 나뉜다.

 

컴퓨터에 랜선을 꼽으면 인터넷이 된다. 

 

나는 네트워크 공부 전 여기가 내 지식의 마지노선이었다.

 

사실 네트워크 공부를 하면서도 전체적으로 이해가 안 가는 부분이 많았다.

 

기계적으로 외우고 또 외우고 질리도록 외웠다.

 

그런데 유튜브에서 널널한 개발자님의 "이해하면 인생이 바뀌는 TCP 송/수신 원리"라는 강의를 듣고 

 

진행과정이 한 번에 보여 이해의 단계로 가니 이 정 없는 과목에 처음으로 재미라는 것을 느꼈다.

 

정말 한 번씩은 다들 봐줬으면 좋겠다.

 

https://www.youtube.com/watch?v=K9L9YZhEjC0&ab_channel=%EB%84%90%EB%84%90%ED%95%9C%EA%B0%9C%EB%B0%9C%EC%9E%90TV

TCP/IP의 진행과정을 이해하는데 매우 큰 도움을 준 영상이다.

 

인프런에서도 많은 도움을 받고 있어서 항상 감사하신 분이다.

 

아무튼 다시 본 강의로 돌아와서 우리는 보통 인터넷에 있는 수많은 서비스들을 제공받는 Host입장이다.

 

우리가 집에서 컴퓨터를 할 때 ( 인터넷 - 내 컴퓨터 ) 이 정도로 연결을 인지하고 있었다면

 

공부 후에는 좀 더 자세히 알아야만 한다.

 

일단 이 책에서 보여주는 모습은

-케이블

(인터넷 - 모뎀 - 공유기 - 컴퓨터) 이 모습이다.

 

모뎀은 모듈레이션(modulation)+ 디모듈레이션(demodulation)의 조합으로 변복조 장비이다.

 

베이스밴드(Baseband)와 브로드밴드(Broadband)를 알아야 한다.

Baseband 방식은 하나의 채널만 사용해서 데이터를 전송하는 방식이다.

즉 LAN카드와 LAN카드가 직접 연결된 모습을 생각하면 된다.

케이블에만 의지하여 전송하기 때문에 별도의 장비가 필요 없다.

하지만 별도의 장비가 없다면 케이블의 종류에 따라 거리가 멀어지면 신호가 감쇠되어 알 수 없는 신호가 될 것이다.

 

하지만 Broadband 방식은 데이터 전송 시 데이터 장비를 이용해 수 킬로 가더라도 잘 감쇠되지 않는 신호로 바뀔 것이다.

높은 주파수 신호로 데이터를 변조하여 보내는 방식이다.

주파수의 대역을 나누어 여러 채널로 데이터를 동시 전송할 수 있고 멀리 보낼 수 있다.


사설주소

참 많이도 외우고 많이도 사용한 녀석이다.

A: 10.x.x.x

B: 172.16.0.0 ~ 172.31.255.255

C: 192.168.x.x

 

이건 잊을 수 없는 게 2학년 시험 전날 대충 공부하다 당연히 /24, /16, /8으로 생각하고 기억 안 나서

 

10.x.x.x

172.16.x.x ~ 172.16.255.255

192.168.0.x

로 적었다가 틀려서 잊을 수가 없다.

Classfull 방식에 잡아먹혀 버린 것이다.

 


책에서 뜬금없이 스케일 업/다운, 아웃/인, 3-티어 아키텍처가, 2-티어 아키텍처 가 나와서 당황했다.

 

보통 이런 내용은 책 마지막 부분에 있었던 것 같은데 노스 사우스, 이스트 웨스트 트래픽 이란 단어도 나오고 말이다.

 

일단 스케일 업/다운, 아웃/인에 대해서 알아보자

 

스케일 업/다운은 장비의 기본 성능을 변경하는 것이다.

성능이 좋은 장치로 바꾸거나 용량을 늘리면 업

성능이 안 좋은 장치로 바꾸거나 용량을 줄이면 다운

쉽게 업그레이드, 다운그레이드로 생각하면 된다.

 

그리고 스케일 아웃/인은 비슷한 성능의 장비의 개수를 변경하는 것이다.

성능을 높이기 위해 장비를 추가하면 스케일 아웃

성능을 줄여도 돼서 장비를 줄이면 스케일 인

이건 좀 헷갈리만 하다...

 

온프레미스 환경에서는 둘 중 고민해 볼 만하겠지만 클라우드 환경에서는 거의 스케일 아웃/인을 사용할 것이다.

애초에 유동적인 장비사용이 클라우드의 주요 사용목적 아닌가?

버튼만 누르면 한대를 더 사용 가능한데 돌릴 수 없는 너무 고사양의 프로그램이 있다면 어쩔 수 없지만 말이다.

 

 

그리고 3 티어 아키텍처와 2 티어 아키텍처에 대해 알아보자

 

3 티어 아키텍처는 매우 고전적인 노스 사우스 트래픽 즉 라우터에서 코어 스위치가 데이터를 받아와 분배스위치가 액세스 스위치에게 로드벨런싱을 제어하고 액세스 스위치가 호스트가 요청한 데이터에 맞게 포워딩해 주는 과정을 말한다.

큰 장점은 대규모 네트워크에서 확실한 로드벨런싱으로 장애내성이 강하고 각 스위치별 역할이 명확해 정책 적용이 간단하다.

단점은 장비가 비싸고, 유지보수 인력도 비싸다.

 

2 티어 아키텍처는 스파인 리프 구조로 이스트 웨스트 트래픽 즉 스파인 스위치가 데이터를 받아오면 리프 스위치가 바로 호스트에게 전송하는 단순한 구조이다.

아무래도 2번만 거치니 지연시간이 줄고 가장 중요한 건 확장성이 높다는 것이다.

데이터 센터에서 그 효율이 극대화가 되는데 데이터 센터에서는 장비가 추가되면 스파인 스위치가 부족하면 그냥 하나 더 추가하면 되는 것이다.

물론 똑같이 유지보수해야 하고 장비도 비싸긴 하다.(상대적)

 

모든 장비는 이중화를 통해 어떠한 상황에도 네트워크가 끊기지 않도록 노력해야 한다.

 

통신병 친구들이 비 올 때마다 곡소리 내던 게 참 그립긴 하다.


그리운 단어가 나와버렸다.

 

MTU(Maximun Transport Unit)이다.

 

1500byte로 이더넷 전송을 위해 지켜야 하는 용량이다.

 

MTU는 ip헤더 + 4 계층 해더 + 4 계층 페이로드를 말하는 것이다.

 

그러면 4 계층에서 만들 수 있는 최대한의 크기는 1460이다.

 

이걸 MSS(Maximum Segment Size)라고 한다.

 

다시 와서 말하지만 저 tcp 진행사항 영상은 반드시 봐줬으면 좋겠다.

 


프로토콜(Protocol)

의정서라는 뜻으로 원래는 외교에 사용되는 용어였으나 네트워크 통신 시 규약을 프로토콜이라고 부르기 시작했다.

 

크게 보면 2개로 볼 수 있는데

1. 물리적 측면의 프로토콜: 데이터 전송 매체, 회선 규격

2. 논리적 측면의 프로토콜: 장치들끼리 통신하기 위한 프로토콜 규격이다. TCP/IP가 널리 쓰인다.

 

이런 약속을 시작한 이유는 통신을 하려면 우리야 야 밥 먹자, 밥 먹자 민수야, 민수야 밥 먹자, 민수 밥, 밥ㄱㄱ라고 해도 되지만 일반적인 컴퓨터는 우리처럼 문장을 해석하기 힘들어하는 게 보통이다.

그래서 상호 간에 순서, 크기, 타이밍을 맞춰야 기계가 이해할 수 있다.

 

현대에 개발된 프로토콜들은 문자로 해석되는 프로토콜이 많지만 옛날 프로토콜들은 2진수 비트기반 프로토콜이 대다수다.

아무래도 네트워크 장비들의 프로토콜은 앞으로도 2진수 기반일 것 같긴 하다.

 

수많은 네트워크 장비들을 한 번에 바꿀 리도 없고 말이다.

 

나는 네트워크 장비 프로토콜들은 header decode 프로토콜의 개념이라고 외웠다.

 

암호화하는 건 아니지만 몇 단위로 끊어서 해석하고 언제 해석하고 어느 순서로 해석할 것인지가 약속돼 있기 때문이다.

 


갑자기 나온 well known 포트들

 

기억은 잘 안 나지만 많이 외웠었는데 이제 다시 외워야 한다.


snort

 

IDS, IPS, WAF 등 배울 때 알아보겠다. 네트워크 글이니


4 계층 이하의 헤더는 4비트씩 미리 정해진 약속대로 해석하는 경우가 많고

4 계층 이상의 헤더는 8비트씩 문자의 형태로 해석하는 경우가 많다.


http 헤더를 개발자 도구에서 사용하는 것을 보여주셨다.

 

GET, POST와, Content-Type, referer-to까지 알려주셨다.

 

16일 차는 여기서 마치겠다.

 

네트워크 관련 내용만 적으려는데 정신 차리고 보면 자꾸 딴 걸 설명하고 있다.