2019. 8. 1. 22:55ㆍ기술의 이모저모
우리가 어떻게 인터넷을 사용할까요?
그냥 서비스를 해주는 회사에서 인공위성으로 우리에게 정보를 줄까요?
하지만 이방식은 latency와 거리 때문에 너무나도 비효율적입니다.
실제로는 광케이블을 이용해 빛으로 정보를 전달합니다.
위와 같이 선박을 이용해서 해저케이블을 깔아 해외에서 우리까지 정보를 전송할 우 있게 되는데요
그럼 어떤 방식과 구조로 우리게에 data를 제공할까요?
그전에 앞서
1.서비스를 제공하는 회사에서는 datacenter에 자료와 IP주소에 해당하는 domain주소를 저장해 놓습니다.
회사의 규모에 따라 작은 경우는 head host가 작은 회사들의 여러 domain을 구분해주지만 규모가 큰 facebook, youtube같은 회사들은 datacenter전체를 사용하기도 합니다.
2. user에게는 IP주소(집주소)가 Internet Service Provider(SKT, LG U+...)에 의해 주어지게 됩니다.
3.user가 찾는 정보의 주소는 domain. 즉, 기계가 이해하지 못하는 언어이기때문에 정보제공자의 IP주소도 필요합니다. 이 IP주소는 ISP에서 DNS server에서 domain과 대응되는 IP주소를 찾아 user에게 제공해 줍니다.
그럼 전체적인 흐름을 봅시다.
user가 DNS server에 회사의 IP를 요청합니다. ->해당IP를 바탕으로 web browser는 정보를 제공하는 server에 data를 요청합니다.->server에서는 광케이블을 통해 router을 거쳐 user에게 data를 전달합니다.(단, 이동통신을 이용하는 경우에는 cell tower에 광케이블로 data를 전송합니다.
이 모든 일련의 과정은 하나의 규약으로 지켜지는 것이 매우 중요한데 ICANN에서 관리합니다.
data를 전송한다고 했지만 실제로는 수많은 1과 0의 data를 전송하게 되는데 이 엄청나게 많은 1과 0은 server에 의해 packet으로 나뉘어 전송됩니다.
예를 들어 6개의 packet으로 나뉜다고 가정하면 101101 110111 ...이런식으로 나뉘어 sequence number과 user의 IP정보를 담아 보내게 됩니다. 이때 거치게 되는 root와 router는 정해져 있지않고 여러곳을 우회해서 가기도 합니다.
이때 data전송의 protocol이 http/https, TCP/IP, RTP등 data의 종류와 목적에 따라 각기 달라집니다.
앞서 router가 따로 정해져 있지 않다고 언급을 했습니다. 그 이유는 data가 가장 효율적으로 user에게 도달할 수있도록 여러 경로를 선택하기때문인데요.
이를 routing한다라고하고 router가 이 역할을 맡게 됩니다.
routing algorithm는 크게 두종류로 볼수 있습니다.
static과 dynamic인데요.
static은 말그대로 경로가 정해져있어서 이상이 생겨도 직접 문제를 해결하지 않는이상 경로가 바뀌지는않습니다.
dynamic은 알고리즘에 따라 그때그때 최적의 경로를 선택하게됩니다. 그래서 static보다 많이 쓰이지만 이는 절대 쉬운일이 아닌데요.
dynamic routing에는 대표적인 link state algorithm이 있습니다.
이 알고리즘은 reliable flooding, dijkstra's algorithm을 이용하는데요.
쉽게 설명하자면 dijkstra's algorithm은 시작점에서 목적점까지 가장 가까운 점을 추적하는 알고리즘입니다.
관련 알고리즘은 따로 자세히 포스팅하도록 하겠습니다.
reliable flooding에 대해서는 우선 link state를 설명해야합니다.
다음과 같은 network가 있다고 가정하면 A,B,C는 서로서로 link state관계에 있게 됩니다. 이때 link state packet(연결이 가능한지, IP주소, 전송하는데 상황에 의한 소요되는 비용(시간) 같은 정보.)이 서로 flooding하게 되어 모든 router에게 퍼져가게 됩니다.
하지만 위에서 B와 C에서 looping문제가 생기게 되는데요 B,C의 서로간의 정보가 중복해서 교환되게 됩니다.
이를 해결하기 위해 A에서 unique id를 B와 C에 보내게 되어 B,C는 이 id를 바탕으로 한번만 정보를 보내게 됩니다.
이 알고리즘을 이용한 protocol을 OSPF라고 합니다.
위와 같은 네트워크망이 형성되어 있다고 가정할때 OSPF는 위와 같이 구역이 나눠져 있고 여기에 걸쳐져있는 backbone area가 있습니다.
이 protocol에서는 area간의 flooding이 일어날때 외부의 케이블을 거치는게 아니라 backbone area내부의 border router를 반드시 거치게 됩니다.
아직 잘 모르는게 많습니다. 정확한 내용이 아니거나 빠진게 있다면 알려주시면 감사히 듣겠습니다.
문제시 삭제하겠습니다.
출처:
'기술의 이모저모' 카테고리의 다른 글
RFID는 어떻게 동작할까? (0) | 2019.07.25 |
---|---|
안테나는 어떻게 동작할까? (0) | 2019.07.18 |