2020-03-06 TIL

할 일 목록

  • 코어자바 2장 문제 풀기
  • 3분 네트워크 5장 읽고 문제 풀기. 1장 2장 읽기
  • 알고리즘 한 문제 풀기

완료하지 못한 목록

완료 목록

  • 알고리즘 한 문제 풀기
  • 코어자바 2장 문제 풀기

5Fs

1. Fact

네트워크 시험 문제

  1. 4계층의 역할인 흐름 제어의 과정에 대하여 설명하시오. (233~235p)

    • 윈도우를 사용하여, 클라와 서버가 요청과 응답을 할때 수용가능한 윈도우 개수를 전송하여 오버플로우가 나지 않도록 한다.
  2. 4계층에서 Port Number가 필요한 이유는 무엇인가? (236p)

    • ip 주소와 port 번호를 사용하여 어플리케이션을 구분한다.
  3. TCP에서 Connection이 의미하는 것은 무엇인가? (238p)

    • 전송을 본격적으로 하기 전에 합의를 맺는 것이며, 흐름제어, 에러복구가 가능하다.
  4. 커넥션 확립 과정인 3way handshake를 플래그를 포함한 그림과 함께 설명하시오. (242p)

    • syn, syn/ack, ack
  5. TCP에서 시퀀스 번호, 확인응답 번호, RTT의 개념을 이용하여 에러 복구 과정에 대하여 설명하시오. (244~246p)

    • RTT ? 시퀀스 번호를 사용하여 RTT를 사용하여 전송 시간을 측정하고 확인 응답이 오지 않으면 도착하지 못했다고 간주하고 다시 전송
  6. 윈도우 제어에서 윈도우 사이즈의 개념을 설명하고 전송 효율을 높이는 방식에 대해서 설명하시오. (247~249p)

    • 윈도우 사이즈는 한번에 보낼 수 있는 패킷의 갯수이며, 오버플로를 방지한다. 파이프라이닝을 이용하여 여러개의 패킷을 한번에 보내 전송 효율을 높힌다.
  7. Well Known Port가 필요한 이유는 무엇인가? (252p)

    • 개발할때 서로의 포트를 모르는 경우를 방지하여 잘 알려진 포트를 규칙으로 정해놓고 개발한다.
  8. UDP가 고속인 이유는 무엇인가? (258~259p)

    • connection을 맺지 않으며(3 웨이 핸드셰이크) 확인 응답을 받을 필요없이 그냥 전송하면 되며, TCP에 비해 헤더도 용량이 작다.
  9. (응용) UDP에서 브로드캐스트는 어떻게 가능한가? (149p, 260p)

    • 네트워크 부 이외의 호스트 번호를 모두 1로 보낸다.
  10. 사설 IP와 NAT의 개념을 이용하여 글로벌 IP부족을 어떻게 해결했는지 설명하시오. (262~265p)

    • 사설 네트워크에 존재하는 컴퓨터에는 사설 IP를 제공하며, 외부 네트워크에 전송 시에 NAT 기법을 이용하여 글로벌 IP로 전송한다. 변경 사항은 테이블에 저장한다. (테이블 이름이 뭐였지?)
  11. NAT의 단점에 대해서 설명하고 NAPT에선 이를 어떻게 해결했는지 설명하시오. (266~270p)

    • 글로벌 아이피만큼만 NAT를 할 수 있다.
    • NAPT는 포트 까지 저장하여 문제를 해결 하였다.
  12. 정적 NAPT가 필요한 이유는 무엇인가? (271p)

    • 만약 웹서버가 네트워크 내에 존재한다면 외부에서 80 번 포트로 전송시, 테이블에 기록되어 있지 않으면 라우터가 제한한다.
    • 그렇기 때문에 정적 라우터 기법으로 미리 80 번 포트를 기록해놔야한다.
  13. OSI 5, 6, 7계층 각각의 역할에 대해서 간략히 설명하시오. (274~279p)

    • 세션계층 : 통신의 절차를 간단하게 해줌
    • 표현계층 : 전송할 데이터가 각각 다를수가 있다. 예를들어 클라는 인코딩을 UTF-8을 사용하고 서버가 euc-kr을 사용한다면 표현 계층이 중간에서 네트워크에 전송할 코드로 변경하여 전송하고 도착시 각각의 문자 체계로 변경한다.

2.Feelings

  • 코어 자바 챕터 2문제는 1처럼 어렵지 않아서 좋았다.
  • 오늘은 좀 띵까띵까 놀아서 시간을 잘 사용하지 못했다.
  • 아침에 문제를 다 풀지 못해서 아쉬웠다. 내일 문제 풀이를 좀 봐야겠다.

3.Findings

  • javap는 클래스 파일의 바이트 코드를 볼 수 있게 해주는 명령어이다. 내부 클래스에서 외부클래스를 참조하는것을 볼 수 있다.
  • 정적 중첩 클래스와 내부 클래스의 차이는 내부클래스의 인스턴스가 외부클래스 인스턴스의 참조를 갖고 있으며, 내부 클래스의 인스턴스가 어떤 외부 클래스의 인스턴스에 속하는지 알 필요가 있을때 사용한다. Queue로 만든 클래스에 iterator 를 내부 클래스로 만들 경우, iterator을 만들때 마다 외부 클래스의 head의 참조값을 가질 수 있어 유용하다.

4.Future Action Plan

  • 인터페이스와 람다 표현식을 읽는다.
  • 하루 3분 네트워크 1,2,3, 문제를 만들고 푼다.

5.FeedBack


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

GitHub