따라하면서 배우는 IT 네트워크 (1)

유동헌·2022년 1월 7일
0

YouTube 채널 따라하면서 배우는 it의 네트워크 관련 강의를 들으며 정리한 글입니다.

도서 모두의 네트워크를 읽으며 정리한 내용이 일부 포함될 수 있습니다.

그 밖의 Reference들은 글 마지막에 따로 표기해 두었습니다.

네트워크란 무엇인가

1. 네트워크란?

  • 노드들이 데이터를 공유할 수 있게 하는 디지털 통신망의 하나입니다. 분산되어 있는 컴퓨터를 하나의 통신망으로 연결하는 것을 말합니다. 네트워크에서 여러 장치들은 노드 간 연결을 통해 컴퓨터와 컴퓨터, 서로 테이터를 교환합니다.
  • 인터넷 이란, 네트워크 망의 한 종류입니다.
  • 노드 란, 네트워크에 속한 컴퓨터 또는 통신 장비를 뜻하는 말입니다.

2. 인터넷이란?

  • 세상에서 가장 큰 네트워크라고 이해하면 무리가 없을 거 같습니다. 네트워크라는 큰 개념에 포함된 개념입니다.
  • www 와는 다릅니다. www 를 이용한다는 것은 인터넷 통신망에서 제공하는 서비스인 www 라는 서비스를 이용하는 것입니다.

3. 네트워크의 분류 (크기)

  • LAN (Local Area Network) : 가까운 지역, 근거리 통신망, 피씨방, 스위치를 이용해 연결
  • WAN (Wide Area Network): 멀리 있는 지역을 한 데 묶는 네트워크. 가까운 지역끼리 묶인 LAN과 LAN을 다시 하나로 묶은 것.
  • LANWAN 의 개념은 네트워크의 크기에 대한 분류입니다.

4. 네트워크의 분류 (연결 형태)

  • Star형 : 중앙 장비에 모든 노드가 연결되어 있는 형태를 말합니다. 문제점은 가운데에 위치한 네트워크 장비가 고장이 나면, 네트워크 통신이 불가능해집니다. 대표적으로 공유기를 들 수 있습니다. LAN 연결일 때 Star형으로 많이 연결을 합니다.
  • Mesh형 : 여러 노드들이 서로 그물처럼 연결이 되어 있는 형태입니다. 실제 우리나라와 다른 나라와 연결되어 있는 상태입니다. 멀리 떨어져 있는 대역대를 연결할 때 사용됩니다. (ex. 해저케이블)
  • https://www.submarinecablemap.com : 각 나라간 연결되어 있는 케이블 확인 가능

5. 네트워크의 통신 방식 데이터는 어떻게 주고 받는가?

  • 가장 많이 사용하는 데이터 통신 방식은 유니캐스트입니다.
  • 유니캐스트 : 내가 통신하고 싶은 특정 대상 과 통신하는 것입니다. (한 사용자만 통신을 하는 것. → 한 사람 딱 찍어서)
  • 멀티캐스트 : 같은 네트워크 대역에서 특정한 다수 와 통신하는 것입니다. (이쪽 분단)
  • 브로드캐스트 : 같은 네트워크 상에 있는 모든 사람 과 통신하는 것입니다. (반 전체)

6. 네트워크 프로토콜

  • 컴퓨터와 컴퓨터는 어떻게 통신을 할까요? 예를 들어 유니캐스트 통신을 위해 특정 사용자와 지정해서 통신을 하고 싶다고 가정해봅시다. 컴퓨터와 컴퓨터가 통신을 하려면 일종의 약속이라고 할 수 있는 프로토콜이 사용되어야 합니다.
  • 우체국을 예로 들자면 우체국에는 우체국에서만 사용하는 일종의 양식이 존재합니다. 그 양식은 보내는 사람, 받는 사람의 주소가 필요합니다. 받는 사람의 주소가 귀찮아서 기재를 하지 않으면 어떻게 될까요? 우편물이 갈 수 있을까요? 양식에 맞지 않는 우편물은 보낼 수 없습니다. 따라서 우체국에는 우체국만의 양식이 존재합니다.
  • 네트워크 통신도 마찬가지입니다. 내가 통신하고 싶은 방식에 따라 멀리 있는 곳과 통신할 때의 프로토콜, 가까운 곳과 통신하기 위한 프로토콜, 인터넷을 위한 프로토콜, 파일 공유를 위한 프로토콜 등 각각 목적에 맞는 프로토콜이 존재하고 각각의 프로토콜은 각각의 양식이 따로 존재합니다. 이렇듯 여러가지 상황에 따라 사용할 수 있는 프로토콜이 있습니다.
  • 예를 들어
    • 가까운 곳와 연락할 때 : Ethernet 프로토콜 (MAC 주소)

    • 멀리 있는 곳과 연락할 때 : ICMP IPv4 ARP (IP주소)

    • 여러가지 프로그램으로 연락할 때 : TCP UDP (포트번호)

      이런 종류의 프로토콜이 있습니다.

