기록을 남기자
작성일
2024. 7. 9. 19:59
작성자
ssun_bear
반응형

1.5.1 계층구조

계층구조는 크고 복잡한 시스템의 잘 정의된 특정 부분을 논의할 수 있게 해주며, 이러한 단순화는 매우 중요하다.

 

시스템이 계층구조를 가질 때, 그 계층이 제공하는 서비스의 구현을 변경하는 것도 매우 쉽다.

어떤 한 계층의 구현이 변하더라도 시스템의 나머지 부분은 변하지 않는다는 것이다.

 

💡 계층구조의 각 계층은 (1) 그 계층에서 어떤 동작을 취하고 (2) 그 계층 바로 아래 계층 서비스를 사용함으로써 서비스를 제공한다.



프로토콜 계층화

네트워크 프로토콜의 설계 구조를 제공하기 위해,
네트워크 설계자는 프로토콜(프로토콜을 구현하는 네트워크 하드웨어와 소프트웨어)을 계층(layer)으로 조직한다.

즉, 각각의 프로토콜은 한 계층에 속하며, 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 구현할 수 있다.

 

  • 한 계층은 상위 계층에 제공하는 서비스(service)에 관심을 갖고, 이것을 계층의 서비스 모델(service model)이라고 한다.
  • 각 계층은 그 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를 사용한다.

 

다양한 계층의 프로토콜을 합하여 프로토콜 스택(protocol stack)이라고 한다.



인터넷 프로토콜 스택

인터넷 프로토콜 스택은 5개 계층으로 구성된다.

물리, 링크, 네트워크, 트랜스포트, 애플리케이션 계층

아래부터 1계층 ~ 5계층



애플리케이션(Application) 계층

💡 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳이다.

  • 인터넷의 애플리케이션 계층이 포함하는 대표적 프로토콜은 다음과 같다.
    • HTTP : 웹 문서 요청과 전송 제공
    • SMTP : 전자메일 전송 제공
    • FTP : 두 종단 시스템 간의 파일 전송 제공
  • 도메인 네임 서버(domain name server, DNS)는 이 애플리케이션 계층에 존재한다.
  • 애플리케이션 계층 프로토콜은 여러 종단 시스템에 분산되어 있어서
    한 종단 시스템에 있는 애플리케이션이 다른 종단 시스템에 있는 애플리케이션과 정보 패킷(메시지, message)을 교환하는 데 이 프로토콜을 사용한다.

 

트랜스포트(Transport) 계층

💡 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송하는 서비스를 제공한다.

  • 트랜스포트 계층 패킷 = 세그먼트(segment)
  • 트랜스포트 프로토콜의 두 가지 종류로는 다음과 같으며, 이들은 애플리케이션 계층 메시지를 전달한다.
    • TCP
      • 애플리케이션에게 연결 지향형 서비스를 제공한다.
      • 목적지로의 애플리케이션 계층 메시지 전달 보장 흐름 제어(송신자/수신자의 속도 일치)를 포함한다.
      • 긴 메시지를 짧은 메시지로 나누고, 혼잡 제어 기능을 제공한다. (네트워크가 혼잡할 때 출발지의 전송률을 줄임)
    • UDP
      • 애플리케이션에게 비연결형 서비스를 제공한다.
      • 신뢰성, 흐름 제어, 혼잡 제어를 제공하지 않는다.

 

네트워크(Network) 계층 (= IP 계층)

💡 한 호스트에서 다른 호스트로 데이터그램(datagram, IP의 전송 단위)을 라우팅하는 책임을 진다.

즉, 출발지와 목적지 간 일련의 패킷 스위치(인터넷에서는 라우터)를 통해 데이터그램을 라우트한다.

  1. 출발지 호스트에서 인터넷 트랜스포트 계층 프로토콜(TCP 또는 UDP)은 트랜스포트 계층 세그먼트와 목적지 주소를 네트워크 계층으로 전달한다.
  2. 네트워크 계층은 목적지 호스트의 트랜스포트 계층으로 세그먼트를 운반하는 서비스를 제공한다.

 

네트워크 계층은 IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의하는 프로토콜, IP 프로토콜을 가지고 있다.

  • 오직 하나의 IP 프로토콜이 존재한다.
  • 네트워크 계층을 가진 모든 인터넷 요소는 IP 프로토콜을 수행해야만 한다.

 

