티스토리 뷰

프로그래밍

인터넷 연결 과정

과정 2017. 10. 31. 08:32

요즘은 인터넷에 접속하는 게 너무 당연한 일상이되었지만,


그래도 어떻게 저 멀리서도 서로 통신을 주고 받을 수 있는지


궁금했던 사람도 있을 거야.



그래서 인터넷에 대해 간단히 소개해보려고 해.


-----------------------------------------------------------------------------


1. 인터넷은 무어지??


 먼저 인터넷에 대해 설명을 하자면,


                 " 네트워크들의 네트워크 "


이게 전부야.

 


아니 이게 무슨 개씹소린가?


네트워크는 또 뭐지?



일단 일게이들이 대학교 기숙사에서 좆고전명작 스타크래프트를 하고 있다 고 생각해보자


아싸 히키 일게이지만룸메이트는 말도 걸어주고 존나 착했어.




그런데 룸메이트가 일게이가 스타하는 모습을 보고자기랑 1:1을 뜨자는거야.

1.jpg 

▲ 그래서 룸메이트 컴퓨터와 일게이의 컴퓨터를 연결했어.


단순한 모양새긴 하지만이렇게 해서 네트워크 가 하나 만들어진거야.





 

근데 잘보니 룸메이트가 앱등이인지 컴퓨터가 맥북이노?




그런데 윈도우인 내 컴퓨터와 잘만 연결된다어떻게 된거지?




이게 가능한 이유는 네트워크로 통신 할 때는, 컴퓨터끼리 네트워크 상에선 


하나의 공통된 방법으로만 대화하도록 약속을 공돌이들이 만들어놨기 때문이야


이 약속을 바로 인터넷 프로토콜(Internet Protocol) 이라고 불러.


(니들 다들 아는 IP주소의 IP가 바로 Internet Protocol의 약자다 이기야! )

 





다시 본론으로..


그런데옆방 애들이 자기네도 껴달래아마도 옆방애들이 지들끼리 1:1하다 질렸나봐.


일게이랑일게이네 룸메와 자기네랑 같이 2:2를 하자는거야.




근데 컴퓨터 4대를 어떻게 연결하지?




이럴 때 필요한게 바로 허브야.


그런데 허브라는게 PC를 많이 연결하면 느려져.


시발 4명이서 게임하다보니 렉이 좀 걸리는거야.



그래서 이 허브보다 더 좋은 게 하나 있는데이게 바로 스위치야.


가격은 좀 나가지만그래도 허브대신 스위치로 갈아끼우니 게임이 렉 없이 잘 돌아가노!



2.jpg

▲ 스위치를 통해 4대를 연결함. (가운데 상자가 스위치)

 







이제 좀 욕심이 나서 4:4 게임을 해본다고 하자.


잘 생각해보니 일게이네 학교 실습실에도 컴퓨터 4대가 있는데



3.jpg

▲ 일게이네 기숙사처럼 컴퓨터 4대가 스위치를 중심으로 하나의 네트워크로 연결되어있노?






그래서 학교 실습실 네트워크와 기숙사 네트워크를 연결해보려고 하니....



이 때 필요한게 바로 라우터란 거야.



4.jpg



이렇게 라우터로 네트워크와 네트워크가 연결됐노?


이런 구조를 바로 인터네트워크(internetwork)라고 불러.

 






그리고 인터네트워크들이 계속 연결되고 연결되어


internet-100016261-large.jpg


다른 도시와 도시국가와 국가를 연결할 정도로 스케일이 커지니


천조국성님들이 "이런 방대한 스케일의 네트워크를 인터넷(internet)이라 부르도록 하자"


라고 해서 인터넷이란 말이 만들어졌어.


 




2. 그럼 인터넷은 어떻게 접속하나?


 

위에 설명에서 빠진게 있는데,


먼저 컴퓨터를 네트워크로 연결하여 파일을 주고받으려면IP 주소라는게 필요해.


당연히 편지를 보내려는데 보내는사람 주소랑 받는 사람 주소가 있어야 되지 않겠노같은 원리다 이기야.

 



근데 이 IP주소라는게 존내 귀해서 


무상급식 포퓰리즘 퍼주듯이 일게이들한테 막 안나눠줘


왜냐하면 무한하지 않고 한정되어 있거든.





귀한 자원인 만큼 국가에서 관리하는데우리나라에선 한국인터넷진흥원이란 곳에서 이 IP주소를 관리해.


