Group Study (2022-2023)/Computer Science

[Computer Science] 4주차 스터디 - OSI 7계층, 서브넷 마스크, DNS

이애옭 2023. 2. 20. 19:24

OSI 7계층

OSI (Open Systems Interconnection) 은 개방형 시스템간 상호 접속. 즉, 서로 다른 컴퓨터나 네트워크간의 상호 접속을 용이하게 하기 위해 ISO (국제표준화기구) 가 규정한 네트워크 프로토콜을 말한다.

기종이나 언어가 다른 컴퓨터들을 서로 연결해 통신하려면 연결 방식을 표준화해야 한다.

따라서 다음과 같은 OSI 7계층 모델을 제안하였다.

7단계로 나눈 이유는 통신이 일어나는 과정을 나누어서 나중에 이상이 생기면 어떤 단계에서 문제가 생겼는지를 파악하기 위함이다.

■ 물리 계층: 네트워크 선 깔기

■ 데이터 링크 계층: 물리적 전송 오류를 감지(Sense)하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있게 해준다.

■ 네트워크 계층: IP 주소체계, 데이터가 올바른 경로를 선택할 수 있도록 지원하는 계층이 **네트워크 계층(Network Layer)**이다. 중개 시스템의 기능은 일반적으로 라우터(Router) 장비가 수행한다.

■ 전송 계층: TCP, UDP

■ 세션 계층 (아래까지 같은 묶음인 TCP/IP에서의 응용계층): 세션 유지

■ 표현 계층: 데이터의 의미(Semantic)를 잃지 않도록 올바르게 표현하는 방법(Syntax)을 다룬다. 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있도록 해주는 역할을 한다. 표현 계층의 주요 기능은 압축과 암호화다. 동영상과 같은 대용량의 멀티미디어 데이터를 **압축(Compression)**해 전송 데이터의 양을 줄일 수 있다. 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하는 기능인데, 전자상거래가 증가하면서 중요성이 커지고 있다.

■ 응용 계층: 대표적으로 DHCP 유동 IP 프로토콜, FTP 파일 다운로드, DNS 도메인 네임 시스템, HTTP 웹서비스, POP 메일 받을 때, SMTP 메일 보낼때 사용하는 것이 있다.

 

서브넷 마스크 (with IP주소)

할당된 IP주소의 네트워크 대역과 호스트 대역을 나누기 위해 만들어짐.

즉, 하위(sub) 네트워크(net)를 구분하는 표기(mask) 방법이다.

  • 32비트 크기의 숫자로 만들어진다. 서브넷마스크 또한, IP와 크기만큼 32자리 2진수로 표현한다.
  • 네트워크에 연결되려면 IP 주소 & 서브넷 마스크는 반드시 짝을 이뤄 입력되어야 한다.
  • IP 주소를 네트워크 및 호스트 주소와 분리하기 위하여 ‘0’의 비트는 호스트 부분을 나타내고 ‘1’의 비트는 네트워크 부분을 나타낸다. 자체 32비트 숫자를 이용하여 IP 주소를 마스킹하기 때문에 여기서 ‘마스크’라는 단어가 이용되는 것이다.
  • IP 주소를 나눈 작은 네트워크 조각을 서브넷 이라고 부른다.
  • 한 집에 두 가구가 사는 경우 주소는 같지만 최종 목적지가 다르다. 이때는 주소 마지막에 '1층' 또는 '2층'이라 표기해야 하는 것처럼, 서브넷 마스크도 네트워크 구역을 정확하게 구분하는데 사용된다. 즉, 같은 IP 주소 대역이라도 네트워크를 A, B, C 등의 구역으로 나눌 수 있는데, 이를 구분하는 기준이라는 것이다.
  • 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당 할 수 있게 만들어 네트워크 낭비를 방지한다.

서브넷 (subnet) 이란?

전세계에는 수백만개의 네트워크가 존재하고 크기도 각자 다르다.

네트워크 성능 개선을 위해 네트워크 관리자가 효율적으로 네트워크를 나누는 서브네팅 (Subnetting) 을 하는데 이러한 네트워크들의 조각을 서브넷이라고 부른다. 한 마디로 서브넷은 작은 네트워크라고 할 수 있다.

서브네팅을 하는 이유

  • 관리하기 쉬움
  • 고급 네트워크 보안
  • 네트워크 트래픽 감소
  • 네트워크 서브네팅 시 인터넷 서비스 업체(ISP)로부터 추가 IP 주소를 받을 필요가 없음

서브넷 마스크를 통해 네트워크와 호스트 분리하는 법

컴퓨터의 주소인 IP주소는 네트워크와 호스트로 구성된다.

위의 사진에 따라 192.168.123.132를 예로 들면 이 IP 주소에서 ‘192.168.123.’은 네트워크를 나타내며 ‘132’는 네트워크에 연결된 호스트 기기를 나타낸다. 이해를 위해 32비트를 2진수로 변환하면

192.168.123.132 = 11000000.10101000.01111011.10000100

IP 주소 서브넷 마스크는 네트워크 부분을 반영합니다. 서브넷 마스크는 다음과 같이 나타날 수 있습니다. 다만 서브넷마스크는 1이 연속으로 나와야한다. 11101 이나 11001은 안된다.

255.255.255.0 = 11111111.11111111.11111111.00000000

서브넷 마스크가 1인 위치까지가 네트워크 대역, 0부터가 호스트 대역으로 나뉜다.

이 둘을 합치면 다음과 같은 결과가 나온다.

11000000.10101000.01111011.00000000 (네트워크 주소: 192.168.123.0)

00000000.00000000.00000000.10000100 (호스트 주소: 000.000.000.132)

