[HellCoders] Study 4일차

영아·2021년 8월 6일
0

HellCoders Study

목록 보기
4/9
post-thumbnail

🔥 오늘하루는?

  • 알고리즘
    ㅠㅠ 알고리즘문제를 스터디를 하기때문에 풀고있지만 ㅠ 약간 예전 취업할떄 토익을 하는 기분이 든다.
    코플릿으로 하는 마지막 날인데 다음주 프로그래머스 문제는 과연 잘 풀 수 있을지 걱정이다.🥵
    자료구조는 너무 어렵다 진짜 ㅎ.. 내머리로 이해가 가능할지 🤯

  • cs50 강의
    주제 3,4는 c언에 대한 강의라서 스킵하기로 했다.... 당장 c언어에 대한것 까지는 무리다.. 알고리즘부터 머리가 매우 아프기 떄문이다.
    인터넷 관련 파트인데 예전 워드프로세스 공부하던 어린시절에 들었던 말들이 많이보이는것 같고, 코드스테이츠 수업할때도 본 것 같다. 블로그를 작성하면서 한번더 이해해봐야겠다.

  • 주말에 할것들
    예전부터 자기소개 페이지를 만들어보고 싶었다. 코드스테이츠 수료 이후 코드를 작성한적이 없어서 불안감이 컸는데, 자기소개 페이지를 만들면 리액트 복습도 할겸 기본적인 틀을 작성해봐야겠다. 🥸

✍🏻TIL : cs50

오늘의 강의 🧑‍💻

5: 인터넷과 네트워크

Topic1: 우리는 어떻게 인터넷에 연결되고 있을까요?

  • IP 주소 : 인터넷상에 있는 장치들은 IP주소(Internet Protocol Address)를 할당 받는다. 이는 인터넷에 연결된 장치들을 식별할 수있도록 해주며, 인터넷상의 다른장치들이 특정 장치를 찾을 수 있도록 준다.
    IP 주소는 32비트로 표현이 가능한 약 40억개의 공인된 주소로 쓸 수 있었으나, 이용수가 급격하게 늘어나며 부족하게 되었다. 그래서 사설 IP주소를 할당하여 하나의 공인된 IP주소를 공유 할 수 있도록 했다.
    IPv6라고 불리는 128bit IP 주소 방식으로 대체하여 사용하도록 했다. IPv6주소는 숫자 8개를 가지며 각각 16bit값을 나타낸다. 예시) af21:10a8:1253:abd3:3019:0c2e:0b80:12a0 와 같이 #:#:#:#:#:#:#:# 같은 형태
    IP 주소는 정보가 어디에서 보냈으며, 어디로 보내졌는지 인터넷이 알 수 있도록 하기위해 사용된다.

Topic2: 어떻게 인터넷상의 수많은 컴퓨터를 식별할 수 있을까요?

(topic1과 동일한 내용으로 이어짐)
- IP 주소 : 인터넷 프로토콜은 인터넷의 정보들이 어떻게 전송되는지를 정하기 위한 규칙들이다. IP 주소는 인터넷 상의 장치들을 식별할 수 있게 해주며, IPv4프로토콜에서 현재는 IPv6의 버전을 사용하고 있다.

  • 사설 IP 주소 : 사설 IP 주소는 특정 로컬 네트워크 내에서 사용되록 되어있다. 로컬 네트워크에 있는 컴퓨터들은 사설 IP주소를 이용해 다른 컴퓨터와 통신이 가능하지만, 이 네트워크 밖에있는 컴퓨터들은 접근 수 없다. 일반적으로 사설 IP주소를 갖는 장치들은 공인 IP 주소를 공유한다.
    이렇게 하면 IPv4표준에서 필요로한 공용 IP 주소의 개수를 줄일 수 있다.
    => 10.#.#.#, 172.16.#.# - 172.31.#.#, 192.168.#.# 의 형태를 같은 주소들은 사설 IP 주소로 쓰기 위해 따로 분리 해둔것이다.
    IP 주소 127.0.0.1은, 사용자가 현재 사용하고 있는 장치에 연결하는 주소이다. 이 주소를 로컬호스트(localhost)라고 부른다.

