Contents
네트워크 빠르게 훑어 보기(1)
   2022년06월15일     3분정도면 다 읽어요

카카오 클라우드 스쿨 - 네트워크 빠르게 훑어 보기(1)

네트워크 빠르게 훑어 보기

Django에 들어가기 앞서 필요한 네트워크 지식을 빠르게 훑어 보았습니다.
자료 출처: www.ddarahakit.kro.kr 님(ddarahakit.tistory.com)



ch1. 네트워크

  • 여러 컴퓨터가 통신하는 통신망
  • 인터넷: 전세계에서 가장 큰 네트워크



분류

  • 분류1
    • Lan(local)
    • Wan(Lan과 Lan을 연결하는 네트워크)
  • 분류2
    • star형: 중앙에서 연결
    • mesh형: 네트워크 장비를 통해 연결, 각 국가 이런 형태로 해저 케이블을 통해 연결됨
    • 혼합형: mesh + star, 인터넷

통신방식

  • unicast: 1:1, 한 사람과 통신
  • multicast: 1:n,
  • broadcast: m:n, 불특정 다수에게 통신



ch2. 네트워크 모델

  • 네트워크 계층 모델 - TCP/IP(실제), OSI7(이론) 계층
    • OSI 중에서 2, 3, 4, 7 계층이 우리한테 아주 중요함
    • 2, 3, 4: 다른 컴퓨터를 찾아가기 위한 프로토콜
    • 7: 어떤 프로그램에서 쓰는 프로토콜

패킷(packet)

  • 네트워크를 통해 전달되는 데이터를 뜻함
  • 미트료시카처럼 까도 까도 또 내용물이 나오는 형태
  • (Ethernet ( IPv4 ( TCP ( Data ) ) ) )



ch3. 2계층

가까이 있는 컴퓨터끼리 연결할 때!

  • 하나의(같은) 네트워크 대역에 존재하는 장비를 연결한다
  • MAC 주소 - 2계층에서 사용하는 16진수 물리적 주소, 총 6byte(48비트)

이더넷 프로토콜

img_6.png

  • 헤더: Preamble(8byte, 프레임을 보낸다고 알려주는 역할)
  • Destination(6byte, 목적지MAC주소)
  • Source(6byte, 보내는 쪽의 MAC주소)
  • Type(2byte, 이더넷 상단 Data에 대한 type정보)
  • Data(이더넷 상단 프로토콜 데이터)



ch4. 3계층(IP주소)

다른 네트워크 대역(멀리 떨어진 네트워크)까지 데이터를 전달하는 일을 담당함

IP주소

  • Classful IP
    • Class A~E까지 있음
    • 낭비가 심했음(지역에 따라서 할당함)
  • Classless IP
    • 서브넷 마스크를 병용해서 낭비를 줄임
    • 네트워크 대역과 할당되는 IP를 구분
    • 그럼에도 IP가 부족해지기 시작
  • 사설 IP 및 공인 IP
    • 현대의 IP주소
    • 공인 IP: 인터넷에서 실제로 보이는 IP (WAN IP)
    • 사설 IP: 하나의 공인 IP주소를 여러 대의 컴퓨터가 나눠서 쓸 때 필요. 사설 IP는 외부에서 보이지 않는다
    • NAT: 공인IP를 사설 IP로 바꿔 줌
  • 포트포워딩: 어떤 데이터가 라우터에 들어온 경우, 라우터에 어떤 컴퓨터로 보내줘라 라고 미리 요청을 해 두는 것
    • img_2.png
  • 서브넷팅: 211.100.10.0/24 네트워크를 각 네트워크 당 60개의 호스트가 사용할 수 있는 네트워크 대역으로 쪼개면?
    • (참고: /24의 경우 이진수의 몇자리까지 <고정값>으로 두는지에 대한 정의)
2진수16진수의미
11000000.10101000.00000001.00000000192.168.1.0네트워크 ID(대역)
11000000.10101000.00000001.11111111192.168.1.255브로드캐스트 주소(사용할 수 없는 주소)
11111111.11111111.11111111.00000000255.255.255.0서브넷 마스크
  • 그 중에서, 192.168.1.1은 네트워크 게이트웨이가 쓰고, 따라서 사용할 수 있는 번호는 192.168.1.2 ~ 192.168.0.254 총 253개이다!

  • 그림으로 보자!

    • img.png
    • 하지만 내 가상 머신에서 상대방 가상 머신으로는 핑을 접속할 수 없지!
      • 방법은 추후에 알아 볼 예정
    • img_1.png



ch5. ARP 프로토콜의 작동

  • 송신자는 수신자의 맥주소를 모르는 상황
    1. 맥주소를 모르니, 모든 PC에 이 IP 주소를 가진 PC의 맥주소를 알려주세요!라고 브로드캐스트를 한다
    2. 모든 PC들은 이 브로드캐스트를 수신하지만, 해당하지 않는 IP를 가진 PC는 무시한다(버림)
    3. IP 주소가 일치하는 컴퓨터는 자신의 맥주소를 유니캐스트로 알려준다
  • 참고로 ARP 테이블에 통신 했던 컴퓨터의 (MAC포함)정보가 남는다



ch6. 네트워크와 통신 과정

  • img_4.png
  • IP를 통해 ARP(브로드캐스팅)를 요청해서 MAC주소를 전달 받는다(유니캐스트)
  • 요청하는 PC는 첫 번째 라우터와 통신, 첫 번째 라우터는 그 다음 라우터와 통신하는 방식으로 순차적으로 MAC 주소를 얻음



ch7. 컴퓨터의 프로그램끼리 통신 과정

  • 카톡으로 보냈는데 라인으로 올 수가 있나?? No, 그 원리를 알아 보자
  • 4계층 프로토콜
    • 특정 프로그램을 찾아 가게 해 주는 것, 정말 대~충 이해하면
    • TCP
      • 안전한 연결을 지향함
    • UDP
      • 일방적이고 빠른 연결을 지향함

포트넘버

  • 하나의 포트번호는 하나의 프로그램만 쓸 수 있다
  • 이 정도는 외우자
    • img_5.png
  • 포트넘버는 의무사항은 아니지만, 그래도 지켜 주자
  • 그 외에 일반 사용자가 사용할 수 있는 Dynamic 포트가 있음 (49152~65535)



여기까지 정리

MAC: 가까운 거리의 컴퓨터끼리 사용하는 주소

IP: 멀리 떨어진 네트워크 대역을 찾아가고 거기서 특정 컴퓨터를 찾아갈 때 쓰는 주소

PORT: 컴퓨터까지 찾아가서, 그 컴퓨터에 실행 중인 특정 프로그램을 찾아가는 주소