7. 패킷

  • 하나의 통신을 위해서는 여러 프로토콜이 함께 사용됩니다. 여러 프로토콜들로 캡슐화 된 것을 패킷이라고 합니다.
  • 컴퓨터 간의 데이터를 주고 받을 때 네트워크를 통해 흘러가는 작은 데이터 조각을 패킷이라고 부릅니다. 큰 데이터는 작은 패킷으로 분할하여 순서를 붙여 보낼 수 있습니다.

구글이랑 나는 어떻게 연결이 되어 있는가?

❯ traceroute 8.8.8.8                                                         ─╯
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
 1  192.168.35.1 (192.168.35.1)  12.166 ms  8.063 ms  7.342 ms
 2  219.254.240.1 (219.254.240.1)  11.226 ms  9.602 ms  13.117 ms
 3  100.87.9.233 (100.87.9.233)  26.932 ms  16.859 ms  20.274 ms
 4  10.72.4.53 (10.72.4.53)  4.554 ms  4.334 ms  6.051 ms
 5  10.72.254.14 (10.72.254.14)  4.430 ms  7.246 ms
    10.72.254.86 (10.72.254.86)  5.927 ms
 6  10.222.25.72 (10.222.25.72)  6.006 ms
    10.222.25.82 (10.222.25.82)  8.568 ms
    10.222.25.70 (10.222.25.70)  4.798 ms
 7  10.222.20.25 (10.222.20.25)  5.129 ms  6.890 ms  6.992 ms
 8  142.250.162.182 (142.250.162.182)  43.751 ms
    72.14.196.50 (72.14.196.50)  43.921 ms
    142.250.162.140 (142.250.162.140)  42.539 ms
 9  * * *
10  dns.google (8.8.8.8)  40.139 ms  33.012 ms  35.490 ms
  • 터미널에 traceroute 라는 명령어를 입력하면 몇 개의 네트워크 대역을 거쳐 특정 주소에 도달하는지 알 수 있습니다.
❯ traceroute google.com                                                      ─╯
traceroute to google.com (172.217.161.46), 64 hops max, 52 byte packets
 1  192.168.35.1 (192.168.35.1)  3.590 ms  6.311 ms  3.105 ms
 2  219.254.240.1 (219.254.240.1)  4.816 ms  8.627 ms  10.840 ms
 3  100.87.9.233 (100.87.9.233)  7.817 ms  5.956 ms  7.921 ms
 4  10.72.4.53 (10.72.4.53)  5.938 ms  4.452 ms  5.175 ms
 5  10.72.254.168 (10.72.254.168)  6.596 ms
    10.72.254.82 (10.72.254.82)  4.945 ms
    10.72.254.170 (10.72.254.170)  11.372 ms
 6  10.222.25.80 (10.222.25.80)  9.271 ms
    10.222.25.70 (10.222.25.70)  6.858 ms
    10.222.25.82 (10.222.25.82)  5.742 ms
 7  10.222.25.243 (10.222.25.243)  8.661 ms
    10.222.25.251 (10.222.25.251)  7.637 ms
    10.222.23.211 (10.222.23.211)  5.834 ms
 8  72.14.196.50 (72.14.196.50)  44.170 ms
    142.250.162.140 (142.250.162.140)  39.756 ms
    142.250.162.182 (142.250.162.182)  47.041 ms
 9  * * *
10  108.170.242.193 (108.170.242.193)  55.425 ms
    108.170.241.97 (108.170.241.97)  65.896 ms
    172.253.69.222 (172.253.69.222)  56.888 ms
11  108.170.241.80 (108.170.241.80)  48.269 ms
    108.170.242.208 (108.170.242.208)  44.051 ms
    108.170.241.80 (108.170.241.80)  74.909 ms
12  74.125.251.11 (74.125.251.11)  45.002 ms
    209.85.142.26 (209.85.142.26)  74.401 ms
    74.125.251.11 (74.125.251.11)  44.305 ms
13  172.253.50.221 (172.253.50.221)  77.106 ms *
    64.233.175.136 (64.233.175.136)  64.282 ms
14  108.170.242.129 (108.170.242.129)  40.156 ms
    nrt12s23-in-f14.1e100.net (172.217.161.46)  39.226 ms
    108.170.242.129 (108.170.242.129)  43.822 ms
  • 8.8.8.8은 구글의 dns ip 주소라고 하는데, 왜 다른지 모르겠습니다.
  • trace route 다양한 옵션값이 존재합니다. 사실 터미널에서 사용하는 tshark도 설치를 하였습니다만 사용 방법을 숙지하지 못해 wireshark를 사용하였습니다.

  • 아무 사이트나 들어가서 전송되는 프로토콜들을 살펴보았습니다. 그리고 그 중에서 200 ok 결과입니다.
  • 해당 사이트와 저희 집이 멀리 떨어져 있으니, 그때 사용되는 프로토콜인 IPv4가 사용이 된 것을 확인할 수 있습니다.
  • 또한 공유기에 도착을 했으니 가까이에서 사용하는 이더넷 프로토콜이 사용되었습니다.
  • 인터넷에 연결이 되어 있고, 해당 데이터가 어디로 들어와야 하는지, 프로그램과 인터넷을 연결해주는 TCP 프로토콜도 사용이 되었습니다. (이 부분에 대한 이해가 부족합니다.)
profile
지뢰찾기 개발자

0개의 댓글