그럼 한국인터넷진흥원에선 이 IP주소들을 인터넷 서비스 제공자(ISP)들에게 나눠주는데,


이 제공자(ISP)들이 모두 알고 있는 SKT, KT, LGT


(사실 그외 드림라인,세종텔레콤티브로드중부어쩌고 저쩌고 등등 따지고 보면 110여개 잡다한 ISP이 있긴하지만 그닥 신경이 안쓰이노..)

 




자 일게이들이 일게이 PC에서 네이버에 접속해본다고 가정해보자



아직은 네이버 서버 IP주소도 모르고정작 일게이 컴퓨터 IP주소도 아직 모르는 난감한 상태야.

 

그럼 일게이 컴퓨터의 IP주소부터 어떻게 얻어지는지 알아보도록 하자

 



Untitled-5.gif

▲ 자 저게 일게이 컴퓨터야. (네모 상자는 스위치)



위에서 말했다싶이, IP 주소라는게 존나 귀해서 아무한테나 막 안나눠준댔지?


IP주소를 받으려면일게이의 컴퓨터는 DHCP 서버라는 곳에 먼저 들려야 돼.

(ISP와 연결된 라우터가 이 DHCP 서버 기능을 하기도 해)


 

근데 눈치빠른 일게이들은 문제점을 발견할꺼야.


야 니가 네트워크로 파일이나 통신 주고받으려면 IP주소가 필요하다며?


근데 씨벌 내IP주소도 모르고상대방(DHCP 서버) IP주소도 모르는데 어쩌라는겨?



 

그래서일단 일게이의 컴퓨터는 일단 되는대로 통신을 보내.


바로 0.0.0.0 라는 IP주소로 통신을 보내는데 IP주소는 존나 특수해서 


DHCP 서버라면  IP로 받는 응답에 무조건 대답을 하게 되어 있어


왜냐고나도 몰라시발 그냥 공돌이들이 이렇게 약속을 해놓았어.



어쨌든 일게이는 IP주소가 0.0.0.0인 곳으로본인의 MAC주소와 함께 통신을 보내.


( MAC주소라는건 니네 랜카드에 박혀있는 일종의 일련번호야.

수많은 컴퓨터 중에 일게이의 PC라는걸 증명해주는 최소한의 수단으로만 알아두자.)

 



그럼 일게이 PC DHCP서버 사이에는 이런 일들이 벌어져.


 

Untitled-5.gif