여기서 192.168.123.0이 서브넷이며 192.168.123.132는 대상 주소(서브넷에 속해 있는 내 기기)이다.

DNS (Domain Name System)

우리는 웹 사이트로 이동할 때 IP 주소를 일일이 기억해 입력할 필요가 없다. DNS는 도메인 이름을 입력해도 원하는 웹 사이트로 갈 수 있게 해준다. DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 결정한다. 이 요청을 쿼리 또는 질의라고 부른다.

IP 주소는 숫자이므로 쉽게 기억할 수 있도록 문자로 대체한 것이 도메인 이름이다.

예시로 도메인 이름 시스템 (DNS) 는 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 컴퓨터가 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환해준다.

도메인 이름의 계층적 구성

“호스트 이름.소속기관.단체성격.소속국가” 순서로 작성된다. 예를 들어 “www.daum.co.kr”은 대한민국 kr, 회사 co, 소속기관 daum, 호스트 웹 www 이다. 이와같이 DNS는 이처럼 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가진다.

계층적 구조를 갖는 이유?

도메인 네임을 IP주소로 변환해달라고 할 수 있는 서버(네임서버)가 한 대만 있지 않기 때문이다. 그래서 정보(도메인과 IP주소)를 분산하는 구조를 선택하게 되었고 계층을 나누는 .닷(dot)이 생겼다.

네임 서버(Name Server) = 권한 있는 DNS 서버

리졸버(Resolver) = 권한 없는 DNS 서버

DNS 리졸버는 DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다.

  1. 사용자가 웹 브라우저에 'example.com'을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신합니다.
  2. 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리합니다.
  3. 다음으로, 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답합니다. example.com을 검색할 경우의 요청은 .com TLD를 가리킵니다.
  4. 이제, 확인자가 .com TLD에 요청합니다.
  5. 이어서, TLD 서버가 도메인 이름 서버(example.com)의 IP 주소로 응답합니다.
  6. 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냅니다.
  7. 이제, example.com의 IP 주소가 이름 서버에서 확인자에게 반환됩니다.
  8. 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답합니다.

간단하게 말하자면

  1. 사람이 웹 브라우저에 도메인 이름을 입력
  2. 웹 브라우저가 도메인 이름을 IP주소로 변환을 DNS에 요청
  3. DNS는 도메인의 최상위 계층에 먼저 물어봄

(ex: 최상위 기관에서 관리하는 네임 서버에게 요청한다. ◦ .kr 이라는 도메인 있나요?

최상위 기관에서 관리하는 네임 서버는 응답한다. ◦ .kr 네임 서버로 가세요.)

4. 위의 방법과 마찬가지로 범위를 좁혀 나간다.


4주차 스터디 QUIZ 모음

Q1. 권한 있는 DNS 서버와 재귀 DNS 확인자의 차이점은 무엇입니까?

A1. 두 개념은 모두 DNS 인프라에 통합된 서버(서버 그룹)를 나타내지만, 각각 다른 역할을 수행하며 DNS 쿼리 파이프라인 내부의 다른 위치에 있다. 차이점에 대해 생각하는 한 가지 방법은, 재귀 확인자는 DNS 쿼리의 시작 부분에 있고 권한 있는 이름 서버는 끝부분에 있다는 것이다.

Q2. DNS Query(쿼리)란?

A2. DNS 클라이언트와 DNS 서버는 DNS 쿼리를 교환한다. DNS 쿼리는 Recursive(재귀적) 또는 Iterative(반복적)으로 구분된다. 재귀적 쿼리는 IP주소를 사용자에게 최종적으로 돌려주는 쿼리이고 반복적 쿼리는 Recursive DNS 서버가 다른 DNS 서버에게 쿼리를 보내어 응답을 요청하는 작업이다.

Q3. OSI 7계층을 나눈 이유와 장점
A3. 계층을 나누는 이유 : 네트워크에서 통신이 일어나는 과정을 단계저긍로 파악할 수 있기 때문에 흐름을 파악하기 쉽고 특정한 곳에 이상이 생기면 그 단계만 고칠 수 있다.
생긴 이유 : 로컬에서 컴퓨터와 네트워크가 있는 경우는 필요 없는데 네트워크가 서로 다르면 호환성 때문에 OSI 참조모델이 생기게 되었다.

Q4. DNS 관련 질문 네이버 웹사이트에 접속하는 과정을 설명
A4. 단계 설명

1. 사용자가 웹 브라우저에 도메인 네이버.com
2. PC에 저장된 로컬 DNS에게 네이버 IP 주소 요청
3. 접속한 적이 있다면 캐싱되어이써어서 바로 PC에서 ip를 알려줌
4. 접속 없다면 로컬DNS는 다른 DNS 서버와 통신 시작
5. 다른 DNS 에 요청하는게 재귀적 쿼리
6. 사용자 PC에게 전달
7. 전달받은 IP로 접속

Q5. OSI 7계층과 TCP/IP 모델 차이점은?
A5. OSI 모델은 개방형 시스템 개념을 적용하고 대규모 네트워크 모델을 설계할 때 사용된다.
TCP/IP 인터넷 프로토콜에 기본이 되는 모델로 4개의 모델로 나눠져있다.

Q6. 크롬의 각 페이지는 네트워크 어느 레이어인가?

A6. 7계층

Q7. www.naver.com 의 도메인을 dns로 찾는 과정

A7. top -level dns에서 naver.com 의 second level dns 서버 찾아옴 --> naver.com 이름을 가진 네임서버에서 ip 주소 응답

--> 캐시된 정보에 없다면, 루트 dns 서버에서 com 의 top -level dns 서버 찾아옴

Q8. 서브넷 마스크 계산하는 방법

A8. AND연산이다.