네트워크 응용 설계 1주차

곽태욱·2020년 3월 29일
0

강의 노트

목록 보기
10/22
post-custom-banner

이번 학기에서 배울 전체적인 내용으로서 우리가 네트워크에 접속했을 때 실제로 어떤 일이 일어나는지를 배운다.

네트워크 용어 정리

용어

용어영어한글
LANLocal Area Network근거리 통신망 (e.g. 가정, 학교, 회사 등)
WANWide Area Network광역 통신망 (e.g. 도시, 국가 등)
ISPInternet Service Provider인터넷 서비스 제공자 (e.g. SKT, KT, LG U+ 등)
IPInternet Protocol인터넷 통신규약
DHCPDynamic Host Configuration Protocol동적 호스트 설정 프로토콜
DNSDomain Name System도메인 이름을 IP주소로 변경하는 시스템
ARPAddress Resolution ProtocolIP주소를 MAC주소로 변경하는 프로토콜

동의어

동의어
Host = End point
First-Hop router = Gateway router

네트워크 7계층

네트워크 7계층
Application
Presentation
Session
Transport
Network
Data Link
Physical

유선 네트워크 접속

학생이 유선 LAN을 이용해 학교 네트워크에 접속한 후 브라우저를 열어 https://www.naver.com/에 접속했을 때 무슨 일이 일어나는지 살펴보자

DHCP 요청

  • 내 PC의 IP주소 : 내 PC가 인터넷으로 접속하기 위해서 필요한 정보
  • Gateway 라우터의 IP주소 : 외부 네트워크에 접속하기 위해 필요한 정보
  • DNS 서버의 IP주소 : 서버 도메인 이름을 IP주소로 바꾸기 위해 필요한 정보

인터넷에 접속하려면 먼저 위 3가지를 알아야 한다. 그럼 자신의 IP주소를 어디서 어떻게 할당받을까? 이는 DHCP를 통해 알 수 있다.

DHCP는 IP를 필요로하는 기기에 IP를 자동으로 할당해주고, 사용하지 않는 컴퓨터가 쓰는 IP를 자동으로 회수하는 통신 규약이다. 이를 통해 IP의 유연한 사용이 가능하고, IP 추적을 어느 정도 방어할 수 있다는 장점이 있다. DHCP 요청은 UDP 형식을 통해 이뤄지고, DHCP에서 위 3가지 정보를 얻는 과정을 다음과 같다.

  1. 사용자가 DHCP 요청 구문을 메시지로 만든다. DHCP REQUEST
  2. 사용자는 그 메시지를 LAN을 통해 여러 라우터로 전파한다. Broadcast
  3. DHCP 서비스를 실행하고 있는 라우터가 이 메시지를 수신한다.
  4. 라우터는 수신한 메시지를 분해해 DHCP 요청 구문을 찾는다.
  5. 라우터가 위 3가지 IP주소를 담은 메시지를 만들어 사용자에게 전송한다. DHCP ACK
  6. 사용자는 수신한 메시지를 분해해 위 3가지 IP주소를 알아낸다.

ARP 요청

  • Gateway 라우터의 MAC주소

사용자가 게이트웨이 라우터로 메시지를 보내기 위해선 해당 라우터의 MAC주소를 알아야 한다. ARP 요청이 이뤄지는 과정은 다음과 같다.

  1. 사용자는 자신의 IP주소와 MAC주소, 해당 라우터의 IP주소를 담은 메시지를 만든다.
  2. 사용자는 그 메시지를 LAN에 속한 모든 라우터에 전파한다. Broadcast
  3. 해당 라우터는 수신한 메시지를 분해한다.
  4. 라우터는 기존 메시지에 자신의 MAC주소를 추가한 후 해당 메시지를 사용자에게 전송한다. Unicast
  5. 사용자는 수신한 메시지를 분해해 게이트웨이 라우터의 MAC주소를 얻는다.

ARP 요청은 비단 이것뿐만 아니라 IP주소를 MAC주소로 변환할 필요가 있는 모든 요청에 대해 이뤄진다.