인터넷 네트워크 계층은 라우팅 프로토콜을 포함한다.

  • 라우팅 프로토콜은 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정한다.
  • 인터넷은 네트워크의 네트워크이며, 한 네트워크 내부에서 네트워크 운용자는 원하는 어떠한 라우팅 프로토콜이라도 수행할 수 있다.

 

링크(Link) 계층

💡 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동시킨다.

링크 계층 패킷 = 프레임(frame)

 

경로상의 한 노드(호스트 혹은 패킷 스위치)에서 다른 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존해야 한다.

  1. 각 노드에서 네트워크 계층은 데이터그램을 아래 링크 계층으로 보내고 링크 계층은 그 데이터그램을 경로상의 다음 노드에 전달한다.
  2. 다음 노드에서 링크 계층은 그 데이터그램을 상위 네트워크 계층으로 보낸다.

 

링크 계층에서 제공하는 서비스는 그 링크에서 채용된 특정 링크 계층 프로토콜에 의해 결정된다.

e.g., 어떤 프로토콜은 송신 노드로부터 하나의 링크를 통해 반대편에 있는 수신 노드까지 신뢰적인 전송을 제공한다. (이는 TCP의 신뢰적인 전달 서비스와는 다름)

데이터그램은 출발지에서 목적지로 가는데 여러 링크를 거치므로, 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다.

 

물리(Physical) 계층

💡 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동시킨다.

이 계층의 프로토콜들은 링크에 의존하고, 더 나아가 링크의 실제 전송 매체(꼬임쌍선, 단일 모드 광케이블 등)에 의존한다.




1.5.2 캡슐화

그림은 아래 과정의 물리적 경로를 보여준다.

  1. 송신 종단 시스템의 프로토콜 스택 아래로 데이터를 보내며
  2. 중간의 링크 계층 스위치 라우터의 프로토콜 스택을 위아래로 거치고
  3. 수신 종단 시스템의 프로토콜 스택 상위로 보낸다.



라우터와 링크 계층 스위치

  • 이들은 둘 다 패킷 교환기다.
  • 종단 시스템과 비슷하게, 라우터와 링크 계층 스위치는 네트워킹 하드웨어와 소프트웨어를 계층으로 구성한다.
  • 그러나 모든 계층을 구현하지는 않고, 일반적으로 하위 계층을 구현한다.
    (그림에서는 링크 계층 스위치가 1, 2 계층을 구현하고 라우터는 1~3 계층을 구현)
  • 즉, 인터넷 라우터들은 IP 프로토콜(3계층 프로토콜)을 구현할 수 있지만, 링크 계층 스위치는 불가하다.

 

호스트

이는 다섯 계층 모두를 구현한다.

💡 인터넷 구조가 네트워크의 ‘가장자리’에서 그 복잡성을 유지한다.



캡슐화(encapsulation)

💡 각 계층에서 패킷은 헤더 필드와 페이로드 필드(payload field)라는 두 가지 형태의 필드를 갖는다.

페이로드(payload)는 일반적으로 그 계층 상위로부터의 패킷을 말한다.

 

캡슐화 과정

  1. 송신 호스트에서 애플리케이션 계층 메시지(application-layer message, 위 그림에서의 M)는 트랜스포트 계층으로 보내진다.
  2. 가장 간단한 경우, 트랜스포트 계층은 메시지에 수신 측 트랜스포트 계층에서 사용될 추가 정보인 트랜스포트 계층 헤더 정보(Ht)를 더한다.

 

트랜스포트 계층 세그먼트(transport-layer segment) = 애플리케이션 계층 메시지 + 트랜스포트 계층 헤더 정보

  • 트랜스포트 계층 세그먼트는 애플리케이션 계층 메시지를 캡슐화한다.
  • 트랜스포트 계층 헤더 정보가 포함하는 내용은 다음과 같다.
    • 수신 측의 트랜스포트 계층이 그 메시지를 적절한 애플리케이션으로 보내도록 하는 정보들
    • 메시지의 비트들이 변경되었는지 아닌지를 수신자가 결정하게 하는 오류 검출 비트

 

  1. 트랜스포트 계층은 세그먼트를 네트워크 계층으로 보낸다.
  2. 네트워크 계층은 출발지와 목적지 종단 시스템 주소와 동일한 헤더 정보(Hn)를 추가하여 네트워크 계층 데이터그램(network-layer datagram)을 만든다.

 

  1. 데이터그램은 링크 계층으로 전달된다.
  2. 링크 계층도 자신의 헤더 정보를 추가하여 링크 계층 프레임(link-layer frame)을 만든다.

 


 

