Computer Science/IGCSE Computer Science

1.2.3 Internet principles of operation 인터넷의 작동 원리

공부할 것이 많구나 2020. 3. 25. 23:54
Candidates should be able to:
• show understanding of the role of the browser
• show understanding of the role of an Internet Service Provider (ISP)
• show understanding of what is meant by hypertext transfer protocol (http and https) and HTML
• distinguish between HTML structure and presentation
• show understanding of the concepts of MAC address, Internet Protocol (IP) address, Uniform Resource Locator (URL) and cookies

참고: 이 글은 IGCSE의 computer science과목을 토대로 작성되었다. IGCSE는 고등학생을 대상으로 하는 교육과정이기 때문에, computer science 내용의 깊이가 얕다. 따라서 computer science에 대해 더 공부하고 싶다면 책을 찾아보거나 검색(in English)을 해보기 바란다. 물론 내게 질문을 해도 된다. 내가 아는 한에서 최선을 다해 답변을 할 것이다. 

 

1. Client-Server Model, Browser

Client-Server Model

Web Client: 사용자가 서버에서 제공하는 서비스를 얻기 위한 컴퓨터

Web Server: 제공하고자 하는 서비스에 적합한 정보를 보유하고, 이를 외부에 제공해주는 컴퓨터

                      i.e., A computer that HOSTS (stores and makes available) a web-site.

                      It stores each individual page, plus any content that should be displayed upon it.

Downloading: Retrieving information from the web server to the users computer.

Uploading: Sending information from the users computer to the web server.

Client-server-model

일반 사용자가 서버에 접속해 서비스를 이용하려면 클라이언트 프로그램(예를 들면, 웹브라우저)이 있어야 하듯, 컴퓨터가 서버로 기능하기 위해서는 아파치(Apache)나 IIS 같은 웹 서버 프로그램이 있어야 한다. 

Browser

웹 브라우저는 사용자가 웹 서버로부터 받은 하이퍼텍스트 문서를 볼 수 있게 해주는 클라이언트 측 소프트웨어이다. 

사용자가 선택한 자원을 웹 브라우저가 서버에 Request하고, 서버에서 자원을 보내주면 이를 RETRIEVE and the DISPLAY하는 것이 웹 브라우저의 기본 기능이다. 

기본적인 기능(Display)에 더해 북마크 기능, 다운로드 관리 기능 등 부가적인 기능을 많이 제공한다. 

 

웹 브라우저에 의해 서버로 정보에 대한 요청이 와서, 서버 측에서 정보를 전송할 때 정보는 packet이라는 정보 단위로 나뉘어 전송된다. 

각각의 packet은

  - The Address it is going to.

  - The Data it is carrying.

  - The Address it came from.

을 알고 있다. 

 

서버는 여러가지 요청을 동시에 처리할 수 있는데, 서버가 강력할 수록 당연히 동시에 처리가능한 요청의 수가 늘어난다. 하지만 너무 많은 요청이 들어올 경우 흔히 말하는 '서버가 다운'되는 일이 발생한다.

Denial of Service (DOS)공격은 이를 이용한 것인데, 악의적으로 매우 많은 요청을 발생시켜 서버를 다운시킨다.

 

 

 

 

 

2. Internet Service Provider

인터넷 서비스 제공자(Internet Service Provider, ISP)는 개인이나 기업에 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을 제공하는 회사를 말한다. 한국의 대표적인 ISP는 KT, SK브로드밴드, LG U+가 있다. 

여기에서는 인터넷 접속 서비스를 제공하는 회사에 대해서 다룰 것이다.

이런 회사들은 모뎀이나 브로드밴드를 이용해 인터넷에 접속할 수 있게 한다.

Modem – Uses a telephone line to provide the connection to the internet.

             Slows speeds, not designed for this purpose.

Broadband – Uses specialist cables, e.g. Fibre-Optic, to provide the connection to the internet.

                      Faster speeds. Dedicated to this purpose.

 

3. Internet Protocols

네트워크에 연결된 컴퓨터끼리 통신을 하려면 통신에 필요한 절차와 기능이 미리 합의되어 있어야 한다.

통신을 위해 미리 약속해 놓은 절차를 프로토콜이라고 하며, 통신을 위해 필요한 기능을 일곱 개의 계층으로 나누어 정의한 것을 OSI 참조 모델이라고 한다. 

OSI 모델을 제대로 이해하는 것은 어려운 일이기 때문에, 여기서는 프로토콜에 대해서만 배울 것이다.

하지만 OSI 모델도 네트워크를 이해하는 데에 필수적이므로 가능하다면 이에 대해서도 알아보기 바란다. 
OSI 모델을 프로토콜과 함께 공부하면 더 좋을 것이다. 

 

