{"draft":"draft-ietf-core-block-21","doc_id":"RFC7959","title":"Block-Wise Transfers in the Constrained Application Protocol (CoAP)","authors":["C. Bormann","Z. Shelby, Ed."],"format":["ASCII","HTML"],"page_count":"37","pub_status":"PROPOSED STANDARD","status":"PROPOSED STANDARD","source":"Constrained RESTful Environments","abstract":"The Constrained Application Protocol (CoAP) is a RESTful transfer\r\nprotocol for constrained nodes and networks.  Basic CoAP messages\r\nwork well for small payloads from sensors and actuators; however,\r\napplications will need to transfer larger payloads occasionally --\r\nfor instance, for firmware updates.  In contrast to HTTP, where TCP\r\ndoes the grunt work of segmenting and resequencing, CoAP is based on\r\ndatagram transports such as UDP or Datagram Transport Layer Security\r\n(DTLS).  These transports only offer fragmentation, which is even\r\nmore problematic in constrained nodes and networks, limiting the\r\nmaximum size of resource representations that can practically be\r\ntransferred.\r\n\r\nInstead of relying on IP fragmentation, this specification extends\r\nbasic CoAP with a pair of \"Block\" options for transferring multiple\r\nblocks of information from a resource representation in multiple\r\nrequest-response pairs.  In many important cases, the Block options\r\nenable a server to be truly stateless: the server can handle each\r\nblock transfer separately, with no need for a connection setup or\r\nother server-side memory of previous block transfers.  Essentially,\r\nthe Block options provide a minimal way to transfer larger\r\nrepresentations in a block-wise fashion.\r\n\r\nA CoAP implementation that does not support these options generally\r\nis limited in the size of the representations that can be exchanged,\r\nso there is an expectation that the Block options will be widely used\r\nin CoAP implementations.  Therefore, this specification updates\r\nRFC 7252.","pub_date":"August 2016","keywords":["CoAP","Constrained Application Protocol","REST","Internet of Things","IoT","Smart Object","Embedded Internet","Constrained Node"],"obsoletes":[],"obsoleted_by":[],"updates":["RFC7252"],"updated_by":["RFC8323"],"see_also":[],"doi":"10.17487\/RFC7959","errata_url":"https:\/\/www.rfc-editor.org\/errata\/rfc7959"}