본문 바로가기
꾸준히

[TIL-175] 네트워크 기초, 시뮬레이션, 라따뚜이

by 무자비한 낭만주먹 2024. 1. 7.

[그림1]. 오늘도 감사한 공부 시작 ~

 

목차
0. 오늘의 학습 시간
1. 오늘 배운 것
2. 오늘의 알고리즘
3. 오늘의 CS
4. 오늘의 무자막 시청
5. 내일 할 일 (청사진)
6. 감사한 일

 

0. 오늘의 학습 시간
11:30 ~ 13:00 (1시간 30분): 오늘은 훈제란으로 점심 때우고 공부했다. 집중이 너무 잘됐다.

20:30~24:00 (3시간 30분): 오늘 점심 공부를 못해서 주짓수 다녀와서 더 열심히 공부했다.

 

1. 오늘 배운 것
- 네트워크 각 계층의 PDU
- 온프레미스와 클라우드의 차이
- Iaas와 Paas 각각의 장점과 도커 컨테이너가 나오게 된 계기
- MAC 주소의 구조
- 완전탐색(이하 시뮬레이션) 복습
- merge sort

 

2. 오늘의 알고리즘
시뮬레이션 파트 구간 칠하기 문제에서 애먹고 있다.

 

3. 이주의 CS
이번주는 모두의 네트워크 3장(: 물리 계층의 역할과 랜 카드의 구조) 진입

(2023-12-04)
- 데이터란 0과 1로 이루어진 신호를 이용한 "완전한 정보"의 조합으로 구성되어 있다.
- OSI 모델에서 이를 담당하는 곧은 맨 아래 "물리 계층"이다.
- 우리는 컴퓨터 통신을 위해 아날로그 신호를 디지털 신호로 변환한다.
- 아니 그럼 전기 신호는 아날로그 신호인데 어떻게 이진 신호를 전기 신호로 변환하는건가
- 이 역할을 해주는게 랜 카드이다. 랜 카드는 0과 1을 전기 신호로 변환해준다.
- 따라서 랜 카드가 속한 물리 계층은 "컴퓨터와 네트워크 장비 간에 전송되는 데이터를 전기 신호로 변환하는 계층"으로도 볼 수 있다. 

- 위에서 설명한 아날로그 신호(전기)가 실제 통신을 위해 지나가야 하는 길을 '전송 매체'라고 표현한다.
- 전송 매체는 크게 '유선'과 '무선'으로 나뉜다.
- 가장 많이 사용되는 건 '트위스트 페어 케이블이고 UTP와 STP가 있다.
- UTP는 실드가 없는 반면에 STP는 실드가 있어 외부 간섭(노이즈)에 강하다. 하지만 가격 또한 비싸서 사실 대부분 UTP를 사용한다
- *** 여기서 중요한게, 우리가 일반적으로 '랜 케이블'이라고 부르는 것들이 바로 UTP와STP다. ***
- 랜 케이블의 경우 '다이렉트 케이블'과 '크로스 케이블'로 분류할 수 있다. 차이점은 크로스 케이블의 경우 송수신측의 충돌을 막기 위해 선 번호를 교차해서 연결한다.

- 예전에는 리피터라는 장비를 사용해 "전기 신호를 정형하고 증폭"했다.
- 요즘은 다른 네트워크 장비가 리피터 기능을 지원해서 굳이 쓸 필요가 없다.
- 그 외에 '허브'라는 장비가 있다. 리피터와 다르게 포트가 여러개 있어서 여러대와 통신이 가능하다. 허브도 리피터와 마찬가지로 전기 신호를 정형하고 증폭하는 기능을 한다.
- 컴퓨터 여러대가 데이터를 주고받을 때 유용하지만 "1:1로 데이터를 전송하는게 아니라 연결된 모든 컴퓨터에  데이터를 전송하기에 주의"해야 한다. 이렇게 스스로 판단하지 않고 모든 포트로 전기 신호를 보내는 특징 떄문에 '더미 허브'라고도 불린다.
- 그 대책으로 나온게 스위치다.

