스카이프에 관한 토막글입니다.
스카이프
- 고유의 응용계층 프로토콜을 사용한다.
- 스카이프는 클라이언트끼리 직접 연결된다.
- P2P적인 요소가 있는 것이다.
- 당연히 논리적으로 연결되는 것이다.
슈퍼 노드
클라이언트끼리 연결을 할 때 제일 문제점은 클라이언트가 사설 ip주소를 사용한다는 것이다. 한 쪽만 사설이라도 양방향 직접 통신이 불가능하다.
스카이프에서는 슈퍼 노드끼리 오버레이 네트워크를 만들고 이를 통해 클라이언트끼리 논리적으로 연결한다.
슈퍼 노드와 클라이언트의 연결은 서비스를 종료할 때까지 계속 유지된다.
작동 과정
- 먼저 자신의 슈퍼 노드와 tcp 연결을 한다. 이때 슈퍼 노드는 클라이언트의 ip 주소를 캐싱한다.
- 클라이언트가 로그인 서버를 통해 로그인을 한다.
- 상대방의 ip 주소를 자신의 슈퍼 노드를 통해 알아낸다. 슈퍼 노드끼리는 오버레이 네트워크를 구성하여 서로 ip를 물어볼 수 있다. 클라이언트의 슈퍼 노드가 상대방의 슈퍼 노드에게 상대방의 ip를 물어보고 클라이언트에게 알려준다.
- 상대방의 공용 ip 주소를 알았으니 상대방과 직접 연결할 수 있다.
이런 방식으로 스카이프는 사설 ip 때문에 생기는 문제를 해결했다.