캡슐화 과정은 위에서 말한 것보다 더 복잡할 수 있다.

큰 메시지는 여러 개의 트랜스포트 계층 세그먼트로 분할될 수 있으며, 그들 각각은 여러 개의 네트워크 계층 데이터그램으로 분할될 수 있다.

그러고 나서 수신 측에서 각 세그먼트는 분할된 데이터그램들로 재구성되어야 한다.

 

1.6 공격받는 네트워크

인터넷의 모든 유용성과 역동성 뒤에,
‘나쁜 친구들’이 인터넷에 연결된 컴퓨터에 해를 끼리고, 사생활을 침해하고, 우리가 의존하는 인터넷 서비스를 동작하지 못하게 함으로써
일상생활을 망가트리려고 하는 어두운 면이 있다.

네트워크 보안 분야는 나쁜 친구들이 어떻게 컴퓨터 네트워크를 공격할 수 있는가와
그러한 공격으로부터 네트워크를 방어할 수 있는가, 혹은 아예 그러한 공격에 영향을 받지 않는 새로운 구조의 설계 등을 다루는 분야다.



나쁜 친구들은 인터넷을 통해 여러분의 호스트에 멀웨어(악성코드)를 침투시킬 수 있다

우리는 인터넷에서 데이터를 수신/송신하기를 원하기 때문에 장치를 인터넷에 연결한다.

불행하게도 우리에게 전달되는 데이터들 중 해로운 것들도 포함되는데, 이들을 멀웨어(malware)라고 한다.
멀웨어는 우리들의 장치에 들어가서 나쁜 영향을 미친다.

e.g., 파일 삭제, 주민번호, 비밀번호, 키스트로크(keystroke, 키보드를 누르는 것) 등의 사적인 정보를 모으는 스파이웨어를 설치
→ 이러한 정보를 모아 나쁜 친구들에게 인터넷을 통해 다시 보낸다.

 

면역되지 않은 호스트는 수천의 비슷한 면역되지 않은 장치들로 구성된 네트워크, 즉 봇넷(botnet)에 등록될 수 있다.
나쁜 친구들은 목표로 하는 호스트에 대해 스팸 전자메일 분해 혹은 분산 DoS(Denial of Service) 공격을 위해 이 봇넷을 제어하고 이용한다.

 

오늘날 널리 퍼져 있는 많은 멀웨어는 자기복제(self-replicating)를 한다.
자기복제 멀웨어는 아래의 방법을 통해 기하급수적으로 퍼질 수 있다.

  1. 한 호스트에 영향을 미치면, 그 호스트에서 인터넷을 통해 다른 호스트로의 엔트리를 찾는다.
  2. 새롭게 영향을 받은 호스트로부터 또 다른 많은 호스트로의 엔트리를 찾는다.



나쁜 친구들은 서버와 네트워크 인프라스트럭처를 공격할 수 있다

DoS(Denial-of-Service) 공격

네트워크, 호스트 혹은 다른 인프라스트럭처의요소들을 정상적인 사용자가 사용할 수 없게 하는 것

웹 서버, 전자메일 서버, DNS 서버, 기관 네트워크는 DoS 공격을 받을 가능성이 있다.

 

DoS 공격의 세 가지 범주

취약성 공격(vulnerability attack)

만약 올바른 순서의 패킷을 공격받기 쉬운 애플리케이션 혹은 운영체제에 보내면(교묘한 메시지를 보내는 것을 포함)
그 서비스는 중단되거나, 호스트가 동작을 멈출 수도 있다.

 

대역폭 플러딩(bandwidth flooding)

목표 호스트의 접속 링크가 동작하지 못하도록 많은 패킷을 보내서 정당한 패킷들이 그 서버에 도달하지 못하게 한다.

 

1.4.2절의 지연과 손실 분석 논의를 기억해보자.

