<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=P2P_architecture</id>
	<title>P2P architecture - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=P2P_architecture"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;action=history"/>
	<updated>2026-04-29T16:06:01Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=6335&amp;oldid=prev</id>
		<title>Ahn9807: 봇: 자동으로 텍스트 교체  (-\[\[분류:컴퓨터 네트워크(\|[^\]]+)?\]\] +분류:컴퓨터 네트워킹\1)</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=6335&amp;oldid=prev"/>
		<updated>2026-01-15T13:01:01Z</updated>

		<summary type="html">&lt;p&gt;봇: 자동으로 텍스트 교체  (-\[\[분류:컴퓨터 네트워크(\|[^\]]+)?\]\] +&lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%BB%B4%ED%93%A8%ED%84%B0_%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9%5C1&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;분류:컴퓨터 네트워킹\1 (없는 문서)&quot;&gt;분류:컴퓨터 네트워킹\1&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026년 1월 15일 (목) 13:01 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;52번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;52번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;네트워크&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;네트워킹&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3390&amp;oldid=prev</id>
		<title>Pinkgo: /* BitTorrent 작동방식 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3390&amp;oldid=prev"/>
		<updated>2025-03-30T17:32:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;BitTorrent 작동방식&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:32 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot;&gt;36번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;36번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===BitTorrent 작동방식===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===BitTorrent 작동방식===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[파일:File distribution with BitTorrent.png|섬네일|300x300픽셀]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;BitTorrent는 트랙커(&amp;#039;&amp;#039;&amp;#039;tracker&amp;#039;&amp;#039;&amp;#039;)라는 infrastructure node가 존재한다. 피어는 토렌트에 참여할 때 트랙커에 등록하고, 주기적으로 자신이 참가 중이라는 신호를 보낸다. 이를 통해서 트랙커는 현재 토렌트에 참여중인 피어들의 리스트들을 관리한다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;BitTorrent는 트랙커(&amp;#039;&amp;#039;&amp;#039;tracker&amp;#039;&amp;#039;&amp;#039;)라는 infrastructure node가 존재한다. 피어는 토렌트에 참여할 때 트랙커에 등록하고, 주기적으로 자신이 참가 중이라는 신호를 보낸다. 이를 통해서 트랙커는 현재 토렌트에 참여중인 피어들의 리스트들을 관리한다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3389&amp;oldid=prev</id>
		<title>Pinkgo: /* Tit-for-tat 전략 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3389&amp;oldid=prev"/>
		<updated>2025-03-30T17:29:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tit-for-tat 전략&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:29 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;46번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;46번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;unchoked neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;unchoked neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 이 무작위 선택은 새로운 피어가 네트워크에 참여하여 데이터를 공유할 기회를 제공하며, 이를 통해 네트워크의 전반적인 효율성을 향상시킨다&lt;/ins&gt;. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 아무에게도 top 4 neighbor로 선택되지 않기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 아무에게도 top 4 neighbor로 선택되지 않기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3388&amp;oldid=prev</id>
		<title>Pinkgo: /* Tit-for-tat 전략 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3388&amp;oldid=prev"/>
		<updated>2025-03-30T17:29:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tit-for-tat 전략&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:29 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;48번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;48번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &amp;#039;&amp;#039;&amp;#039;top 4 neighbor&amp;#039;&amp;#039;&amp;#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &amp;#039;&amp;#039;&amp;#039;unchoked neighbor&amp;#039;&amp;#039;&amp;#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &amp;#039;&amp;#039;&amp;#039;optimistically unchoked peer&amp;#039;&amp;#039;&amp;#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &amp;#039;&amp;#039;&amp;#039;top 4 neighbor&amp;#039;&amp;#039;&amp;#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &amp;#039;&amp;#039;&amp;#039;unchoked neighbor&amp;#039;&amp;#039;&amp;#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &amp;#039;&amp;#039;&amp;#039;optimistically unchoked peer&amp;#039;&amp;#039;&amp;#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. &lt;/del&gt;이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 아무에게도 top 4 neighbor로 선택되지 않기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 아무에게도 top 4 neighbor로 선택되지 않기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3387&amp;oldid=prev</id>
		<title>Pinkgo: /* =BitTorrent 작동방식 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3387&amp;oldid=prev"/>
		<updated>2025-03-30T17:28:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;=BitTorrent 작동방식&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:28 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l35&quot;&gt;35번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;35번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;피어가 처음 토렌트에 참여하면 아무 청크도 갖고 있지 않지만 파일을 다운로드하며 점점 더 많은 청크를 쌓아가게 된다. 다운로드를 하는 동안, 동시에 다른 피어들에게 청크를 업로드하기도 한다. 그러나 한 피어가 전체 파일을 획득하면, 자기중심적으로(selfishly) 토렌트를 떠날 수도 있고, 또는 이타적으로(altruistically) 토렌트에 남아 다른 피어들에게 계속 청크를 업로드할 수도 있다. BitTorrent는 P2P의 작동 과정 뿐만 아니라, 이기적인 피어를 어떻게 처리할 지에 대한 메커니즘 또한 포함한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;피어가 처음 토렌트에 참여하면 아무 청크도 갖고 있지 않지만 파일을 다운로드하며 점점 더 많은 청크를 쌓아가게 된다. 다운로드를 하는 동안, 동시에 다른 피어들에게 청크를 업로드하기도 한다. 그러나 한 피어가 전체 파일을 획득하면, 자기중심적으로(selfishly) 토렌트를 떠날 수도 있고, 또는 이타적으로(altruistically) 토렌트에 남아 다른 피어들에게 계속 청크를 업로드할 수도 있다. BitTorrent는 P2P의 작동 과정 뿐만 아니라, 이기적인 피어를 어떻게 처리할 지에 대한 메커니즘 또한 포함한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===BitTorrent 작동방식==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===BitTorrent 작동방식&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;BitTorrent는 트랙커(&amp;#039;&amp;#039;&amp;#039;tracker&amp;#039;&amp;#039;&amp;#039;)라는 infrastructure node가 존재한다. 피어는 토렌트에 참여할 때 트랙커에 등록하고, 주기적으로 자신이 참가 중이라는 신호를 보낸다. 이를 통해서 트랙커는 현재 토렌트에 참여중인 피어들의 리스트들을 관리한다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;BitTorrent는 트랙커(&amp;#039;&amp;#039;&amp;#039;tracker&amp;#039;&amp;#039;&amp;#039;)라는 infrastructure node가 존재한다. 피어는 토렌트에 참여할 때 트랙커에 등록하고, 주기적으로 자신이 참가 중이라는 신호를 보낸다. 이를 통해서 트랙커는 현재 토렌트에 참여중인 피어들의 리스트들을 관리한다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3386&amp;oldid=prev</id>
		<title>Pinkgo: /* Tit-for-tat 전략 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3386&amp;oldid=prev"/>
		<updated>2025-03-30T17:27:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tit-for-tat 전략&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:27 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;48번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;48번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &amp;#039;&amp;#039;&amp;#039;top 4 neighbor&amp;#039;&amp;#039;&amp;#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &amp;#039;&amp;#039;&amp;#039;unchoked neighbor&amp;#039;&amp;#039;&amp;#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &amp;#039;&amp;#039;&amp;#039;optimistically unchoked peer&amp;#039;&amp;#039;&amp;#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &amp;#039;&amp;#039;&amp;#039;top 4 neighbor&amp;#039;&amp;#039;&amp;#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &amp;#039;&amp;#039;&amp;#039;unchoked neighbor&amp;#039;&amp;#039;&amp;#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &amp;#039;&amp;#039;&amp;#039;optimistically unchoked peer&amp;#039;&amp;#039;&amp;#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보내면, 승빈도 준영에게 데이터를 보내주게 되고, 만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 top 4 neighbor로 올라갈 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;그 누구에게도 &lt;/del&gt;top 4 neighbor로 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;선정되지 않았기 &lt;/del&gt;때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;아무에게도 &lt;/ins&gt;top 4 neighbor로 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;선택되지 않기 &lt;/ins&gt;때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3385&amp;oldid=prev</id>
		<title>Pinkgo: /* Tit-for-tat 전략 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3385&amp;oldid=prev"/>
		<updated>2025-03-30T17:27:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tit-for-tat 전략&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:27 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;46번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;46번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;unchoked neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;보냈으므로&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;승빈이 또한 준영이에게 청크를 보낼 가능성이 생긴다. 이때 승빈이가 준영이에게 충분히 빠른 속도로 &lt;/del&gt;데이터를 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;보내면&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;승빈이는 준영이의 &lt;/del&gt;top 4 neighbor로 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;선택될 수도 &lt;/del&gt;있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;unchoked neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;보내면&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;승빈도 준영에게 &lt;/ins&gt;데이터를 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;보내주게 되고&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;만약 준영에게 보내는 속도가 충분히 빠르다면 승빈은 준영의 &lt;/ins&gt;top 4 neighbor로 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;올라갈 수 &lt;/ins&gt;있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 그 누구에게도 top 4 neighbor로 선정되지 않았기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 그 누구에게도 top 4 neighbor로 선정되지 않았기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3384&amp;oldid=prev</id>
		<title>Pinkgo: /* Tit-for-tat 전략 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3384&amp;oldid=prev"/>
		<updated>2025-03-30T17:26:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Tit-for-tat 전략&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:26 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;46번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;46번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Tit-for-tat 전략===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unchocked &lt;/del&gt;neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보냈으므로, 승빈이 또한 준영이에게 청크를 보낼 가능성이 생긴다. 이때 승빈이가 준영이에게 충분히 빠른 속도로 데이터를 보내면, 승빈이는 준영이의 top 4 neighbor로 선택될 수도 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unchoked &lt;/ins&gt;neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보냈으므로, 승빈이 또한 준영이에게 청크를 보낼 가능성이 생긴다. 이때 승빈이가 준영이에게 충분히 빠른 속도로 데이터를 보내면, 승빈이는 준영이의 top 4 neighbor로 선택될 수도 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 그 누구에게도 top 4 neighbor로 선정되지 않았기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 그 누구에게도 top 4 neighbor로 선정되지 않았기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3383&amp;oldid=prev</id>
		<title>2025년 3월 30일 (일) 17:26에 Pinkgo님의 편집</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3383&amp;oldid=prev"/>
		<updated>2025-03-30T17:26:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 17:26 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l29&quot;&gt;29번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;29번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위는 모든 피어의 업로드 속도가 u로 동일하다고 가정할 때, 클라이언트-서버와 P2P의 최소 배포 시간을 비교한 것이다.&amp;lt;ref&amp;gt;F/u = 1시간, us = 10u, 그리고 dmin ≥ us로 설정하였다.&amp;lt;br&amp;gt;즉, 피어의 다운로드 속도는 배포 시간에 크게 영향을 주지 않는다고 가정한 것이다.&amp;lt;/ref&amp;gt; 위의 그림에서 볼 수 있듯, 클라이언트-서버 구조에서는 피어 수가 증가할수록 배포 시간이 선형적으로 무한히 증가한다. 반면, P2P 구조에서는 배포 시간이 항상 클라이언트-서버 구조보다 짧으며, 피어 수와 관계없이 1시간 이하로 유지된다. 이는 P2P 구조의 애플리케이션이 자기 확장성을 가지고 있어 유저가 늘어남에 따라 이를 지원하는 네트워크 또한 커지기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위는 모든 피어의 업로드 속도가 u로 동일하다고 가정할 때, 클라이언트-서버와 P2P의 최소 배포 시간을 비교한 것이다.&amp;lt;ref&amp;gt;F/u = 1시간, us = 10u, 그리고 dmin ≥ us로 설정하였다.&amp;lt;br&amp;gt;즉, 피어의 다운로드 속도는 배포 시간에 크게 영향을 주지 않는다고 가정한 것이다.&amp;lt;/ref&amp;gt; 위의 그림에서 볼 수 있듯, 클라이언트-서버 구조에서는 피어 수가 증가할수록 배포 시간이 선형적으로 무한히 증가한다. 반면, P2P 구조에서는 배포 시간이 항상 클라이언트-서버 구조보다 짧으며, 피어 수와 관계없이 1시간 이하로 유지된다. 이는 P2P 구조의 애플리케이션이 자기 확장성을 가지고 있어 유저가 늘어남에 따라 이를 지원하는 네트워크 또한 커지기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==BitTorrent==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;BitTorrent&#039;&#039;&#039;는 파일 배포를 위한 P2P 프로토콜이다. BitTorrent 용어에서, 특정 파일 배포에 참여하는 모든 피어들의 모음을 토렌트(&#039;&#039;&#039;torrent&#039;&#039;&#039;) 라고 부른다. 토렌트에 있는 피어들은 서로에게서 같은 크기의 청크(&#039;&#039;&#039;chunk&#039;&#039;&#039;) 들을 다운로드하며, 일반적인 청크 크기는 256KB이다. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;피어가 처음 토렌트에 참여하면 아무 청크도 갖고 있지 않지만 파일을 다운로드하며 점점 더 많은 청크를 쌓아가게 된다. 다운로드를 하는 동안, 동시에 다른 피어들에게 청크를 업로드하기도 한다. 그러나 한 피어가 전체 파일을 획득하면, 자기중심적으로(selfishly) 토렌트를 떠날 수도 있고, 또는 이타적으로(altruistically) 토렌트에 남아 다른 피어들에게 계속 청크를 업로드할 수도 있다. BitTorrent는 P2P의 작동 과정 뿐만 아니라, 이기적인 피어를 어떻게 처리할 지에 대한 메커니즘 또한 포함한다.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===BitTorrent 작동방식==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;BitTorrent는 트랙커(&#039;&#039;&#039;tracker&#039;&#039;&#039;)라는 infrastructure node가 존재한다. 피어는 토렌트에 참여할 때 트랙커에 등록하고, 주기적으로 자신이 참가 중이라는 신호를 보낸다. 이를 통해서 트랙커는 현재 토렌트에 참여중인 피어들의 리스트들을 관리한다. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;만약 준영이 토렌트 서비스를 새로 이용하고자 한다고 하자. 트랙커는 준영이에게 토렌트에 참여하는 피어들의 목록을 보내고, 이를 통해서 준영이는 이웃(&#039;&#039;&#039;Neighbor&#039;&#039;&#039;)이라고 하는 여러 피어들과 연결된다. 그리고 준영이는 주기적으로 자신의 이웃 피어들에게 &quot;너는 어떤 청크 갖고 있니?&quot; 하고 요청하고, 이웃이 L명이라면, L개의 청크 리스트를 받게 된다. 그 정보를 바탕으로 준영이는 자신이 아직 갖고 있지 않은 청크를 선택해서 요청하게 된다. 이러한 과정을 통해서 준영이는 파일을 구성하는 모든 청크를 얻을 수 있게 된다.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Rarest first 전략===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;위의 예시에서 만약 준영이가 가지고 있지 않은 청크들 중에서 아무거나 먼저 요청하면 어떻게 될까? 해당 토렌트에는 다수의 피어가 가지고 있는 흔한 청크가 존재한다. 이때 많은 피어가 이미 갖고 있는 청크는 여러 이웃에게서 쉽게 찾을 수 있기 때문에 청크에 대한 요청도 흔한 청크로 우선적으로 쏠리게 되는경향이 만들어진다. 그러면 그 흔한 청크는 더 많은 피어에게 퍼지게 되며, 해당 현상이 가속화된다. 심지어, 드문 청크는 몇몇만 가지고 있기 떄문에 해당 청크를 가지고 있는 피어들이 토렌트에서 나가버리는 경우 해당 청크를 더 이상 구할 수 없어 토렌트 전체가 멈추는 현상까지 생길 수 있다. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;이를 해결하기 위한 전략이 &#039;&#039;&#039;rarest first 전략&#039;&#039;&#039;이다. Rarest first 전략은 구하기 힘든 청크를 우선적으로 요청하는 전략이다. 이는 피어가 이웃이 가지고 있는 청크 리스트를 확인한 후, 자기가 아직 가지고 있지 않은 청크 목록 중에서 이웃 중 가장 적은 수가 갖고 있는 청크를 우선적으로 요청함으로서 이루어진다. 이를 통해서 희귀한 청크를 먼저 퍼트리고, 모든 청크의 수를 비슷하게 유지하여 보다 안정적이고 빠르게 파일을 퍼뜨릴 수 있다는 장점이 있다.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;===Tit-for-tat 전략===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;토렌트는 이기적인 피어에게 불이익을 주고, 이타적인 피어에게 혜택을 주기위해 tit-for-tat 전략을 사용한다. 위 예시에서 준영이에게는 &#039;&#039;&#039;top 4 neighbor&#039;&#039;&#039;라는 자신에게 가장 빠르게 데이터를 보내주고 있는 4명의 이웃 피어들이 존재하고, 준영이는 이들에게만 청크를 보내준다. 이 top 4 neighbor는 &#039;&#039;&#039;unchocked neighbor&#039;&#039;&#039;라고도 불린다.&amp;lt;ref&amp;gt;반대로 나머지 피어들은 choked neighbor라고 불린다.&amp;lt;/ref&amp;gt; 또한, 각 30초마다 준영이 무작위 이웃 한명(승빈이라고 하자)을 선택하여 청크를 보내고, 해당 피어는 &#039;&#039;&#039;optimistically unchoked peer&#039;&#039;&#039;라고 불린다. 이때 준영이가 승빈이에게 청크를 보냈으므로, 승빈이 또한 준영이에게 청크를 보낼 가능성이 생긴다. 이때 승빈이가 준영이에게 충분히 빠른 속도로 데이터를 보내면, 승빈이는 준영이의 top 4 neighbor로 선택될 수도 있다.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;이러한 전략을 통해서 속도가 잘 맞는 피어들끼리 서로 청크를 주고 받게 된다. 이를 통해서 업로드 속도가 빠른 피어는 서로 빠르게 데이터를 주고받게 된다. 반대로 무임승차자(freerider) 는 청크를 못 받게 된다. 그 누구에게도 top 4 neighbor로 선정되지 않았기 때문이다.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==각주==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:컴퓨터 네트워크]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3382&amp;oldid=prev</id>
		<title>Pinkgo: /* P2P 구조의 배포시간 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=P2P_architecture&amp;diff=3382&amp;oldid=prev"/>
		<updated>2025-03-30T16:33:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;P2P 구조의 배포시간&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 30일 (일) 16:33 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;25번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;25번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위 세 가지를 종합하면 P2P 구조의 배포시간은 다음과 같이 나타내어진다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위 세 가지를 종합하면 P2P 구조의 배포시간은 다음과 같이 나타내어진다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  D&amp;lt;sub&amp;gt;P2P&amp;lt;/sub&amp;gt; &amp;lt;math&amp;gt;\ge&amp;lt;/math&amp;gt; max{F/us, F/d&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;, NF/(us + &amp;lt;math&amp;gt;\sum_{i=1}^{N}&amp;lt;/math&amp;gt;ui)}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  D&amp;lt;sub&amp;gt;P2P&amp;lt;/sub&amp;gt; &amp;lt;math&amp;gt;\ge&amp;lt;/math&amp;gt; max{F/us, F/d&amp;lt;sub&amp;gt;min&amp;lt;/sub&amp;gt;, NF/(us + &amp;lt;math&amp;gt;\sum_{i=1}^{N}&amp;lt;/math&amp;gt;ui)}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[파일:Distribution time for P2P and client-server architectures.png|프레임없음|400x400픽셀]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위는 모든 피어의 업로드 속도가 u로 동일하다고 가정할 때, 클라이언트-서버와 P2P의 최소 배포 시간을 비교한 것이다.&amp;lt;ref&amp;gt;F/u = 1시간, us = 10u, 그리고 dmin ≥ us로 설정하였다.&amp;lt;br&amp;gt;즉, 피어의 다운로드 속도는 배포 시간에 크게 영향을 주지 않는다고 가정한 것이다.&amp;lt;/ref&amp;gt; 위의 그림에서 볼 수 있듯, 클라이언트-서버 구조에서는 피어 수가 증가할수록 배포 시간이 선형적으로 무한히 증가한다. 반면, P2P 구조에서는 배포 시간이 항상 클라이언트-서버 구조보다 짧으며, 피어 수와 관계없이 1시간 이하로 유지된다. 이는 P2P 구조의 애플리케이션이 자기 확장성을 가지고 있어 유저가 늘어남에 따라 이를 지원하는 네트워크 또한 커지기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;위는 모든 피어의 업로드 속도가 u로 동일하다고 가정할 때, 클라이언트-서버와 P2P의 최소 배포 시간을 비교한 것이다.&amp;lt;ref&amp;gt;F/u = 1시간, us = 10u, 그리고 dmin ≥ us로 설정하였다.&amp;lt;br&amp;gt;즉, 피어의 다운로드 속도는 배포 시간에 크게 영향을 주지 않는다고 가정한 것이다.&amp;lt;/ref&amp;gt; 위의 그림에서 볼 수 있듯, 클라이언트-서버 구조에서는 피어 수가 증가할수록 배포 시간이 선형적으로 무한히 증가한다. 반면, P2P 구조에서는 배포 시간이 항상 클라이언트-서버 구조보다 짧으며, 피어 수와 관계없이 1시간 이하로 유지된다. 이는 P2P 구조의 애플리케이션이 자기 확장성을 가지고 있어 유저가 늘어남에 따라 이를 지원하는 네트워크 또한 커지기 때문이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pinkgo</name></author>
	</entry>
</feed>