DNS 서버 요청

  • 도메인 서버 IP주소

사실 어떤 사이트의 서버에 접속하기 위해선 그 서버의 공용 IP주소가 필요하다. IP주소는 직접 입력해도 되고, 다른 곳에서 자동으로 알아와도 된다. 일반적으로 우리는 사이트 영문 이름만 알아도 그 서버에 접속할 수 있다. 이는 DNS 서버에서 사이트 주소를 IP주소로 변경해주기 때문이다.


위와 같이 우리가 입력하는 영어로된 사이트 주소는 DNS서버에서 IP주소로 변경해준다. 네이버로 접속할 때 위와 같이 https://www.naver.com/으로 접속해도 되고, 네이버 서버의 IP주소인 125.209.222.141으로 접속해도 된다. 사용자가 DNS 서버로 요청을 보내는 과정은 다음과 같다.

  1. 사용자가 DNS 요청 구문을 메시지로 만든다. Encapsulate
  2. 사용자는 그 메시지를 게이트웨이 라우터로 전송한다.
  3. 게이트웨이 라우터가 외부 ISP 네트워크에 메시지를 전달한다.
  4. 외부 ISP 네트워크 라우터는 전달받은 메시지를 해당 DNS 서버로 전달한다.
  5. 해당 DNS 서버는 수신한 메시지를 분해해 DNS 요청 구문을 찾는다. Decapsulate
  6. DNS 서버가 도메인 이름에 해당하는 IP주소를 담은 메시지를 만든다. Encapsulate
  7. DNS 서버는 그 메시지를 사용자에게 전송한다.
  8. 사용자는 수신한 메시지를 분해해 요청한 도메인 서버 IP주소를 알아낸다. Decapsulate

DNS 서버는 일종의 전화번호부로서 전화번호부에 이름을 입력하면 핸드폰 번호를 알 수 있듯이, DNS 서버에 도메인 이름을 주면 도메인 IP주소를 알 수 있다. DNS 서버 차단 방식은 여기서 이뤄지는 방식으로, 우리나라의 DNS 서버는 특정 도메인 이름이 입력됐을 때 해당 도메인의 IP주소가 아닌 http://warning.or.kr/의 IP주소를 반환하는 방식으로 차단이 이뤄진다.

하지만 세상에 DNS 서버는 여러 개 존재하기 때문에 국내 DNS 서버가 아닌 해외 DNS 서버에 요청하면 국내에서 이루어지는 DNS 차단을 우회할 수 있다는 허점이 있다.

TCP 연결 요청

여기까지 왔으면 해당 사이트의 IP주소를 알기 때문에 해당 사이트로 접속할 수 있다. 해당 사이트에 접속하는 과정은 다음과 같다.

  1. 해당 서버(사이트)와 TCP 연결을 시도하기 위해 내 PC에 TCP 소켓을 생성한다.
  2. 해당 서버에 SYN 메시지를 전송한다.
  3. SYN 메시지를 받은 서버가 SYN ACK 메시지를 사용자에게 보낸다.

사용자는 SYN ACK 내용을 통해 서버와 연결이 됐는지 안 됐는지 확인할 수 있다.

HTTP 요청

서버로 web request 메시지를 보내면 서버가 해당하는 파일, 예를 들면 웹 HTML 파일이나 이미지 파일을 전송해준다. 그러면 내 PC의 인터넷 브라우저 화면에 해당 사이트의 내용이 표시된다.

무선 네트워크 접속

무선 네트워크에서 이뤄지는 과정은 유선 네트워크와 동일하나 제일 처음에 WiFi AP(Access Point) 사용자 인증 단계가 추가된다.

  1. 사용자가 SSID와 비밀번호를 입력해 WiFi AP에 접속한다.
  2. WiFi AP가 사용자에게 네트워크 접속 권한을 부여한다.

WiFi AP는 스위치와 게이트웨이가 하나로 합쳐진 형태가 대부분이다.

profile
이유와 방법을 알려주는 메모장 겸 블로그. 블로그 내용에 대한 토의나 질문은 언제나 환영합니다.
post-custom-banner

0개의 댓글