09. 네트워크 주요내용 정리

YeJi Kim·2023년 1월 30일
0

네트워크

목록 보기
9/9

❓ DNS의 개념과 DNS의 동작방식 대해 설명해주세요.

DNS(Domain Name System)는 도메인 주소를 IP 주소로 변환해주는 시스템입니다. DNS는 전 세계의 수많은 도메인을 효율적으로 저장하고 관리하기 위해서 도메인을 계층화하고, 계층의 일부 영역을 Name Server가 분산 관리하는 시스템으로 설계, 운영되고 있습니다.
웹 브라우저에 도메인 입력시 가장 처음 PC 에 있는 Cache를 탐색합니다. 없으면 DNS Server 질의를 시작합니다. Local DNS Server, Root DNS Server, Top-Level DNS Server, Second-Level DNS Server, Sub-Level DNS Server 순서대로 재귀적으로 DNS Server에 질의하고 도메인 주소에 해당하는 IP 주소를 찾습니다. 성공적으로 IP 주소를 찾을 경우 Cache에 IP 주소가 TTL(Time To Live)시간 동안 저장됩니다.


❓ HTTP와 HTTPS에 대해 설명해주세요.

HTTP(HyperText Transfer Protocol)는 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약입니다. HTTP는 평문으로 통신하기 때문에 도청 가능하며 통신 상대를 확인하지 않기 때문에 위장이 가능합니다.
HTTP의 이러한 보안 문제를 해결해주는 프로토콜이 HTTPS(HyperText Transfer Protocol Secure)입니다. HTTPS는 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약입니다.


❓ 흐름제어, 혼잡제어, 오류 제어란 무엇인가요? 어떤 방식으로 이루어지나요?

흐름 제어(Flow Control)란 보내는 측과 받는 측의 데이터 처리 속도 차이를 조절해주는 것입니다.

  • 해결 방법
    • Stop and Wait: 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법입니다.
    • Sliding Window: 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인응답없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 제어기법입니다.

혼잡 제어(Congestion Control)란 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것입니다. 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법입니다.

  • 해결 방법
    • AIMD(Additive Increase / Multiplicative Decrease): 처음에 패킷을 하나씩 보내고 이것이 문제없이 도착하면 window 크기(단위 시간 내에 보내는 패킷의 수)를 1씩 증가시켜가며 전송하는 방법입니다. 패킷 전송에 실패하거나 일정 시간을 넘으면 패킷의 보내는 속도를 절반으로 줄입니다.
    • Slow Start (느린 시작): Slow Start 방식은 AIMD와 마찬가지로 패킷을 하나씩 보내면서 시작하고, 패킷이 문제없이 도착하면 각각의 ACK 패킷마다 window size를 1씩 늘려줍니다. 즉, 한 주기가 지나면 window size가 2배로 됩니다. 전송속도는 AIMD에 반해 지수 함수 꼴로 증가합니다. 대신에 혼잡 현상이 발생하면 window size를 1로 떨어뜨리게 됩니다. 혼잡 현상이 발생하였던 window size의 절반까지는 이전처럼 지수 함수 꼴로 창 크기를 증가시키고 그 이후부터는 완만하게 1씩 증가시킵니다.
    • Fast Retransmit (빠른 재전송): 패킷을 받는 쪽에서 먼저 도착해야할 패킷이 도착하지 않고 다음 패킷이 도착한 경우에도 ACK 패킷을 보내게 됩니다. 단, 순서대로 잘 도착한 마지막 패킷의 다음 패킷의 순번을 ACK 패킷에 실어서 보내게 되므로, 중간에 하나가 손실되게 되면 송신 측에서는 순번이 중복된 ACK 패킷을 받게 됩니다. 이것을 감지하는 순간, 문제가 되는 순번의 패킷을 재전송 해줄 수 있습니다.
    • Fast Recovery (빠른 회복): 혼잡한 상태가 되면 window size를 1로 줄이지 않고 반으로 줄이고 선형증가시키는 방법입니다.

오류 제어(Error Control)란 데이터가 유실되거나 잘못된 데이터가 수신되었을 경우 대처하는 방법입니다.

  • 해결 방법
    • ARQ(Automatic Repeat Request): 재전송 기반의 오류 제어 방식입니다.
    • Stop and Wait ARQ: ACK을 받고 나서 다음 데이터를 보내는 방식입니다. 일정 시간을 지나 timeout이 발생하면 이전 데이터를 재전송합니다.
    • Go Back N ARQ: 연속으로 데이터를 보내다가 오류가 발생한 지점부터 재전송하는 방식입니다.
    • Selective Repeat ARQ: 오류가 발생한 데이터만 재전송하는 방식입니다.

❓ OSI 7계층에 대해 간략히 설명해주세요.

OSI 7계층이란 네트워크 통신의 흐름을 계층 별로 나누어서 표현한 것입니다. 이를 통해 계층 별로 네트워크의 흐름을 쉽게 이해할 수 있고 유지보수가 용이해집니다.

물리 계층(Physical Layer)은 데이터를 전기적인 신호로 변환해서 주고 받는 역할을 합니다. ex) 리피터, 케이블, 허브, Ethernet 등
데이터 링크 계층(Data Link Layer)은 MAC 주소를 이용해 같은 네트워크에 있는 기기 간의 통신합니다. 물리 계층에서 받아온 가공되지 않은 데이터를 신뢰성 있게 가공해서 전송합니다. ex) 브릿지, 스위치, MAC, Ethernet 등
네트워크 계층(Network Layer)은 IP 주소를 이용해 여러 네트워크를 거쳐 데이터를 목적지까지 가장 안전하고 빠르게 전달합니다. ex) 라우터, IP, ICMP, IGMP, ARP
전송 계층(Transport Layer)은 포트를 이용해 양 끝 단의 사용자들이 데이터를 주고 받을 수 있도록 합니다. ex) TCP, UDP
세션 계층(Session Layer)은 통신 시스템 간의 연결을 유지 및 설정합니다. ex) SSH, TLS 등
표현 계층(Presentation Layer)은 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당합니다. 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어줍니다. ex) JPEG, MPEG 등
응용 계층(Application Layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행합니다. ex) HTTP, FTP, DNS, DHCP 등


❓ URL, URI, URN에 대해 설명해주세요.

URI(Uniform Resource Identifier)은 URI는 인터넷상의 리소스 “자원 자체”를 식별하는 문자열입니다.

URL(Uniform Resource Locator)은 네트워크상에서 통합 자원(리소스)의 “위치”를 나타내기 위한 규약입니다.

URN (Uniform Resource Name)은 리소스의 위치, 프로토콜, 호스트 등과는 상관없이 각 “자원”이름을 부여한 것입니다.

URI가 더 포괄적인 개념이며 URL과 URN은 URI의 개념에 포함됩니다.


[참고자료]
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-URL-URI-%EC%B0%A8%EC%9D%B4
https://github.com/Next-Squad/Interview-Question
IT엔지니어를 위한 네트워크 입문(저자: 고재성,이상훈, 출판사: 길벗)
그림으로 공부하는 TCP/IP 구조(저자: 미야타 히로시, 출판사: 제이펍)
profile
이전의 기록들 👉 https://blog.naver.com/reviewerkyj

0개의 댓글