오늘 끝나면
인터넷의 탄생
- ✓인터넷의 탄생의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 인터넷의이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
1969 아파넷 — 컴퓨터끼리 선으로 잇다. 패킷과 IP 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
개발 · Day 8 / 인터넷 · 웹
컴퓨터끼리
선을 잇다
이제 컴퓨터끼리 연결한다. 1969년 아파넷이 그 시작이다. 글을 통째로 보내지 않고 조각내 보내는 것이 핵심이다.
왜 망을 만들었나
냉전기 미국은 핵폭격을 맞아도 죽지 않는 통신망이 필요했다.
옛 전화망은 중앙 교환소에 다 걸려 있어, 그곳 하나만 끊기면 통신이 통째로 죽는다. 그래서 미 국방부가 돈을 댔다.
1969년 ARPANET이 켜졌다. 대학 컴퓨터 4대를 선으로 이은 것이 전부였다. 첫 메시지는 LO였다. "LOGIN"을 치다 두 글자 만에 시스템이 죽었지만, 컴퓨터끼리 처음 말을 건 순간이었다.
답은 중앙 없는 그물망이다. 어디가 끊겨도 다른 길로 돌아가면 된다. 이것이 오늘날 인터넷의 DNA다.
대학 컴퓨터 4대로 만든 중앙 없는 그물망, 한 선이 끊겨도 우회한다
글을 조각내 보낸다
핵심 아이디어는 패킷 교환이다. 보낼 데이터를 작은 조각으로 쪼개 보내는 방식이다.
옛 전화는 회선 교환이다. 통화하는 동안 두 사람 사이 선 하나를 통째로 잡아둔다. 말을 하지 않아도 선은 계속 점유돼 낭비가 크다.
패킷 교환은 글을 여러 조각(패킷)으로 쪼갠다. 각 조각에 받는 사람 주소를 붙이고, 조각은 제각각 다른 길로 가도 된다. 도착하면 번호 순서대로 다시 합친다.
그래서 선 하나를 여러 사람이 나눠 쓴다. 한 길이 막히면 다른 길로 돌아가니 끊기지 않는다.
선을 통째로 잡는 대신, 조각내 나눠 보내고 도착해 합친다
라우터가 길을 찾는다
패킷은 한 번에 목적지까지 안 간다. 라우터라는 중간 우체국을 여러 번 거친다.
라우터는 패킷에 적힌 주소를 보고 더 가까운 쪽을 판단해 다음 라우터로 넘긴다. 이 한 칸 이동을 홉(hop)이라 한다. 목적지까지 보통 여러 홉을 거친다.
라우터를 눌러 고장 내면 패킷이 즉시 다른 길로 돌아간다. 길 하나가 죽어도 망 전체는 멀쩡하다. 1969년 군이 원했던 바로 그 성질이다.
코드 보기
# 죽은 라우터를 피해 최단 경로 찾기 (BFS)
def find_path(dead):
q = ["나"]
prev = {"나": None}
while q:
cur = q.pop(0)
for nxt in neighbors(cur):
if nxt in dead: continue
if nxt not in prev:
prev[nxt] = cur
q.append(nxt)
return trace(prev, "친구")IP, 인터넷의 집주소
라우터가 길을 찾으려면 "어디로 보낼지"가 필요하다. 그 주소가 IP다.
IP는 Internet Protocol의 줄임말이다. 인터넷에 연결된 모든 기기에 고유 번호가 붙는다. 집집마다 도로명 주소가 있는 것과 같다.
예전 방식(IPv4)은 142.250.207.46처럼 점으로 나뉜 숫자 넷이다. 각 칸은 0~255 사이다. 이 주소만 알면 지구 반대편 컴퓨터에도 패킷을 보낸다.
숫자는 외우기 어렵다. 그래서 google.com 같은 이름을 IP로 바꿔주는 장치가 따로 있다. 인터넷의 전화번호부인 DNS다.
모든 기기에 붙는 고유 번호, 인터넷의 도로명 주소다
인터넷 = 망들의 망
인터넷은 망들의 망이다. 작은 망 수없이 많은 것을 또 이은 것이다.
집 와이파이, 회사 망, 카페 망, 통신사 망이 다 따로 있다. 이 망들을 또 서로 이은 거대한 그물이 인터넷이다. "인터넷 (inter-net)" 이름 자체가 "망과 망 사이"라는 뜻이다.
그래서 인터넷엔 주인이 없다. 약속(프로토콜)만 지키면 누구든 자기 망을 붙인다. 이 개방성이 인터넷을 폭발적으로 키웠다.
Q. 인터넷과 웹은 같은 말인가?
아니다. 인터넷은 컴퓨터를 잇는 망 자체다(이번 챕터). 웹은 그 망 위에서 돌아가는 한 가지 서비스다. 링크로 이어진 문서들이다(다음 챕터). 이메일과 영상통화도 인터넷 위에 있지만 웹은 아니다. 인터넷이 도로라면 웹은 그 위를 달리는 한 종류의 차다.작은 망들을 또 이은 거대한 그물, 주인 없는 개방형 망이다