{"id":109,"date":"2020-02-23T04:32:02","date_gmt":"2020-02-23T04:32:02","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/?p=109"},"modified":"2020-02-23T04:32:15","modified_gmt":"2020-02-23T04:32:15","slug":"user-datagram-protocol-udp-design","status":"publish","type":"post","link":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/2020\/02\/23\/user-datagram-protocol-udp-design\/","title":{"rendered":"Overview of User Datagram Protocol (UDP) Design"},"content":{"rendered":"<p>When approaching this design I wanted initially to implement a full TCP protocol using UDP packets. This would essentially work by using the body of the UDP packets to store the information needed for the TCP protocol. This would provide a way to retrieve lost packets. I settled on the packet design below:<\/p>\n<p><strong>Packet Design<\/strong><\/p>\n<hr \/>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-119\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-10.37.15-PM-1.png\" alt=\"\" width=\"1380\" height=\"556\" srcset=\"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-10.37.15-PM-1.png 1380w, https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-10.37.15-PM-1-300x121.png 300w, https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-10.37.15-PM-1-768x309.png 768w, https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-10.37.15-PM-1-1024x413.png 1024w\" sizes=\"(max-width: 1380px) 100vw, 1380px\" \/><\/p>\n<p><strong>Protocol Design<\/strong><\/p>\n<hr \/>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-132\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-11.29.49-PM.png\" alt=\"\" width=\"718\" height=\"724\" srcset=\"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-11.29.49-PM.png 718w, https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-11.29.49-PM-150x150.png 150w, https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-content\/uploads\/sites\/77\/2020\/02\/Screen-Shot-2020-02-22-at-11.29.49-PM-298x300.png 298w\" sizes=\"(max-width: 718px) 100vw, 718px\" \/><\/p>\n<p>While this data exchange looks to be the exact same at a standard TCP protocol, the key is that it will be performed using UDP packets. Doing this parts of the design will have to be limited as we will not have to deal with cases where we have to do intense tasks such as streaming video.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When approaching this design I wanted initially to implement a full TCP protocol using UDP packets. This would essentially work by using the body of the UDP packets to store the information needed for the TCP protocol. This would provide a way to retrieve lost packets. I settled on the packet design below: Packet Design &hellip; <a href=\"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/2020\/02\/23\/user-datagram-protocol-udp-design\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Overview of User Datagram Protocol (UDP) Design<\/span><\/a><\/p>\n","protected":false},"author":235,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/posts\/109"}],"collection":[{"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/users\/235"}],"replies":[{"embeddable":true,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":7,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/posts\/109\/revisions"}],"predecessor-version":[{"id":134,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/posts\/109\/revisions\/134"}],"wp:attachment":[{"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/media?parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/categories?post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/course.ece.cmu.edu\/~ece500\/projects\/s20-teama3\/wp-json\/wp\/v2\/tags?post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}