만약 서버가 R bps의 접속 속도를 갖고 있다면, 공격자는 피해를 주기 위해 대략적으로 R bps의 속도로 트래픽을 전송하면 된다.

 

만약 R가 매우 크다면 단일 공격 소스는 서버에 나쁜 영향을 줄 수 있는 충분한 트래픽을 발생시킬 수 없다.

더 나아가, 모든 트래픽이 하나의 소스에서 방사된다면 업스트림 라우터는 그 공격을 발견할 수 있고
트래픽이 서버에 가까이 가기 전에 그 소스로부터 모든 트래픽을 차단(block)할 수 있다.

 

아래 그림처럼 분산 DoS(DDoS) 공격에서 공격자는 다중의 소스를 제어하고 각 소스는 목표에 트래픽을 보낸다.

이런 방법으로 모든 제어 소스에 걸친 통합 트래픽 속도가 서비스를 무능력하게 하기 위해서는 전송률이 약 R이어야 한다.

수천개의 호스트로 구성된 봇넷을 이용하는 DDoS 공격은 오늘날 매우 흔하다.

 

연결 플러딩(connection flooding)

목표 호스트에 반열림(half-open) 혹은 전열림(fully open)된 TCP 연결을 설정한다.

호스트는 가짜 연결을 처리하느라 바빠서 정상적인 연결을 받아들이는 것을 중단하게 된다.

 


 

컴퓨터 네트워크 설계자는 DoS 공격을 방어하기 위해 무엇을 할 수 있는가?

→ 세 가지 유형의 DoS 공격에는 각기 다른 방어가 필요하다.



나쁜 친구들은 패킷을 탐지할 수 있다

유비쿼터스(ubiquitous) 인터넷 접속은 매우 편리하고 이동 사용자를 위한 애플리케이션이 가능하지만, 인터넷 접속은 주요한 보안 취약성을 창출했다.

무선 전송장치의 근처에 수동적인 수신자 즉, 패킷 스니퍼(packet sniffer)를 위치시킴으로써 그 수신자는 전송되고 있는 모든 패킷의 사본을 얻을 수 있다.

스니퍼는 무선 뿐만 아니라, 유선 환경에서도 배치될 수 있다.
(이더넷 LAN, 케이블 접속 기술, 인터넷에 연결되는 기관의 접속 라우터 혹은 접속 링크 등)

나쁜 친구들은 이렇게 가로챈 패킷을 오프라인으로 분석하여 비밀번호, 주민등록번호, 영업 비밀 등 모든 종류의 민감한 정보를 얻을 수 있다.

 

패킷 스니퍼는 수동적이기 때문에, 즉 스니퍼는 채널에 패킷을 삽입하지 않기 때문에 이를 탐지하기가 어렵다.

그래서 무선 채널로 패킷을 보낼 때 어떤 나쁜 친구가 우리 패킷의 사본을 기록하고 있을 수 있다는 가능성을 받아들여야 한다.

 

패킷 스니핑을 방지하기 위한 가장 좋은 방어는 암호화를 포함하는 것이다. (8장에서 다룸)



나쁜 친구들은 여러분이 신뢰하는 사람인 것처럼 위장할 수 있다

임의의 출발지 주소, 패킷 내용, 목적지 주소를 갖는 패킷을 생성하고 이 패킷을 인터넷으로 보내는 것은 매우 쉽다.

가짜 출발지 주소를 가진 패킷을 인터넷으로 보내는 능력 IP 스푸핑(spoofing)이라고 하며,
한 사용자가 다른 사용자인 것처럼 행동하는 여러 가지 방법 중 하나다.

 

이 문제를 해결하기 위해서는 종단 인증(end-point authentication),
 메시지가 실제로 와야 할 곳으로부터 온 것인지 확신할 수 있는 방법이 필요하다.

네트워크 애플리케이션과 프로토콜의 경우 어떻게 이것을 할 수 있을까? (8장에서 다룸)

 


 

인터넷은 처음에 어떻게 보안 문제에 직면하게 되었을까?

 

인터넷은 원래 ‘투명한 네트워크에 연결된 상호 신뢰할 수 있는 사용자 그룹’ 모델,
 보안이 필요 없는 모델에 기반을 둔 방식으로 설계되었다. [Blumenthal 2001]