[일게이 PC] – DHCP 서버님 안계세요?? (MAC주소를 보여주며접니다. IP주소좀 주쎼욤 ㅠ ㅠ (수신: 0.0.0.0)


[DHCP서버] – 응 그래 게이야 나 여기있어아무도 안쓰는 주인없는 IP주소가 좀 있다야.. 아 글고 내 IP 2.3.4.123 이니까 다음부턴 여기로 연락해라.


[일게이 PC] – 아이고 감사합니다성님ㅜㅜ 그럼 IP주소 좀 받을 수 있을까요? (수신: 2.3.4.123)


[DHCP서버] – 응 그래 게이야이제 니 IP주소는 5.6.7.891 이고, 3시간 동안만 빌려줄게.


 



이제 일게이의 PC IP주소가 생겼어근데 3시간 동안 빌려준다는건 뭔 개소리지?


위에서 말했다시피, IP주소는 수량에 한계가 있는 귀중한 자원이야.



그래서 일게이가 PC를 끄거나해서인터넷을 안하면 DHCP서버가 확인 작업을 거친 후,


다시 그 IP 주소를 회수해가.


그 회수한 IP주소는 또 IP주소가 필요한 사람에게 다시 나누어주겠지?


이렇게 하면, IP주소를 효율적으로 쓸 수 있다는 장점이 있어.


하지만 가끔가다 이 작업이 꼬이면 IP 주소간에 충돌이 일어나기도 해.



 




자 내 IP도 생깄고이제 네이버에 접속해보는일만 남았다!


게이들 네이버 접속할 때 어떻게 하노? Naver.com 이거 치면 바로 연결되지?


위에서 말했듯네트워크로 연결하여 파일을 주고받으려면 IP주소를 알아야하는데어떻게 된거노?

 



IP주소는 일단 숫자 형식이라.. 가뜩이나 숫자랑 안친한 엑윽엑엑 일게이들은 존나 치명적이지 않겠노..


그래서 이렇게 문자열(naver.com)로 입력하면이에 대응하는 IP주소로 바꿔주는 물건이 있다 이기야!


이 신기방기한 물건을 DNS(Domain Name System)라고 불러!


암튼 일게이들이 인터넷창에 naver.com을 입력하면 아래와 같은 행동이 일어나.


[일게이 PC] : Naver.com

[DNS 서버] : 202.131.30.11

[일게이 PC] : 땡큐

 

(DNS서버에 접근할 수 있는 방법은 DHCP서버가 전부 가르쳐줘ㅎㅎ)




그럼 일게이네 집에있는 PC에서 


네이버 서버까지 가는 길을 간략하게 그림으로 그려 볼게.




Untitled-6.gif

 

이렇게 해서.. 일게이들 PC와 네이버 서버가 연결되어 네이버 메인페이지를 볼 수 있게 되었어.


네이버 서버 입장에선 이렇게 다양한 ISP를 통해 연결된 일게이들의 PC에 파일을 보내주고 있는거야.



일게이가 SK브로드밴드를 쓴다면, SK망으로.. olleh를 쓰면 KT망으로파워콤을 쓰면 LG망으로 등등



.. 그런데이렇게 계속 매번 제각기 다른 ISP망으로 보내주니까 


네이버 입장에선 회선 사용비도 많이 나오고, ISP입장에서도 그만큼 회선을 계속 깔아야되니까 


비용이 많이 나오고 아주 골치가 아파졌어.






Untitled-7.gif

 

그래서 이런 문제점을 해결하기 위해, ISP들만을 따로 네트워크로 묶어버렸는데,


이걸 바로 IX (Internet eXchange)라고 불러.




IX를 통하면 회선도 더 안깔아도 되고 속도도 빨라지고 아주 좋지.


참고로 우리나라엔 아래와 같이 5개의 IX가 있어



ix.png

 

ix_info.png

 


그렇다면 외국 사이트에 접속한다면 어떨까?


일게이들 자주 쓰는 구글 서버에 접속하려면??

DNS를 통해 구글 IP주소를 받고, ISP 또는 IX를 거치는 것 까진 같다고 보면 돼.


 

이제 해외여행 해야할꺼 아이가?



근데 구글에 접속하려는 일게이 통신 요청을


하늘에 위성 같은 걸로 쏴서 팍올라갔다가 내려갔다가 이런게 아니라


바다 밑에 연결된 케이블로 통신을 한다 이기야!

 



080407110157_1421083165_b.jpg


보다시피 위처럼 우리나라 주변으로 해저 케이블로 전부 연결되어있어.


우리나라 해저 케이블 중계국 중 해외망과 연결된 곳은 총 3개 지역인데바로 부산거제태안이다.



그래서 일본 대지진 났을 때, 저 일본쪽 해저 케이블에 문제가 생겨서 한국발 해외 인터넷 속도가 씹망이 된적이 있었어.


물론, 인터넷의 분산적(decentralized) 특징 때문에, 어느 한 케이블이 고장나도,


다른 케이블로 우회하면 되기 때문에, 인터넷이 먹통이 되는 일은 없다. 속도가 좀 느려질 뿐이지...

 


 

그리고 저 많은 해저 케이블도 다 소유권이 있다.



unwa_cable.jpg


위짤에서 빨간원은 전부 KT 소유고파란원은 LG U+ 소유다.

 

아니 그럼 SK 브로드밴드는 해외망이 없냐?


아니다. SK도 있긴한데비육양 해저 케이블 한 개를 보유하고 있다.


unwwa.png


 

비육양과 육양 차이는육양 해저 광케이블은 국내망과 다이렉트로 연결되어있지만


비육양은 국내망과 연결되기 위해선 육양 케이블을  한번 거쳐야 하기 때문에아무래도 조금 손해를 보겠지?


그런데 KT는 비육양 케이블도 존나 많이 가지고 있다....



 KT가 해외 인터넷이 존나 빠른이유가 여기에서 밝혀지노




아무튼 일게이들은 이 해저 케이블들을 통해 여러 나라를 거친 뒤


미국에 있는 구글 서버와 통신을 하게 된다는 것이다..


 Untitled-8.gif


발퀄이지만 대략 그림으로 나타내면 이렇다.





한줄 요약


1. 니들 컴퓨터 잘 연결되어있다


댓글