-
[HTTP] 인터넷 통신에 대하여Study/CS 2021. 9. 25. 22:36
중학생때, 한창 영어 배우는 것에 호기심을 가지던 시절
영국인 중학생과 이메일 펜팔을 했던 것이 생각난다.
물론 내용은 "난 오늘 학교 다녀왔어. 그리고 저녁은 ~을 먹었어. 너는 무엇을 했니?" 뭐 이런 내용이었지만 ㅎㅎ
이런 사사로운 이야기 마저 굉장히 설레였던게 생각난다.
내가 지구 반대편에 있는 사람과 이렇게 일상적인 이야기를 주고 받을 수 있다니!!
저 멀리 있는 영국인 중학생과 나는 어떻게 이메일을 주고 받을 수 있었을까?
인터넷에서 컴퓨터 둘은 어떻게 통신을 하며 텍스트를 주고 받을 수 있는가?
1. 인터넷이 통신하는 방법
자, 일단 간단하게 먼저, 두 개의 컴퓨터가 통신한다고 생각해보자.
여러분이 생각하실 때에는 두 대의 컴퓨터가 서로 어떠한 정보를 주고 받기 위해서 무엇이 필요하다고 생각하는가?
1. 물리적으로 연결한다. (이더넷 케이블)
2. 무선으로 연결한다. (wifi, bluetooth)
그런데, 우리는 딱 한대의 컴퓨터만 연결해서 사용하지 않는다.
중학생 시절의 나는 영국에 사는 친구, 남아공에 사는 친구, 호주에 사는 친구와도 이메일을 주고 받을 수 있을 것이다.
어떻게 그게 가능할까?
네트워크는 단지 두 대의 컴퓨터로 제한되지 않기 때문이다.
우리가 원하는 만큼의 컴퓨터를 연결할 수 있다. 그러나 그럴 경우, 엄청나게 많은 케이블이 필요할 것이다.
이러한 문제를 해결하기 위해 네트워크의 각 컴퓨터는 라우터라고 하는 특수한 소형 컴퓨터에 연결된다.
자, 이런 그림이 되는 것이다. 우리는 이 라우터를 이용해 총 10대의 컴퓨터와 각 각 통신을 할 수 있게 되었다.
그렇다면 만약 수백, 수천, 수십억 대의 컴퓨터를 연결하면 어떻게 될까?
내가 아프리카 세네갈의 한 프랑스 언어교육원 홈페이지(https://ifs.sn/#/)에 들어가고 싶을 수도 있고,
미국의 아마존 사이트(https://www.amazon.com/)에 들어가 해외물품을 구입하고 싶을 수도 있다.
바로 라우터에 라우터를 연결하고- 이런식으로 우리는 무한히 확장 할 수 있다.
이러한 네트워크를 우리는 우리의 친구, 이웃에 연결할 수는 있어도 아주 먼 다른 지역에 케이블을 연결할 수는 없다.
이 문제를 해결하기 위해 네트워크는 이미 잘 갖추어진 전화 시설에 연결된다.
우리는 이 네트워크를 인터넷 서비스 제공업체(Internet Service Provider, ISP)에 연결한다.
즉, 우리의 메시지는 ISP 네트워크의 네트워크를 통해 우리가 도달하고자 하는 대상 네트워크로 전달이 된다!
이러한 지역 네트워크에 연결된 컴퓨터와 그 안에 속한 장비들을 통틀어 하나의 '노드'라고 칭한다.
자, 그럼 다시 돌아와서 중학생 시절의 내가 보냈던 이메일은 어떻게 영국에 있는 친구의 메일 계정이 저장된 서버 컴퓨터에 도달해 내 텍스트를 전달할 수 있었을까?
저 수많은 노드들 중에서 어떻게 특정 서버 컴퓨터를 찾아낼 수 있었을까?
2. IP주소
바로 IP 주소를 이용해서이다.
인터넷이 연결된 모든 기기에는 각각 고유의 IP 주소가 부여된다.
각 기기가 서로 통신을 주고 받을 때에도 이 IP주소를 이용하는 것이다.
이런식으로 각 IP주소를 이용해 대상자를 찾아 전달을 해주는데,
컴퓨터가 서로 통신하기 위해서는 어떤 '규약, 규정'이 있어야 하지 않겠는가?
그것이 바로 'Protocol'이며 HTTP는 문서간에 링크를 통해 연결할 수 있는 html을 전송하는 규약, 규칙을 뜻하는
HyperText Transfer Protocol 이다.
출처 :
'모든 개발자를 위한 HTTP 웹 기본 지식' -김영한 (인프런강의)
(https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard)
인터넷은 어떻게 동작하는가? - mdn (https://developer.mozilla.org/ko/docs/Learn/Common_questions/How_does_the_Internet_work)
'Study > CS' 카테고리의 다른 글
[http] HTTP의 특징 (0) 2021.09.26 [HTTP] 웹브라우저의 요청 흐름 (0) 2021.09.25