프로토콜이란 컴퓨터 네트워크에서 데이터를 주고받을 때 수행되는 절차이다. 

기종, OS등이 서로 다른 컴퓨터끼리 통신을 하기 위해서는 프로토콜이 필요하다. 
내가 이 글을 쓰기 전에, 이 글을 읽을 사람이 한국어와 영어를 할 줄 안다고 가정하듯 컴퓨터 사이의 커뮤니케이션을 하기 전에도 language와 format에 대한 합의가 필요하다. 

 

프로토콜에는 세 개의 절차가 있다.

1. 연결 설정: 컴퓨터 A가 컴퓨터 B에게 데이터를 보내도 되는지 먼저 문의하여 허락을 받는 것이다.

2. 데이터 전송: B로부터 허락을 받으면 A는 데이터를 일정한 크기로 나누어(segmentation) 전송한다. 

3. 연결 해제: A가 모든 데이터를 보낸 후 전송이 종료되었음을 알리는 메시지를 B에게 보낸다. B는 이에 대한 응답을 A에게 보낸다. 

 

이처럼 다양한 컴퓨터가 통신에 참여하는 인터넷에서는 모든 컴퓨터에 IP 주소를할당하며, 데이터를 주고받기 위하여 TCP/IP 통신 프로토콜을 적용하고 있다.

TCP/IP

전송 제어 프로토콜(Transport Control Protocol, TCP)의 주된 기능은 데이터를 여러 개의 작은 조각으로 나누어 Packet을 생성하고 패킷이 제대로 전송되는지 확인하는 것이다. 패킷들이 원하는 주소에 도착하면 TCP에서 패킷들을 다시 원래의 순서대로 재배열한다.

 

인터넷 프로토콜(Internet Protocol, IP)는 주어진 각 패킷을 어떻게 목적지까지 어떤 루트를 통해 보낼 것인지에 대한 프로토콜이다. IP에는 정보를 전송하기 위한 주소 체계가 있는데, 이를 숫자로 표현한 것을 IP 주소(IP Address)라고 한다. 이를 기억하기 좋게 문자로 표현한 것을 도메인(Domain Name)이라고 한다. 

 

IP 주소에 관해서는 다음 글을 읽어보기 바란다. 

http://gotocloud.co.kr/?p=320

 

위 글에서는 IPv4에 대해서만 다루었는데, 덧붙여 설명하자면 IPv6라는 체계도 있다.

이는 16바이트 체계로, IoT 환경에서 각 기기에 IP 주소를 할당하고도 남을 만한 개수의 IP 주소를 만들 수 있다고 한다. 
참고로 MAC 주소라는 것이 있다.

A media access control address (MAC address) is a unique identifier assigned to a network interface controller (NIC) for use as a network address in communications within a network segment.

이 설명을 이해하려면 OSI 모델을 알아야한다. 간단히 말하면, MAC은 기기를 구별하기 위한 식별 번호이다. 

공장에서 나올 때부터 기기마다 MAC주소가 설정되어 있다.

기기의 주소를 나타내는 MAC와 달리 IP주소는 변경될 수 있다.

사용자도 모르게 IP주소가 바뀌기도 하며, 사용중인 공유기를 껐다가 키는 등의 변화를 주면 IP주소가 바뀔 것이다.

 

윈도우에서 명령 프롬프트를 열어 ipconfig/all또는 getmac을 입력하면 MAC 주소를 얻을 수 있다. 

 

 

3. Cookie

쿠키(Cookie)는 사용자가 어떤 홈페이지에 접속할 때 생성되는 임시파일이다.

웹 사이트에서 사용되는 쿠키에는 필수적인 쿠키가 있고 그렇지 않은 것이 있다.

웹 사이트 이용을 위해 필수적인 쿠키는 이용자의 동의 없이 활성화된다.

하지만 기능 쿠키(지역 및 언어 등 접속자 설정을 저장함), 성능 쿠키(오류 수집 및 보고에 쓰임), 마케팅 쿠키(유저의 웹사이트 방문 내역을 추적)는 이용자의 동의를 필요로 한다.

 

Cookies

 

  • Tiny data files, downloaded by a client when it visits a webpage.

  • Can be accessed by the website while the user is viewing it.

  • Can contain: 
    Usernames and Passwords to allow automatic log-in.
    Shopping Baskets
    Track viewing information for targeted adverts.

  • Are optional, Websites are SUPPOSED to ask for the Users Permission to use them.
    (단, 필수 쿠키는 사용자의 동의를 얻을 필요가 없다.)

  • Can be deleted/removed by the user.