2020-02-12 TIL

할 일 목록

  • 리액티브 코틀린 읽고 코드 쳐보기
  • 이태원 코딩 도장 참여
  • 자백러 복습
  • 하루 3분 네트워크 교실 스터디

완료하지 못한 목록

완료 목록

  • 펑터 모나드 어플리커티브 읽고 코드 쳐보기
  • 이태원 코딩 도장 참여
  • 자백러 복습
  • 하루 3분 네트워크 교실 스터디

5Fs

1. Fact

1. 네트워크

  • 3계층의 역할과 개요

    1. 3계층은 세그먼트 간에서의 데이터 송수신을 하는 것.
    2. 네트워크란 세그먼트와의 동의어로 라우터와 라우터로 분배된 컴퓨터 그룹을 의미한다.
    3. 네트워크 내의 컴퓨터는 2계층에 의해 연결되어져 있다.
    4. 라우터를 넘어서는 브로드캐스트는 송신되지 않는다.
    5. 네트워크 간에서의 송수인을 인터넷 작업이라고 한다.
    6. 3계층은 인터넷 작업을 수행하고 떨어진 위치에 있는 컴퓨터 끼리 데이터 통신이 가능하게 한다.
  • 인터넷 프로토콜

    1. MAC 주소는 장소를 특정할 수 없는 주소이다. 장소에 대한 정보가 없다.
    2. 3계층의 IP 주소는 논리주소라고 하며 위치 정보가 있다.
    3. 3계층의 두 번째 역할인 라우팅(routing)은 수신처까지 어떤 경로로 갈 지를 결정하는 것이다.
    4. 어드레싱과 라우팅에 의해 인터넷 작업을 수행하기 위한 프로토콜로서 TCP/IP 프로토콜군에서 사용되는 것이 IP(Internet Protocol)이다.
    5. TIP/IP에서는 IP를 반드시 사용한다.
    6. 데이터에 IP 헤더라 붙은 상태의 PDU는 IP 데이터그램(Datagram)이라고 한다.
  • IP 주소

    1. IP주소는 계층형으로 네트워크 관리자가 컴퓨터에 할당한다.
    2. 소속된 네트워크가 바뀐 경우 논리주소가 변경될 수 있다.
    3. 네트워크를 표시하는 번호(IP주소)는 접속되어 있는 모든 네트워크에서 유일하다. 하지만 독립된 네트워크에 있다면 상관없다.
  • IP 주소 2

    1. 조직의 규모에 따라 대출 IP 주소의 범위를 변경하는데, 그게 클래스이다.
    2. 클래스는 A ~ E 5개로 나뉘어져 있고, A는 최초 8비트,B는 16비트, C는 24비트가 네트워크 번호를 나타낸다.
    3. 어떤 클래스를 사용하는지 판별하기 위해 최초 옥텟의 맨앞 몇 비트로 판별한다.
    4. 클래스로 나누어 IP 주소를 할당하는 방식을 Classfull Adressing이라고 한다.
    5. 네트워크 번호를 할당하면 컴퓨터 번호, 이것을 호스트 번호라고 이것은 하는데 그 네트워크의 관리자가 마음대로 정한다.
  • 서브네팅

    1. 분할된 작은 네트워크를 서브네트워크(subnetwork) 또는 서브넷(Subnet)이라고 한다.
    2. 호스트 번호의 비트를 서브넷 번호와 호스트 번호로 분할한다.
    3. 서브넷마스크라고 불리는 비트열은 IP 주소와 동시에 표기한다.
    4. 서브넷마스크는 어디까지가 서브넷 번호인지 나타낸다.
  • 클래스리스 어드레싱

    1. 클래스라는 구분을 없앤 어드레싱이 클래스리스 어드레싱이다.
    2. 만약 사내에 필요한 IP 주소의 개수가 1000개라면 Class C(256개)는 부족하고 Class B(65536개)는 너무 많다.
    3. 그렇기 때문에 클래스 C의 네트워크를 4개정도를 사용한는 개념으로 사용할 수 있다.
    4. 클래스가 없기 때문에 어디까지가 네트워크 번호의 비트인지 모르는데 그것을 나타내는 값을 prefix-length라고 한다. 이것은 네트워크 번호의 길이를 나타낸다. 192.168.32.0 / (21)
  • DHCP

    1. 이더넷을 사용해서 IP 데이터 그램을 송수신하기 위해 4개의 주소가 필요하다.

      • 수신처 MAC 주소

        • 수동으로 설정하는 방법은 네트워크 관리자가 정한 IP 주소를 자신의 컴퓨터에 입력하는 방법
        • DHCP(Dynamic Host Configurarion Protocol)은 자동으로 컴퓨터에 IP가 설정되는 동적인 방법이다.

          1. DHCP Server : 할당할 IP주소를 관리하고, 실제로 할당 작업을 수행하는 서버
          2. IP 주소 풀 : 관리자가 할당할 주소의 범위
          3. 서버는 설정된 IP 주소 풀 중에서 요청한 클라이언트에게 각각 유일한 것이 되도록 주소를 할당한다.
          4. 해당 IP는 대여기간이 있다. DHCP 메시지를 이용하여 연장을 신청할 수 있다.
          5. DHCP는 IP주소만이 아니라 다른 네트워크의 설정 정보도 보낼 수 있다.
          6. 클라이언트는 DHCP가 누군지 모르기 때문에 브로드캐스트를 한다.
      • 송신처 MAC 주소
      • 수신처 IP 주소
      • 송신처 IP 주소
  • ARP

    1. 수신처 MAC 주소는 수신처의 IP 주소가 결정된 후에 정해진다.
    2. ARP : 이 IP 주소의 호스트에게 MAC 주소를 알려 달라는 질문하는 프로토콜이다.

      • 이걸 사용하여 MAC주소를 모르는 상태를 해결한다.
      • 먼저 데이터를 전송하고 싶은 컴퓨터는 수신처의 IP 주소를 결정하고, 그 후에 수신처 MAC 주소를 알기 위해 ARP 테이블을 참조한다. ARP 테이블은 IP 주소와 MAC 주소의 대응표이다.
    3. ARP 테이블에 수신처 IP와 MAC 주소의 대응이 있으면 수신처 MAC주소를 알 수 있고 없으면 ARP 요청을 세그먼트 내에 브로드캐스트로 송신한다.

      • 그럼 다른 지역 네트워크에 있다면 브로드캐스트는 어떻게 다른 네트워크로 전송될까? 브로드캐스트는 세그먼트 내에서만 유효하다.
      • ARP 요청을 받은 컴퓨터 중에 지정된 IP 주소를 갖는 컴퓨터만 ARP 응답을 받는다.
      • 받으면 ARP 테이블에 기재하고 일정 기간이 되면 파기한다. 만약 NIC가 망가져 변경했다면, MAC주소가 변경되기 때문에 일정 기간이 되면 파기하고 새로운 맥주소를 받을 필요가 있다.
  • DNS

    1. 사람은 IP보다 domain name을 사용하는게 더 편하다.
    2. DNS는 domain name과 ip를 대응시킨 시스템으로, domain name으로 요청하면 DNS에선 그에 대응하는 IP를 전달해준다.
    3. DNS 서버는 각 조직에 1개씩 있고, 그 조직의 도메인 명만 관리한다.
    4. 다른 조직의 호스트 명과 도메인 명은, 그 조직의 DNS 서버에 묻고 이것은 일종의 분산형 데이터베이스라고 할 수 있다.
    5. 송신처 MAC 주소는 NIC를 장치하면 자동적으로 알 수 있고, 송신처 IP주소는 수동 또는 DHCP로 할당 받아 알 수 있다.
    6. 수신처의 Domain name을 사용하여 DNS로 부터 IP를 알 수 있고, ARP로 수신처의 MAC주소를 받아 이더넷을 사용해서 IP 데이터 그램을 송수신하기 위한 4개의 주소를 알 수 있다.

2.Feelings

  • 이태원 코딩도장에서 문제를 점진적으로 푸는 훈련을 해서 좋았다. 문제를 풀면서 일반화 시키는 과정이 재미있었다.
  • 코틀린에서 펑터 모나드 어플리커티브 부분은 도저히 공부해도 이해가 되지 않았다.

3.Findings

  • IP에 대응하는 MAC주소를 얻기 위해 ARP를 브로드캐스트 하는데, 브로드캐스트는 세그먼트 내에서만 유효한것이고, 네트워크가 다른 곳의 MAC주소를 얻을 수 없다. 라우터 부분에서 이야기 한다는데 궁금하다.
  • ARP 프로토콜이 어떤 절차를 갖는지 알게되어 좋았따.
  • DHCP 부분을 더 자세히 알게되어 좋았다.

4.Future Action Plan

  • 내일은 수강신청
  • 스프링 공부해야한다.

5.FeedBack


Written by@Zero1
This blog is for that I organize what I study and my thinking, feeling and experience.

GitHub