따라서 원래 인터넷 구조의 많은 특성은 이러한 상호 신뢰를 반영하고 있다.
e.g., 한 사용자가 패킷을 다른 사용자에게 보내는 능력은 default, 사용자 식별은 default로 인증해야 하는 것보다는 선언된 액면 그대로 믿는 것이다.

 

그러나 오늘날 인터넷은 ‘상호 신뢰하는 사용자’를 분명히 포함하지 않는다.

그럼에도 불구하고 오늘날의 사용자들은 서로를 꼭 신뢰하지는 않을 때, 익명으로 통신하기를 원할 때,
제3자를 통해 간접적으로 통신할 때(이동 지원 에이전트, mobility-assisting agent) 등 이러한 상황에서도 여전히 통신이 필요하다.

 

아직 우리 앞에는 많은 보안 관련 해결 과제가 존재한다.

우리는 스니핑, 종단 위장(end-point masquerading), 중간자 공격, DDoS 공격, 멀웨어 등에 방어하는 방법을 찾아야 한다.

💡 상호 신뢰하는 사용자 간의 통신은 일반적인 것이 아니라 예외적인 것임을 명심해야 한다.

 

 

1.7 컴퓨터 네트워킹과 인터넷의 역사

1.7.1 패킷 교환 개발: 1961~1972

1960년대 초의 세계 주요 통신 네트워크는 전화망이었다.

전화망이 송신자에게서 수신자로 정보를 전송하는 데 회선 교환을 사용하였다. (음성이 송수신자 간에 일정한 속도로 전송된다면 이는 적절한 선택)

 

각 사용자가 만드는 트래픽은 집중적(bursty)이었다.

즉, 원격 컴퓨터에 명령을 내리는 활동과 응답을 기다리고 응답을 검토하는 비활동 사이의 기간이 일정하지 않았다.

 

세계적으로 3개의 연구 그룹이 회선 교환을 대신할 수 있는 효율적이고 견실한 방법으로서 패킷 교환의 개념을 창안하였다.

  • 1967년, 로렌스 로버츠(Lawrence Roberts)는 ARPAnet에 대한 대략의 계획을 발간하였다.
    → 첫 번째 패킷 교환 컴퓨터 네트워크이자 오늘날 공중 인터넷의 직계 원조
  • 1969년, 첫 번째 패킷 스위치가 UCLA에 설치되었다.
  • 1972년, ARPAnet은 약 15개의 노드로 커졌다.
    ARPAnet 종단 시스템 간에 NCP(Network-Control Protocol)라고 하는 첫 번째 호스트 간(host-to-host) 프로토콜이 완성되었다. [RFC 001]

 

종간 간에서 프로토콜을 사용할 수 있게 되자, 애플리케이션을 개발할 수 있게 되었다.

  • 1972년, 레이 톰린슨(Ray Tomlinson)이 최초의 전자메일 프로그램을 만들었다.



1.7.2 독점 네트워크와 인터네트워킹: 1972~1980

초기 ARPAnet은 단일 폐쇄 네트워크였다.

즉, ARPAnet 호스트와 통신하기 위해서는 다른 ARPAnet IMP에 실제로 접속해야 했다.

 

1970년대 중반 초, ARPAnet과 별개의 패킷 교환 네트워크들이 생겨났다.

  • DARPA의 패킷 위성 [RFC 829]
  • 패킷 라디오 네트워크 [Kahn 1978]
  • ALOHAnet : 하와이에 위치하는 대학들을 함께 연결하는 마이크로파 네트워크 [Abramson 1970]
  • Cyclades : 루이 푸장(Louis Pouzin)이 이끈 프랑스 패킷 교환 네트워크 [Think 2012]
  • 시분할 네트워크 : 1960년대 후반에서 1970년대 초반의 네트워크 [Schwartz 1977]
    e.g., Tymnet, GE Information Services 네트워크

 

네트워크 수가 증가함에 따라
네트워크를 연결하는 포괄 구조(상호연결 네트워크, 네트워크의 네트워크)의 개발 시기가 점차 다가왔다.

 

이러한 구조 원리는 TCP 프로토콜로 구체화되었다.

이는 아래의 두 가지를 결합한 것이며, 오늘날의 TCP와는 매우 다르다.

  • 종단 시스템의 재전송을 통한 데이터의 신뢰적인 전송 (오늘날 TCP의 일부분으로 남겨짐)
  • 전달 기능 (오늘날 IP가 수행함)

 

