CS스터디:
표준과 프로토콜의 세계, 인터넷
전 세계의 컴퓨터를 연결하려면 어떻게 해야 할까?
인터넷은 느슨하고 체계가 없으며 혼란스럽고 임시적인 네트워크 모음으로, 네트워크와 그 위에 있는 컴퓨터가 서로 통신하는 방법을 규정하는 표준으로 묶여 있다.
우선 네트워크와 컴퓨터를 식별하기 위한 이름과 주소가 필요하다. 다음으로 직접 연결되지 않은 네트워크 사이의 경로를 찾을 수 있어야 한다. 또한 정보가 이동함에 따라 그 형식을 어떻게 바꿀 것인자, 또한 오류, 지연, 과부하에 대처하는 방법 등 여러 가지 다소 불분명한 문제에 대해서도 합의가 필요하다.
이러한 합의는 프로토콜로 처리된다.
이러한 규칙은 정부, 기업 산업 협회, 또는 유엔의 ITU 같은 명목상 객관적이거나 중립적인 기구가 만들겠지만, 결국 준수하는 데 모든 이들의 동의가 필요하다.
인터넷이 가능한 메커니즘
인터넷의 시작은 1960년대에 지리적으로 멀리 떨어진 위치에 있는 컴퓨터를 연결하는 네트워크를 구축하려는 시도에서 시작됐다. 프로젝트의 자금을 대부분 미국 국방성의 고등연구계획국에서 지원받았고, 이렇게 만들어진 네트워크는 아파넷이라고 불리게 됐다. 첫 번째 아파넷 메시지는 1969년 10월 29일에 UCLA에 있는 컴퓨터에서 약 550km 떨어진 스탠퍼드 연구소에 있는 컴퓨터로 전송되었다. 따라서 이 날이 인터넷이 탄생한 날이라고 할 수 있다.
처음부터 아파넷은 네트워크 구성 요소 중 하나에 이상이 생기더라도 견고하게 작동하고, 문제가 발생한 부분을 우회해서 트래픽을 라우팅하도록 설계됐다. 최초의 아파넷 컴퓨터와 기술은 시간이 흐르면서 더 새로운 컴퓨터와 기술로 교체됐다. 대학교 컴퓨터과학부와 연구 기관을 연결할 목적이었던 아파넷은 이류 1990년대에 상업적 영역으로 퍼져 나갔고 언젠가부터 '인터넷'이라 부르게 됐다.
오늘날 인터넷은 느슨하게 연결된 수백만 개의 독립적인 네트워크로 구성되어 있다. 가까이 있는 컴퓨터끼리는 근거리 통신망으로 연결되는데, 주로 무선 이더넷이 사용된다. 다음으로 이 근거리 네트워크들이 게이트웨이 또는 라우터를 통해 다른 네트워크에 연결되는데, 게이트웨이와 라우터는 한 네트워크에서 다음 네트워크로 정보 패킷을 라우팅하는 데 전문화된 컴퓨터를 말한다. 가정 내 개별 컴퓨터는 주로 무선통신으로 라우터에 연결되고, 라우터는 케이블이나 DSL로 ISP에 연결된다. 반면 사무실에 있는 컴퓨터는 유선 이더넷 연결을 사용하기도 한다.
정보는 패킷이라는 덩어리로 네트워크를 통해 이동한다. 패킷은 형식이 지정된 일련의 바이트다. 다양한 장치는 서로 다른 패킷 형식을 사용한다. 패킷의 일부에는 주소 정보도 들어있고, 패킷의 길이 같은 패킷 자체에 대한 정보가 들어 있고, 마지막으로는 패킷이 전달하는 정보인 페이로드가 있다.
인터넷에서 데이터는 IP 패킷으로 전달된다. 어떤 네트워크에서든 ip패킷은 하나 이상의 물리적 패킷에 실려 전송된다. 큰 패킷은 여러 개의 작은 이더넷 패킷으로 분할된다.
각 패킷은 여러 개의 게이트웨를 통과한다. 패킷이 여기저기로 이동하면서 20개 정도의 게이트웨이를 통과하는데, 이 게이트웨이들은 열 개가 넘는 회사나 기관이 각기 소유하고 운영하고 있어 서로 다른 국가에 있을 확률이 높다. 트래픽은 편의성과 비용 때문에 더 긴 결로로 패킷을 라우팅하기도 하는데 많은 패킷이 미국을 통과하는 케이블을 사용하기에 이 점을 이용하여 NSA가 전 서계의 트래픽을 기록한 것이다.
여기까지 설명한 내용이 실제로 작동하는 데는 몇 가지 메커니즘이 필요하다.
첫 번째는 주소이다. 각 호스트 컴퓨터에는 전화번호처럼 인터넷상의 모든 호스트 중에서 자신을 고유하게 식별할 주소가 있어야 한다. 식별 번호인 IP주소는 32비트, 또는 128비트이며, 짧은 주소는 IPv4, 긴 주소는 IPv6이다. 현재는 IPv4주소가 거의 소진되어 IPv6로 전환이 가속되고 있다.
IP주소는 관습적으로 4바이트 값의 각 바이트를 십진수로 나타내고 마침표로 구분해서 표기한다. 이 특이한 표기법은 점으로 구분된 십진수라고 하며, 순수한 십진수나 십육진수보다 사람들이 기억하기 쉽기 때문에 사용된다.
IPv6주소는 관습적으로 16개의 십육진수 바이트를 두 개씩 클론으로 구분해서 작성하며, 예를 들면 2620:0:1003:100c:9227:e4ff:fee9:05ec처럼 표시한다.
이 주소는 데스크톱 컴퓨터에서는 영구적이지만, 모바일 장치에서는 동적이며 장치가 인터넷에 다시 연결될 때마다 바뀐다.
그 다음은 이름이다. 사람들이 직접 접근하려고 시도하는 호스트는 사람이 사용하기에 적합한 이름을 가져야 한다. 임의의 32비트 숫자를 기억할 수 있는 사람은 거의 없고, 점으로 구분된 십진수 형태라도 마찬가지이기 때문이다. 이를 도메인 네임이라고 한다. 인터넷 인프라에서 필수적인 부분인 도메인 네임 시스템, 즉 DNS는 이름과 IP주소 간 변환을 수행한다.
세 번째는 라우팅 즉, 각 패킷이 출발지에서 목적지까지의 경로를 찾는 메커니즘이 있어야 한다. 게이트웨이가 이 메커니즘을 제공한다.
마지막으로, 프로토콜이라는, 정보가 한 컴퓨터에서 다른 컴퓨터로 성공적으로 복사되도록 이상의 구성 요소와 나머지 구성 요소 모두가 어떻게 상호 운용되는지 정확하고 자세하게 걸명하는 규칙과 절차가 있어야 한다.
IP라고 하는 핵심 프로토콜은 전송 중인 정보에 대해 균일한 전송 메커니즘과 공통 형식을 정의한다.
IP 바로 위에서는 TCP라는 프로토콜이 IP를 사용하여 출발지에서 목적지까지 전송하기 위한 안정적인 메커니즘을 제공한다.
TCP바로 위에서는 상위 레벨 프로토콜들이 TCP를 사용하여 웹 브라우징, 메일, 파일 공유 등 우리가 인터넷이라고 생각하는 서비스를 제공한다. IP주소를 동적으로 변경하는 DHCP라는 프로토콜도 있다. 이런 다양한 프로토콜이 합쳐져서 인터넷을 규정한다.
'TIL' 카테고리의 다른 글
2022.08.22.TIL (0) | 2022.08.22 |
---|---|
2022.08.20.TIL (1) | 2022.08.20 |
2022.08.18.TIL (0) | 2022.08.18 |
2022.08.16.TIL (0) | 2022.08.16 |
2022.08.15.TIL (0) | 2022.08.15 |