[TIL] CS50-인터넷과 네트워크

link717·2021년 10월 17일
0

TIL

목록 보기
49/53
post-thumbnail

🌼인터넷 상의 수많은 컴퓨터를 식별할 수 있는 방법?

인터넷상에 있는 장치들은 IP(Internet Protocol Address)를 할당받는다. IP 주소는 인터넷에 연결된 장치들을 식별할 수 있도록 해주고, 인터넷상의 다른 장치들이 특정 장치를 찾을 수 있도록 해준다.

  • IP 주소의 형태: IP 주소는 203.253.15.17과 같이 #.#.#.#의 형태이다. 각 #은 10진수로는 0부터 255까지 2진수로는 8자리의 숫자이다.(0 ~ 255 = 2^8개) 하지만 이와 같은 형태는 유한한 형태로 인터넷에 연결된 장치가 많아지면서 주소가 점점 부족하게 되었다. IoT 장치 등 인터넷 장치들의 숫자가 폭발적으로 증가할 것은 대비하여 IPv4라 불리는 32bit IP 주소 방식 대신 IPv6라 불리는 128bit IP 주소 방식이 나타났다.

    • IPv4: Internet Protocol, version 4로 32비트를 8비트씩 4부분으로 나누어 각 부분을 .으로 구분한 표현 방식이다.

    • IPv6: Internet Protocol, version 6로 128비트를 16비트씩 8부분으로 나누어 각 부분을 :으로 구분한 표현 방식이다. 각 구분은 16진수로 표현한다.

🌼복잡한 IP 주소를 몰라도 인터넷을 사용할 수 있는 이유?

무선장치(노트북이나 휴대폰)를 인터넷에 연결하기 위해서는 먼저 액세스 포인트(AP)에 무선으로 연결해야 한다. 보통의 사용자들이 볼 때 AP는 무선 공유기의 형태로 보이게 되는데 이것도 AP의 한 종류이다. 이 엑세스 포인트는 스위치에 연결되고, 스위치는 라우터에 연결되고 라우터는 인터넷의 나머지 부분과 연결된다.

  • DHCP: DHCP(동적 호스트 구성 프로토콜:Dynamic Host Configuration Protocol)는 과거의 한때에는 네트워크 관리자가 수동으로IP를 할당했던 과정을 자동으로 해주는 역할을 한다.

  • DNS: IP는 사용자가 일일이 기억하기 어렵다는 단점이 있어 특정 도메인에 쉽게 접근할 수 있도록 텍스트로 된 주소 URL(Uniform Resource Locator)을 웹브러우저 주소창에 입력하여 접근하는 방식을 사용하게 되었다. 그 때 URL을 받아 실제의 IP 주소로 변환해주는 일을 DNS(도메인 이름 시스템:Domain Name System)가 한다.

//터미널에 아래와 같이 입력하면 특정 도메인의 ip 주소를 알 수 있다.
//nslookup 주소

nslookup facebook.com
--------------------------
Non-authoritative answer:
Name:   facebook.com
Address: 31.13.76.35

🌼데이터가 네트워크에서 길을 잃지 않을 수 있는 이유?

  • 라우터(Router): 인터넷은 한 장치에서 다른 장치로 정보를 보낼 수 있게 하는데 이 때 데이터를 쉽게 전송하도록 도와주는 역할을 라우터가 한다. 라우터는 인터넷의 구성 요소로, 데이터를 다양한 네트워크로 보내준다.

한 컴퓨터에서 다른 컴퓨터로 정보를 보낼 때 위와 같은 형태라면 정보를 곧장 목적지로 보낼 수 있어 전송 속도가 빠를 수는 있으나 이러한 방식은 물리적으로 수많은 연결이 필요해서 현실적으로는 불가능에 가깝다.

