본문 바로가기
Game Theory

[Game Theory] _ The TCP Backoff Game

by 그놈궁댕이 2023. 2. 13.
반응형

나는 정신적 육체적으로 힘들면 공부하면서 푸는 스타일이다.

전공은 아니지만, 생각보다 재미 있어서 게임이론 공부를 틈틈히 하고 있다.

 책을 단 한권 읽은 사람이 제일 무서운 것처럼... 

해당 내용들은 비전문적이며 인터넷 강의를 찾아서 정리한것이라 오류가 많다는 점을 지적한다.

사람들의 심리를 공부하고, 그것을 기술에 접목시키는게 게임이론 인데, 삶의 깊은 깨달음과 철학을 주는거 같아서 어렵지만 참 재미 있다고 생각한다.

The University of British Columbia / Jackon, Leyton-Brown 강의  참고 

 

 

 

 

 

1) 게임 이론 이란?

기본적으로 사람은 자신의 이익을 극대화하는 이기적인 성향을 가지며, 모든 것은 나름의 전략적 행동으로 이어진다.

사람들이 어떻게 행동하고, 우려할점이 무엇인지를 연구하는 학문을 말한다.

만약 누군가가  잘못된 행동을 한다고 해도 그것은 그 사람 나름의 합리적 판단일 것이다.

 

 

 

 

 

 

 

 

다소 수상한 소프트웨어를 설치할지를 결정하는 경우.

이것은 내부에 Back off 메커니즘이 올바르게 구성되어 있고 작동하는지 판단해야 한다.

 

만약, 누군가가 인터넷으로 경고의 메시지를 넣고 팝업창을 클릭하기 유도한다면...

많은 사람들은 바이러스로 인식하고 팝업창을 끄려 할것이다.

인터넷의 보안과 신뢰성을 높이기 위해 TCP 전송 제어 프로토콜이 사용된다.

 

 

 

 

 

 

 

 

 

 

 

2) 인터넷을 지탱하는 TCP Backoff  시스템

 

다른 유저와 연결한다는 말은 다른 PC와 접속을 시도한다는 말과 같다.

인터넷으로 다른 PC와  연결하려면, 기본적으로 여러 개의  패킷으로 분할되어 전송된다.

쉽게 말하면 집배원이 편지를 보내는 방법과 유사하다.

이때 우리가 알 수 있는 것은 우리의 PC는 상대방의 PC와 직접적으로 연결되지 않는다는 점이다.

 

여러 중개점을 통과해 상대방의 PC에 도달한다.

문제는 정보를 전달하는 도중, 데이터가 손실되거나 회선에 과부하가 걸릴 때 그것을 어떻게 판단할 것인가?이다.

 

 

내 PC에서 생성된 분할된 패킷은 각각의 중개지점으로 순차적으로 전송한다.

데이터를 전달받으면, 그 즉시 전달해 준 곳에 (수신 확인)신호를 보내며 데이터가 전송되었음을 알린다.

이렇게 순차적으로 데이터를 전송시킨다.

 

 

만약, 정송 받는 지점에서 과부하가 걸려 처리를 할 수 없게 된다면...

막대한 데이터를 그대로 보관하는 게 아니라, 철저하게 버려 버린다.

과부하가 풀릴 때까지 그냥 데이터 전달을 포기해 버린다.

이때, 수신확인 메시지를 받을 수 없게 된다.

 

이렇게 중간에 여러 이유로 데이터를 삭제해 버리면, 우리는 시스템을 신뢰할 수 없게 된다.

이때 사용하는 것이 (수신 확인)이다.

일정 시간까지 수신을 하지 못하면, 이전 중개점에서 패킷을 재전송하는 것이다.

 

 

 

 

이때  시스템이 지연과 전송의 과부하를 스스로 판단하며, 패킷을 재전송할 때 더 늦게 하거나, 의도적으로 전송속도를 줄여 중개점의 과부하를 줄여준다.

 

 

이런 일련의 인터넷 전송 시스템을 (TCP Backoff)라고 한다.

인터넷 환경에서 시스템의 신뢰도를 높여주고, 원활한 환경을 구축하려면 사람들의 상호 시스템과 성향을 파악하여 시스템을 설계해야 한다.  사람들의 습성을 파악하는 것을 (게임 이론)이라 한다.

TCP Backoff는 게임이론이 아주 적절하게 적용된 사례라 할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

3) 게임 이론에 필요한 철학적 질문들

게임이론은 기본적으로 2명 이상이 연결되어 있고, 서로 상호 작용을 해야 하며, 그 결과는 행동에 따라 다양하게 달라진다는 것이다. 다양한 결과와 다양한 만족감을 느끼게 되며, 우리는 다수가 만족감을 느끼고 신뢰감을 높일 시스템을 구축해야 한다.

 

 

 

*인터넷 TCP 관점에서..

 

A) 두 명 중에서 한 명만 올바른 도구를 사용하는 경우.

결함이 있는 사람은 매우 많이  백오프 하게 되며, 네트워크에 페킷을 뒤로 넘겨준다.

결과적으로 아주 긴 지연 속도를 경험하고, 자신의 데이터를 잃어버릴 수 있다.

상대방은 패킷의 손실이 전혀 없이 즉시 통과 한다.

 

 

 

B) 둘 다 문제가 있는 경우.

둘다 지연을 경험하며, 더 크게 백오프 된다.

전송한 거의 모든 데이터가 손실될 가능성이 높아진다.

 

 

 

 

 

 

 

 

==

 

이것을 해결하려면..

우리는 몇 가지를 생각할 수 있다.

 

A) 모든 사용자가 똑같이 행동해야 하는가?

B) 서로가 임의로 협의 할 수 있는 시스템은 어떤가?

C)  유저가 제한된 횟수 또는 무한대로 서로 반복적으로 게임을 할수 있다면 어떠한가?

D) 만약 한쪽에만 유리한 시스템을 구축하는 건 어떠한가?

 

 

이유를 막 논하고 두 사람은 최소한의 지연이 되고, 자신의 데이터를 올바르게 전달하고 싶은 공통의 목표를 갖고 있다.

시스템 설계자는 다양한 문제점이 발생할 것을 예측하고, 합리적인 이론을 제시해야 한다.

반응형

댓글