Topic3: 복잡한 IP 주소를 몰라도 인터넷을 사용할 수 있는 이유는 무엇일까요?

  • DNS와 DHCP : 도메인 이름 시스템(Domain Name System) 혹은 DNS는 웹브라우저 주소창에 입력하는 텍스트를 IP 주소로 변환 해준다. 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol) 혹은 DHCP는 각 장치에 IP 주소를 할당하는 것을 도와준다.

  • DNS : 웹 페이지에 접속 할 때 IP주소를 입력하지 않고, URL을 입력한다. URL, 도메인 주소는 IP 주소보다 기억하기 쉬운 웹 주소이다.
    URL을 사용하더라도 장치의 IP 주소를 알아야하기때문에 DNS가 필요하다. DNS는 도멘을 IP주소로 변경해준다.

    기본 최상위 도메인(TLD) 집합이 있는데, TLD는 여러분들이 익숙한 웹 사이트 주소 마지막 부분이다.(com, net, org, edu 등). 웹 사이트 URL들은 이러한 최상위 도메인들 중 하나로부터 나아간다. 예를 들어 “google.com”은 최상위 도메인 “com”에서부터 가지를 뻗어나간다. 어떤 웹사이트는 더 멀리 뻗어나가기도 하는데, “maps.google.com”은 서브 도메인의 예시이다.

  • DHCP : DHCP는 IP주소를 할당 받는일을 자동으로 해준다. DHCP 서버는 사용 가능한 IP주소 풀에 접근 할 수 있으며, 네트워크상에 있는 컴퓨터 각각에 고유한 IP주소를 할당하는 역할을 한다.


Topic4: 데이터가 네트워크에서 길을 잃지 않을 수 있는 이유는 무엇일까요?

  • 라우터 : 라우터는 인터넷의 구성요소로, 데이터를 다양한 네트워크로 보내준다. 라우터는 보낸 데이터가 원하는 목적지에 잘도착 할 수 있도록 보장하기 위한 특정 명령어들을 따른다.

  • 라우팅 모델 : 첫번째 그림은 모든 컴퓨터는 인터넷에 연결된 다른모든 컴퓨터와 물리적으로 연결 되어있는 형태다. (인터넷에 연결된 모든 장치들이 다른 인터넷에 연결된 장치와 통신 할 수 있게하는 방법 중 하나)

    한 컴퓨터에서 다른 컴퓨터로 정보를 보낼때 원하는 목적지로 한번에 보내는 첫번째그림과 같은 모델을 사용하면 전송속다가 빠르다. 실제로 이모델을 사용하기 위해서는 비현실적으로 많은 물리적 연결이 필요하다.그렇기 때문에 인터넷은 라우터를 사용한다. 라우터는 인터넷상의 장치들 사이에 중재자 역할을 한다.
    두번째 그림처럼 라우터에 연결된 컴퓨터는 라우터와 연결된 모든 컴퓨터와 통신을 할 수 있다. 이때, 전송되는 데이터들을 '패킷'이라는 단위로 라우터를 통해 전달 된다. 각 라우터는 목적지 컴퓨터와 연결이 되어있는 라우터 중에 가장 가까운 라우터로 패킷을 보내게 된다.


  • 라우팅 테이블 : 라우터는 각 데이터 패킷이 목적지 IP주소에 따라 어디로 보내야할지 알 수 있도록 만들어졌다. 이러한 정보는 라우터 테이블이라는 곳에 자장 되어있다. 라우터는 IP 주소의 앞 숫자들을 보고, 패킷의 방향을 판단한다.
    라우터는 데이터 패킷이 목적지 까지 도달하는데 필요한 정확한 정보를 가지고 있지 않아도 된다. 라우터는 패킷을 목적지 까지 한단계 더 가까이 보내주고 나머지는 다음 라우터에게 맡기게 된다. 또한 일반적으로 데이터가 인터넷의 한 지점에서 다른지점으로 가기위한 경로는 하나가 아니다. 라우터는 같은 목적이의 데이터 패킷들을 서로 다른 경로로 보낸다.


Topic5: 데이터는 어떤 과정을 거쳐서 최종 목적지에 무사히 도착하게 되는 걸까요?

  • TCP와 IP : 프로토콜에는 TCP와IP로 되어있다. 둘을 함께 사용해서 TCP/IP로 알려져있다.

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

  • 인터넷 프로토콜 : 인터넷 프로토콜은 연결된 라우터들의 망으로 만들어진다. 라우터는 한 컴퓨터에서 다른 컴퓨터로 정보를 보내는 것을 도와주는 장치이다. 데이터를 전송할때에는 보통 여러 라우터를 거쳐간다. 각 라우터는 목적지까지 가기위해 어느 방향으로 데이터를 보내야 하는지에 대한 정보들로 만들어졌다.

  • TCP/IP : TCP는 각 패킷에 포트 번호와 패킷 번호를 매긴다. IP가 패킷의 목적지를 알려주면 라우터들을 통해 데이터가 전송 되고, 라우터들은 패킷을 목적지로 보내 줄 것이다.

profile
코딩 배우는 아이

0개의 댓글