대신에, 인터넷은 라우터를 쓰고 라우터는 인터넷상의 장치들 사이에서 중재자 역할을 한다. 그렇기 때문에 컴퓨터는 하나 이상의 라우터를 거쳐 데이터를 인터넷상의 다른 컴퓨터로 보낼 수 있다. 이러한 방법으로 인터넷 상의 모든 컴퓨터와 통신할 수 있는데 이때, 전송되는 데이터들은 '패킷'이라는 단위로 라우터를 통해 인터넷에 거쳐 보내진다.

//터미널에 아래와 같이 입력하면 해당 주소에 접속할 때 사용된 router 정보를 알 수 있다.
//traceroute -q 1 주소
// -q 1은 시도를 한 번만 하겠다는 의미이다.

traceroute -q 1 facebook.com
--------------------------
//각 라우터는 목적지 컴퓨터와 연결되어 있는 라우터 중에 목적지에 가장 가까운 라우터로 패킷을 보낸다.
traceroute to facebook.com (31.13.76.35), 64 hops max, 52 byte packets
 1  192.168.25.1 (192.168.25.1)  2.482 ms
 2  1.227.133.1 (1.227.133.1)  9.934 ms
 3  100.70.65.141 (100.70.65.141)  12.000 ms
 4  10.63.252.182 (10.63.252.182)  3.371 ms
 5  10.222.12.180 (10.222.12.180)  4.359 ms
 6  10.222.23.81 (10.222.23.81)  6.557 ms
 7  1.255.14.102 (1.255.14.102)  4.834 ms
 8  po102.psw02.gmp1.tfbnw.net (157.240.44.107)  7.694 ms
 9  173.252.67.7 (173.252.67.7)  4.043 ms
  • 교착상태(deadlock): 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 말한다. 이는 라우팅 과정에서도 흔하게 일어날 수 있다.

  • 라우팅 테이블: 라우터는 각 데이터 패킷이 목적지 IP 주소에 따라 어디로 보내져야 하는지를 알 수 있도록 만들어져 있다. 이 정보들은 대체로 라우팅 테이블에 저장되어 있다. 라우터는 IP 주소와 앞 숫자들을 보고, 패킷을 어느 방향으로 보내야 할지를 판단한다. 따라서 라우터는 데이터 패킷이 목적지에 도달하는 데 필요한 정확한 경로 정보를 갖고 있지 않아도 된다.

🌼데이터는 어떤 과정을 거쳐서 최종 목적지에 도달하는걸까?

  • TCP/IP: 인터넷이 통신하기 위한 과정을 요약하면 인터넷을 통해 데이터를 받기 위해서 우선 데이터가 더 작은 패킷들로 분해되고, TCP는 각 패킷에 포트 번호와 패킷 번호를 매긴다. IP가 패킷의 목적지를 알려주면 라우터들을 통해 데이터가 전송되며, 라우터들은 마침내 패킷을 목적지로 보낸다.

  • TCP(전송 제어 프로토콜): TCP(Transmission Control Protocol)은 한 컴퓨터가 다른 컴퓨터를 데이터를 전송할 때 이 데이터를 순서 있는 패킷들로 분해하는 일을 한다. 패킷들이 같은 시간에, 같은 순서로 목적지에 도착한다는 보장이 없기 때문에 TCP는 각 패킷에 대해 순서에 맞게 번호를 매기고 이를 수신한 컴퓨터는 받은 패킷들을 올바른 순서로 조립할 수 있게 된다. 패킷은 데이터에 패킷 번호를 할당하는 것 이외에도 포트 번호를 할당한다. 이 포트 번호는 데이터가 어떤 유형의 인터넷 서비스에 사용되는지를 나타낸다. 예를 들어, SMTP(이메일)는 25번 포트, HTTP(일반 웹 검색)는 80번 포트를 사용한다.

  • IP(인터넷 프로토콜): IP(Internet Protocol)은 정보가 한 컴퓨터에서 다른 컴퓨터로 어떻게 전송되는지에 대한 규칙들을 모아놓은 것이다. 인터넷 프로토콜은 연결된 라우터들의 망으로 만들어진다.

출처: edwith-[해외명강] 컴퓨터 과학 교양 강좌: CS50

profile
Turtle Never stop

0개의 댓글