-
[카운트 다운 노래: 7, 6, 5, 4, 3, 2, 1]
인터넷: 패킷, 라우팅, 신뢰성
-
안녕하세요. 제 이름은 Lynn이예요. 여기 Spotify의
소프트웨어 엔지니어입니다.
-
저는 제가 종종 인터넷의 신뢰성을 당연시 했음을
인정합니다. 인터넷에 떠도는
-
엄청난 양의 정보는 놀랍습니다.
하지만 데이터의 각 부분을
-
어떻게 신뢰성 있게 전달할 수 있을까요?
여러분이 Spotify의 노래를 재생하고 싶다고 가정합시다.
-
과정은 여러분의 컴퓨터를 직접 Spotify에 연결하고
Spotify가 직접, 전용선으로 여러분에게 노래를
-
보내는 것처럼 보입니다. 하지만, 사실, 그것은
인터넷이 하는 방식이 아닙니다.
-
인터넷이 직접적인, 전용 연결선으로 구성되어 있다면,
수 백만의 사용자가 동시에 로그인하여 각자의 일을
-
하는 것은 불가능할 것입니다. 특히, 각각의 배선과
컴퓨터가 항상 가동된다는 보장이 없기 때문에
-
더 그렇습니다. 대신,
데이터는 인터넷 상에서 훨씬 덜
-
직접적인 방식으로 여행합니다. 아주 오래 전인
1970년대에, 파트너인 Bob Kahn과 저는
-
지금 인터넷이라 불리는 것을 설계하기
시작했습니다. Bob과 나는 인터넷의
-
프로토콜과 아키텍처를 설계할 책임과 기회를
가졌습니다. 그래서 우리는 현재를 포함하여,
-
지금까지 모든 시간 동안 인터넷의 성장과
진화에 계속해서 참여하고 있습니다.
-
한 컴퓨터에서 다른 컴퓨터로 정보를
전달하는 방식은
-
상당히 흥미롭습니다. 이것은 고정된 경로를
따를 필요가 없습니다. 사실, 여러분의 경로는
-
어느 한 컴퓨터 속에서 컴퓨터 대화로 변화될 수 있습니다.
인터넷 상의 정보는 패킷이라 불리는 것 안에서
-
한 컴퓨터에서 다른 컴퓨터로 가고
패킷은 우리가 차 안에 타고 가며 한 곳에서
-
다른 곳으로 가는 것과 마찬가지로 인터넷 상에서
한 곳에서 다른 곳으로 여행합니다.
-
교통 체증 또는 도로 상태에 따라,
여행을 할 때 마다 우리는 다른 경로를 선택하거나
-
또는 어쩔 수 없이 다른 경로로 돌려 동일한
장소에 옵니다. 그리고,
-
차 안에 온갖 종류의 물건을 실어 나르듯이,
많은 종류의 디지털 정보를
-
IP 패킷과 함께 보낼 수 있지만 거기에는 약간의
제한이 있습니다. 예를 들어,
-
우주 왕복선을 그것을 만든 곳에서 발사 장소로
이동해야 한다고 가정하세요. 왕복선은
-
트럭 한 대에 고정시킬 수 없어 여러 부분으로
나눠야 하고 여러 대의 트럭을 사용하여
-
운송해야 합니다. 운송 시 여러 경로를 이용해야
하고 목적지에 각기 다르게 도착할 것입니다.
-
하지만, 일단 모든 부분이 거기에 모이면,
부분을 완전한 우주 왕복선으로 재조립
-
할 수 있고 발사할 준비가 될 것입니다.
인터넷 상에서 세부사항은 이와 유사합니다.
-
매우 큰 이미지를 친구에게 전송하고 싶거나
또는 웹 사이트에 업로드하고 싶으면,
-
그 이미지는 수 백 만 비트의 1과 0으로
구성되어 한 패킷 안에서 함께 보내기에는
-
너무 많습니다. 데이터가 컴퓨터 안에 있기 때문에
이미지를 보내는 컴퓨터는 빠르게
-
패킷이라 부르는 수 백개 또는 심지어 수 천개의
더 작은 부분으로 쪼갤 수 있습니다. 차 또는
-
트럭과 달리, 이러한 패킷은 운전자가 없고
경로를 선택하지 않습니다. 각 패킷에는
-
그것이 어디에서 왔으며 어디로 가는지 나타내는
인터넷 주소가 있습니다.
-
라우터라고 부르는 인터넷 상의 특수 컴퓨터는
트래픽 관리자와 같은 역할을 하여 패킷을 순조롭게
-
계속 네트워크를 통해 이동하게 합니다. 한 경로가
막히면, 개별 패킷은 인터넷을 통해
-
다른 경로로 여행하여 약간 다른 시간에
또는 심지어 제멋대로
-
목적지에 도착할 수 있어요. 어떻게 이렇게
되는지 이야기 해보죠. 인터텟 프로토콜의 일부로서
-
각 라우터는 패킷을 보내는 여러 개 경로의
트랙을 따르고, 패킷의 목적지 주소에
-
기초하여 각 데이터 조각별로 이용 가능한
가장 효율적인 경로를 선택합니다.
-
이 경우 가장 효율적이라는 건 비용을 의미하는 것이 아니라,
시간과, 회사 간의 방침 및 관계 등과 같은
-
비기술적인 요소를 의미합니다. 종종 여행할 데이터를
위한 최고의 루트가 직선코스일
-
필요는 없어요. 여러 경로의 옵션이 있으면
네트워크의 결점이 없어집니다. 이것은
-
비록 뭔가 정말 잘못되었더라도 네트워크가
계속해서 패킷을 보낼 수 있다는 의미입니다.
-
이것은 인터넷의 주요 원칙을 위한 기초로
즉, 신뢰성입니다. 지금 만약 데이터를 요청하려고
-
하는데 아무것도 전달받은 것이 없다면
어떻게 할래요? 가령 노래를 듣고 싶다고 가정해봐요.
-
모든 데이터를 전달받아 노래가 완벽하게 재생된다고
어떻게 100% 확신할 수 있어요?
-
새 친구인 TCP (전송제어 프로토콜)를 소개합니다.
TCP는 패킷으로 전송 및 수신되는 모든 데이터를
-
관리합니다. 그것을 마치 등기 우편 서비스와 같다고
생각하세요.
-
기기 상에 있는 노래를 요청할 때, Spotify는 노래를
여러 패킷으로 쪼개서 보냅니다.
-
패킷이 도착하면, TCP는 정리를 하고
각 패킷을 수신했다는 확인서를
-
보냅니다. 패킷이 모두 있으면,
TCP는 전달되었고 준비가 되었다고
-
신호합니다. (노래 재생) 만약 TCP가 일부
패킷이 빠져 있음을 발견하면, 신호를 하지 않고
-
노래가 제대로 나오지 않거나 또는 노래의 일부가
없을 수 있습니다. 없어지거나 또는 불완전한
-
패킷에 대해, Spotify는 응답할 것입니다.
일단 TCP가 요청된 그 노래를 위해
-
많은 패킷이 전달되었음을 확인하면, 노래는
재생되기 시작합니다. TCP와
-
라우터 시스템의 대단한 점은 그것들의 확장성이예요.
그것들은 8개 또는 80억개의 기기와 함께 일할 수 있어요.
-
사실, 이러한 무결점과 리던던시 원칙때문에,
우리가 더 많은 라우터를 추가할 수록
-
인터넷의 신뢰성은 더 높아져요. 또한
다른 이들이 인터넷을 사용할 수 있도록
-
서비스를 중단하지 않고도 인터넷을 성장 및 확장
시킬 수 있습니다. 인터넷은 수 십만개의
-
네트워크와 물리적으로 연결된 수 십억 대의
컴퓨터와 기기로 이루어 졌습니다. 인터넷을
-
구성하는 이러한 여러 시스템은 표준 하에서
인터넷 상의 데이터 전송방법에 동의했기 때문에
-
서로 연결되어 있고, 서로 커뮤니케이션하며,
함께 일합니다.
-
인터넷과 함께 전산 기기 또는 라우터는
필요하면, 모든 패킷이 그것들이 재조립될
-
목적지까지 잘 가도록 도와줍니다.
이러한 일은 여러분 또는 다른 사람이
-
이메일을 보내거나 또는 웹 페이지를 방문할 때,
비디오 채팅을 할 때,
-
모바일 앱을 사용할 때, 또는
인터넷 상의 센서 또는 기기가 서로 통신할 때 등
-
하루에 수 십억 번씩 일어납니다.