패킷 음성 같은 애플리케이션을 위한 비신뢰적이고 흐름 제어가 없는 종단 간의 전송 서비스의 중요성에 대한 인식과 결합하여
TCP에 대한 초기 실험은 TCP에서 IP를 분리하도록 했고, UDP 프로토콜을 개발하였다.

TCP, UDP, IP 같은 주요 인터넷 프로토콜은 1970년대 후반에 그 개념이 자리 잡았다.

 

ALOHA 프로토콜[Abramson 1970]은 지리상 분산된 사용자를 하나의 방송통신매체(라디오 주파수)를 공유하게 하는
최초의 다중 접속(multiple access) 프로토콜이다.

다중 접속 프로토콜에 대한 에이브럼슨의 연구는
유선 기반 공유 브로드캐스트 네트워크를 위한 이더넷 프로토콜[Metcalfe 1976] 개발에서 멧칼프(Metcalfe)와 보그스(Boggs)에 의해 발전되었다.

즉, PC 혁명과 네트워크 폭발이 있기 훨씬 전인 25년 전, 이들은 오늘날의 PC LAN의 기초를 닦고 있었다.



1.7.3 네트워크 확산: 1980~1990

  • 1970년대 말까지 약 200개의 호스트가 ARPAnet에 연결되었다.
  • 1980년대 말까지 공중 인터넷(네트워크 연합)에 연결된 호스트 수는 십만 개에 이르렀다.

 

이처럼 1980년대는 거대한 성장 시대였는데, 이러한 성장의 주요인은 대학들을 연결하는 컴퓨터 네트워크를 만드는 여러 노력이었다.

  • CSNET(Computer Science Network) : ARPAnet에 접속하지 않고 대학 연구자들을 연결하기 위해 만들어졌다.
  • 1986년, NSFNET(National Science Foundation Network)이 NSF이 지원하는 슈퍼컴퓨터센터에 접속 가능하도록 만들어졌다.
  • 56 kbps의 초기 백본으로 시작하여 NSFNET의 백본은 1980년대 말에 1.5 Mbps로 동작하게 되었으며, 지역 네트워크를 연결하는 주요 백본이 되었다.

 

ARPAnet 커뮤니티에서 오늘날 인터넷 구조의 많은 구성요소가 등장했다.

  • 1983년 1월 1일, APRAnet의 새로운 표준 호스트 프로토콜인 TCP/IP가 공식 설치되었다. (NCP 프로토콜을 대체)
  • NCP에서 TCP/IP로의 전환[RFC 801]은 플래그 데이(flag day) 형태의 사건이었다. 즉, 모든 호스트는 같은 날 동시에 TCP로 전환해야 했다!

 

1980년대 후반에 호스트 기반의 혼잡 제어를 구축하기 위해 TCP에 중요한 확장이 이루어졌다. [Jacobson 1988]

  • 도메인 네임 시스템(domain name system, DNS)의 개발 [RFC 1034]
  • 이는 도메인(사람이 읽을 수 있는 인터넷 이름, e.g., jw.edu, euna.com)과 32비트 IP 주소 간의 매핑에 사용된다.

 

1980년대 초 프랑스에서는 데이터 네트워킹을 모든 가정으로 보급하려는 미니텔(Minitel) 프로젝트를 시작했다.

  • 공중 패킷 교환 네트워크 (가상 회선 방식을 사용하는 X.25 프로토콜 스택에 기반을 둠)
  • 미니텔 서버와 내장형 저속 모뎀을 포함하는 값싼 터미널로 구성되었다.
  • 1984년, 프랑스 정부가 원하는 모든 가정에 무상으로 미니텔 단말기를 제공하고 큰 성공을 거두었다.
  • 미니텔 사이트는 전화번호 사이트 같은 무료 사이트와 사용자가 사용량에 따라 요금을 받는 사설 사이트를 포함했다.



1.7.4 인터넷 급증: 1990년대

1990년대는 인터넷의 지속 발전화 상업화를 상징하는 두 사건으로 대변된다.

  1. 인터넷이 원조인 ARPAnet이 더 이상 존재하지 않게 되었다. (1991년에 NSFNET 상업화 제한을 풀었음)
  2. 월드와이드웹(World Wide Web, WWW)이 출현하였다.

 

