p2p2 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|