Preface |
|
xv | |
Contributors |
|
xvii | |
1 Introduction |
|
1 | (8) |
|
|
|
1 | (9) |
|
|
2 | (1) |
|
|
3 | (3) |
|
|
6 | (1) |
|
1.1.4 Outline of the Rest of This Book |
|
|
6 | (1) |
|
|
7 | (2) |
2 Delay and Disruption Tolerant Network Architecture |
|
9 | (28) |
|
|
|
|
|
10 | (2) |
|
2.2 The Internet Architecture |
|
|
12 | (2) |
|
|
14 | (1) |
|
|
15 | (3) |
|
2.4.1 Store-Carry-and-Forward |
|
|
16 | (1) |
|
2.4.2 Network of Networks |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (3) |
|
|
21 | (6) |
|
2.6.1 Block Processing Control Flags |
|
|
23 | (1) |
|
2.6.2 Primary and Payload Block Format |
|
|
23 | (3) |
|
2.6.3 Canonical Bundle Block Format |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
2.9 Local Bundle Delivery |
|
|
29 | (1) |
|
2.10 Bundle Fragmentation |
|
|
30 | (1) |
|
|
31 | (1) |
|
2.12 Administrative Record Processing |
|
|
32 | (2) |
|
2.12.1 Administrative Records |
|
|
32 | (1) |
|
2.12.2 Bundle Status Reports |
|
|
32 | (1) |
|
2.12.3 Generation of Administrative Records |
|
|
33 | (1) |
|
2.13 Convergence Layers Service |
|
|
34 | (1) |
|
2.14 Bundle Protocol Security |
|
|
34 | (1) |
|
|
35 | (2) |
3 DTN Platforms |
|
37 | (52) |
|
|
|
|
38 | (1) |
|
3.2 DTN2 : Reference Implementation |
|
|
39 | (2) |
|
|
39 | (2) |
|
3.3 IBR-DTN : Embedded Systems and Mobile Nodes |
|
|
41 | (3) |
|
3.3.1 IBR-DTN Architecture |
|
|
42 | (2) |
|
3.4 ION : Space Communication |
|
|
44 | (35) |
|
3.4.1 Structure and Function |
|
|
45 | (2) |
|
3.4.2 Constraints on the Design |
|
|
47 | (2) |
|
|
48 | (1) |
|
3.4.2.2 Processor Constraints |
|
|
48 | (1) |
|
|
49 | (2) |
|
|
49 | (1) |
|
3.4.3.2 Zero-Copy Procedures |
|
|
50 | (1) |
|
3.4.3.3 Highly Distributed Processing |
|
|
50 | (1) |
|
|
50 | (1) |
|
3.4.4 Organizational Overview |
|
|
51 | (3) |
|
3.4.5 Resource Management in ION |
|
|
54 | (2) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (5) |
|
3.4.6.1 Interplanetary Communication Infrastructure (ICI) |
|
|
56 | (2) |
|
3.4.6.2 Licklider Transmission Protocol (LTP) |
|
|
58 | (1) |
|
3.4.6.3 Bundle Protocol (BP) |
|
|
59 | (1) |
|
3.4.6.4 Asynchronous Message Service (AMS) |
|
|
59 | (1) |
|
3.4.6.5 Datagram Retransmission (DGR) |
|
|
60 | (1) |
|
3.4.6.6 CCSDS File Delivery Protocol (CFDP) |
|
|
60 | (1) |
|
3.4.6.7 Bundle Streaming Service (BSS) |
|
|
60 | (1) |
|
3.4.7 Network Operation Concepts |
|
|
61 | (12) |
|
3.4.7.1 Fragmentation and Reassembly |
|
|
61 | (1) |
|
3.4.7.2 Bandwidth Management |
|
|
62 | (1) |
|
|
63 | (3) |
|
3.4.7.4 Route Computation |
|
|
66 | (2) |
|
3.4.7.5 Delivery Assurance |
|
|
68 | (2) |
|
|
70 | (1) |
|
|
70 | (1) |
|
3.4.7.8 Storage Management |
|
|
71 | (2) |
|
3.4.8 BP/LTP Detail-How It Works |
|
|
73 | (6) |
|
|
74 | (1) |
|
3.4.8.2 Control and Data Flow |
|
|
75 | (4) |
|
3.5 μ DTN : Sensor Networks |
|
|
79 | (2) |
|
3.5.1 μ Sensor Networks DTN Architecture |
|
|
79 | (2) |
|
3.6 Other Implementations |
|
|
81 | (6) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
83 | (1) |
|
|
84 | (2) |
|
|
86 | (1) |
|
|
87 | (2) |
4 Case Study: Interplanetary Networks |
|
89 | (24) |
|
|
|
|
89 | (2) |
|
4.2 Deep Space Communications Main Features |
|
|
91 | (6) |
|
|
97 | (2) |
|
4.4 Interplanetary Network |
|
|
99 | (1) |
|
|
100 | (11) |
|
4.5.1 Solar System Internetwork Architecture |
|
|
104 | (7) |
|
|
111 | (2) |
5 Routing in Delay and Disruption Tolerant Networks |
|
113 | (26) |
|
|
|
|
|
114 | (1) |
|
|
114 | (1) |
|
|
115 | (12) |
|
5.3.1 Replication-Based Routing |
|
|
117 | (7) |
|
5.3.1.1 Unlimited Replication |
|
|
117 | (3) |
|
5.3.1.2 Quota-Based Replication |
|
|
120 | (4) |
|
5.3.2 Forwarding-Based Routing Protocols |
|
|
124 | (3) |
|
5.4 Contact Graph Routing (CGR) |
|
|
127 | (9) |
|
|
128 | (1) |
|
|
129 | (2) |
|
5.4.3 Dynamic Route Selection Algorithm |
|
|
131 | (2) |
|
5.4.4 Contact Graph Routing Extension Block |
|
|
133 | (2) |
|
5.4.5 CGR Route Exception Handling |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
136 | (3) |
6 DTN Coding |
|
139 | (66) |
|
|
|
|
|
|
140 | (1) |
|
|
141 | (32) |
|
6.2.1 Fundamentals on Network Coding |
|
|
141 | (9) |
|
6.2.1.1 Network Coding by Example |
|
|
141 | (2) |
|
6.2.1.2 Basic Network Coding Operations in Finite Fields |
|
|
143 | (3) |
|
6.2.1.3 Advantages and Drawbacks of Network Coding |
|
|
146 | (3) |
|
6.2.1.4 Application of Network Coding |
|
|
149 | (1) |
|
6.2.2 Survey on Network Coding in the DTN Context |
|
|
150 | (16) |
|
6.2.2.1 Central Criteria for Differentiation |
|
|
151 | (4) |
|
6.2.2.2 Classification of Approaches by Knowledge |
|
|
155 | (4) |
|
6.2.2.3 Further Research Domains |
|
|
159 | (2) |
|
6.2.2.4 Overview of Approaches |
|
|
161 | (1) |
|
6.2.2.5 Open Research Problems |
|
|
162 | (4) |
|
6.2.3 Implementation Considerations and Case Study |
|
|
166 | (7) |
|
|
166 | (3) |
|
|
169 | (4) |
|
6.3 Coding at the Physical Layer and Packet-Level Coding |
|
|
173 | (29) |
|
6.3.1 Basics of Channel Coding with Application to CCSDS Links |
|
|
173 | (7) |
|
6.3.1.1 Binary Linear Block Codes |
|
|
176 | (1) |
|
6.3.1.2 Channel Codes for Telemetry (Downlink) |
|
|
177 | (2) |
|
6.3.1.3 Channel Codes for Telecommand (Uplink) |
|
|
179 | (1) |
|
6.3.1.4 Channel Codes for Packet Erasures |
|
|
179 | (1) |
|
|
180 | (13) |
|
|
180 | (4) |
|
6.3.2.2 Low-Density Parity-Check Codes for Erasure Channels |
|
|
184 | (8) |
|
6.3.2.3 Erasure Codes in CCSDS |
|
|
192 | (1) |
|
|
193 | (16) |
|
6.3.3.1 Positioning of Erasure Codes in the Protocol Stack |
|
|
193 | (4) |
|
6.3.3.2 Exemplary Protocol Design |
|
|
197 | (3) |
|
6.3.3.3 Performance Results |
|
|
200 | (2) |
|
|
202 | (3) |
7 DTN for Spacecraft |
|
205 | (26) |
|
|
|
206 | (2) |
|
7.2 Current Model for Space Missions |
|
|
208 | (1) |
|
7.3 DTN Model for Space Missions |
|
|
209 | (7) |
|
7.3.1 Space Internetworking Protocol Alternatives |
|
|
212 | (1) |
|
7.3.2 Space Internetworking CONOPS |
|
|
213 | (3) |
|
7.4 DTN Capabilities for Space Missions |
|
|
216 | (6) |
|
|
216 | (2) |
|
7.4.2 Convergence Layer Architecture and LTP |
|
|
218 | (1) |
|
7.4.3 Aggregate Custody Signaling |
|
|
219 | (1) |
|
7.4.4 Delay-Tolerant Payload Conditioning (DTPC) |
|
|
220 | (1) |
|
7.4.5 DTPC and LT? Together |
|
|
220 | (1) |
|
7.4.6 Extended Class of Service |
|
|
221 | (1) |
|
7.5 Benefits of DTN to Space Missions |
|
|
222 | (2) |
|
7.5.1 Automated Data Transfer |
|
|
222 | (1) |
|
|
223 | (1) |
|
7.5.3 In-Space Cross-Support |
|
|
224 | (1) |
|
7.6 Standard SSI Applications |
|
|
224 | (2) |
|
7.7 DTN on Space Missions |
|
|
226 | (4) |
|
|
226 | (1) |
|
7.7.2 DTN on the International Space Station |
|
|
226 | (1) |
|
7.7.3 EO-1, IRIS, and TDRSS Demonstrations |
|
|
227 | (1) |
|
|
228 | (1) |
|
|
229 | (1) |
|
|
230 | (1) |
8 Delay-Tolerant Security |
|
231 | (44) |
|
|
|
232 | (1) |
|
8.2 Common Security Services |
|
|
233 | (6) |
|
|
234 | (2) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
|
239 | (1) |
|
8.3 Security Challenges Specific to DTNs |
|
|
239 | (11) |
|
8.3.1 Security Networking Assumptions |
|
|
240 | (2) |
|
8.3.1.1 Rapid, Round-Trip Communications |
|
|
240 | (1) |
|
8.3.1.2 Naming and Addressing |
|
|
241 | (1) |
|
8.3.1.3 Stateful, Session-Based Data Exchange |
|
|
241 | (1) |
|
8.3.1.4 Homogenous Data Representation |
|
|
242 | (1) |
|
8.3.2 Relevant DTN Characteristics |
|
|
242 | (3) |
|
8.3.2.1 Link Characteristics |
|
|
243 | (1) |
|
8.3.2.2 Internetworking Characteristics |
|
|
244 | (1) |
|
8.3.3 Security Constraints |
|
|
245 | (5) |
|
8.3.3.1 Unreliable Access to Oracles |
|
|
247 | (1) |
|
8.3.3.2 Logical Security Policies |
|
|
247 | (1) |
|
8.3.3.3 Unreliable/Insecure Link Layers |
|
|
248 | (1) |
|
8.3.3.4 Multiple Data Representations |
|
|
248 | (2) |
|
8.4 The End-to-End Security Model |
|
|
250 | (6) |
|
8.4.1 A Multi-Layered Approach |
|
|
250 | (4) |
|
|
251 | (1) |
|
|
252 | (1) |
|
8.4.1.3 End-to-End Layer Considerations |
|
|
253 | (1) |
|
8.4.1.4 User Layer Considerations |
|
|
254 | (1) |
|
8.4.2 A Multi-Component Approach |
|
|
254 | (1) |
|
|
255 | (1) |
|
8.5 Securing the Bundle Protocol |
|
|
256 | (9) |
|
8.5.1 Bundle Protocol Extension Mechanisms |
|
|
256 | (1) |
|
|
257 | (2) |
|
8.5.2.1 Block-Level Granularity |
|
|
257 | (1) |
|
8.5.2.2 Multiple Security Sources |
|
|
258 | (1) |
|
8.5.2.3 Dynamic Security Policy |
|
|
258 | (1) |
|
8.5.2.4 Multiple Cipher Suites |
|
|
259 | (1) |
|
8.5.2.5 Deterministic Processing |
|
|
259 | (1) |
|
8.5.3 The Bundle Security Protocol |
|
|
259 | (5) |
|
|
260 | (1) |
|
|
260 | (4) |
|
|
264 | (1) |
|
8.5.4 Bundle-in-Bundle Encapsulation |
|
|
264 | (1) |
|
8.6 Special Security Threats |
|
|
265 | (6) |
|
8.6.1 Attack Capabilities and Objectives |
|
|
266 | (1) |
|
|
267 | (1) |
|
|
268 | (1) |
|
8.6.4 Attacks and Mitigations |
|
|
268 | (9) |
|
8.6.4.1 Eavesdropping Attacks |
|
|
269 | (1) |
|
8.6.4.2 Modification Attacks |
|
|
269 | (2) |
|
8.7 Policies Considerations |
|
|
271 | (1) |
|
|
271 | (2) |
|
|
273 | (2) |
9 DTN of Things |
|
275 | (34) |
|
|
|
|
276 | (1) |
|
|
277 | (6) |
|
|
277 | (1) |
|
|
278 | (1) |
|
9.2.3 Applications and Services |
|
|
279 | (2) |
|
|
281 | (1) |
|
9.2.5 Layered Architecture |
|
|
281 | (2) |
|
|
283 | (3) |
|
|
283 | (1) |
|
|
284 | (2) |
|
|
286 | (11) |
|
9.4.1 Infrastructure Protocols |
|
|
286 | (11) |
|
|
286 | (1) |
|
|
287 | (3) |
|
|
290 | (4) |
|
9.4.1.4 Application Protocols |
|
|
294 | (2) |
|
9.4.1.5 Routing Protocols |
|
|
296 | (1) |
|
9.5 Toward a DTN of Things |
|
|
297 | (3) |
|
|
297 | (2) |
|
9.5.1.1 Store and Forward: Single-Hop |
|
|
298 | (1) |
|
9.5.1.2 Store and Forward: Multi-Hop |
|
|
298 | (1) |
|
9.5.2 The DTN Architecture |
|
|
299 | (1) |
|
9.6 Experiences with the DTN of Things |
|
|
300 | (7) |
|
9.6.1 Applications and Models |
|
|
302 | (2) |
|
|
304 | (2) |
|
9.6.3 Persistent Challenges |
|
|
306 | (1) |
|
|
307 | (2) |
10 DTN Congestion Control |
|
309 | (36) |
|
|
|
|
|
309 | (3) |
|
|
312 | (3) |
|
10.3 Internet Congestion Control |
|
|
315 | (2) |
|
10.4 Congestion Control in DTN |
|
|
317 | (2) |
|
10.5 DTN Congestion Control Mechanisms |
|
|
319 | (24) |
|
10.5.1 DTN Congestion Control Taxonomy |
|
|
330 | (3) |
|
10.5.2 Classification of DTN Congestion Control Mechanisms |
|
|
333 | (10) |
|
|
343 | (2) |
11 Licklider Transmission Protocol (LTP) |
|
345 | (56) |
|
|
|
347 | (1) |
|
|
347 | (9) |
|
|
348 | (1) |
|
11.2.2 LTP Placement within a Protocol Hierarchy |
|
|
349 | (1) |
|
11.2.3 Protocol Encapsulation |
|
|
350 | (1) |
|
11.2.4 Bundles, Blocks and Segments |
|
|
351 | (1) |
|
11.2.5 LTP Engines and Sessions |
|
|
352 | (1) |
|
11.2.6 Typical LTP Sequence |
|
|
352 | (1) |
|
11.2.7 Link State Cues and Transmission Queues |
|
|
353 | (3) |
|
|
356 | (9) |
|
|
358 | (2) |
|
11.3.1.1 Segment Type Flags |
|
|
358 | (1) |
|
11.3.1.2 Extensions Field |
|
|
359 | (1) |
|
|
360 | (4) |
|
|
360 | (1) |
|
11.3.2.2 Report Segment (RS) |
|
|
361 | (2) |
|
11.3.2.3 Report Acknowledgment Segment (RA) |
|
|
363 | (1) |
|
11.3.2.4 Session Management Segments (CS, CR, CAS, CAR) |
|
|
363 | (1) |
|
|
364 | (1) |
|
|
365 | (10) |
|
11.4.1 Start Transmission |
|
|
368 | (1) |
|
|
368 | (1) |
|
11.4.3 Start Checkpoint Timer |
|
|
369 | (1) |
|
11.4.4 Start Report Segment Timer |
|
|
369 | (1) |
|
11.4.5 Start Cancel Timer |
|
|
369 | (1) |
|
11.4.6 Retransmit Checkpoint |
|
|
369 | (1) |
|
11.4.7 Retransmit Report Segment |
|
|
369 | (1) |
|
11.4.8 Retransmit Cancellation Segment |
|
|
370 | (1) |
|
|
370 | (1) |
|
11.4.10 Signify Red-Part Reception |
|
|
370 | (1) |
|
11.4.11 Signify Green-Part Reception |
|
|
371 | (1) |
|
11.4.12 Send Reception Report |
|
|
371 | (1) |
|
|
371 | (1) |
|
|
371 | (1) |
|
11.4.15 Stop Report Segment Timer |
|
|
371 | (1) |
|
11.4.16 Acknowledge Cancellation |
|
|
372 | (1) |
|
11.4.17 Stop Cancel Timer |
|
|
372 | (1) |
|
11.4.18 Signify Transmission Completion |
|
|
372 | (1) |
|
|
372 | (1) |
|
|
373 | (1) |
|
11.4.21 Handle Mis-Colored Segment |
|
|
373 | (1) |
|
11.4.22 Handle System Error Condition |
|
|
373 | (1) |
|
11.4.23 Client Service Notifications |
|
|
373 | (2) |
|
11.5 State Transition Diagrams |
|
|
375 | (9) |
|
|
375 | (4) |
|
|
377 | (1) |
|
|
378 | (1) |
|
|
378 | (1) |
|
11.5.1.4 Transmission of 100 Percent Green Data (Zero Red Part) |
|
|
379 | (1) |
|
11.5.1.5 Transmission of Non-Zero Red Parts |
|
|
379 | (1) |
|
|
379 | (5) |
|
|
381 | (1) |
|
|
382 | (1) |
|
11.5.2.3 Receiving a Green Data Segment |
|
|
383 | (1) |
|
11.5.2.4 Receiving a Red Data Segment |
|
|
383 | (1) |
|
|
384 | (5) |
|
11.6.1 LTP Security Features |
|
|
384 | (3) |
|
11.6.1.1 LTP Authentication Extension |
|
|
385 | (2) |
|
11.6.1.2 LTP Cookies Extension |
|
|
387 | (1) |
|
11.6.2 Potential Attack Vectors |
|
|
387 | (2) |
|
|
387 | (1) |
|
|
388 | (1) |
|
11.6.2.3 Disrupting a Transmission or Service |
|
|
388 | (1) |
|
11.7 Practical LTP Analysis |
|
|
389 | (11) |
|
11.7.1 Test-Bed Architecture |
|
|
389 | (1) |
|
11.7.2 TX Node Configuration File |
|
|
389 | (2) |
|
11.7.3 RX Node Configuration File |
|
|
391 | (2) |
|
11.7.4 Interplanetary Overlay Network Tests |
|
|
393 | (11) |
|
11.7.4.1 Send 10 Bundles with No Loss |
|
|
393 | (3) |
|
11.7.4.2 Send 10 Bundles with Simulated Loss |
|
|
396 | (4) |
|
|
400 | (1) |
12 Delay-/Disruption-Tolerant Networking Performance Evaluation with DTNperf_3 |
|
401 | (24) |
|
|
|
403 | (1) |
|
12.2 DTNperf_3 General Description |
|
|
404 | (3) |
|
|
405 | (1) |
|
12.2.2 Transmission Modes |
|
|
405 | (1) |
|
12.2.3 Congestion Control Policies |
|
|
406 | (1) |
|
12.2.3.1 Window-Based Congestion Control |
|
|
406 | (1) |
|
12.2.3.2 Rate-Based Congestion Control |
|
|
406 | (1) |
|
12.2.4 Collecting Information |
|
|
406 | (1) |
|
|
407 | (2) |
|
12.3.1 Syntax, Parameters and Options |
|
|
407 | (1) |
|
12.3.2 Implementation Notes |
|
|
407 | (2) |
|
|
407 | (2) |
|
|
409 | (1) |
|
12.3.2.3 Program Termination |
|
|
409 | (1) |
|
|
409 | (2) |
|
12.4.1 Syntax and Options |
|
|
409 | (1) |
|
12.4.2 Implementation Notes |
|
|
410 | (1) |
|
|
410 | (1) |
|
|
411 | (1) |
|
|
411 | (1) |
|
12.4.2.4 Program Termination |
|
|
411 | (1) |
|
|
411 | (3) |
|
12.5.1 Syntax and Options (external monitor only) |
|
|
412 | (1) |
|
12.5.2 Implementation Notes |
|
|
412 | (2) |
|
|
412 | (1) |
|
|
412 | (1) |
|
12.5.2.3 Sessions and Log Files |
|
|
413 | (1) |
|
12.5.2.4 Closure of Log Files |
|
|
413 | (1) |
|
12.5.2.5 Program Termination |
|
|
414 | (1) |
|
12.6 The Abstraction Layer |
|
|
414 | (3) |
|
12.6.1 Implementation Notes |
|
|
414 | (3) |
|
12.6.1.1 Abstraction Layer Components: AL Types and AL API Procedures |
|
|
415 | (1) |
|
|
415 | (1) |
|
|
416 | (1) |
|
12.6.1.4 AL API Files and Structure |
|
|
416 | (1) |
|
|
417 | (3) |
|
12.7.1 Basic Applications |
|
|
418 | (1) |
|
|
418 | (1) |
|
|
418 | (1) |
|
|
418 | (1) |
|
12.7.2 Performance Evaluation in Continuous and Disrupted Networks |
|
|
419 | (1) |
|
12.7.2.1 Goodput (macro-analysis) |
|
|
419 | (1) |
|
12.7.2.2 Status Report Analysis (micro-analysis) |
|
|
419 | (1) |
|
12.7.2.3 Performance Evaluation in Partitioned Networks: "Data Mule" Communications |
|
|
420 | (1) |
|
|
420 | (3) |
|
12.8.1 Interoperability Tests |
|
|
421 | (1) |
|
12.8.1.1 DTNperf Running on Top of DTN2: Registration as "ipn" with Node Number Passed by the User |
|
|
421 | (1) |
|
12.8.1.2 DTNperf Running on Top of ION: Registration as "dtn" |
|
|
422 | (1) |
|
12.8.1.3 Dtnperf Running on Top of IBR-DTN: Registration as "ipn" |
|
|
422 | (1) |
|
12.8.2 Independent Use of Client and Monitor |
|
|
422 | (1) |
|
|
422 | (1) |
|
|
422 | (1) |
|
|
423 | (2) |
References |
|
425 | (26) |
Index |
|
451 | |