인터넷에 공부해보기 2탄 대작전
IP
인터넷이 어떻게 작동하는지 더 배워보자.
전 시간에는 인터넷이 데이터를 어떻게 Bite로 변환하여 광섬유케이블, 무선 라우터로 전송되는지 배웠었다.
그렇다면, 이번에는 Bite로 변환된 데이터들이 어떻게 정확한 목적지까지 도착하는지 알아보자.
Vint Cerf, Bob Kahn은 인터넷 네트워킹 프로토콜이란 것을 발명했다.
이 프로토콜은 우리가 지금 부르는 인터넷의 기초가 되었다.
프로토콜은 규칙과 표준의 집합이다.
우리는 모두 이 프로토콜에 동의하였기에 인터넷을 문제없이 이용할 수 있게 된다.
인터넷 안에서는 모든 기기가 고유의 주소를 갖고있다.
이 주소는 모두 고유하다. 172.10.23.133 이런 식으로 되어 있는 숫자들을 본 적이 있을 것이다.
이것을 IP(인터넷 프로토콜) Address라고 한다.
위 숫자의 형태는 우리의 실제 주소지랑 비슷한 형태로 구성되어 있다.
이 IP들의 숫자들은 모두 바이너리 형식으로 나타낸다.
IPv4
IPv4는 1973년에 설계됐고, 약 40억개의 IP주소를 갖고 있었으며 총 32비트로 되어 있다.
제일 앞 부분은 국가, 다음은 지역, 서브네트워크, 기기의 순으로 되어있다.
(하지만 지금은 아니다.)
그러나 시간이 지나면서 40억개로는 부족하여 새로운 주소 형식을 만들었다.
IPv6
IPv6는 128비트를 사용하여 주소를 나타내고, 지구상 모래알 하나하나에 IP주소를 줄 수 있을만큼의 양이라고 한다.
DNS
우리는 일반적으로 위 IP주소를 많이 보지 못한다.
그 이유는 DNS가 있기 때문이다.
DNS는 도메인이라고 부르는데, 위 숫자 주소를 www.naver.com과 같은 형식으로 바꿔주기 때문이다.
우리가 만약 www.naver.com으로 접속하게 되면,
DNS가 www.naver.com의 IP주소를 가져와 우리가 접속할 수 있도록 도와준다.
DNS 예시
DNS는 여러 서버로 분산되어 IP주소를 나눠 관리한다.
com, net, io와 같이 말이다.
원래는 정부와 교육기관을 위한 개방향 공공 프로토콜이었다.
개방형이기에 보안에 취약할 수 밖에 없었다.
DNS 스푸핑이 대표적인 예인데,
해커가 DNS서버에 들어와서 DNS에 잘못된 IP주소를 주고
사용자를 착각하게 만드는 것이다.
Packets
우리는 이제 데이터가 바이너리 형태로 변환되어 0과 1로 전송된다는 것을 안다.
하지만, 0과 1로만 표현되는 데이터의 양은 어마어마하다.
그래서 한 꺼번에 모든 데이터를 보낼 수 없다.
인터넷은 그래서 Packet이라는 것을 이용한다.
이것은 하나의 택배 박스라고 생각하면 된다.
우리가 이사를 할 때 짐이 너무 많으면 한 박스에 담지 못한다.
여러 박스에 나눠서 짐을 보내는데, Packet이 박스 역할을 하는 것이다.
데이터 역시 하나의 Packet안에 담지 못해 수 많은 Packet으로 쪼개어 보낸다.
사진을 여러 Packet으로 쪼갠다
이러한 Packet들은 어디서 보냈고, 어디로 가는지 적혀있다.
Packet들은 다양한 경로를 통해 목적지까지 도착한다.
우리가 강남에서 광화문까지 간다고 했을 때 길이 딱 1개만 있지 않다.
여러 방향으로 갈 수 있고, 때에 따라 길이 막히면 다른 길을 이용할 수 있다.
Packet들 역시 수많은 인터넷 망 안에서 다양한 경로를 이용한다.
경로가 많아질수록 인터넷의 결점이 없어진다.
어느 하나의 길이 잘못돼도 다른 경로로 가면 되기에.
TCP
그러면 수 많은 Packet들이 다양한 경로를 통해 간다면 각각의 도착 시간이 다를 것이다.
도착 순서가 다른 Packet을 정리하여 하나의 데이로 다시 만들어 주는 것을 TCP가 해준다.
또한 중간 중간 수 많은 라우터들이 존재하여 Packet의 이동을 도와준다.
다음에도 계속 알아보자.
출처
https://roadmap.sh/guides/what-is-internet