(2023-12-05) 데이터 링크 계층: 랜에서 데이터 전송하기 파트 진입
- 물리 계층의 랜끼리 데이터를 주고 받으려면 아래서 두번째 계층인 "데이터 링크 계층"의 기술이 필요하다.
- 데이터 링크 계층은 네트워크 장비 간에 "신호를 주고 받는 규칙"을 정하는 계층
- 일반적으로 가장 많이 사용되는 규칙은 "이더넷"이다.   ** 미친 .. 이더넷이 이거였다고? **
- Q. 이더넷은 랜에서 적용되는 규칙인거네요 ?  A. 맞아요 ~ 이더넷은 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용해요
- 여기서 허브는 "전달받은 전기 신호를 복원시키고 해당 전기 신호를 전달받은 포트를 제외한 나머지 포트에 전달하는 기계"
- 그래서 연결된 모든 컴퓨터에 데이터를 보내버려서 특정 컴퓨터에만 데이터 보낼 수 없음. 그래서 못보게 하는 규칙을 정했는데 ..
- 그래서 보내려는 데이터에 "목적지 정보"를 추가해서 보내고, 그 이외의 컴퓨터는 데이터를 받더라도 무시하게 되어있음.
- 사실 안보내는게 아니라 받았는데 "무시"하도록 되어있는 것
- 또 여러대의 컴퓨터가 동시에 데이터를 보낼 수 있는데 이 경우에 "충돌"이 발생할 수 있어서 이더넷은 "여러 컴퓨터가 동시에 데이터를 전송해도 충돌이 일어나지 않는 구조"로 만들어졌다.
- 바로 이게 !!! ** 그 유명한 CSMA/CD ** 이다 !!
- CSMA/CD는 허브등의 장비의 특성상 동시에 여러 요청을 보낼 수 있는데 그로인해 발생하는 충돌 현상을 방지하기 위한 방법이다.
- 다만 아쉽게도 현재는 효율이 안좋다는 이유로 CSMA/CD를 쓰지 않고, "스위치"라는 네트워크 장비를 이용해 문제를 해결한다.
+ CSMA/CD에서 CS는 "데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인한다"라는 규칙이고 MA는 "케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다"라는 규칙이다. CD는 "충돌이 발생하고 있는지를 확인한다"라는 규칙이다.

(2023-12-06) MAC 주소의 구조
- 랜카드가 뭐였지? => 데이터를 0과 1의 신호로 변환하는 것
- 그 랜카드가 만들어질 때 정해지는 "물리적인 주소"가 바로 MAC주소인데, 결국 데이터와 물리적 신호 사이의  매핑을 하는 놈이니까 얘의 식별 값으로 통신 주체의 식별을 하기로 했구나!
- "00-23-AE-D0-7A-9A" 같은 48 비트 숫자로 구성되있고 저기 앞 3개16진수 번호는 랜카드를 만든 제조사 번호, 뒤에 3개가 제조사가 붙인 일련번호야.
- MAC주소는 TCP/IP 모델 기준 "네티워크 계층"에서 사용되는데 이 계층에서 이더넷 헤더와 트레일러를 붙인다.
- 저번에 말했듯이 이더넷은 "네트워크 장비들 사이에 신호를 주고받는 대표적인 규칙중에 하나"이고 이 규칙을 이용해 네트워크 장비끼리 통신하기 위해 네트워크 계층에서 MAC 주소와 함께 패키징한다. 
- 이더넷 헤더는 [목적지 MAC 주소(6byte)], [출발지 MAC 주소(6byte)], [유형(2byte)]의 총 14byte로 구성되어 있다.
- 그니까 정리하면 "네트워크 장비 끼리 통신하려면 규칙이 필요한데, 그 규칙 중에 이더넷이라는 규칙을 사용하기 위해 네트워크 장비 식별을 위한 랜카드의 식별번호기도 한 MAC 주소를 보내야한다" 라는게 본 절의 골조인 거 같다.
- 유형에는 "프로토콜의 종류를 식별하는 번호"가 들어가는데, 여기서 프로토콜이라 하면 상위 계층 프로토콜 종류를 나타낸다. 에컨대 ARP나 RARP, IPv4를 판별하기 위한 16진수 번호가 들어간다. ( => ** 왜 필요한거지? **, 검색해보가)
- 이제 여기에 데이터 전송 도충에 발생하는 오류 발생 확인을 위한 FCS를 추가해주는데(트레일러로서) 이렇게 트레일러까지 붙으면 드디어 네트워크 계층의 PDU인 "프레임"이라는 단위로 패키징 되는 것이다.
-이제 이 프레임을 전기 신호로 변환해 허브로 전달하면 허브는 모든 포트로 이 데이터를 전송한다. 만약에 이를 수신받은 컴퓨터들이 자신의 MAC주소가 아닌데 왔을 경우 그냥 데이터를 파기해버린다.
- 또 만약에 이 상황에서 데이터를 동시에 송수신해 문제가 발생했으면 CSMA/CD 규칙에 근거해 뒤에 보낸 컴퓨터가 잠시 기다렸다가 데이터를 다시 전송한다.

 

4. 오늘의 무자막 시청
오늘의 영상: 라따뚜이 (초반)
주인공은 요리를 하고 싶은데 쥐라 요리를 할 수가 없다. 사람 사는 곳은 위험해서 말이다. 그래서 버섯이랑 친구가 가져온 치즈, 그리고 로즈마리를 줏어와서 요리를 하려 했는데 굴뚝에서 훈연향 입힌다고 굽다가 번개 맞아서 얼떨결에 버섯을 맛있게 구웠다.

 

5. 내일 할 일 (청사진)
- 시뮬레이션 구간 칠하기 파트 마무리
- 익명 함수 활용 케이스인 Comparator에 대해서 공부한 내용 정리
- Compable에 대한 내용도 정리
- 네트워크 기초 공부

 

6. 감사한 일
오늘은 주짓수 쉬는 날이고 일도 빨리 끝나서 간만에 미용실에 들러서 머리도 깎고 카페에서 시간 내서 여유있게 공부할 수 있었다.

 

 

오늘 하루도 공부할 수 있어 크게 감사합니다

2023-12-06 개발자 최찬혁