tjohn327 commited on
Commit
9d34438
·
verified ·
1 Parent(s): 7d46c4d

Add new SentenceTransformer model

Browse files
1_Pooling/config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "word_embedding_dimension": 384,
3
+ "pooling_mode_cls_token": false,
4
+ "pooling_mode_mean_tokens": true,
5
+ "pooling_mode_max_tokens": false,
6
+ "pooling_mode_mean_sqrt_len_tokens": false,
7
+ "pooling_mode_weightedmean_tokens": false,
8
+ "pooling_mode_lasttoken": false,
9
+ "include_prompt": true
10
+ }
README.md ADDED
@@ -0,0 +1,2016 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - sentence-transformers
4
+ - sentence-similarity
5
+ - feature-extraction
6
+ - generated_from_trainer
7
+ - dataset_size:23200
8
+ - loss:MultipleNegativesRankingLoss
9
+ base_model: sentence-transformers/all-MiniLM-L6-v2
10
+ widget:
11
+ - source_sentence: 'query: Why is historical data important for an AS when deciding
12
+ which SegRs to request?'
13
+ sentences:
14
+ - "passage:\n<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From\
15
+ \ Design Principles to Formal Verification*. Springer International Publishing\
16
+ \ AG, 2022. </citation>\n<type> book </type>\n<page> 264 </page>\n<content>\n\
17
+ 10 Extensions for the Data Plane\nAS X\n AS YAS S AS Z\nC\nSegR Y-Z\n1 2\n33 C\
18
+ \ C4 C\n2\n(a) Segment reservation setup.\nAS X\n AS YAS S AS Z\nC\nSegR Y-Z\n\
19
+ 3 3\n44\nG SegR S-Y\nC\n3\n4 C\n352\n1 C\n(b) End-to-end reservation setup.\n\
20
+ AS X\n AS YAS S AS Z\n3\n4\n3 3\n4 4\n2\n1 G M M M\nBorder Router\n(c) Use of\
21
+ \ the end-to-end reservation.\nFigure 10.4: Overview of the COLIBRI system. C\
22
+ \ are CServs, G is the\nCOLIBRI gateway, the yellow-orange circles are border\
23
+ \ routers,\nand M are traffic monitors. A description is provided in Sec-\ntions\
24
+ \ 10.2.3.3 and 10.2.3.4.\nSegRs are always initiated by the first AS on the segment.\
25
+ \ For down-SegRs,\nthe first AS only sets up a SegR upon an explicit request by\
26
+ \ the last AS.\nAn AS can decide which SegRs to request based on historical data\
27
+ \ or traf-\nfic predictions. It selects segments generated by the SCION control\
28
+ \ plane and\nsends a SegR request ( 1 in Figure 10.4a) specifying requirements\
29
+ \ for the reser-\nvation such as requested minimum bandwidth. Each AS on the segment\
30
+ \ can\ncalculate how much bandwidth can be granted; if this is higher than the\
31
+ \ re-\nquested minimum, it records this reservation locally. It then updates the\
32
+ \ re-\nquest with the granted amount of bandwidth and forwards it to the next\
33
+ \ AS\non the segment ( 2 in Figure 10.4a). The last AS sends a reply via the same\n\
34
+ segment to the request initiator ( 3 in Figure 10.4a).\nIf the request was successful\
35
+ \ (each AS granted more than the minimum\namount of bandwidth), each AS locally\
36
+ \ stores the final amount of bandwidth\ngranted and includes a cryptographic token\
37
+ \ in the response that allows the re-\nquest initiator to use the segment for\
38
+ \ COLIBRI traffic ( 4 in Figure 10.4a; see\n§10.2.4.6 for details). In case of\
39
+ \ an unsuccessful request, the ASes clean up\ntheir temporary reservations and\
40
+ \ the initiator can determine the location of po-\n244\n</content>"
41
+ - "passage:\n<url> https://github.com/netsec-ethz/scion-apps/blob/master/webapp/README.md\
42
+ \ </url>\n<type> code </type>\n<content>\nWebapp AS Visualization\n=========================\n\
43
+ \nMore installation and usage information is available on the [SCION Tutorials\
44
+ \ web page for webapp](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp/).\n\
45
+ \n# Webapp\nWebapp is a Go application that will serve up a static web portal\
46
+ \ to make it easy to visualize and experiment with SCIONLab test apps on a virtual\
47
+ \ machine.\n\n\n## Packaged Setup/Run\nFor running `webapp` in a packaged environment,\
48
+ \ like the default [SCIONLab](https://www.scionlab.org) environment, it now uses\
49
+ \ command-line options for `webapp` to find the tools it requires.\n\nTo install\
50
+ \ from our packages, install `webapp` including its `scion-apps` dependencies:\n\
51
+ ```shell\nsudo apt install scion-apps-webapp\n```\nAlternatively, the following\
52
+ \ will install all `scion-apps` binaries:\n```shell\nsudo apt install scion-apps-*\n\
53
+ ```\n\nStart the `webapp` service:\n```shell\nsudo systemctl start scion-webapp\n\
54
+ ```\n\nEnsure the `webapp` service is running:\n```shell\nsudo systemctl status\
55
+ \ scion-webapp\n```\n\nNow, open a web browser at [http://127.0.0.1:8000](http://127.0.0.1:8000),\
56
+ \ to begin.\n\nLogs from `webapp` can be monitored:\n```shell\njournalctl -u scion-webapp\
57
+ \ -e\n```\n\nYou won't need to add all the parameters yourself as the `scion-webapp.service`\
58
+ \ will do this for you. You may view the service command line options used with\
59
+ \ `cat`:\n```shell\nsystemctl cat scion-webapp\n```\n\n\n## Development Setup/Run\n\
60
+ For maintenance of `webapp` details of its structure and operation can be found\
61
+ \ at [development.md](./development.md).\n\nFor running `webapp` in a development\
62
+ \ environment for the SCION Infrastructure, follow the SCIONLab development install\
63
+ \ and run process at [https://github.com/netsec-ethz/scion](https://github.com/netsec-ethz/netsec-scion).\n\
64
+ \nThen, follow these steps to install SCIONLab Apps to run `webapp` in development.\n\
65
+ \nDevelopment Install:\n```shell\nmkdir ~/go/src/github.com/netsec-ethz\ncd ~/go/src/github.com/netsec-ethz\n\
66
+ git clone https://github.com/netsec-ethz/scion-apps.git\n```\n\nDevelopment Build:\n\
67
+ Install all [SCIONLab apps](https://github.com/netsec-ethz/scion-apps) and dependencies,\
68
+ \ including `webapp`:\n```shell\ncd scion-apps\n./deps.sh\nmake build\n```\n\n\
69
+ Development Run on ScionLab Topology:\nYou can alter the defaults on the command\
70
+ \ line, all of which are listed below:\n```shell\n./bin/scion-webapp \\\n-a 127.0.0.1\
71
+ \ \\\n-p 8000 \\\n-r $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web/data\
72
+ \ \\\n-srvroot $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web \\\n-sgen\
73
+ \ /etc/scion \\\n-sgenc /var/lib/scion \n```\nor can you run `webapp` like this,\
74
+ \ which will use the defaults above:\n```shell\n./bin/scion-webapp\n```\n\nDevelopment\
75
+ \ Run on Local Topology:\n```shell\n./bin/scion-webapp \\\n-a 127.0.0.1 \\\n-p\
76
+ \ 8080 \\\n-r $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web/data \\\
77
+ \n-srvroot $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web \\\n-sgen\
78
+ \ $HOME/scion/gen \\\n-sgenc $HOME/scion/gen-cache\n```\n\n## Dependencies\n\
79
+ A list of dependencies for `webapp` can be found at [dependencies.md](./dependencies.md).\n\
80
+ \n## Help\n```shell\nUsage of webapp:\n -a string\n Address of server\
81
+ \ host. (default \"127.0.0.1\")\n -p int\n Port of server host. (default\
82
+ \ 8000)\n -r string\n Root path to read/browse from, CAUTION: read-access\
83
+ \ granted from -a and -p. (default \"$GOPATH/src/github.com/netsec-ethz/scion-apps/webapp\
84
+ \ /web/data\")\n -sgen string\n Path to read SCION gen directory of infrastructure\
85
+ \ config (default \"/etc/scion\")\n -sgenc string\n Path to read SCION\
86
+ \ gen-cache directory of infrastructure run-time config (default \"/var/lib/scion\"\
87
+ )\n -srvroot string\n Path to read/write web server files. (default \"\
88
+ $GOPATH/src/github.com/netsec-ethz/scion-apps/webapp/web\")\n```\n\n## Related\
89
+ \ Links\n* [Webapp SCIONLab AS Visualization Tutorials](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp/)\n\
90
+ * [Webapp SCIONLab Apps Visualization](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp_apps/)\n\
91
+ * [Webapp Development Tips](https://netsec-ethz.github.io/scion-tutorials/as_visualization/webapp_development/)\n\
92
+ \n</content>"
93
+ - 'passage:
94
+
95
+ <citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
96
+ to Formal Verification*. Springer International Publishing AG, 2022. </citation>
97
+
98
+ <type> book </type>
99
+
100
+ <page> 455 </page>
101
+
102
+ <content>
103
+
104
+ 19.1 Background
105
+
106
+ DNSSEC was proposed to address this very problem. In brief, it allows a
107
+
108
+ zone to sign its DNS records and have the signing key endorsed by the parent
109
+
110
+ zone, thus creating an authentication chain all the way up to the root zone. A
111
+
112
+ signed record can be verified by following the chain terminated at a trust an-
113
+
114
+ chor (which in most cases is the root zone key) configured by the validating
115
+
116
+ entity. This eliminates threats of data tampering and forgery that originate out-
117
+
118
+ side zone authorities.
119
+
120
+ In general, end-to-end authenticity is achievable only by having zone author-
121
+
122
+ ities themselves secure the zone data with publicly verifiable authenticators.
123
+
124
+ One may attempt a similar assurance by establishing hop-by-hop secure (in
125
+
126
+ particular, authenticated) channels between entities involved in the name res-
127
+
128
+ olution process. However, channel security alone does not imply end-to-end
129
+
130
+ security: While such a solution can foil attacks launched from the commu-
131
+
132
+ nication network, it fails to address risks arising from authoritative servers,
133
+
134
+ resolvers, and any intermediary servers pertinent to name resolution. Clients
135
+
136
+ must place trust in all these entities, instead of just the zone authority in
137
+ the
138
+
139
+ ideal case, to be assured of data authenticity. We thus strive for an end-to-end
140
+
141
+ guarantee, where intermediaries do not need to be trusted from an authenticity
142
+
143
+ perspective.
144
+
145
+ 19.1.3 End-User Privacy
146
+
147
+ The privacy implications of DNS have received a surge of attention in the past
148
+
149
+ few years. Name-resolution messages transmitted in the clear directly leak
150
+
151
+ the websites or applications accessed by clients; even if subsequent connec-
152
+
153
+ tions are secured with TLS, the leakage from DNS is already information-rich
154
+
155
+ enough to build accurate profiles of end users.
156
+
157
+ All privacy-enhancing solutions follow the same principle of establishing
158
+
159
+ encrypted channels between entities (mostly between clients and resolvers).
160
+
161
+ Examples include DoT and DoH as well as DNSCurve, which makes use of
162
+
163
+ customized encryption methods. One caveat to these solutions is that they pro-
164
+
165
+ tect data confidentiality against eavesdropping on the communication links but
166
+
167
+ not the entities themselves; countermeasures to further address this concern are
168
+
169
+ also emerging, e.g., Oblivious DNS (ODNS) [ 459], and they typically work
170
+
171
+ by using proxy servers to break the linkage of client identities to decrypted
172
+
173
+ queries.
174
+
175
+ Regardless of the exact design, encrypting name-resolution messages is es-
176
+
177
+ sential to preserving the privacy of end users and is complementary to naming
178
+
179
+ data authentication.
180
+
181
+ 19.1.4 Service Availability
182
+
183
+ Another more subtle security aspect relates to availability. DNS is designed
184
+
185
+ to be available by redundancy: Each zone is typically replicated to multiple
186
+
187
+ distributed authoritative name servers. This simple mechanism is effective in
188
+
189
+ 435
190
+
191
+ </content>'
192
+ - source_sentence: 'query: What are the constants defined in the SCION traffic engineering
193
+ model?'
194
+ sentences:
195
+ - "passage:\n<url> https://github.com/scionproto/scion/blob/master/doc/dev/design/ColibriService.md\
196
+ \ </url>\n<type> code </type>\n<content>\n# COLIBRI Service Design\n\n* Author:\
197
+ \ Juan A. García Pardo\n* Last updated: 2020-07-08\n* Status: **Outdated**.\n\
198
+ \ Prototype was developed in [netsec-ethz/scion:scionlab](https://github.com/netsec-ethz/scion/tree/scionlab)\n\
199
+ \ ([commit permalink](https://github.com/netsec-ethz/scion/commit/37a556a4bc494a93fe8294ed77b6f2c9b6192746)),\n\
200
+ \ to be replaced with new approach for QoS system.\n* Discussion at: [#3653](https://github.com/scionproto/scion/issues/3653),\
201
+ \ [#3794](https://github.com/scionproto/scion/issues/3794)\n\n---\n⚠️ **NOTE**\
202
+ \ ⚠️\n\nOutdated contents! This document is kept for historical purpose.\n\n---\n\
203
+ \n## Abstract\n\nThis document specifies the design of the COLIBRI service. It\
204
+ \ aims for correctness not completeness,\nand some parts of the design are deliberately\
205
+ \ not yet specified.\n\nThis document will be reviewed and amended when necessary\
206
+ \ as the implementation of the COLIBRI\nservice matures.\n\n## Overview\n\nThe\
207
+ \ COLIBRI Service (*COS*) manages the reservation process of the COLIBRI QoS subsystem\n\
208
+ in SCION. It handles both the segment and end to end reservations (formerly known\
209
+ \ as steady and\nephemeral reservations).\n\nThe border router is also modified\
210
+ \ so it understands COLIBRI type packets in the data plane.\n\n**This document\
211
+ \ doesn't include the border router design and implementation changes yet.**\n\
212
+ \n## Design\n\nThere are three main components that need to be modified or created:\
213
+ \ the colibri service itself,\nthe border router and `sciond` in the endhost:\n\
214
+ \n* **COS** Enables the COLIBRI control plane. Used to negotiate both segment\
215
+ \ and end to\n end reservations.\n* **Border Router** Needs to forward the COLIBRI\
216
+ \ traffic with higher priority than best effort.\n Needs to monitor COLIBRI traffic.\n\
217
+ * **sciond** Needs to expose a COLIBRI *API*. Needs to manage end to end reservations\
218
+ \ in behalf\n of the applications.\n\nThe COS is structured similarly to other\
219
+ \ existing Go infrastructure services. It reuses the\nfollowing:\n\n* [go/lib/env](https://github.com/scionproto/scion/tree/master/go/lib/env):\n\
220
+ \ Is used for configuration and setup of the service.\n* [go/pkg/trust](https://github.com/scionproto/scion/tree/master/go/pkg/trust):\n\
221
+ \ Is used for crypto material.\n* [go/lib/infra](https://github.com/scionproto/scion/tree/master/go/lib/infra):\n\
222
+ \ Is used for the messenger to send and receive messages.\n* [go/lib/periodic](https://github.com/scionproto/scion/tree/master/go/lib/periodic):\n\
223
+ \ Is used for periodic tasks.\n\nThe COS is differentiated into these parts:\n\
224
+ \n* **configuration** specifying admission and reservation parameters for this\
225
+ \ AS,\n* **handlers** to handle incoming reservation requests (creation, tear\
226
+ \ down, etc.),\n* **periodic tasks** for segment reservation creation and renewal,\n\
227
+ * **reservation storage** for partial and committed reservations.\n\n![COS parts\
228
+ \ overview](fig/colibri_srv/COS.png).\n\n## Sequence Diagrams\n\n### Segment Reservations\n\
229
+ \nNote: we use \"forward the request\" with the following meaning: if the current\
230
+ \ AS is not\nthe last AS in the reservation path, send the request to the next\
231
+ \ AS in the reservation path.\nIf the current AS is the last one, do nothing.\n\
232
+ \n#### Handle a Setup Response\n\nThe response message originated from another\
233
+ \ AS's *COS* handling a request.\nThe request is forwarded from AS<sub>i</sub>\
234
+ \ to AS<sub>i+1</sub>, where AS<sub>i+1</sub> is the\nnext AS after AS<sub>i</sub>\
235
+ \ in the path of the reservation.\n\n1. The store saves the reservation as final.\n\
236
+ 1. If this AS is the first one in the reservation path (aka *reservation initiator*),\n\
237
+ \ the store sends an index confirmation request to the next AS in the path.\n\
238
+ 1. If this AS is the not the first one in the reservation path, the store sends\
239
+ \ a\n response message to the previous AS's *COS*.\n\n#### Handle a Setup Request\n\
240
+ \n(the reservation message originated from another AS nearer to the origin of\
241
+ \ the path in the reservation)\n\n1. The *COS* store is queried to admit the segment\
242
+ \ reservation.\n1. The store decides the admission for the reservation (how much\
243
+ \ bandwidth). It uses the\n *traffic_matrix* from the configuration package.\n\
244
+ 1. The store saves an intermediate reservation entry in the DB.\n1. If this AS\
245
+ \ is the last one in the path, the *COS* store saves the reservation as final\n\
246
+ \ and notifies the previous AS in the path with a reservation response.\n1.\
247
+ \ The store forwards the request with the decided bandwidth.\n\n#### Setup a Segment\
248
+ \ Reservation\n\nThe configuration specifies which segment reservations should\
249
+ \ be created from this AS to other\nASes. Whenever that configuration changes,\
250
+ \ the service should be notified.\n\n1. The service triggers the creation of a\
251
+ \ new segment reservation at boot time and whenever\n the segment reservation\
252
+ \ configuration file changes.\n1. The service reads the configuration file and\
253
+ \ creates a segment reservation request per each entry.\n * The path used in\
254
+ \ the request must be obtained using the *path predicate* in the configuration.\n\
255
+ 1. The store in the *COS* saves the intermediate request and sends the request\
256
+ \ to the next AS\n in the path.\n1. If there is a timeout, this store will send\
257
+ \ a cleanup request to the next AS in the path.\n\n#### Handle an Index Confirmation\
258
+ \ Request\n\n1. The store in the *COS* checks that the appropriate reservation\
259
+ \ is already final.\n1. The store modifies the reservation to be confirmed\n1.\
260
+ \ The *COS* forwards the confirmation request.\n\n#### Handle a Cleanup Request\n\
261
+ \n1. The *COS* removes the referenced reservation from its store.\n1. The *COS*\
262
+ \ forwards the cleanup request.\n\n#### Handle a Teardown Request\n\n1. The *COS*\
263
+ \ checks the reservation is confirmed but has no allocated end to end reservations.\n\
264
+ 1. The *COS* checks there are no telescoped reservations using this segment reservation.\n\
265
+ 1. The store removes the reservation.\n1. The *COS* forwards the teardown request.\n\
266
+ \n#### Handle a Renewal Request\n\nThe renewal request handler is the same as\
267
+ \ the [setup request](#handle-a-setup-request).\nThe renewal is initiated differently\
268
+ \ (by adding a new index to an existing reservation),\nbut handled the same way.\n\
269
+ \n#### Renew a Segment Reservation\n\n1. The service triggers the renewal of the\
270
+ \ existing segment reservations with constant frequency.\n1. The store in the\
271
+ \ *COS* retrieves each one of the reservations that originate in this AS.\n1.\
272
+ \ Per reservation retrieved, the store adds a new index to it and pushes it forward.\n\
273
+ \n#### Handle a Reservation Query\n\n1. The store in the *COS* receives the query\
274
+ \ and returns the collection of segment reservations\n matching it.\n\n### End\
275
+ \ to End Reservations\n\nAll end to end reservation requests should be authenticated.\n\
276
+ \n#### Handle a E2E Setup Request\n\n1. The *COS* queries the store to admit the\
277
+ \ reservation\n1. The store computes the allowed bandwidth (knowing the current\
278
+ \ segment reservation and\n the existing E2E reservations in it).\n1. The store\
279
+ \ pushes forward the setup request.\n\n#### Handle a Renewal Request\n\nThe renewal\
280
+ \ request handler is the same as the [setup request](#handle-a-e2e-setup-request).\n\
281
+ \n#### Handle a Cleanup Request\n\n1. The *COS* removes the request from its store.\n\
282
+ 1. The *COS* forwards the cleanup request.\n\n## Interfaces\n\nInterfaces of the\
283
+ \ main classes.\n\nThe Reservation Store in the COS keeps track of the reservations\
284
+ \ created and accepted in this AS,\nboth segment and E2E.\nThe store provides\
285
+ \ the following interface:\n\n```go\ntype ReservationStore {\n GetSegmentReservation(ctx\
286
+ \ context.Context, id SegmentReservationID) (SegmentReservation, error)\n GetSegmentReservations(ctx\
287
+ \ context.Context, validTime time.Time, path []InterfaceId]) ([]SegmentReservation,\
288
+ \ error)\n\n AdmitSegmentReservation(ctx context.Context, req SegmentReservationReq)\
289
+ \ error\n ConfirmSegmentReservation(ctx context.Context, id SegmentReservationID)\
290
+ \ error\n CleanupSegmentReservation(ctx context.Context, id SegmentReservationID)\
291
+ \ error\n TearDownSegmentReservation(ctx context.Context, id SegmentReservationID)\
292
+ \ error\n\n AdmitE2EReservation(ctx context.Context, req E2EReservationReq)\
293
+ \ error\n CleanupE2EReservation(ctx context.Context, id E2EReservationID) error\n\
294
+ }\n```\n\nThe `sciond` endhost daemon will expose the *API* that enables the use\
295
+ \ of COLIBRI by applications:\n\n```go\ntype sciond {\n ...\n AllowIPNet(ia\
296
+ \ IA, net IPNet) error\n BlockIPNet(ia IA, net IPNet) error\n WatchSegmentRsv(ctx\
297
+ \ context.Context, pathConf PathConfiguration) (WatchState, error)\n WatchE2ERsv(ctx\
298
+ \ context.Context, resvConf E2EResvConfiguration) (WatchState, error)\n //\
299
+ \ WatchRequests returns a WatchState that will notify the application of any COLIBRI\
300
+ \ e2e request ending here.\n WatchRequests() (WatchState, error)\n Unwatch(watchState\
301
+ \ WatchState) error\n}\n```\n\n## Class Diagrams\n\nMain classes, arity and relationships.\n\
302
+ \n```go\ntype InterfaceIdPair struct\n Ingress uint64\n Egress uint64\n\
303
+ }\ntype SegmentReservationID struct {\n Ifids []InterfaceIdPair\n Index\
304
+ \ byte\n}\n\ntype E2EReservationID uint16\n```\n\n## ReservationDB\n\nThere\
305
+ \ are two main parts in the DB: the segment reservation entities, and the end\
306
+ \ to end entities.\nTo link the end to end reservations to the appropriate segment\
307
+ \ ones, a table is used.\n\nThere are no restrictions of cardinality other than\
308
+ \ uniqueness and non null-ness for some fields,\nbut nothing like triggers on\
309
+ \ insertion are used. E.g. it is technically possible to link more than three\n\
310
+ segment reservations with a given end to end one. These cardinality restrictions\
311
+ \ are enforced by code.\n\n![DB entities overview](fig/colibri_srv/DB.png).\n\n\
312
+ Furthermore, there are some indices created to speed up lookups:\n\n* seg_reservation\n\
313
+ \ * id_as,suffix\n * ingress\n * egress\n * path\n* seg_index\n \
314
+ \ * reservation,index_number\n* e2e_reservation\n * reservation_id\n* e2e_index\n\
315
+ \ * reservation,index_number\n* e2e_to_seg\n * e2e\n * seg\n\n</content>"
316
+ - 'passage:
317
+
318
+ <citation> Pascal Marc Suter. *Traffic Engineering in SCION: The impact of end
319
+ host QoS mechanisms on network performance*. Master''s thesis, ETH Zurich, 2023.
320
+ </citation>
321
+
322
+ <type> research paper </type>
323
+
324
+ <page> 75 </page>
325
+
326
+ <content>
327
+
328
+ 7. F uture work
329
+
330
+ Constants
331
+
332
+ q: a queue
333
+
334
+ f : a flow
335
+
336
+ p: a possible path
337
+
338
+ fbwd: the requested bandwidth of flow f
339
+
340
+ µq: processing capacity of q
341
+
342
+ MaxLength q: maximum queue length of q
343
+
344
+ The constants are defined by the topology. Each application would be repre-
345
+
346
+ sented as a flow and every router has one processing queue and one sending
347
+
348
+ queue per outgoing link. This is analog as to how the queues are imple-
349
+
350
+ mented in the simulator. µq is the number of packets that can be processed
351
+
352
+ or the number of packets that can be sent in a time-step if q is a processing
353
+
354
+ or sending queue respectively.
355
+
356
+ Variables
357
+
358
+ TPf ,p: throughput of flow f on path p
359
+
360
+ Pf ,p: indicator variable, 1 if and only if flow f chooses path p
361
+
362
+ Lat f ,p: latency of path p of flow f
363
+
364
+ λq: throughput of queue q
365
+
366
+ Varq: variance at queue q
367
+
368
+ Lossq: probability of packet loss at queue q
369
+
370
+ Objective
371
+
372
+ min ∑
373
+
374
+ f ,p
375
+
376
+ Lat f ,p
377
+
378
+ min ∑
379
+
380
+ f ,p
381
+
382
+ Pf ,p( ∑
383
+
384
+ q∈passes ( f ,p)
385
+
386
+ Varq)
387
+
388
+ min ∑
389
+
390
+ f ,p
391
+
392
+ Pf ,p( ∑
393
+
394
+ q∈passes ( f ,p)
395
+
396
+ Lossq)
397
+
398
+ Each objective minimizes global latency, jitter, and loss respectively. They
399
+
400
+ can be weighted depending on how import one thinks each to be.
401
+
402
+ 68
403
+
404
+ </content>'
405
+ - "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-07.txt\
406
+ \ </url>\n<type> specification </type>\n<content>\nNetwork Working Group \
407
+ \ C. de Kater\nInternet-Draft \
408
+ \ N. Rustignoli\nIntended status: Informational\
409
+ \ SCION Association\nExpires: 27 June 2025 \
410
+ \ S. Hitz\n \
411
+ \ Anapaya Systems\n \
412
+ \ 24 December 2024\n\n\n SCION Control\
413
+ \ Plane\n draft-dekater-scion-controlplane-07\n\nAbstract\n\n\
414
+ \ This document describes the Control Plane of the path-aware, inter-\n domain\
415
+ \ network architecture SCION (Scalability, Control, and\n Isolation On Next-generation\
416
+ \ networks). One of the basic\n characteristics of SCION is that it gives path\
417
+ \ control to SCION-\n capable endpoints that can choose between multiple path\
418
+ \ options,\n enabling the optimization of network paths. The Control Plane\
419
+ \ is\n responsible for discovering these paths and making them available to\n\
420
+ \ the endpoints.\n\n The main goal of the SCION Control Plane is to create\
421
+ \ and manage path\n segments which can then be combined into forwarding paths\
422
+ \ to transmit\n packets in the data plane. This document discusses how path\n\
423
+ \ exploration is realized through beaconing and how path segments are\n created\
424
+ \ and registered. Each SCION Autonomous System (AS) can\n register segments\
425
+ \ according to its own policy and can specify which\n path properties and algorithm(s)\
426
+ \ to use in the selection procedure.\n The document also describes the path\
427
+ \ lookup process whereby endpoints\n obtain path segments - a fundamental building\
428
+ \ block for the\n construction of end-to-end paths.\n\nAbout This Document\n\
429
+ \n This note is to be removed before publishing as an RFC.\n\n The latest\
430
+ \ revision of this draft can be found at\n https://scionassociation.github.io/scion-cp_I-D/draft-dekater-scion-\n\
431
+ \ controlplane.html. Status information for this document may be found\n \
432
+ \ at https://datatracker.ietf.org/doc/draft-dekater-scion-\n controlplane/.\n\
433
+ \n Source for this draft and an issue tracker can be found at\n https://github.com/scionassociation/scion-cp_I-D.\n\
434
+ </content>"
435
+ - source_sentence: 'query: How does SCION''s architecture improve scalability?'
436
+ sentences:
437
+ - "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-controlplane-07.txt\
438
+ \ </url>\n<type> specification </type>\n<content>\nde Kater, et al. Expires\
439
+ \ 27 June 2025 [Page 80]\n\f\nInternet-Draft \
440
+ \ SCION CP December 2024\n\n\n // Segment creation time\
441
+ \ set by the originating AS. Segment\n // expiration time is computed relative\
442
+ \ to this timestamp.\n // The timestamp is encoded as the number of seconds\
443
+ \ elapsed\n // since January 1, 1970 UTC.\n int64 timestamp = 1;\n \
444
+ \ // The 16-bit segment ID integer used for MAC computation.\n uint32 segment_id\
445
+ \ = 2;\n }\n\n message ASEntry {\n // The signed part of the AS entry. The\
446
+ \ body of the SignedMessage\n // is the serialized ASEntrySignedBody. The\
447
+ \ signature input is\n // defined as follows:\n //\n // input(ps,\
448
+ \ i) = signed.header_and_body || associated_data(ps, i)\n //\n // associated_data(ps,\
449
+ \ i) =\n // ps.segment_info ||\n // ps.as_entries[1].signed.header_and_body\
450
+ \ ||\n // ps.as_entries[1].signed.signature ||\n // \
451
+ \ ...\n // ps.as_entries[i-1].signed.header_and_body ||\n //\
452
+ \ ps.as_entries[i-1].signed.signature\n //\n proto.crypto.v1.SignedMessage\
453
+ \ signed = 1;\n // The unsigned part of the AS entry.\n proto.control_plane.v1.PathSegmentUnsignedExtensions\
454
+ \ unsigned = 2;\n }\n\n message SignedMessage {\n // Encoded header and body.\n\
455
+ \ bytes header_and_body = 1;\n // Raw signature. The signature is computed\
456
+ \ over the concatenation\n // of the header and body, and the optional associated\
457
+ \ data.\n bytes signature = 2;\n }\n\n message HopEntry {\n // Material\
458
+ \ to create the data-plane Hop Field.\n HopField hop_field = 1;\n // MTU\
459
+ \ on the ingress link.\n uint32 ingress_mtu = 2;\n }\n\n message PeerEntry\
460
+ \ {\n // ISD-AS of peer AS. This is used to match peering segments\n //\
461
+ \ during path construction.\n uint64 peer_isd_as = 1;de Kater, et al. \
462
+ \ Expires 27 June 2025 [Page 81]\n\f\nInternet-Draft \
463
+ \ SCION CP December 2024\n\n\n // Remote peer\
464
+ \ interface identifier. This is used to match\n // peering segments\n \
465
+ \ // during path construction.\n uint64 peer_interface = 2;\n // MTU on\
466
+ \ the peering link.\n uint32 peer_mtu = 3;\n // Material to create the\
467
+ \ data-plane Hop Field\n HopField hop_field = 4;\n }\n\n message HopField\
468
+ \ {\n // Ingress interface identifier.\n uint64 ingress = 1;\n //\
469
+ \ Egress interface identifier.\n uint64 egress = 2;\n // 8-bit encoded\
470
+ \ expiration offset relative to the segment\n // creation timestamp.\n \
471
+ \ uint32 exp_time = 3;\n // MAC used in the dataplane to verify the Hop Field.\n\
472
+ \ bytes mac = 4;\n }\n\n Figure 20: Control Service gRPC API - Segment\
473
+ \ representation\n</content>"
474
+ - 'passage:
475
+
476
+ <citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
477
+ to Formal Verification*. Springer International Publishing AG, 2022. </citation>
478
+
479
+ <type> book </type>
480
+
481
+ <page> 674 </page>
482
+
483
+ <content>
484
+
485
+ Index
486
+
487
+ Nesquic, 309
488
+
489
+ OpenFlow, 578
490
+
491
+ Packet
492
+
493
+ ¨ format, 95–96
494
+
495
+ ¨ forwarding, 115
496
+
497
+ ¨ initialization, 115
498
+
499
+ Packet-carried forwarding state
500
+
501
+ (PCFS), 29, 643
502
+
503
+ Packet-carried forwarding
504
+
505
+ state (PCFS), 19
506
+
507
+ Path attack
508
+
509
+ ¨ path hijacking, 166
510
+
511
+ ¨ path manipulation, 165
512
+
513
+ ¨ path preference attack, 168
514
+
515
+ ¨ path selection, 168
516
+
517
+ ¨ path splicing, 171
518
+
519
+ ¨ source-address spoofing, 174
520
+
521
+ Path authorization, 30, 170–172,
522
+
523
+ 228, 643
524
+
525
+ Path construction, 104–115
526
+
527
+ ¨ segment combination, 28
528
+
529
+ Path control, 9, 168, 382, 643
530
+
531
+ Path discovery, 69–71
532
+
533
+ Path exploration, 24, 69–71, 135,
534
+
535
+ 136, 142, 144, 147
536
+
537
+ Path lookup, 80–87
538
+
539
+ Path quality
540
+
541
+ ¨ beaconing overhead, 150
542
+
543
+ ¨ evaluation, 154–156
544
+
545
+ Path registration, 24, 412
546
+
547
+ ¨ core, 72
548
+
549
+ ¨ intra-ISD, 71
550
+
551
+ Path resolution, 104–112, 306
552
+
553
+ ¨ path combination, 28, 104–112
554
+
555
+ ¨ path lookup, 26, 306, 412
556
+
557
+ Path reversal, 116
558
+
559
+ Path revocation, 27, 120–124
560
+
561
+ Path segment, 27, 643
562
+
563
+ ¨ combination, 28, 104–115
564
+
565
+ ¨ core-segment, 24, 29
566
+
567
+ ¨ down-segment, 24
568
+
569
+ ¨ registration, 71
570
+
571
+ ¨ selection, 27, 73
572
+
573
+ ¨ up-segment, 24
574
+
575
+ Path selection, 27, 168
576
+
577
+ ¨ diversity-based, 76
578
+
579
+ ¨ malicious, 147
580
+
581
+ Path server, 24, 27
582
+
583
+ Path service (PS), 20, 289, 643
584
+
585
+ ¨ discovery, 87
586
+
587
+ Path transparency, 9, 644
588
+
589
+ Path validation, 230
590
+
591
+ Path-aware networking, 239
592
+
593
+ Path-segment construction beacon
594
+
595
+ (PCB), 19, 66–69, 644
596
+
597
+ ¨ components, 66
598
+
599
+ ¨ extensions, 197–201
600
+
601
+ ¨ filtering, 76
602
+
603
+ ¨ path metadata, 197–201
604
+
605
+ ¨ propagation, 70
606
+
607
+ ¨ selection properties, 74
608
+
609
+ PCB, see Path-segment
610
+
611
+ construction beacon
612
+
613
+ PCFS, see Packet-carried
614
+
615
+ forwarding state
616
+
617
+ Peering link, 25, 29
618
+
619
+ Peering path, 109
620
+
621
+ PILA, 461–469
622
+
623
+ PKI
624
+
625
+ ¨ control-plane PKI, 21–23, 36–52
626
+
627
+ ¨ end entity PKI, 419
628
+
629
+ ¨ F-PKI, 419–430
630
+
631
+ ¨ Web PKI, 419
632
+
633
+ Post-quantum cryptography, 415
634
+
635
+ Private lines
636
+
637
+ ¨ replacement, 374
638
+
639
+ Property
640
+
641
+ ¨ availability, 377
642
+
643
+ Pseudorandom function (PRF),
644
+
645
+ 410, 411
646
+
647
+ Pseudorandom number generator,
648
+
649
+ 409, 411
650
+
651
+ Recovery, 23
652
+
653
+ Relying party, 644
654
+
655
+ Replay-suppression, 204–207
656
+
657
+ Reservations
658
+
659
+ ¨ COLIBRI, 237–266
660
+
661
+ 654
662
+
663
+ </content>'
664
+ - 'passage:
665
+
666
+ <citation> Seyedali Tabaeiaghdaei, Adrian Perrig. "Data-Plane Energy Efficiency
667
+ of a Next-Generation Internet Architecture." *IEEE Symposium on Computers and
668
+ Communications (ISCC)*, 2022. </citation>
669
+
670
+ <type> research paper </type>
671
+
672
+ <page> 1 </page>
673
+
674
+ <content>
675
+
676
+ Data-Plane Energy Efficiency of a
677
+
678
+ Next-Generation Internet Architecture
679
+
680
+ Seyedali T abaeiaghdaei
681
+
682
+ Department of Computer Science
683
+
684
+ ETH Z ¨urich, Switzerland
685
+
686
+ Adrian Perrig
687
+
688
+ Department of Computer Science
689
+
690
+ ETH Z ¨urich, Switzerland
691
+
692
+ Abstract—In the face of the ever-increasing power consumption
693
+
694
+ of the information and communication technology sector , next-
695
+
696
+ generation Internet architectures offer an opportunity to improve
697
+
698
+ the energy consumption of the Internet. The SCION architecture
699
+
700
+ is unique in that it has reached commercial deployment and
701
+
702
+ thus opens up opportunities for estimating and understanding
703
+
704
+ the promised energy efficiency from a realistic perspective.
705
+
706
+ In this work, we introduce a method that uses the available
707
+
708
+ energy consumption models for the current Internet architecture
709
+
710
+ to estimate the energy efficiency of SCION’s data plane. By
711
+
712
+ applying this method to the best available power consumption
713
+
714
+ models of the Internet, we show that while providing advanced
715
+
716
+ security and availability guarantees, SCION can reduce global
717
+
718
+ data plane power consumption by around 700 MW. W e further
719
+
720
+ investigate the impact of the SCION’s quality of service (QoS)
721
+
722
+ extension on data plane’s power consumption and conclude that
723
+
724
+ SCION with its QoS extension can reduce the power consumption
725
+
726
+ of the Internet by up to 2.88 GW. Therefore, SCION, with its QoS
727
+
728
+ extension, reduces the power consumption of the Internet and the
729
+
730
+ whole ICT sector by up to 9.4% and 1.3%, respectively .
731
+
732
+ Index T erms—Power consumption, next-generation Internet
733
+
734
+ architecture, Quality of Service, QoS
735
+
736
+ I. I N T RO D U C T I O N
737
+
738
+ It is estimated that the information and communication tech-
739
+
740
+ nology (ICT) sector consumed 2000 TW h electrical energy in
741
+
742
+ 2020 (which is around 7% of global electricity generation) and
743
+
744
+ is responsible for 2.7% of global CO2 emissions [1]–[5]. The
745
+
746
+ electricity consumption impact of the ICT sector is expected
747
+
748
+ to grow to 21% in 2030 [6], of which networks account for a
749
+
750
+ 27% share in 2030 (13% in 2020) [1].
751
+
752
+ Given the rising concerns regarding climate change and the
753
+
754
+ environmental impact of the ICT sector, numerous researchers
755
+
756
+ have studied the power consumption and energy efficiency of
757
+
758
+ the Internet [1], [4], [6]–[10], trying to estimate the power
759
+
760
+ consumption of the Internet and predict the future trend by
761
+
762
+ proposing various models. These models, however, do not take
763
+
764
+ into account the potential changes to the Internet’s operation
765
+
766
+ proposed by next-generation Internet architectures.
767
+
768
+ Several next-generation architectures have been proposed,
769
+
770
+ typically substantially modifying the Internet’s operation.
771
+
772
+ These modifications can significantly impact energy efficiency ,
773
+
774
+ necessitating investigation prior to large-scale deployment.
775
+
776
+ SCION [11] is a next-generation Internet architecture that
777
+
778
+ provides strong security and availability guarantees. SCION
779
+
780
+ uses packet-carried forwarding state to forward packets, a fun-
781
+
782
+ damental architectural change with a tremendous potential im-
783
+
784
+ pact on the Internet’s energy efficiency . Furthermore, SCION’s
785
+
786
+ inter-domain bandwidth reservation system can simplify con-
787
+
788
+ gestion control algorithms, affecting the power consumption
789
+
790
+ of both networks and end hosts significantly . As SCION has
791
+
792
+ reached commercial deployment [12], it is important to study
793
+
794
+ its power impact.
795
+
796
+ In this paper, we introduce a method to analyze SCION’s
797
+
798
+ impact on the data-plane power consumption. Using this
799
+
800
+ method we first identify all modifications required by SCION
801
+
802
+ to all different types of devices in the Internet. Then, we inves-
803
+
804
+ tigate how these modifications change the power consumption
805
+
806
+ of each device by taking into account the available power
807
+
808
+ consumption models for those devices. Finally , we investigate
809
+
810
+ how the change in the power consumption of each device
811
+
812
+ changes the power consumption of the whole Internet using
813
+
814
+ the available power consumption models. This methodology
815
+
816
+ is independent of the available power consumption models
817
+
818
+ of the Internet and network devices and therefore can be
819
+
820
+ applied to any available power consumption model. However,
821
+
822
+ the accuracy of the analysis depends on the accuracy of the
823
+
824
+ underlying models.
825
+
826
+ In Section III we describe this method in more detail by
827
+
828
+ applying it to the available power consumption models of the
829
+
830
+ Internet, and providing an estimate of how SCION changes the
831
+
832
+ power consumption of the Internet. Furthermore, in Section IV
833
+
834
+ we investigate how the inter-domain QoS extension of SCION
835
+
836
+ impacts the Internet’s power consumption.
837
+
838
+ II. B AC K G RO U N D ON SCION
839
+
840
+ SCION is a path-aware Internet architecture providing rout-
841
+
842
+ ing security , availability , path transparency , and path control.
843
+
844
+ A. Architecture
845
+
846
+ T o improve scalability , SCION groups ASes into isolation
847
+
848
+ domains (ISDs) . An ISD is administered by its ISD core,
849
+
850
+ typically consisting of several core ASes. Core ASes provide
851
+
852
+ connectivity to core ASes in other ISDs, and issue certificates
853
+
854
+ for non-core ASes in their own ISD. In each ISD, all non-core
855
+
856
+ ASes are either direct or indirect customers of core ASes.
857
+
858
+ B. Data plane
859
+
860
+ SCION uses packet-carried forwarding state to forward
861
+
862
+ packets: the inter-domain forwarding path is included in packet
863
+
864
+ headers, and routers forward packets using this information.
865
+
866
+ 978-1-6654-9792-3/22/$31.00 ©2022 IEEE
867
+
868
+ </content>'
869
+ - source_sentence: 'query: What steps are involved in building the SCION HTTP Forward
870
+ Proxy for MacOS?'
871
+ sentences:
872
+ - 'passage:
873
+
874
+ <url> https://scion-http-proxy.readthedocs.io/en/latest/forward-proxy.html </url>
875
+
876
+ <type> documentation </type>
877
+
878
+ <content>
879
+
880
+ # SCION HTTP Forward Proxy
881
+
882
+
883
+ # SCION HTTP Forward Proxy
884
+
885
+
886
+ The SCION HTTP Forward Proxy provides access to HTTP(S) resources via SCION by
887
+ using a configured proxy for all SCION-enabled domains.
888
+
889
+ It is implemented as a Caddy plugin, and can be used with any compatible Caddy
890
+ server version.
891
+
892
+ If you are looking for the reverse proxy, see Reverse Proxy.
893
+
894
+
895
+ ## Prerequisites
896
+
897
+
898
+ - A SCION-enabled host in a SCION-enabled network (see Access and Host Configuration).
899
+
900
+
901
+ ## Installation
902
+
903
+
904
+ You can install the SCION HTTP Reverse Proxy plugin either building from source
905
+ or adding the plugin to an existing Caddy installation.
906
+
907
+
908
+ ### Add plugin to existing Caddy installation
909
+
910
+
911
+ If you have an existing Caddy installation, you can add the SCION HTTP Proxy plugin
912
+ to it. The plugin contains both the reverse proxy (supporting the 3 flavors of
913
+ HTTP) and the forward proxy.
914
+
915
+ Please visit the Caddy SCION plugin documentation for more information on how
916
+ to extend Caddy with SCION.
917
+
918
+
919
+ ## Build for Linux
920
+
921
+
922
+ You can build the caddy server containing the SCION plugin from source as follows:
923
+
924
+
925
+ - Download the source code from the Caddy SCION repository.
926
+
927
+ - Build the plugin by running the following command in the root directory of the
928
+ repository: go build -o ./build/scion-caddy-forward./cmd/scion-caddy-forward
929
+
930
+ - or (if you only want to build the forward and reverse proxy) go build -o ./build/scion-caddy
931
+ ./cmd/scion-caddy
932
+
933
+
934
+ Then, you can follow the steps below to install the plugin:
935
+
936
+
937
+ - Ensure that you are running the scion-endhost stack as described in the SCION
938
+ documentation.
939
+
940
+ - Copy the binary to /usr/local/bin or any other directory in your $PATH.
941
+
942
+ - Add a data directory for the plugin to store its data: sudo mkdir -p /usr/share/scion/caddy-scion
943
+
944
+ sudo chown -R $USER:$USER /usr/share/scion
945
+
946
+ - Optionally you can create a systemd service and enable it. You can use the example
947
+ service file scion-caddy.service in the examples.
948
+
949
+ - You can use the forward.json file in examples folder as reference configuration
950
+ file.
951
+
952
+ The configuration is passed using the -config flag when running the binary. If
953
+ you created a service, move it to /etc/scion/ or the path that you have configured
954
+ in the systemd service file.
955
+
956
+ - If you are running the forward proxy as a local proxy, please follow the localhost
957
+ configuration instructions to integrate it with your browser.
958
+
959
+
960
+ ## Build for MacOS
961
+
962
+
963
+ You can build the caddy server containing the SCION plugin from source as follows:
964
+
965
+
966
+ - Download the source code from the Caddy SCION repository.
967
+
968
+ - Build the plugin by running the following command in the root directory of the
969
+ repository: GOOS=darwin GOARCH=amd64 go build -o ./build/scion-caddy-forward./cmd/scion-caddy-forward
970
+
971
+ - or (if you only want to build the forward and reverse proxy) GOOS=darwin GOARCH=amd64
972
+ go build -o ./build/scion-caddy ./cmd/scion-caddy
973
+
974
+
975
+ Then, you can follow the steps below to install the plugin:
976
+
977
+
978
+ - Ensure that you are running the scion-endhost stack as described in the SCION
979
+ documentation.
980
+
981
+ - Apply the necessary permissions to the binary: chmod +x scion-caddy
982
+
983
+ - Add a data directory for the plugin to store its data: sudo mkdir -p /usr/local/scion/caddy-scion
984
+
985
+ sudo chown -R $USER /usr/local/scion
986
+
987
+ - You can use the forward.json file in examples folder as reference configuration
988
+ file.
989
+
990
+ The configuration is passed using the -config flag when running the binary.
991
+
992
+ Next, modify the JSON configuration file to point to the correct paths for the
993
+ plugin data directory. Mainly, replace /usr/share/scion/caddy-scion with /usr/local/scion/caddy-scion.
994
+
995
+ - Run the binary with the configuration file: ./scion-caddy -conf /path/to/your/scion-caddy-forward-proxy.json
996
+
997
+ - If you are running the forward proxy as a local proxy, please follow the localhost
998
+ configuration instructions to integrate it with your browser.
999
+
1000
+
1001
+ ## Build for Windows
1002
+
1003
+
1004
+ Note
1005
+
1006
+
1007
+ Experimental option. The SCION HTTP forward proxy has not been tested on Windows
1008
+ yet.
1009
+
1010
+
1011
+ You can build the caddy server containing the SCION plugin from source as follows:
1012
+
1013
+
1014
+
1015
+ </content>'
1016
+ - 'passage:
1017
+
1018
+ <citation> Seyedali Tabaeiaghdaei et al.. "Carbon-Aware Global Routing in Path-Aware
1019
+ Networks." *Proceedings of ACM International Conference on Future Energy Systems
1020
+ (e-Energy)*, 2023. </citation>
1021
+
1022
+ <type> research paper </type>
1023
+
1024
+ <page> 4 </page>
1025
+
1026
+ <content>
1027
+
1028
+ e-Energy ’23, June 20–23, 2023, Orlando, FL, USA Tabaeiaghdaei et al.
1029
+
1030
+ DisseminationModule
1031
+
1032
+ ForecastingModuleCO2Forecast DB
1033
+
1034
+ AS TopologyPower-grid CIIngress Intf. 1
1035
+
1036
+ Ingress Intf. 2
1037
+
1038
+ Egress Intf.
1039
+
1040
+ CIRo
1041
+
1042
+ ASi ASi-1
1043
+
1044
+ ASi-1
1045
+
1046
+ ASi-1ASi-1
1047
+
1048
+ ASiASi
1049
+
1050
+ Figure 2: Overview of CIRo. A participating AS runs a CIRo
1051
+
1052
+ instance. An instance consists of a forecasting module and an
1053
+
1054
+ information dissemination module. The forecasting module
1055
+
1056
+ computes path carbon intensity forecasts using a model we
1057
+
1058
+ introduce, the topology of the AS, and power-grid carbon-
1059
+
1060
+ intensity (CI) forecasts, and inserts its forecasts into the fore-
1061
+
1062
+ cast database. The dissemination module disseminates fore-
1063
+
1064
+ casts to other ASes using routing messages. It also provides
1065
+
1066
+ endpoints within an AS with these forecasts.
1067
+
1068
+ 4 MODELING CARBON INTENSITY OF
1069
+
1070
+ INTER-DOMAIN PATHS
1071
+
1072
+ In this section, we develop a model enabling CIRo to compute and
1073
+
1074
+ disseminate carbon-intensity forecasts of inter-domain paths in
1075
+
1076
+ a distributed manner that does not require ASes to disclose their
1077
+
1078
+ internal topology.
1079
+
1080
+ 4.1 Carbon Intensity of Data Transmission
1081
+
1082
+ Data transmission over a network path may cause CO2 emission
1083
+
1084
+ through two levels of indirection: forwarding traffic causes (electri-
1085
+
1086
+ cal) energy consumption on network devices, and the electricity
1087
+
1088
+ used by each device is generated from energy resources in a process
1089
+
1090
+ that may emit CO2, depending on the energy resources.
1091
+
1092
+ We define Carbon Intensity of Data Transmission over a net-
1093
+
1094
+ work path, i.e., CIDT in g/bit, as the CO 2 emission that can be
1095
+
1096
+ attributed to a unit of data for being transmitted over that path.
1097
+
1098
+ Since energy is an additive quantity, the CO2 emission of energy
1099
+
1100
+ consumption and the CO2 emission of data transmission are addi-
1101
+
1102
+ tive.
1103
+
1104
+ 4.2 Inter-Domain CIDT
1105
+
1106
+ Using CIDT’s additive property, we write the CIDT of an inter-
1107
+
1108
+ domain path (denoted by {ASsrc, ..., ASdst}) as the sum of CIDTs of
1109
+
1110
+ consecutive AS hops it consists of:
1111
+
1112
+ CIDT{ASsrc,...,ASdst} =
1113
+
1114
+ ∑︁
1115
+
1116
+ AS𝑖
1117
+
1118
+ [ing, eg] ∈{ASsrc,...,ASdst}
1119
+
1120
+ CIDTAS𝑖
1121
+
1122
+ [ing, eg]
1123
+
1124
+ , (1)
1125
+
1126
+ where AS[ing, eg] denotes an AS hop on the inter-domain path.
1127
+
1128
+ [ing, eg] denotes the ingress and egress interface pair from/to which
1129
+
1130
+ the inter-domain path enters/exits the AS hop.
1131
+
1132
+ The additive property is essential for distributed functionality
1133
+
1134
+ of CIRo: each CIRo instance only needs to compute the CIDT of
1135
+
1136
+ paths within one AS without disclosing topology information.
1137
+
1138
+ Eq. (1) does not explicitly include inter-domain links connecting
1139
+
1140
+ the border routers of neighboring ASes. That is because such links
1141
+
1142
+ are either (1) direct links connecting two routers in the same data
1143
+
1144
+ center, or (2) peerings via IXPs, IXP federations, IXP port resellers,
1145
+
1146
+ or layer-2 links to an IXP. In the first case, the preceding AS on a
1147
+
1148
+ path includes the CIDT of the link in its hop’s CIDT. In the second
1149
+
1150
+ case, previous research suggests IXPs and resellers constitute ASes
1151
+
1152
+ in a PAN context [34]. Thus, they compute their CIDT as normal
1153
+
1154
+ ASes in the same way we propose in this section.
1155
+
1156
+ 4.3 Per-Hop CIDT
1157
+
1158
+ An AS may forward traffic on multiple internal paths, e.g., using
1159
+
1160
+ equal-cost multi-path (ECMP). Therefore, we define the CIDT of
1161
+
1162
+ AS[ing, eg] as the mean CIDT of all active intra-domain paths from
1163
+
1164
+ its ingress interface to its egress interface. Thus,
1165
+
1166
+ CIDTAS[ing, eg] = 1
1167
+
1168
+ |P[ing, eg] |
1169
+
1170
+ ∑︁
1171
+
1172
+ 𝑃[ing, eg] ∈P[ing, eg]
1173
+
1174
+ CIDT𝑃[ing, eg] (2)
1175
+
1176
+ where 𝑃[ing, eg] is an intra-domain path connecting ing and eg inter-
1177
+
1178
+ faces within the AS, and P[ing, eg] is the set of all such paths. In case
1179
+
1180
+ of weighted ECMP (WECMP), Eq. (2) is substituted with a weighted
1181
+
1182
+ mean over all paths.
1183
+
1184
+ 4.4 CIDT of a Single Intra-Domain Path
1185
+
1186
+ The CIDT over a network path within an AS is composed of two
1187
+
1188
+ components: (1) the marginal CIDT, which is the result of the actual
1189
+
1190
+ amount of energy consumed to forward a bit of data over a path,
1191
+
1192
+ and (2) amortized CIDT, which is the result of energy consumed
1193
+
1194
+ to keep network paths operational and is independent of traffic
1195
+
1196
+ volume over the path. Therefore,
1197
+
1198
+ CIDT𝑃[ing, eg] = CIDTmarginal
1199
+
1200
+ 𝑃[ing, eg]
1201
+
1202
+ +CIDTamortized
1203
+
1204
+ 𝑃[ing, eg] (3)
1205
+
1206
+ Because of the additive property, we can write
1207
+
1208
+ CIDT𝑃[ing, eg] =
1209
+
1210
+ ∑︁
1211
+
1212
+ D∈𝑃[ing, eg]
1213
+
1214
+ CIDTmarginal
1215
+
1216
+ 𝐷 +CIDTamortized
1217
+
1218
+ 𝐷 (4)
1219
+
1220
+ where 𝐷 denotes a network device on 𝑃[ing, eg] . Since inter-domain
1221
+
1222
+ communication mostly takes place over backbone networks, we con-
1223
+
1224
+ sider typical backbone-network devices in this work, e.g., IP/MPLS
1225
+
1226
+ core routers and optical wavelength-division multiplexed (WDM)
1227
+
1228
+ devices [1, 25].
1229
+
1230
+ 4.4.1 Marginal CIDT. For each device 𝐷, CIDTmarginal
1231
+
1232
+ 𝐷 is the re-
1233
+
1234
+ sult of (1) the marginal energy the device consumes to forward one
1235
+
1236
+ bit of data (or marginal Energy Intensity of Data Transmission,
1237
+
1238
+ EIDTmarginal
1239
+
1240
+ 𝐷 in kWh/bit), and (2) the marginal per-bit energy con-
1241
+
1242
+ sumption of the device’s external cooling and facilities, which is
1243
+
1244
+ proportional to EIDTmarginal
1245
+
1246
+ 𝐷 [25]. Thus, the total marginal energy
1247
+
1248
+ is also proportional to EIDTmarginal
1249
+
1250
+ 𝐷 by a constant factor (𝜂D,c) de-
1251
+
1252
+ termined by the power-usage efficiency (PUE) [7, 25].
1253
+
1254
+ To compute CIDTmarginal
1255
+
1256
+ 𝐷 , we multiply the total marginal energy
1257
+
1258
+ by the 𝐶𝐼𝐸 (in g/kWh cf. §2.2) in the location of that device (CIED).
1259
+
1260
+ Therefore,
1261
+
1262
+ CIDTmarginal
1263
+
1264
+ 𝐷 = 𝜂D,cEIDTmarginal
1265
+
1266
+ D CIED (5)
1267
+
1268
+ </content>'
1269
+ - 'passage:
1270
+
1271
+ <citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
1272
+ to Formal Verification*. Springer International Publishing AG, 2022. </citation>
1273
+
1274
+ <type> book </type>
1275
+
1276
+ <page> 88 </page>
1277
+
1278
+ <content>
1279
+
1280
+ 4 Control Plane
1281
+
1282
+ 4.1.1.4 Peer Entry (PE)
1283
+
1284
+ Through a peer entry, an AS can announce that it has a peering link to another
1285
+
1286
+ AS. Peer entries have a format similar to that of hop entries, but with additional
1287
+
1288
+ fields:
1289
+
1290
+ PE “ x HF } Peer } PeerInterface } PeerMTU y, (4.7)
1291
+
1292
+ where HF contains the information necessary to create a data-plane hop, Peer
1293
+
1294
+ is the ISD-AS number of the peering AS, PeerInterface is the interface iden-
1295
+
1296
+ tifier of the peering link on the remote AS side, and PeerMTU specifies the
1297
+
1298
+ MTU on the peering link.
1299
+
1300
+ 4.1.1.5 Hop Field (HF)
1301
+
1302
+ Finally, the hop field (HF), which is contained in hop entries and peer entries,
1303
+ is
1304
+
1305
+ used directly in the data plane for packet forwarding: It specifies the incoming
1306
+
1307
+ and outgoing interfaces of the ASes on the forwarding path. To prevent forgery,
1308
+
1309
+ this information is authenticated with a message authentication code (MAC).
1310
+
1311
+ A hop field has the following format:
1312
+
1313
+ HF “ x FlagsHF } ExpTime } ConsIngress } ConsEgress } HFAuthy, (4.8)
1314
+
1315
+ where FlagsHF may be used to indicate processing options for the AS; ExpTime
1316
+
1317
+ specifies for how long the hop field is valid; 2 ConsIngress and ConsEgress
1318
+
1319
+ identify, respectively, the ingress and egress interfaces (in the direction of
1320
+ con-
1321
+
1322
+ struction, i.e., in the direction of beaconing); and HFAuthis a MAC.
1323
+
1324
+ We show how hop fields are authenticated (i.e., how the MAC is computed)
1325
+
1326
+ in §5.3.3. While the format of a SCION hop field is standardized, each AS can
1327
+
1328
+ independently choose the algorithm used to calculate the MAC.
1329
+
1330
+ 4.1.2 Beacon Extensions
1331
+
1332
+ In addition to basic routing information like hop entries and peer entries, PCBs
1333
+
1334
+ can be used to communicate additional metadata.
1335
+
1336
+ 4.1.2.1 Signed and Unsigned Extensions
1337
+
1338
+ There are two fields in PCBs that can contain optional metadata: The field
1339
+
1340
+ Ext contains extensions that are included in the signed component of an AS
1341
+
1342
+ entry and thus protected by the AS’s signature; the field ExtUnsigned contains
1343
+
1344
+ extensions that are not protected by the signature.
1345
+
1346
+ 2The expiration time of a hop field is an offset relative to the PCB’s absolute
1347
+ info field times-
1348
+
1349
+ tamp TS. The combination of the two thus allows an AS to compute the absolute
1350
+ expiration
1351
+
1352
+ time of the hop field. Data-plane packets using the hop field after the expiration
1353
+ time can be
1354
+
1355
+ dropped.
1356
+
1357
+ 68
1358
+
1359
+ </content>'
1360
+ - source_sentence: 'query: How does SCION handle modification of the address header?'
1361
+ sentences:
1362
+ - 'passage:
1363
+
1364
+ <citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
1365
+ to Formal Verification*. Springer International Publishing AG, 2022. </citation>
1366
+
1367
+ <type> book </type>
1368
+
1369
+ <page> 177 </page>
1370
+
1371
+ <content>
1372
+
1373
+ 7 Security Analysis
1374
+
1375
+ TOBIAS KLENZE , M ARKUS LEGNER , A DRIAN PERRIG , B ENJAMIN
1376
+
1377
+ ROTHENBERGER *
1378
+
1379
+ Chapter Contents
1380
+
1381
+ 7.1 Security Goals and Properties . . . . . . . . . . . . . . . . . 158
1382
+
1383
+ 7.1.1 Overall Security Properties . . . . . . . . . . . . . . . . . . 158
1384
+
1385
+ 7.1.2 Security Properties of ASes . . . . . . . . . . . . . . . . . 159
1386
+
1387
+ 7.1.3 Security Properties of End Hosts . . . . . . . . . . . . . . . 160
1388
+
1389
+ 7.2 Threat Model . . . . . . . . . . . . . . . . . . . . . . . . . . 161
1390
+
1391
+ 7.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1392
+
1393
+ 7.3.1 Baseline: Security in Today’s Internet . . . . . . . . . . . . . 163
1394
+
1395
+ 7.3.2 Security Properties Achieved by SCION . . . . . . . . . . . 164
1396
+
1397
+ 7.4 Control-Plane Security . . . . . . . . . . . . . . . . . . . . . 165
1398
+
1399
+ 7.4.1 Path Hijacking through Interposition . . . . . . . . . . . . . 166
1400
+
1401
+ 7.4.2 Creation of Spurious ASes . . . . . . . . . . . . . . . . . . 167
1402
+
1403
+ 7.4.3 Peering Link Misuse . . . . . . . . . . . . . . . . . . . . . 167
1404
+
1405
+ 7.4.4 Manipulation of the Path-Selection Process . . . . . . . . . . 168
1406
+
1407
+ 7.5 Path Authorization . . . . . . . . . . . . . . . . . . . . . . . 170
1408
+
1409
+ 7.5.1 Crafting Unauthorized Hop Fields . . . . . . . . . . . . . . 171
1410
+
1411
+ 7.5.2 Protection of Validity Period . . . . . . . . . . . . . . . . . 171
1412
+
1413
+ 7.5.3 Path Splicing . . . . . . . . . . . . . . . . . . . . . . . . 171
1414
+
1415
+ 7.6 Data-Plane Security . . . . . . . . . . . . . . . . . . . . . . . 172
1416
+
1417
+ 7.6.1 Modification of Path Header . . . . . . . . . . . . . . . . . 173
1418
+
1419
+ 7.6.2 Detectability . . . . . . . . . . . . . . . . . . . . . . . . . 173
1420
+
1421
+ 7.6.3 Modification of Address Header . . . . . . . . . . . . . . . 174
1422
+
1423
+ 7.7 Source Authentication . . . . . . . . . . . . . . . . . . . . . 174
1424
+
1425
+ 7.7.1 Reflection Attacks on Local End Hosts . . . . . . . . . . . . 175
1426
+
1427
+ 7.7.2 Reflection Attacks on End Hosts in Other ASes . . . . . . . . 175
1428
+
1429
+ 7.7.3 Defenses against Address Spoofing . . . . . . . . . . . . . . 176
1430
+
1431
+ 7.8 Absence of Kill Switches . . . . . . . . . . . . . . . . . . . . 176
1432
+
1433
+ 7.8.1 Local ISD Kill Switch . . . . . . . . . . . . . . . . . . . . 177
1434
+
1435
+ *This chapter reuses content from Barrera, Klenze, Perrig, Reischuk, Rothenberger,
1436
+ and Sza-
1437
+
1438
+ lachowski [52].
1439
+
1440
+ 157
1441
+
1442
+ </content>'
1443
+ - "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-dataplane-04.txt\
1444
+ \ </url>\n<type> specification </type>\n<content>\n\n\n\nde Kater, et al. \
1445
+ \ Expires 27 June 2025 [Page 9]\n\f\nInternet-Draft \
1446
+ \ SCION DP December 2024\n\n\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\
1447
+ \ | |\n | |\n |\
1448
+ \ Payload (L4) |\n | |\n | \
1449
+ \ |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\
1450
+ \ | |\n | SCION |\n |\
1451
+ \ |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n\
1452
+ \ | UDP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
1453
+ \ Intra-domain |\n | IP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
1454
+ \ protocol |\n | Link Layer | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
1455
+ \ --------------+\n\n Figure 1: The SCION header within the protocol stack\
1456
+ \ in a typical\n deployment.\n\n A complete SCION\
1457
+ \ address is composed of the <ISD, AS, endpoint\n address> 3-tuple. The ISD-AS\
1458
+ \ part is used for inter-domain routing.\n The endpoint address part is only\
1459
+ \ used for intra-domain forwarding at\n the source and destination ASes. This\
1460
+ \ implies that endpoint\n addresses are only required to be globally unique\
1461
+ \ within each SCION\n AS. This means, for example, that an endpoint running\
1462
+ \ a SCION stack\n using a [RFC1918] could directly communicate with another\
1463
+ \ SCION\n endpoint using a [RFC1918] endpoint address in a different SCION AS.\n\
1464
+ \n The data transmission order for SCION is the same as for IPv6 as\n defined\
1465
+ \ in Introduction of [RFC8200].\n\n1.3.2. Intra-Domain Forwarding Process\n\n\
1466
+ \ When transiting an intermediate SCION AS, a packet gets forwarded by\n at\
1467
+ \ most two SCION routers. The forwarding process consists of the\n following\
1468
+ \ steps.\n\n 1. The AS's SCION ingress router receives a SCION packet from\
1469
+ \ the\n neighboring AS.\n\n 2. The SCION router parses, validates, and\
1470
+ \ authenticates the SCION\n header.\n\n\nde Kater, et al. Expires\
1471
+ \ 27 June 2025 [Page 10]\n\f\nInternet-Draft \
1472
+ \ SCION DP December 2024\n\n\n 3. The SCION router maps the\
1473
+ \ egress interface ID in the current Hop\n Field of the SCION header to\
1474
+ \ the destination address of the\n intra-domain protocol (e.g. MPLS or\
1475
+ \ IP) of the egress border\n router.\n\n 4. The packet is forwarded within\
1476
+ \ the AS by SCION-unaware routers\n and switches based on the header of\
1477
+ \ the intra-domain protocol.\n\n 5. Upon receiving the packet, the SCION egress\
1478
+ \ router strips off the\n header of the intra-domain protocol, again validates\
1479
+ \ and updates\n the SCION header, and forwards the packet to the neighboring\n\
1480
+ \ SCION router.\n\n 6. The last SCION router on the path forwards the\
1481
+ \ packet to the\n packet's destination endpoint indicated by the field DstHostAddr\n\
1482
+ \ of the Address Header (Section 2.2).\n\n1.3.3. Configuration\n\n Border\
1483
+ \ routers require mappings from SCION interface IDs to underlay\n addresses\
1484
+ \ and such information MUST be supplied to each router in an\n out of band fashion\
1485
+ \ (e.g in a configuration file). For each link to\n a neighbor, these values\
1486
+ \ MUST be configured. A typical\n implementation will require:\n\n * Interface\
1487
+ \ ID.\n\n * Link type (core, parent, child, peer). Link type depends on\n\
1488
+ \ mutual agreements between the organizations operating the ASes at\n \
1489
+ \ each end of each link.\n\n * Neighbor ISD-AS number.\n\n * For the router\
1490
+ \ that manages the interface: the neighbor interface\n underlay address.\n\
1491
+ \n * For the routers that do not manage the interface: the address of\n \
1492
+ \ the intra-domain protocol on the router that does.\n\n In order to forward\
1493
+ \ traffic to a service endpoint address (DT/DS ==\n 0b01 in the common header\
1494
+ \ (Section 2.1)), a border router translates\n the service number into a specific\
1495
+ \ destination address. The method\n used to accomplish the translation is not\
1496
+ \ defined by this document\n and is only dependent on the implementation and\
1497
+ \ the choices of each\n AS's administrator. In current practice this is accomplished\
1498
+ \ by way\n of a configuration file.\n</content>"
1499
+ - 'passage:
1500
+
1501
+ <citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles
1502
+ to Formal Verification*. Springer International Publishing AG, 2022. </citation>
1503
+
1504
+ <type> book </type>
1505
+
1506
+ <page> 191 </page>
1507
+
1508
+ <content>
1509
+
1510
+ 7.5 Path Authorization
1511
+
1512
+ 7.5.1 Crafting Unauthorized Hop Fields
1513
+
1514
+ Hop fields are protected with MACs and, if the corresponding key is unknown,
1515
+
1516
+ the adversary can at best attempt to perform a brute-force attack to determine
1517
+
1518
+ the key. Candidate keys can be validated by checking the MAC contained in
1519
+
1520
+ sample hop fields. As SCION uses 128-bit keys by default, such an off-line
1521
+
1522
+ attack is computationally infeasible in practice. Furthermore, the keys for the
1523
+
1524
+ MAC computation are short-lived, with a validity period of 24 hours.
1525
+
1526
+ MAC schemes are not generally specified by SCION and may thus be indi-
1527
+
1528
+ vidually chosen by each AS. A hop field’s MAC is only checked by the AS that
1529
+
1530
+ created it, which enables algorithm agility for the MAC scheme. If a certain
1531
+
1532
+ MAC algorithm is discovered to be weak or insecure, ASes can quickly switch
1533
+
1534
+ to a secure algorithm without the need for coordination with other ASes. This
1535
+
1536
+ property is known as cryptographic agility and is further discussed Chapter 17.
1537
+
1538
+ The adversary might also attempt to directly brute-force a MAC (instead of
1539
+
1540
+ the MAC’s key). However, this requires an online attack : One packet would
1541
+
1542
+ need to be sent to verify each guess. For an ℓ-bit MAC, the adversary needs
1543
+
1544
+ to generate 2 ℓ´1 packets on average to forge one correct MAC. For the 6-byte
1545
+
1546
+ MACs, which are proposed at the time of writing, the adversary would need
1547
+
1548
+ to try 2 47 « 140 trillion different MACs to successfully forge the MAC of a
1549
+
1550
+ single hop field. For each incorrect hop field, the corresponding AS returns an
1551
+
1552
+ SCMP packet. Even though an adversary can observe whether a hop field has
1553
+
1554
+ been accepted, each incorrect guess is visible to a monitoring entity and thus
1555
+
1556
+ the attack can be easily detected.
1557
+
1558
+ Unfortunately, in the unlikely case where such an online brute-force attack
1559
+
1560
+ succeeds, the obtained hop field can be reused until its eventual expiration. The
1561
+
1562
+ EPIC path type presented in § 10.1 resolves this issue by introducing per-packet
1563
+
1564
+ unique MACs.
1565
+
1566
+ 7.5.2 Protection of Validity Period
1567
+
1568
+ The metadata for each path segment stored in the info field inside the path in
1569
+
1570
+ the SCION header (see § 5.4 on page 101) includes a timestamp, which is set
1571
+
1572
+ by the initiator of the PCB. This timestamp cannot be modified by an adversary
1573
+
1574
+ as it is included in the calculation of the MAC for each hop field. This ensures
1575
+
1576
+ that the timestamp cannot be set to a later date to extend the validity of the
1577
+
1578
+ path.
1579
+
1580
+ 7.5.3 Path Splicing
1581
+
1582
+ In a path-splicing attack, an adversary (either controlling an AS or an end host)
1583
+
1584
+ takes valid hop fields of multiple path segments and splices them together to
1585
+
1586
+ obtain a new valid path. We have already described such attacks in § 5.3.2 and
1587
+
1588
+ used them to motivate SCION’s MAC-chaining mechanism: By including the
1589
+
1590
+ info field of a segment in the input to each hop field’s MAC computation and
1591
+
1592
+ 171
1593
+
1594
+ </content>'
1595
+ pipeline_tag: sentence-similarity
1596
+ library_name: sentence-transformers
1597
+ metrics:
1598
+ - cosine_accuracy@1
1599
+ - cosine_accuracy@3
1600
+ - cosine_accuracy@5
1601
+ - cosine_accuracy@10
1602
+ - cosine_precision@1
1603
+ - cosine_precision@3
1604
+ - cosine_precision@5
1605
+ - cosine_precision@10
1606
+ - cosine_recall@1
1607
+ - cosine_recall@3
1608
+ - cosine_recall@5
1609
+ - cosine_recall@10
1610
+ - cosine_ndcg@10
1611
+ - cosine_mrr@10
1612
+ - cosine_map@100
1613
+ model-index:
1614
+ - name: SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
1615
+ results:
1616
+ - task:
1617
+ type: information-retrieval
1618
+ name: Information Retrieval
1619
+ dataset:
1620
+ name: dev evaluation
1621
+ type: dev-evaluation
1622
+ metrics:
1623
+ - type: cosine_accuracy@1
1624
+ value: 0.14969135802469136
1625
+ name: Cosine Accuracy@1
1626
+ - type: cosine_accuracy@3
1627
+ value: 0.33101851851851855
1628
+ name: Cosine Accuracy@3
1629
+ - type: cosine_accuracy@5
1630
+ value: 0.4209104938271605
1631
+ name: Cosine Accuracy@5
1632
+ - type: cosine_accuracy@10
1633
+ value: 0.5327932098765432
1634
+ name: Cosine Accuracy@10
1635
+ - type: cosine_precision@1
1636
+ value: 0.14969135802469136
1637
+ name: Cosine Precision@1
1638
+ - type: cosine_precision@3
1639
+ value: 0.11033950617283951
1640
+ name: Cosine Precision@3
1641
+ - type: cosine_precision@5
1642
+ value: 0.0841820987654321
1643
+ name: Cosine Precision@5
1644
+ - type: cosine_precision@10
1645
+ value: 0.05327932098765433
1646
+ name: Cosine Precision@10
1647
+ - type: cosine_recall@1
1648
+ value: 0.14969135802469136
1649
+ name: Cosine Recall@1
1650
+ - type: cosine_recall@3
1651
+ value: 0.33101851851851855
1652
+ name: Cosine Recall@3
1653
+ - type: cosine_recall@5
1654
+ value: 0.4209104938271605
1655
+ name: Cosine Recall@5
1656
+ - type: cosine_recall@10
1657
+ value: 0.5327932098765432
1658
+ name: Cosine Recall@10
1659
+ - type: cosine_ndcg@10
1660
+ value: 0.32869830265467476
1661
+ name: Cosine Ndcg@10
1662
+ - type: cosine_mrr@10
1663
+ value: 0.26489733367626966
1664
+ name: Cosine Mrr@10
1665
+ - type: cosine_map@100
1666
+ value: 0.27706589741663973
1667
+ name: Cosine Map@100
1668
+ ---
1669
+
1670
+ # SentenceTransformer based on sentence-transformers/all-MiniLM-L6-v2
1671
+
1672
+ This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2). It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
1673
+
1674
+ ## Model Details
1675
+
1676
+ ### Model Description
1677
+ - **Model Type:** Sentence Transformer
1678
+ - **Base model:** [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) <!-- at revision fa97f6e7cb1a59073dff9e6b13e2715cf7475ac9 -->
1679
+ - **Maximum Sequence Length:** 256 tokens
1680
+ - **Output Dimensionality:** 384 dimensions
1681
+ - **Similarity Function:** Cosine Similarity
1682
+ <!-- - **Training Dataset:** Unknown -->
1683
+ <!-- - **Language:** Unknown -->
1684
+ <!-- - **License:** Unknown -->
1685
+
1686
+ ### Model Sources
1687
+
1688
+ - **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
1689
+ - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
1690
+ - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
1691
+
1692
+ ### Full Model Architecture
1693
+
1694
+ ```
1695
+ SentenceTransformer(
1696
+ (0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel
1697
+ (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
1698
+ (2): Normalize()
1699
+ )
1700
+ ```
1701
+
1702
+ ## Usage
1703
+
1704
+ ### Direct Usage (Sentence Transformers)
1705
+
1706
+ First install the Sentence Transformers library:
1707
+
1708
+ ```bash
1709
+ pip install -U sentence-transformers
1710
+ ```
1711
+
1712
+ Then you can load this model and run inference.
1713
+ ```python
1714
+ from sentence_transformers import SentenceTransformer
1715
+
1716
+ # Download from the 🤗 Hub
1717
+ model = SentenceTransformer("tjohn327/scion-all-MiniLM-L6-v2")
1718
+ # Run inference
1719
+ sentences = [
1720
+ 'query: How does SCION handle modification of the address header?',
1721
+ 'passage:\n<citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles to Formal Verification*. Springer International Publishing AG, 2022. </citation>\n<type> book </type>\n<page> 177 </page>\n<content>\n7 Security Analysis\nTOBIAS KLENZE , M ARKUS LEGNER , A DRIAN PERRIG , B ENJAMIN\nROTHENBERGER *\nChapter Contents\n7.1 Security Goals and Properties . . . . . . . . . . . . . . . . . 158\n7.1.1 Overall Security Properties . . . . . . . . . . . . . . . . . . 158\n7.1.2 Security Properties of ASes . . . . . . . . . . . . . . . . . 159\n7.1.3 Security Properties of End Hosts . . . . . . . . . . . . . . . 160\n7.2 Threat Model . . . . . . . . . . . . . . . . . . . . . . . . . . 161\n7.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162\n7.3.1 Baseline: Security in Today’s Internet . . . . . . . . . . . . . 163\n7.3.2 Security Properties Achieved by SCION . . . . . . . . . . . 164\n7.4 Control-Plane Security . . . . . . . . . . . . . . . . . . . . . 165\n7.4.1 Path Hijacking through Interposition . . . . . . . . . . . . . 166\n7.4.2 Creation of Spurious ASes . . . . . . . . . . . . . . . . . . 167\n7.4.3 Peering Link Misuse . . . . . . . . . . . . . . . . . . . . . 167\n7.4.4 Manipulation of the Path-Selection Process . . . . . . . . . . 168\n7.5 Path Authorization . . . . . . . . . . . . . . . . . . . . . . . 170\n7.5.1 Crafting Unauthorized Hop Fields . . . . . . . . . . . . . . 171\n7.5.2 Protection of Validity Period . . . . . . . . . . . . . . . . . 171\n7.5.3 Path Splicing . . . . . . . . . . . . . . . . . . . . . . . . 171\n7.6 Data-Plane Security . . . . . . . . . . . . . . . . . . . . . . . 172\n7.6.1 Modification of Path Header . . . . . . . . . . . . . . . . . 173\n7.6.2 Detectability . . . . . . . . . . . . . . . . . . . . . . . . . 173\n7.6.3 Modification of Address Header . . . . . . . . . . . . . . . 174\n7.7 Source Authentication . . . . . . . . . . . . . . . . . . . . . 174\n7.7.1 Reflection Attacks on Local End Hosts . . . . . . . . . . . . 175\n7.7.2 Reflection Attacks on End Hosts in Other ASes . . . . . . . . 175\n7.7.3 Defenses against Address Spoofing . . . . . . . . . . . . . . 176\n7.8 Absence of Kill Switches . . . . . . . . . . . . . . . . . . . . 176\n7.8.1 Local ISD Kill Switch . . . . . . . . . . . . . . . . . . . . 177\n*This chapter reuses content from Barrera, Klenze, Perrig, Reischuk, Rothenberger, and Sza-\nlachowski [52].\n157\n</content>',
1722
+ "passage:\n<url> https://www.ietf.org/archive/id/draft-dekater-scion-dataplane-04.txt </url>\n<type> specification </type>\n<content>\n\n\n\nde Kater, et al. Expires 27 June 2025 [Page 9]\n\x0c\nInternet-Draft SCION DP December 2024\n\n\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | |\n | |\n | Payload (L4) |\n | |\n | |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n | |\n | SCION |\n | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n | UDP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Intra-domain |\n | IP | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ protocol |\n | Link Layer | |\n +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --------------+\n\n Figure 1: The SCION header within the protocol stack in a typical\n deployment.\n\n A complete SCION address is composed of the <ISD, AS, endpoint\n address> 3-tuple. The ISD-AS part is used for inter-domain routing.\n The endpoint address part is only used for intra-domain forwarding at\n the source and destination ASes. This implies that endpoint\n addresses are only required to be globally unique within each SCION\n AS. This means, for example, that an endpoint running a SCION stack\n using a [RFC1918] could directly communicate with another SCION\n endpoint using a [RFC1918] endpoint address in a different SCION AS.\n\n The data transmission order for SCION is the same as for IPv6 as\n defined in Introduction of [RFC8200].\n\n1.3.2. Intra-Domain Forwarding Process\n\n When transiting an intermediate SCION AS, a packet gets forwarded by\n at most two SCION routers. The forwarding process consists of the\n following steps.\n\n 1. The AS's SCION ingress router receives a SCION packet from the\n neighboring AS.\n\n 2. The SCION router parses, validates, and authenticates the SCION\n header.\n\n\nde Kater, et al. Expires 27 June 2025 [Page 10]\n\x0c\nInternet-Draft SCION DP December 2024\n\n\n 3. The SCION router maps the egress interface ID in the current Hop\n Field of the SCION header to the destination address of the\n intra-domain protocol (e.g. MPLS or IP) of the egress border\n router.\n\n 4. The packet is forwarded within the AS by SCION-unaware routers\n and switches based on the header of the intra-domain protocol.\n\n 5. Upon receiving the packet, the SCION egress router strips off the\n header of the intra-domain protocol, again validates and updates\n the SCION header, and forwards the packet to the neighboring\n SCION router.\n\n 6. The last SCION router on the path forwards the packet to the\n packet's destination endpoint indicated by the field DstHostAddr\n of the Address Header (Section 2.2).\n\n1.3.3. Configuration\n\n Border routers require mappings from SCION interface IDs to underlay\n addresses and such information MUST be supplied to each router in an\n out of band fashion (e.g in a configuration file). For each link to\n a neighbor, these values MUST be configured. A typical\n implementation will require:\n\n * Interface ID.\n\n * Link type (core, parent, child, peer). Link type depends on\n mutual agreements between the organizations operating the ASes at\n each end of each link.\n\n * Neighbor ISD-AS number.\n\n * For the router that manages the interface: the neighbor interface\n underlay address.\n\n * For the routers that do not manage the interface: the address of\n the intra-domain protocol on the router that does.\n\n In order to forward traffic to a service endpoint address (DT/DS ==\n 0b01 in the common header (Section 2.1)), a border router translates\n the service number into a specific destination address. The method\n used to accomplish the translation is not defined by this document\n and is only dependent on the implementation and the choices of each\n AS's administrator. In current practice this is accomplished by way\n of a configuration file.\n</content>",
1723
+ ]
1724
+ embeddings = model.encode(sentences)
1725
+ print(embeddings.shape)
1726
+ # [3, 384]
1727
+
1728
+ # Get the similarity scores for the embeddings
1729
+ similarities = model.similarity(embeddings, embeddings)
1730
+ print(similarities.shape)
1731
+ # [3, 3]
1732
+ ```
1733
+
1734
+ <!--
1735
+ ### Direct Usage (Transformers)
1736
+
1737
+ <details><summary>Click to see the direct usage in Transformers</summary>
1738
+
1739
+ </details>
1740
+ -->
1741
+
1742
+ <!--
1743
+ ### Downstream Usage (Sentence Transformers)
1744
+
1745
+ You can finetune this model on your own dataset.
1746
+
1747
+ <details><summary>Click to expand</summary>
1748
+
1749
+ </details>
1750
+ -->
1751
+
1752
+ <!--
1753
+ ### Out-of-Scope Use
1754
+
1755
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
1756
+ -->
1757
+
1758
+ ## Evaluation
1759
+
1760
+ ### Metrics
1761
+
1762
+ #### Information Retrieval
1763
+
1764
+ * Dataset: `dev-evaluation`
1765
+ * Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)
1766
+
1767
+ | Metric | Value |
1768
+ |:--------------------|:-----------|
1769
+ | cosine_accuracy@1 | 0.1497 |
1770
+ | cosine_accuracy@3 | 0.331 |
1771
+ | cosine_accuracy@5 | 0.4209 |
1772
+ | cosine_accuracy@10 | 0.5328 |
1773
+ | cosine_precision@1 | 0.1497 |
1774
+ | cosine_precision@3 | 0.1103 |
1775
+ | cosine_precision@5 | 0.0842 |
1776
+ | cosine_precision@10 | 0.0533 |
1777
+ | cosine_recall@1 | 0.1497 |
1778
+ | cosine_recall@3 | 0.331 |
1779
+ | cosine_recall@5 | 0.4209 |
1780
+ | cosine_recall@10 | 0.5328 |
1781
+ | **cosine_ndcg@10** | **0.3287** |
1782
+ | cosine_mrr@10 | 0.2649 |
1783
+ | cosine_map@100 | 0.2771 |
1784
+
1785
+ <!--
1786
+ ## Bias, Risks and Limitations
1787
+
1788
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
1789
+ -->
1790
+
1791
+ <!--
1792
+ ### Recommendations
1793
+
1794
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
1795
+ -->
1796
+
1797
+ ## Training Details
1798
+
1799
+ ### Training Dataset
1800
+
1801
+ #### Unnamed Dataset
1802
+
1803
+ * Size: 23,200 training samples
1804
+ * Columns: <code>sentence_0</code>, <code>sentence_1</code>, and <code>label</code>
1805
+ * Approximate statistics based on the first 1000 samples:
1806
+ | | sentence_0 | sentence_1 | label |
1807
+ |:--------|:----------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------|
1808
+ | type | string | string | float |
1809
+ | details | <ul><li>min: 9 tokens</li><li>mean: 19.41 tokens</li><li>max: 34 tokens</li></ul> | <ul><li>min: 111 tokens</li><li>mean: 254.6 tokens</li><li>max: 256 tokens</li></ul> | <ul><li>min: 1.0</li><li>mean: 1.0</li><li>max: 1.0</li></ul> |
1810
+ * Samples:
1811
+ | sentence_0 | sentence_1 | label |
1812
+ |:-------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------|
1813
+ | <code>query: Explain the role of the Packet Timestamp in SCION data packets.</code> | <code>passage:<br><url> https://docs.scion.org/en/latest/protocols/scion-header.html </url><br><type> documentation </type><br><content><br>Control plane:<br>The beaconing process is the same as for SCION, but the ASes not<br>only add the 6 bytes of the truncated MAC to the beacon, but further<br>append the remaining 10 bytes.<br><br>Data plane:<br>The source fetches the path, including all the 6-byte short hop<br>authenticators and the remaining 10 bytes of the authenticators,<br>from a (hidden) path server. We will refer to the fully assembled 16-byte<br>authenticators of the penultimate and last hop on the path as<br>\({\sigma_{\text{PH}}}\) for the penultimate hop (PH) and<br>\({\sigma_{\text{LH}}}\) for the last hop (LH), respectively.<br><br>The source then copies the short authenticators to the corresponding<br>MAC-subfield of the Hop Fields as for SCION path type packets and<br>adds the current Packet Timestamp. In addition, it calculates the<br>PHVF and LHVF as follows:<br><br>Here, “Timestamp” is the Timestamp from the first Info Field and<br>“Flags...</code> | <code>1.0</code> |
1814
+ | <code>query: What does the Dolev–Yao closure imply for intruder knowledge in SCION?</code> | <code>passage:<br><citation> Laurent Chuat et al.. *The Complete Guide to SCION. From Design Principles to Formal Verification*. Springer International Publishing AG, 2022. </citation><br><type> book </type><br><page> 526 </page><br><content><br>22 Design-Level Verification<br>hop field and tok field, respectively. This check ensures that the hop field (and<br>indeed the whole or partial path) is authorized. In SCION, this corresponds<br>to Item 6 of the checks performed by the ingress border router. Additionally,<br>the same check is performed by the egress border router. In the event system<br>that we present here, we do not include the update of the packet token field,<br>which is required to model Item 5 of the SCION ingress border router, where<br>the segment identifier is updated. We introduce instead an update mechanism<br>as an extension of our framework in § 22.4.5.<br>The events sendc and deliverc use the function fwdc to forward a packet:<br>fwdcpmq “ p |tok “ tokpmq, past “ hdpfutpmqq#pastpmq, fut “ tlpfutpmqq,<br>hist “ hdpfutpmqq#...</code> | <code>1.0</code> |
1815
+ | <code>query: How does the trust anchor pool function in SCION's certification path?</code> | <code>passage:<br><url> https://www.ietf.org/archive/id/draft-dekater-scion-pki-08.txt </url><br><type> specification </type><br><content><br><br>de Kater, et al. Expires 3 July 2025 [Page 40]<br> <br>Internet-Draft SCION CP-PKI December 2024<br><br><br> Two TRCs with byte equal payloads can be considered as equal because<br> the TRC payload exactly defines which signatures must be attached in<br> the signed TRC:<br><br> * The REQUIRED signatures from voting certificates are explicitly<br> mentioned in the votes field of the payload: If index "i" is part<br> of the votes field, then the voting certificate at position i in<br> the certificates sequence of the predecessor TRC casted a vote on<br> the successor TRC. See also Section 3.1.2.2.6.<br><br> * The REQUIRED signatures for new certificates are implied by the<br> currently valid TRC payload, and, in case of a TRC update, the<br> predecessor payload.<br><br>3.1.4. Certification Path - Trust Anchor Pool<br><br> Th...</code> | <code>1.0</code> |
1816
+ * Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
1817
+ ```json
1818
+ {
1819
+ "scale": 20.0,
1820
+ "similarity_fct": "cos_sim"
1821
+ }
1822
+ ```
1823
+
1824
+ ### Training Hyperparameters
1825
+ #### Non-Default Hyperparameters
1826
+
1827
+ - `eval_strategy`: steps
1828
+ - `per_device_train_batch_size`: 200
1829
+ - `per_device_eval_batch_size`: 200
1830
+ - `fp16`: True
1831
+ - `multi_dataset_batch_sampler`: round_robin
1832
+
1833
+ #### All Hyperparameters
1834
+ <details><summary>Click to expand</summary>
1835
+
1836
+ - `overwrite_output_dir`: False
1837
+ - `do_predict`: False
1838
+ - `eval_strategy`: steps
1839
+ - `prediction_loss_only`: True
1840
+ - `per_device_train_batch_size`: 200
1841
+ - `per_device_eval_batch_size`: 200
1842
+ - `per_gpu_train_batch_size`: None
1843
+ - `per_gpu_eval_batch_size`: None
1844
+ - `gradient_accumulation_steps`: 1
1845
+ - `eval_accumulation_steps`: None
1846
+ - `torch_empty_cache_steps`: None
1847
+ - `learning_rate`: 5e-05
1848
+ - `weight_decay`: 0.0
1849
+ - `adam_beta1`: 0.9
1850
+ - `adam_beta2`: 0.999
1851
+ - `adam_epsilon`: 1e-08
1852
+ - `max_grad_norm`: 1
1853
+ - `num_train_epochs`: 3
1854
+ - `max_steps`: -1
1855
+ - `lr_scheduler_type`: linear
1856
+ - `lr_scheduler_kwargs`: {}
1857
+ - `warmup_ratio`: 0.0
1858
+ - `warmup_steps`: 0
1859
+ - `log_level`: passive
1860
+ - `log_level_replica`: warning
1861
+ - `log_on_each_node`: True
1862
+ - `logging_nan_inf_filter`: True
1863
+ - `save_safetensors`: True
1864
+ - `save_on_each_node`: False
1865
+ - `save_only_model`: False
1866
+ - `restore_callback_states_from_checkpoint`: False
1867
+ - `no_cuda`: False
1868
+ - `use_cpu`: False
1869
+ - `use_mps_device`: False
1870
+ - `seed`: 42
1871
+ - `data_seed`: None
1872
+ - `jit_mode_eval`: False
1873
+ - `use_ipex`: False
1874
+ - `bf16`: False
1875
+ - `fp16`: True
1876
+ - `fp16_opt_level`: O1
1877
+ - `half_precision_backend`: auto
1878
+ - `bf16_full_eval`: False
1879
+ - `fp16_full_eval`: False
1880
+ - `tf32`: None
1881
+ - `local_rank`: 0
1882
+ - `ddp_backend`: None
1883
+ - `tpu_num_cores`: None
1884
+ - `tpu_metrics_debug`: False
1885
+ - `debug`: []
1886
+ - `dataloader_drop_last`: False
1887
+ - `dataloader_num_workers`: 0
1888
+ - `dataloader_prefetch_factor`: None
1889
+ - `past_index`: -1
1890
+ - `disable_tqdm`: False
1891
+ - `remove_unused_columns`: True
1892
+ - `label_names`: None
1893
+ - `load_best_model_at_end`: False
1894
+ - `ignore_data_skip`: False
1895
+ - `fsdp`: []
1896
+ - `fsdp_min_num_params`: 0
1897
+ - `fsdp_config`: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
1898
+ - `fsdp_transformer_layer_cls_to_wrap`: None
1899
+ - `accelerator_config`: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
1900
+ - `deepspeed`: None
1901
+ - `label_smoothing_factor`: 0.0
1902
+ - `optim`: adamw_torch
1903
+ - `optim_args`: None
1904
+ - `adafactor`: False
1905
+ - `group_by_length`: False
1906
+ - `length_column_name`: length
1907
+ - `ddp_find_unused_parameters`: None
1908
+ - `ddp_bucket_cap_mb`: None
1909
+ - `ddp_broadcast_buffers`: False
1910
+ - `dataloader_pin_memory`: True
1911
+ - `dataloader_persistent_workers`: False
1912
+ - `skip_memory_metrics`: True
1913
+ - `use_legacy_prediction_loop`: False
1914
+ - `push_to_hub`: False
1915
+ - `resume_from_checkpoint`: None
1916
+ - `hub_model_id`: None
1917
+ - `hub_strategy`: every_save
1918
+ - `hub_private_repo`: None
1919
+ - `hub_always_push`: False
1920
+ - `gradient_checkpointing`: False
1921
+ - `gradient_checkpointing_kwargs`: None
1922
+ - `include_inputs_for_metrics`: False
1923
+ - `include_for_metrics`: []
1924
+ - `eval_do_concat_batches`: True
1925
+ - `fp16_backend`: auto
1926
+ - `push_to_hub_model_id`: None
1927
+ - `push_to_hub_organization`: None
1928
+ - `mp_parameters`:
1929
+ - `auto_find_batch_size`: False
1930
+ - `full_determinism`: False
1931
+ - `torchdynamo`: None
1932
+ - `ray_scope`: last
1933
+ - `ddp_timeout`: 1800
1934
+ - `torch_compile`: False
1935
+ - `torch_compile_backend`: None
1936
+ - `torch_compile_mode`: None
1937
+ - `dispatch_batches`: None
1938
+ - `split_batches`: None
1939
+ - `include_tokens_per_second`: False
1940
+ - `include_num_input_tokens_seen`: False
1941
+ - `neftune_noise_alpha`: None
1942
+ - `optim_target_modules`: None
1943
+ - `batch_eval_metrics`: False
1944
+ - `eval_on_start`: False
1945
+ - `use_liger_kernel`: False
1946
+ - `eval_use_gather_object`: False
1947
+ - `average_tokens_across_devices`: False
1948
+ - `prompts`: None
1949
+ - `batch_sampler`: batch_sampler
1950
+ - `multi_dataset_batch_sampler`: round_robin
1951
+
1952
+ </details>
1953
+
1954
+ ### Training Logs
1955
+ | Epoch | Step | dev-evaluation_cosine_ndcg@10 |
1956
+ |:-----:|:----:|:-----------------------------:|
1957
+ | 1.0 | 58 | 0.3021 |
1958
+ | 2.0 | 116 | 0.3203 |
1959
+ | 3.0 | 174 | 0.3287 |
1960
+
1961
+
1962
+ ### Framework Versions
1963
+ - Python: 3.12.3
1964
+ - Sentence Transformers: 3.4.1
1965
+ - Transformers: 4.49.0
1966
+ - PyTorch: 2.6.0+cu124
1967
+ - Accelerate: 1.4.0
1968
+ - Datasets: 3.3.2
1969
+ - Tokenizers: 0.21.0
1970
+
1971
+ ## Citation
1972
+
1973
+ ### BibTeX
1974
+
1975
+ #### Sentence Transformers
1976
+ ```bibtex
1977
+ @inproceedings{reimers-2019-sentence-bert,
1978
+ title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
1979
+ author = "Reimers, Nils and Gurevych, Iryna",
1980
+ booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
1981
+ month = "11",
1982
+ year = "2019",
1983
+ publisher = "Association for Computational Linguistics",
1984
+ url = "https://arxiv.org/abs/1908.10084",
1985
+ }
1986
+ ```
1987
+
1988
+ #### MultipleNegativesRankingLoss
1989
+ ```bibtex
1990
+ @misc{henderson2017efficient,
1991
+ title={Efficient Natural Language Response Suggestion for Smart Reply},
1992
+ author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
1993
+ year={2017},
1994
+ eprint={1705.00652},
1995
+ archivePrefix={arXiv},
1996
+ primaryClass={cs.CL}
1997
+ }
1998
+ ```
1999
+
2000
+ <!--
2001
+ ## Glossary
2002
+
2003
+ *Clearly define terms in order to be accessible across audiences.*
2004
+ -->
2005
+
2006
+ <!--
2007
+ ## Model Card Authors
2008
+
2009
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
2010
+ -->
2011
+
2012
+ <!--
2013
+ ## Model Card Contact
2014
+
2015
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
2016
+ -->
config.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "sentence-transformers/all-MiniLM-L6-v2",
3
+ "architectures": [
4
+ "BertModel"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "classifier_dropout": null,
8
+ "gradient_checkpointing": false,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 384,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 1536,
14
+ "layer_norm_eps": 1e-12,
15
+ "max_position_embeddings": 512,
16
+ "model_type": "bert",
17
+ "num_attention_heads": 12,
18
+ "num_hidden_layers": 6,
19
+ "pad_token_id": 0,
20
+ "position_embedding_type": "absolute",
21
+ "torch_dtype": "float32",
22
+ "transformers_version": "4.49.0",
23
+ "type_vocab_size": 2,
24
+ "use_cache": true,
25
+ "vocab_size": 30522
26
+ }
config_sentence_transformers.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "__version__": {
3
+ "sentence_transformers": "3.4.1",
4
+ "transformers": "4.49.0",
5
+ "pytorch": "2.6.0+cu124"
6
+ },
7
+ "prompts": {},
8
+ "default_prompt_name": null,
9
+ "similarity_fn_name": "cosine"
10
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7dd9a00dc4b88130472da5d291d1230c3eb1271a204cc1c34c47e4fcffe17262
3
+ size 90864192
modules.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "idx": 0,
4
+ "name": "0",
5
+ "path": "",
6
+ "type": "sentence_transformers.models.Transformer"
7
+ },
8
+ {
9
+ "idx": 1,
10
+ "name": "1",
11
+ "path": "1_Pooling",
12
+ "type": "sentence_transformers.models.Pooling"
13
+ },
14
+ {
15
+ "idx": 2,
16
+ "name": "2",
17
+ "path": "2_Normalize",
18
+ "type": "sentence_transformers.models.Normalize"
19
+ }
20
+ ]
sentence_bert_config.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "max_seq_length": 256,
3
+ "do_lower_case": false
4
+ }
special_tokens_map.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": {
3
+ "content": "[CLS]",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "mask_token": {
10
+ "content": "[MASK]",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": {
17
+ "content": "[PAD]",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "sep_token": {
24
+ "content": "[SEP]",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ },
30
+ "unk_token": {
31
+ "content": "[UNK]",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false
36
+ }
37
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "[PAD]",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "100": {
12
+ "content": "[UNK]",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "101": {
20
+ "content": "[CLS]",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "102": {
28
+ "content": "[SEP]",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "103": {
36
+ "content": "[MASK]",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "clean_up_tokenization_spaces": false,
45
+ "cls_token": "[CLS]",
46
+ "do_basic_tokenize": true,
47
+ "do_lower_case": true,
48
+ "extra_special_tokens": {},
49
+ "mask_token": "[MASK]",
50
+ "max_length": 128,
51
+ "model_max_length": 256,
52
+ "never_split": null,
53
+ "pad_to_multiple_of": null,
54
+ "pad_token": "[PAD]",
55
+ "pad_token_type_id": 0,
56
+ "padding_side": "right",
57
+ "sep_token": "[SEP]",
58
+ "stride": 0,
59
+ "strip_accents": null,
60
+ "tokenize_chinese_chars": true,
61
+ "tokenizer_class": "BertTokenizer",
62
+ "truncation_side": "right",
63
+ "truncation_strategy": "longest_first",
64
+ "unk_token": "[UNK]"
65
+ }
vocab.txt ADDED
The diff for this file is too large to render. See raw diff