@book{rust-for-rustaceans,
  author = {Jon Gjengset},
  year = {2022},
  title = {RUST FOR RUSTACEANS},
  isbn = {978-1-7185-0186-7},
  publisher = {William Pollock}
}

@book{programming-rust,
  author = {Jim Blandy and Jason Orendorff and Leonora F.S. Tindall},
  year = {2021},
  title = {Programming Rust},
  isbn = {978-1-492-05259-3},
  publisher = {O’Reilly Media, Inc.},
  address = {1005 Gravenstein Highway North, Sebastopol, CA 95472},
  edition = {2}
}

@book{rustbook,
  author = {Steve Klabnik and Carol Nichols},
  year = {2022},
  title = {The Rust Programming Language},
  publisher = {Rust Docs},
  url = {https://doc.rust-lang.org/book/},
}

@book{rust-atomics-and-locks,
  author = {Mara Boss},
  year = {2023},
  month = {1},
  title = {Rust Atomics and Locks},
  isbn = {9781098119447},
  publisher = {O’Reilly Media, Inc.},
  address = {1005 Gravenstein Highway North, Sebastopol, CA 95472},
  url = {https://marabos.nl/atomics/}
}

@book{chanda2018network,
  title={Network Programming with Rust},
  author={Chanda, A.},
  isbn={9781789348071},
  url={https://books.google.by/books?id=4iMmzgEACAAJ},
  year={2018},
  publisher={Packt}
}

@book{wt-computer-networks,
  title = {Компьютерные сети},
  author = {Таненбаум Э. и Уэзеролл Д.},
  year = {2012},
  isbn = {978-5-459-00342-0},
  publisher = {ООО Издательство «Питер»},
  edition = {5}
}

@book{olipher,
  title = {Компьютерные сети. Принципы, технологии, протоколы},
  author = {Олифер Виктор и Олифер Наталья},
  year = {2020},
  isbn = {978-5-4461-1426-9},
  publisher = {ООО Издательство «Питер»}
}

@book{severans,
  title = {Как работают компьютерные сети и интернет},
  author = {Чарльз Р. Северанс},
  year = {2022},
  isbn = {978-5-97060-959-0},
  publisher = {ДМК Пресс}
}

@book{network-programming-c,
  title = {Hands-On Network Programming with C},
  author = {Lewis Van Winkle},
  year = {2019},
  month = {5},
  isbn = {978-1-78934-986-3},
  publisher = {Packt Publishing Ltd.},
  address = {Livery Place 35 Livery Street Birmingham B3 2PB, UK.}
}

@book{dordalintroduction,
  title={An Introduction to Computer Networks},
  author={Dordal, P.L.},
  url={https://intronetworks.cs.luc.edu/},
  publisher={Peter L Dordal},
  edition = {2.0.9},
  year = {2022},
  month = {8}
}

@article{beej,
  title = {Beej's Guide to Network Programming},
  author = {Hall, Brian},
  url = {https://beej.us/guide/bgnet/},
  edition = {3.1.5},
  year = {2020},
  month = {11}
}

@phdthesis{small-world,
  author  = {Oskar Sandberg},
  title   = {Searching in a Small World},
  school  = {Chalmers University of Technology and Goteborg University},
  address = {Goteborg, Sweden},
  year    = {2005}
}

%protocol
@misc{quic,
  series =    {Request for Comments},
  number =    9000,
  howpublished =  {RFC 9000},
  publisher = {RFC Editor},
  doi =       {10.17487/RFC9000},
  url =       {https://www.rfc-editor.org/info/rfc9000},
  author =    {Jana Iyengar and Martin Thomson},
  title =     {{QUIC: A UDP-Based Multiplexed and Secure Transport}},
  pagetotal = 151,
  year =      2021,
  month =     may,
  abstract =  {This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.},
}

% NAT
@inproceedings{nat-stochastic-relay-routing-p2p,
  title = {Stochastic Relay Routing in Peer-to-Peer Networks},
  author = {Hei, Xiaojun and Song, Haiqing},
  year = {2006},
  month = {07},
  pages = {1065 - 1070},
  volume = {3},
  doi = {10.1109/ICC.2006.254888}
}

@article{nat-traversal-techs-p2p,
  title = {NAT Traversal Techniques in Peer-to-Peer Networks},
  author = {Huynh, Cong Phuoc and Hunt, Ray and McKenzie, Andrew},
  year = {2008},  
  month = {01}
}

@article{p2p-communication-across-nat,
  title = {Peer-to-Peer Communication Across Network Address Translators},
  author = {Bryan Ford and Pyda Srisuresh and Dan Kegel},
  year = {2005},  
  month = {04},
  url = {https://bford.info/pub/net/p2pnat/}
}

@misc{state-of-p2p-across-nat,
  series =    {Request for Comments},
  number =    5128,
  howpublished =  {RFC 5128},
  publisher = {RFC Editor},
  doi =       {10.17487/RFC5128},
  url =       {https://www.rfc-editor.org/info/rfc5128},
  author =    {Bryan Ford and Dan Kegel and Pyda Srisuresh},
  title =     {State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)},
  pagetotal = 32,
  year =      2008,
  month =     mar,
  abstract =  {This memo documents the various methods known to be in use by applications to establish direct communication in the presence of Network Address Translators (NATs) at the current time. Although this memo is intended to be mainly descriptive, the Security Considerations section makes some purely advisory recommendations about how to deal with security vulnerabilities the applications could inadvertently create when using the methods described. This memo covers NAT traversal approaches used by both TCP- and UDP-based applications. This memo is not an endorsement of the methods described, but merely an attempt to capture them in a document. This memo provides information for the Internet community.},
}

@INPROCEEDINGS{nat-libp2p,
  author={Seemann, Marten and Inden, Max and Vyzovitis, Dimitris},
  booktitle={2022 IEEE 42nd International Conference on Distributed Computing Systems Workshops (ICDCSW)}, 
  title={Decentralized Hole Punching}, 
  year={2022},
  volume={},
  number={},
  pages={96-98},
  doi={10.1109/ICDCSW56584.2022.00027}
}
