p2p2 0.14.0 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/p2p2/head.rb +3 -2
- data/lib/p2p2/p1.rb +8 -1
- data/lib/p2p2/p2.rb +8 -1
- data/lib/p2p2/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca925ece6d1579aa867c70dbc92911eb3c0046e855c2579115738f2688dd08c5
|
4
|
+
data.tar.gz: 33c156afa25319ed03758e530aab81ae1ddc2e27059ea7bc5dae463a1a14761b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bf48c99e8242a66ec4f9774dd494ed57c9720c404e3a8cb0481c74dc3bcbd3fbf97c6cf2cfece23fdb7ad1bc5aa13cbf109baf929ef038ab756c2a3bb28a6ba
|
7
|
+
data.tar.gz: 3cb4955440287396afb177f13a800a67eca199531fc1956d8004a44372e8fc3a0ebd446b5ad959c271470fabda7ebbfe6358cc2dba1f6421bf55dd6caf7a2e4f
|
data/lib/p2p2/head.rb
CHANGED
@@ -2,12 +2,13 @@ module P2p2
|
|
2
2
|
PACK_SIZE = 1328 # 包大小 1400(console MTU) - 8(PPPoE header) - 40(IPv6 header) - 8(UDP header) - 8(app/shadow id) - 8(pack id) = 1328
|
3
3
|
CHUNK_SIZE = PACK_SIZE * 1000 # 块大小
|
4
4
|
WBUFFS_LIMIT = 1000 # 写前上限,超过上限结一个块
|
5
|
-
WMEMS_LIMIT = 100_000 #
|
5
|
+
WMEMS_LIMIT = 100_000 # 写后上限,达到上限暂停写
|
6
6
|
RESUME_BELOW = 50_000 # 降到多少以下恢复写
|
7
7
|
EXPIRE_AFTER = 1800 # 多久过期
|
8
8
|
HEARTBEAT_INTERVAL = 3 # 心跳间隔
|
9
9
|
STATUS_INTERVAL = 0.3 # 发送状态间隔
|
10
|
-
SEND_STATUS_UNTIL =
|
10
|
+
SEND_STATUS_UNTIL = 10 # 持续的告之对面状态,直到没有流量往来,持续多少秒
|
11
|
+
BREAK_SEND_MISS = 10_000 # miss包个数上限,达到上限忽略要后面的段,可控碎片缓存
|
11
12
|
PEER_ADDR = 1
|
12
13
|
HEARTBEAT = 2
|
13
14
|
A_NEW_APP = 3
|
data/lib/p2p2/p1.rb
CHANGED
@@ -295,8 +295,14 @@ module P2p2
|
|
295
295
|
ranges << [ curr_pack_id, ext[ :biggest_app_pack_id ] ]
|
296
296
|
end
|
297
297
|
|
298
|
+
pack_count = 0
|
298
299
|
# puts "debug #{ ext[ :continue_app_pack_id ] }/#{ ext[ :biggest_app_pack_id ] } send MISS #{ ranges.size }"
|
299
300
|
ranges.each do | pack_id_begin, pack_id_end |
|
301
|
+
if pack_count >= BREAK_SEND_MISS
|
302
|
+
puts "break send miss at #{ pack_id_begin } #{ Time.new }"
|
303
|
+
break
|
304
|
+
end
|
305
|
+
|
300
306
|
ctlmsg = [
|
301
307
|
0,
|
302
308
|
MISS,
|
@@ -306,6 +312,7 @@ module P2p2
|
|
306
312
|
].pack( 'Q>CQ>Q>Q>' )
|
307
313
|
|
308
314
|
send_pack( p1, ctlmsg, info[ :p2_addr ] )
|
315
|
+
pack_count += ( pack_id_end - pack_id_begin + 1 )
|
309
316
|
end
|
310
317
|
end
|
311
318
|
when MISS
|
@@ -530,7 +537,7 @@ module P2p2
|
|
530
537
|
end
|
531
538
|
end
|
532
539
|
|
533
|
-
#
|
540
|
+
# 若写后达到上限,暂停取写前
|
534
541
|
if info[ :shadow_exts ].map{ | _, ext | ext[ :wmems ].size }.sum >= WMEMS_LIMIT
|
535
542
|
unless info[ :paused ]
|
536
543
|
puts "pause #{ Time.new }"
|
data/lib/p2p2/p2.rb
CHANGED
@@ -314,8 +314,14 @@ module P2p2
|
|
314
314
|
ranges << [ curr_pack_id, ext[ :biggest_shadow_pack_id ] ]
|
315
315
|
end
|
316
316
|
|
317
|
+
pack_count = 0
|
317
318
|
# puts "debug #{ ext[ :continue_shadow_pack_id ] }/#{ ext[ :biggest_shadow_pack_id ] } send MISS #{ ranges.size }"
|
318
319
|
ranges.each do | pack_id_begin, pack_id_end |
|
320
|
+
if pack_count >= BREAK_SEND_MISS
|
321
|
+
puts "break send miss at #{ pack_id_begin } #{ Time.new }"
|
322
|
+
break
|
323
|
+
end
|
324
|
+
|
319
325
|
ctlmsg = [
|
320
326
|
0,
|
321
327
|
MISS,
|
@@ -325,6 +331,7 @@ module P2p2
|
|
325
331
|
].pack( 'Q>CQ>Q>Q>' )
|
326
332
|
|
327
333
|
send_pack( p2, ctlmsg, info[ :p1_addr ] )
|
334
|
+
pack_count += ( pack_id_end - pack_id_begin + 1 )
|
328
335
|
end
|
329
336
|
end
|
330
337
|
when MISS
|
@@ -547,7 +554,7 @@ module P2p2
|
|
547
554
|
end
|
548
555
|
end
|
549
556
|
|
550
|
-
#
|
557
|
+
# 若写后达到上限,暂停取写前
|
551
558
|
if info[ :app_exts ].map{ | _, ext | ext[ :wmems ].size }.sum >= WMEMS_LIMIT
|
552
559
|
unless info[ :paused ]
|
553
560
|
puts "pause #{ Time.new }"
|
data/lib/p2p2/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: p2p2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takafan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 内网里的任意应用,访问另一个内网里的应用服务端。
|
14
14
|
email:
|