웹은 검색, 인터넷 상거래, 소셜 네트워크 등을 포함하는 수백 가지의 새 애플리케이션을 만들고 보급하는 플랫폼으로 등장했다.

  • 1989~1991년, 팀 버너스 리(Tim Berners-Lee)가 CERN에서 처음으로 만들었다. [Berners-Lee 1989]
  • 웹의 네 가지 주요소(HTML, HTTP, 웹 서버, 브라우저)의 초기 버전을 개발하였다.
  • 이는 1940년대의 바내바르 부시(Vannevar Bush)와 1960년대 이후의 테드 넬슨(Ted Nelson)이 개발한
    하이퍼텍스트에 관한 초기 연구의 아이디어를 바탕으로 하였다.
  • 1993년 말에 약 200개의 웹 서버가 동작 중이었다.

 

이 시기, 여러 연구자가 GUI 인터페이스형 웹 브라우저를 개발하고 있었으며,
크고 작은 회사가 웹 서버를 운영했고 웹을 통한 상거래를 시작했다.

 

1990년대 후반은 인터넷의 큰 성장과 혁신의 시대이다.

세기가 끝나는 시점에서 인터넷은 다음 4개의 킬러 애플리케이션을 포함해서 수백 개의 인기 있는 애플리케이션을 지원하게 된다.

  • 첨부물과 웹 접속 전자메일을 포함하는 전자메일
  • 웹 브라우징과 인터넷 상거래를 포함하는 웹
  • 대화상대 목록을 가진 인스턴트 메시징
  • 냅스터(Napster)가 개척한 P2P를 통한 MP3 파일 공유



1.7.5 새 천 년

21세기 첫 20년 동안에 인터넷에 연결된 스마트폰과 함께 인터넷보다 사회를 더 변화시킨 기술은 없었다.

그리고 컴퓨터 네트워킹에서의 혁신은 빠른 속도로 계속되어 있다.

 

그러나 다음의 개발들은 특별한 관심을 끌고 있다.

 

  • 가정에 광대역 인터넷 접속의 공격적인 구축을 목격하고 있다.
    (케이블 모뎀과 DSL뿐만 아니라 그리고 이제는 5G 무선 서비스 포함)

 

  • 고속 무선 인터넷 접속의 빠른 보급
    • 이를 통해 네트워크에 지속적으로 접속할 수 있을 뿐만 아니라, 엘프(Yelp), 틴더(Tinder), 와즈(Waz) 같은
      새로운 위치 기반 애플리케이션이 가능해졌다.
    • 인터넷에 연결되는 무선 장치 수는 2011년에 유선 장치의 수를 초과하였다.

 

  • 페이스북, 인스타그램, 트위터 등 온라인 소셜 네트워크는 인터넷상에 거대한 사람들의 네트워크를 생성했다.
    • API를 통해 온라인 소셜 네트워크는 모바일 결제를 포함하는 새로운 네트워크 애플리케이션과 분산 게임용 플랫폼을 생성한다.

 

  • 1.3.3절에서 논의한 바와 같이 구글와 마이크로스프트 같은 온라인 서비스 제공자는 자신의 커다란 사설 네트워크를 구축하였다.
    • 이는 전 세계적으로 분산된 자신들의 데이터 센터를 연결할 뿐만 아니라
      하위 계층 ISP와 직접 연결(peering)함으로써 가능한 한 많은 인터넷을 우회하는 데 사용된다.
    • 그 결과 구글의 데이터 센터가 마치 사용자의 컴퓨터 내에서 동작하는 것처럼, 구글은 거의 즉각적으로 검색 결과와 전자메일 접속을 제공한다.

 

  • 클라우드 회사는 애플리케이션에 확장 가능한 컴퓨팅과 저장 환경을 제공할 뿐만 아니라, 고성능 사설 네트워크 접속도 제공한다.
    • 많은 인터넷 상거래 회사는 ‘클라우드’에서 자신의 애플리케이션을 수행하고 있다. (아마존의 EC2, 마이크로소프트의 Azure, 알리바바 클라우드)
    • 많은 회사와 대학도 그들의 인터넷 애플리케이션(e.g., 전자메일과 웹 호스팅)을 클라우드로 이동했다.
반응형