Search

how does internet work

subtitle
너와 나의 연결고리, 인터넷의 동작 방식
Tags
network
Created
2021/02/17
2 more properties
source: techexplorist
스페이스 X의 스타링크 위성 60개가 서로 연결된 모습입니다. 이 네트워크는 전세계 광대역 인터넷을 제공하는 것을 목표로 합니다. 캐나다, 미국 일부 지역에서 비밀리에 시범 운영되고 있고 재해를 입은 워싱턴 주에 인터넷을 제공하여 통신 재개에 도움을 줬다고 합니다.
케이블 선에서 위성에 이르기까지, 인터넷은 엄청나게 발전했고 또 발전하고 있습니다.
오늘은 인터넷이 어떻게 시작됐는지, 그리고 그 구조와 동작 방식에 대해 다루려고 합니다.
"인터넷의 구조"
1969년, 최초의 연결 'ARPANET'이 등장했습니다. 유타, UCLA, 스탠포드, UCSB 네 곳의 컴퓨터를 연결한 네트워크였습니다. ARPANET은 연구자들에 의해 시스템이 개선되었고, MIT와 하버드의 컴퓨터까지 연결이 확장되어 지금의 '인터넷'이라고 불리게 되었습니다.
'인터넷이 무엇인가요'라고 묻는다면, 저는 '전세계를 잇는 연결고리'이라고 말할 것 같습니다. 인터넷은 전 세계의 여러 조직이 관리하는 네트워크가 연결된 것입니다. 이 연결고리는 물리적인 '선(wire)'으로 이어져 있습니다.
source: mozila
그림과 같이 컴퓨터끼리 직접 연결할 수 있습니다. 그러나 우리는 많은 사람들과 소통하므로 더 많은 컴퓨터와의 연결이 필요합니다. n대의 컴퓨터를 만들기 위해서는 n(n-1)/2 만큼의 케이블 선이 요구됩니다. 아래 그림처럼 10대의 컴퓨터를 연결하는데도 45개의 케이블 선이 필요하고 연결은 더 복잡해집니다.
source: mozila
비효율적인 연결을 개선하기 위해 컴퓨터들을 '라우터'라는 작은 컴퓨터로 연결합니다. 모든 컴퓨터가 라우터와 연결되면서 n대의 컴퓨터를 연결하기 위한 케이블 선은 n개로 줄어들었습니다. 하지만 마을, 도시, 국가 단위의 네트워크가 만들어지기 위해서는 하나의 라우터로는 부족합니다. 그래서 라우터와 라우터를 연결합니다.
source: mozila
source: mozila
같은 조직의 네트워크 내에서는 이 정도의 연결만으로도 괜찮지만, 전세계 모든 컴퓨터를 연결하기엔 한계가 있습니다. 그래서 우리는 이미 갖춰진 인프라를 사용합니다. 바로 '전화 인프라(Telephone Infrastructure)'입니다. 전화 인프라는 이미 전세계적으로 연결되어 있어 우리가 만든 네트워크와 연결시키기만 하면 됩니다. '모뎀(Modem)'을 통해서 말입니다. 모뎀은 우리 네트워크에서 전송된 데이터를 통신 인프라에서 관리할 수 있는 데이터로 변환시켜줍니다.
source: mozila
이와 같은 물리적인 연결, 그리고 DSL(Digital Subscriber line, 디지털 가입자 회선) 인터넷을 제공하는 조직을 ISP(Internet Service Provider)라고 합니다. ISP는 다른 ISP의 라우터에도 메시지를 보낼 수 있습니다. 이렇게 ISP와 ISP, 또 그리고 ISP... 전세계의 수많은 ISP가 서로 연결되어 있고 우리 컴퓨터는 그중 연결된 ISP를 사용해 서버에 데이터를 요청합니다.
하나의 ISP로 연결된 무선 네트워크 source: infinetwireless
"인터넷은 어떻게 동작하는가"
사람과의 대화에 화자와 청자가 있듯이 인터넷에서 데이터를 주고 받을 때는 클라이언트와 서버가 있습니다. 클라이언트가 서버에 데이터를 요청하면 서버는 데이터를 제공합니다. ISP 내 서버끼리 통신하는 게 아닌 이상 클라이언트와 서버, 둘은 직접적으로 연결되어있지 않습니다. 우리가 위에서 쭉 봐왔듯이 ISP를 통해 간접적으로 연결되어 있습니다.
source: Aaron https://youtu.be/7_LPdttKXPc
인터넷 자체는 연결이고, 동작은 데이터를 주고 받는 과정입니다. 메일 전송을 예로 들어보겠습니다. 그림에서 client 컴퓨터는 ISP에서 제공하는 DSL을 이용하고 있습니다. Ruth 이모에게 메일을 보내기 위해서는 gmail.com에 접속해서 이모의 이메일 주소로 메일을 전송합니다. gmail.com 서버는 서버이자 ISP인 aol.com로 데이터를 보내고 ISP에서는 이모 컴퓨터에 데이터를 전송합니다.
간단해보이네요. 웹사이트 접속 과정을 통해 더 깊이 들어가봅시다. 우리가 브라우저 주소창에 URL을 입력하면 ISP로 요청이 갑니다. ISP는 여러 서버를 갖고 있는데 그 중에는 도메인에 매핑된 IP 주소를 찾아주는 DNS 서버도 있습니다. ISP에 요청이 오면 DNS에서 도메인에 해당되는 IP 주소를 찾아서 (*DNS Lookup) 클라이언트에 알려줍니다. 그럼 *브라우저에서는 해당 IP 주소로 HTTP 프로토콜을 통해 데이터를 요청합니다.
데이터는 *TCP/IP 프로토콜을 사용하여 주고 받습니다. 서버에 요청을 처리하는 데 문제가 없다면 '200 OK' 메시지를 클라이언트에 보냅니다. 그리고 웹 사이트 데이터를 패킷 형태로 보냅니다. 데이터를 온전한 데이터가 아닌 '패킷'으로 쪼개어 보내기 때문에 전송 과정에서 데이터가 유실되거나 순서가 바뀔 위험이 있습니다. 그래서 보내는 순서(시퀀스 번호), 받는 순서(ACK 번호)를 패킷 헤더에 적어 이와 같은 위험을 방지합니다. 브라우저는 이 순서를 참고하여 다시 패킷을 재구성하고 우리는 온전한 형태의 데이터를 받을 수 있습니다.
*DNS 동작 방식, 브라우저 네트워킹, TCP/IP
인터넷하면 브라우저를 제일 먼저 떠올리곤 하는데, 실제로 인터넷은 전세계 컴퓨터들을 연결시켜주는 네트워크 인프라고 웹은 그 인프라 위에서 데이터를 주고 받을 수 있는 서비스라 둘은 다르다고 할 수 있겠네요.
리처드 파인만은 생전에 어느 기자로부터 '자석은 왜 같은 극끼리 붙여놓으면 서로 밀어냅니까?'라는 질문을 받았습니다. 그 물음에 리처드 파인만은 기자가 어디서부터 알고있는지 모르기 때문에 설명해줄 수 없다는 말을 장황하게 풀어냈습니다. 그 말을 정리하면, 자기장의 척력을 설명하는 데에도 깊은 과학적 지식이 필요하다는 말이었습니다.
'인터넷은 어떻게 동작하는 거에요?'라고 묻는다면 질문은 간단하지만 이더넷, TCP/IP 프로토콜, DNS Lookup 등 네트워크 구조와 개념에 대해 전반적으로 이해하고 있어야 합니다. 그렇지 않으면 질문은 꼬리에 꼬리를 물 것입니다. 글을 정리하면서 그동안 배웠던 지식들이 이번 포스팅에 집약되어 큰 도움이 됐습니다. 우리 일상 속에서 자주 쓰이는 인터넷이 오랜 시간과 노력의 결과라는 걸 알게 됐고 여담이지만 리처드 파인만이 인터뷰에서 왜 그런 대답을 했었는지 깨닫게 됐습니다.
굳.
References