3주차 1 - CodingInterviewStudy/CrackingTheCodingInterview GitHub Wiki

제가 복습하고 싶은 것을 알차게 담아봤습니다.

Quiz

  • WAN, LAN
  • 유니캐스트, 브로드캐스트, 멀티캐스트 차이
  • DHCP란?
  • 스위치와 라우터의 차이는?
  • 스위치와 허브의 차이는?
  • OSI 7 계층에 대해 말하시오.
  • OSI 7계층에서 패킷과 프레임의 차이는?
  • TCP와 UDP 차이는?
  • HTTP 요청 중 POST and GET requests 차이?
  • Well-known ports (범위 1 ~ 1023)
  • 라우팅 프로토콜이 ClassfulClassless 일 경우 차이 링크

OSI 7 Layer Model

  • 네트워크에서 통신이 일어나는 과정 7 단계
  • 쪼갠 이유: 체계적이라, 데이터흐름도 보는 것도 트러블슈팅도 쉽다.
  • 데이터가 쪼개짐
  • 피데네트세프앱
    • Application: 예, 크롬, MS OFFICE
    • Presentation: 네트워크 형식을 응용프로그램 형식으로 변환
    • Session: 세션 열결 및 연결 복구를 시도
    • Transport: 데이터 전송 조율 담당 (예, TCP, UDP)
    • Network: 라우팅을 비롯한 패킷 전달을 담당 (서울 -> 부산 수 많은 도달 경로)
    • Data: 송수신되는 정보의 오류와 흐름을 관리
    • Physical: 전기 신호 통신
  • 레이어 마다 프로토콜 종류
  • 요약
    • 계층이 내려갈 수록 데이터가 잘게 쪼개진다.
    • 계층에 따라 명칭이 데이터를 부르는 명칭이 다르다.
      • Packet - Network 계층
      • Frame - Data 계층
    • 각 층마다 프로토콜이 있다. 맨위가 HTTP 통신 같은 컴퓨터 응용프로그램과 가까운 프로토콜이면 (FTP), 내려갈 수록 네트워크 장비 끼리 위치를 잘 찾아가기 위한 통신같은 느낌 (e.g. ARP).

17.1 Explain what happens, step by step, after you type a URL into a browser. Use as much detail as possible.

정답은 없다. 아래 저자 설명은 간단.

  1. Browser contacts the DNS server to find the IP address of URL.
  2. DNS returns back the IP address of the site.
  3. Browser opens TCP connection to the web server at port 80.
  4. Browser fetches the HTML code of the page requested.
  5. Browser renders the HTML in the display window.
  6. Browser terminates the connection when window is closed.

17.2 Explain any common routing protocol in detail. For example: BGP, OSPF, RIP.

  • 이 3가지 프로토콜 전에 알아야 될 것
  • 링크
  • IGP와 EGP
    • EGP는 멀리있는 외부에서 내부로 진입할 수 있는 경로를 알려주는 것이고, IGP는 내부로 진입한 상태에서 좀더 세부적인 설명을 통해 최적의 경로를 알려주는 것
  • Distance Vector와 Link state (라우팅 테이블 관리 방식들)
    • Distance Vector (대표: 벨만 포드)
      • 라우터의 수가 적은 쪽으로 경로를 결정하는 방법
    • Link state (대표: 다익스트라)
      • 네트워크 대역폭, 지연 정보 등을 종합적으로 고려해 Cost를 산정

BGP (Border Gateway Protocol)

  • 2020년도 네트워크 개수 85만개, 기존의 프로토콜로 처리하기 힘들어 나오게 됨.
  • 인터넷과 같은 대규모 네트워크에서 IP 교환를 교환하기 위한 프로토콜
  • 네트워크를 그룹화 = AS (Autonomous System)
  • 정리
    • IGP는 어떤 라우터를 통해서 목적지 까지 가느냐 결정이 목적 (즉, 한 AS 안에서)
    • BGP는 어떤 AS를 통해서 목적지 까지 가느냐 결정이 목적

