-
Notifications
You must be signed in to change notification settings - Fork 307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add content in algorithm and network #23
base: main
Are you sure you want to change the base?
Conversation
add python code which is finding number that is not in hashSet
DNS content explain what does DNS system works and how it works
우선, pr 너무 환영합니다~~~!!! 감사해요! 올려주신거 살짝 코멘트 남길게요! 먼저 set과 list는 다음의 경우에 사용합니다.
이번 문제의 경우, 잘 설명해주신 것처럼 set도 O(n)의 시간복잡도를 가지고, list로 구현하더라도 O(n)의 시간복잡도를 가집니다.
=> 리스트가 아니라 set의 x in s operation경우, O(1)이 맞네요!!! [풀이2] [풀이3] |
다음으로, 너무 잘 설명해주셔서 추가 설명만 덧붙이겠습니다. 먼저, DNS쿼리는 2가지 방식이 있습니다.
설명해주신 방법이 1번에 해당되는, Iterative query입니다. 참고하면 좋을거 같아요~! 잘 읽었습니다! cf) Root name server는 전 세계에 13개의 서버가 있습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kyupkyup 안녕하세요!
용감한 친구들 Director이자 brave tech interview(이하 브테인) maintainer Covenant입니다.
본 저장소에 관심을 갖고 우선 PR남겨주셔서 감사합니다!
도움이 되었으면 하는 마음에 리뷰를 남겨보았습니다!
DNS의 핵심은 human-readable(domain name) to machine readable language(IP address)가 아닐까 생각이 듭니다. 즉 인간이 IP 주소를 기억하기 힘들기에 domain name을 도입한 것이고요. 본 핵심에 맞추어 좋은 시작이었습니다.
인간에게 편리함을 가져다주었으나 Client와 DNS간의 request, response를 추가적으로 통신해야하는 문제가 생겼습니다. 효율성을 위해서 cache를, 수 많은 domain name을 관리하기 위해서 DNS 서버가 나뉘어졌다고 정리할 수 있겠습니다.
추가했으면 하는 내용은 다음과 같습니다.
- DNS 서버 그리고 통신에 대한 기본 스팩이 누락되어있습니다. (ex. UDP, 53 Port, BIND Unix Computer, DNS Packet 등)
- local cache 혹은 DNS서버가 가지고 있는 caching된 IP 주소가 실제 IP 주소와 차이가 있을 때 어떻게 동작할까요?
- DNS는 다음과 같은 위협이 존재합니다. DNS서버는 각 위협에 어떻게 대응할까요?
3-1. man in the middle attack
3-2. DNS Spoofing
3-3. DDos(flooding attack)
본 저장소에 merge가 되기 위해서는 다음 작업을 해주셔야합니다!
일부 마크다운 파일에 공백, ------
갯수, 언더바를 이용한 글씨체 bold를 star 형식으로 변환을 해주셨는데요!
어떠한 오픈소스 저장소가 마찬가지이겠지만 협의가 없는 일관성이 깨지는 것을 피하고 싶어합니다.
본 저장소의 글을 웹으로 옮기기 위해서 스크립트를 작성할 때 일관성이 조금씩 깨져있다면 상당히 까다로워지는 일이 생기거든요!!
지금 레이아웃 수정할 부분이 있다는 것을 인지하고 있고요!! 혹시 변화가 필요한 부분이 있다면 issue에 남겨주세요!
용감한 친구들 Director
Covenant
|
||
만약 없다면, DNS 서버에서는 해당 도메인의 IP를 찾기 위해서 루트 도메인부터 찾기 시작한다. 해당 도메인을 찾기위해 DNS 서버는 root NS(name server) 로 쿼리를 보내고, 이를 통해 .com(Top-level Domain 이하 TLD)의 NS 정보를 받아온다. | ||
|
||
이 TLD NS 정보를 통해 이 정보에 해당하는 TLD NS에 다시 google.com 에 대한 정보를 쿼리하게 된다. 이렇게 되면 google.com 의 IP주소가 있는 네임서버를 반환 받게 되고, 편의상 goo네임서버 라고 칭하겠다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
goo네임서버는 google의 오타일까요??
<details> | ||
<summary> 예비 답안 보기 (👈 Click)</summary> | ||
<br /> | ||
> 네트워크 통신을 위해서는 ip 주소가 필요하다. 인터넷 내의 모든 네트워크 장치 및 서버에는 이 ip주소가 할당되어 있다. 때문에 특정 서버로 데이터 요청을 하기 위해서는 ip주소가 필요하다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
데이터 요청
은 정확한 표현인지 의문이 있습니다. DNS에서 획득한 IP주소를 이용한 HTTP 통신은 Client입장에서 보면 OSI 7 layer를 통해 request, response 수행함을 의미합니다. 추상성이 높은 데이터라는 표현을 사용하는데 조심스럽고요! 데이터와 요청을 병기하기보단 용어를 통신 혹은 데이터를 제하고 request의미를 살려 요청 정도가 좋겠습니다.
<br /> | ||
> 네트워크 통신을 위해서는 ip 주소가 필요하다. 인터넷 내의 모든 네트워크 장치 및 서버에는 이 ip주소가 할당되어 있다. 때문에 특정 서버로 데이터 요청을 하기 위해서는 ip주소가 필요하다. | ||
|
||
일반적으로 ip 주소는 xxx.xxx.xxx.xxx 형식으로 이루어진 IPv4 형식을 많이 사용한다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
현재 네트워크 환경에서 일반적으로 ... 많이 사용한다.
일반적으로와 많이 둘 중 하나의 표현을 살리는게 좋겠습니다~
|
||
일반적으로 ip 주소는 xxx.xxx.xxx.xxx 형식으로 이루어진 IPv4 형식을 많이 사용한다. | ||
|
||
하지만 일반인이 이 주소를 모두 달달 외우고 있기란 쉽지 않은 일이기 때문에, 조금 더 인간에게 익숙한 언어형태를 통해 ip주소 대신 DNS(Domain Name System)을 사용하게 되었다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
human-readable(domain name) to machine readable language(IP address) 👍
- www : **Third-level Domain** | ||
- google : **Second-level Domain** | ||
- com : **Top-level Domain** | ||
- 숨겨진 루트 도메인 (여기서 부터 시작) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
숨겨진 루트 도메인이 어떤 의미인지 궁금합니다. Root DNS에서 응답하는 정보를 의미할까요?
|
||
로 구분된다. | ||
|
||
도메인을 이렇게 여러 레벨로 찢어놓은 이유는 세계의 방대한 Domain 내용을 한 서버에 담아둘 수 없어 분산시키기 위해서이다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
자유롭게 쓸 수 있지만 찢어놓은
을 면접에서 사용하기에 곤란한 표현으로 보입니다. 분산한 이유 혹은 앞의 레벨이라는 단어를 살려 계층화 구조 라는 표현이 좋겠습니다.
피드백 감사 드립니다~ 수정해서 다시 커밋하도록 하겠습니다~ |
welcome your feedback