RIP (Routing Information Protocol)

  • 대표: 벨만 포드 (Bellman and Ford)
  • Classful이냐 Classless 따라 다른 버전: RIPv1, RIPv2
  • 장단점
    • 장: 경로변화에 따른 대응, 변수가 적음, 라우터 부담 x
    • 단: 홉수 제한으로 대규모 불가, 많은 라우팅 정보교환 트래픽 (브로드캐스팅)

OSPF

  • 장단점
    • 장: 대규모에서 가능, VLSM 지원, 트래픽 적음
    • 단: 최적 경로 산정 부하
  • 즉, RIP에 비해 지능적이지만, 성능 대가가 따름

17.3 Compare and contrast the IPv4 and IPv6 protocols.

  • 크기

    • 32 bit vs 128 bits
    • 4,294,967,296 (43억) vs 340-undecillion (340 간)
      • 조경해자양구
      • 2021 전세계 인구 - 78억 정도
  • IPv4 IPv6

  • IPv4 클래스: A, B, C, D, E

    • A (1.0.0.0 ~ 126.255.255.255)
      • 최대호스트 개수: 16,777,214개 (대규모)
    • B (128.0.0.0 ~ 191.255.255.255)
      • 최대호스트 개수: 65,534개 (중규모)
    • C (192.0.0.0 ~ 223.255.255.255)
      • 최대호스트 개수: 254개 (소규모)
    • D
      • 멀티캐스트용
    • E
      • 특별 용도 (e.g., 연구/개발용)
  • 여러 IPv6 장점 요약

    • Increased address space

    • More efficient routing

    • Reduced management requirement

    • Improved methods to change ISP

    • Better mobility support

    • Multi-homing

    • Security

    • Scoped address: link-local, site-local and global-address space

17.4 What is a network / subnet mask? Explain how host A sends a message / packet to host B when: (a) both are on same network and (b) both are on different networks. Explain which layer makes the routing decision and how.

문제요약: 동일 네트워크일때, 어떻게 a -> b에게 통신을 하냐?

  • 서브넷 마스크 (서브네팅 = 자원을 효율적으로 분배하는것)
  • 계산기
    • 192.168.0.1/24
      • 클래스마다 디폴트 서브넷 마스크가 있는데, 이건 C클래스 디폴트 서브넷마스크
      • 24 = 255.255.255.0 (2진수로 11111111.11111111.11111111.00000000)
  • QUIZ
    • 회사에서 211.168.83.0 (클래스C)의 네트워크를 사용하고 있다. 내부적으로 5개의 서브넷을 사용하기 위해 서브넷 마스크를 255.255.255.224로 설정하였다. 이때, 211.168.83.34가 속한 서브넷의 브로드캐스트 주소는?

17.5 What are the differences between TCP and UDP? Explain how TCP handles reliable delivery (explain ACK mechanism), flow control (explain TCP sender’s / receiver’s window) and congestion control.

  • TCP (Transmission Control Protocol)

    • Connection-oriented 프로토콜
    • 특징
      • Reliable, Ordered, Heavyweight
  • UDP (User Datagram Protocol)

    • Connectionless 프로토콜
    • 특징
      • Unreliable, Not ordered, Lightweight
        • 메시지가 도달 못할수도
        • 도착 순서 보장 x
        • fire and forget
  • TCP ACK mechanism

  • TCP Flow Control

    • 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법
    • 방법: Slinding Window
    • receiver가 packet을 지나치게 많이 받지 않도록 조절하는 것
      • Window: 수신자가 받았다고 연락이 돌아오기 전에 보낼 수 있는 데이터양

추가

NAT (Network Address Translation)

  • 공인 IP를 사설 IP로 (또는 그 반대로) 바꿔준다.
  • IP 주소 절약, 보안을 위해
  • 그림

ACL (Access Control List)

  • 내부와 외부의 트래픽을 접근 제어

TOPOLOGY

https://sungks.tistory.com/268

참고문헌