Lines Matching full:the
3 <title>uIP 1.0: The uIP TCP/IP stack</title>
16 <h1>The uIP TCP/IP stack</h1>
19 The uIP TCP/IP stack is intended to make it possible to communicate using the TCP/IP protocol suite…
20 uIP can be found at the uIP web page: <a href="http://www.sics.se/~adam/uip/">http://www.sics.se/~a…
26 …7.html">uIP functions called from application programs</a> (see below) and the <a class="el" href=…
29 …the success of the Internet, the TCP/IP protocol suite has become a global standard for communicat…
30 …quirements of several hundreds of kilobytes have made it impossible to fit the full TCP/IP stack i…
31 The uIP implementation is designed to have only the absolute minimal set of features needed for a f…
32 …the embedded device always will communicate with a full-scale TCP/IP implementation running on a w…
34 The full TCP/IP suite consists of numerous protocols, ranging from low level protocols such as ARP …
35 …the upper layer protocols. It breaks the byte stream into appropriately sized segments and each se…
36 The formal requirements for the protocols in the TCP/IP stack is specified in a number of RFC docum…
37 The RFC1122 requirements can be divided into two categories; those that deal with the host to host …
38 …size, we have removed certain mechanisms in the interface between the application and the stack, s…
40 The uIP stack can be run either as a task in a multitasking system, or as the main program in a sin…
42 <li>Check if a packet has arrived from the network.</li><li>Check if a periodic timeout has occurre…
44 …the input handler function, <a class="el" href="a00146.html#ga4360412ee9350fba725f98a137169fe">uip…
45 …the main control loop infers that the periodic timer should fire, it should invoke the timer handl…
47 …the architecture on which uIP is intended to run. These functions should be hand-tuned for the par…
49 The TCP and IP protocols implement a checksum that covers the data and header portions of the TCP a…
50 …the two functions <a class="el" href="a00150.html#g2addf34c7d457c1a7899a7e2171ef1e9">uip_ipchksum(…
52 The TCP protocol uses 32-bit sequence numbers, and a TCP implementation will have to do a number of…
53 …on, there is support for having an architecture specific implementation of the <a class="el" href=…
55 In the architectures for which uIP is intended, RAM is the most scarce resource. With only a few ki…
56 The uIP stack does not use explicit dynamic memory allocation. Instead, it uses a single global buf…
57 …the same global packet buffer that is used for incoming packets is also used for the TCP/IP header…
58 The total amount of memory usage for uIP depends heavily on the applications of the particular devi…
60 The Application Program Interface (API) defines the way the application program interacts with the …
61 uIP provides two APIs to programmers: protosockets, a BSD socket-like API without the overhead of f…
65 The uIP raw API</a></h3>
66 The "raw" uIP API uses an event driven interface where the application is invoked in response to ce…
67 …the application when doing retransmissions. Other TCP/IP stacks buffer the transmitted data in mem…
68 …the fact that the application may be able to regenerate sent data and lets the application take pa…
70 The application must be implemented as a C function, <a class="el" href="a00153.html#g41aa744caa469…
71 The Connection Pointer</a></h4>
72 …the application is called by uIP, the global variable <a class="el" href="a00088.html">uip_conn</a…
74 …the uIP test function <a class="el" href="a00147.html#g26a14b8dae3f861830af9e7cf1e03725">uip_newda…
76 …the length of the data sent by the application according to the available buffer space and the cur…
77 The application sends data by using the uIP function <a class="el" href="a00147.html#g04b053a623aac…
78 The application can send only one chunk of data at a time on a connection and it is not possible to…
80 …the periodic TCP timer. Every time the periodic timer is invoked, the retransmission timer for eac…
81 The application must check the <a class="el" href="a00147.html#ga8933ad15a2e2947dae4a5cff50e6007">u…
83 The application closes the current connection by calling the <a class="el" href="a00147.html#g61db1…
84 …the connection has been closed by the remote end, the test function <a class="el" href="a00147.htm…
86 …the connection was aborted by the remote host, or that the connection retransmitted the last data …
88 When a connection is idle, uIP polls the application every time the periodic timer fires. The appli…
89 The polling event has two purposes. The first is to let the application periodically know that a co…
91 …the <a class="el" href="a00147.html#gdd1ab3704ecd4900eec61a6897d32dc8">uip_listen()</a> function. …
92 The application can check the lport field in the <a class="el" href="a00088.html">uip_conn</a> stru…
94 …the function <a class="el" href="a00147.html#g8096b0c4b543dc408f4dd031ddae7240">uip_connect()</a>.…
95 The function <a class="el" href="a00148.html#g87f0b54ade0d159fba495089128a4932">uip_ipaddr()</a> ma…
96 …The first example shows how to open a connection to TCP port 8080 of the remote end of the current…
103 The second example shows how to open a new connection to a specific IP address. No error checks are…
112 This section presents a number of very simple uIP applications. The uIP code distribution contains …
114 …ry simple application. The application listens for incoming connections on port 1234. When a conne…
115 The implementation of this application is shown below. The application is initialized with the func…
126 The initialization function calls the uIP function <a class="el" href="a00147.html#gdd1ab3704ecd490…
128 …ond example is slightly more advanced than the previous one, and shows how the application state f…
129 …the first application in that it listens to a port for incoming connections and responds to data s…
130 …the application is implemented. The reason for the increase in complexity is that if data should b…
131 The application knows that as long as the "Welcome!" message has not been acknowledged by the remot…
132 …the application, the application sends the "Welcome!" message and sets it's state to WELCOME-SENT.…
133 …the application is requested to retransmit the last message, it looks at in which state the applic…
134 The implementation of this application is seen below. This configuration settings for the applicati…
174 The configuration for the application:<p>
179 …the system should run multiple applications, one technique to differentiate between them is to use…
197 …and downloads it to a slow device such a disk drive. This shows how to use the flow control functi…
225 …the connection has been established, an HTTP request is sent to the server. Since this is the only…
226 …the application receives new data from the remote host, it sends this data to the device by using …
227 …the device's queue is full, the application stops the data from the remote host by calling the uIP…
229 …the port number to determine which file to send. If the files are properly formatted, this simple …
270 The application state consists of a pointer to the data that should be sent and the size of the dat…
271 The application is driven by incoming acknowledgments. When data has been acknowledged, new data ca…
273 …the uIP API in a structured way. The following example provides a structured design that has showe…
274 The uIP event handler function is shown below.<p>
303 The function starts with dealing with any error conditions that might have happened by checking if …
304 …the function checks if the connection has just been established by checking if <a class="el" href=…
305 The following very simple application serves as an example of how the application handler functions…
364 The application state consists of a "state" variable, a "textptr" pointer to a text message and the…
365 The application does not handle errors or connection closing events, and therefore the aborted(), t…
366 The connected() function will be called when a connection has been established, and in this case se…
367 …the network, the newdata() function will be called by the event handler function. The newdata() fu…
368 The acked() function is called whenever data that previously was sent has been acknowleged by the r…
369 …the senddata() function takes care of actually sending the data that is to be sent. It is called b…
370 … is important to note that the senddata() function never should affect the application state; this…
372 The protocols in the TCP/IP protocol suite are designed in a layered fashion where each protocol pe…
373 This section gives detailed information on the specific protocol implementations in uIP.<h3><a clas…
375 …the IP layer is the first protocol that examines the packet. The IP layer does a few simple checks…
377 …the packet to be reassembled. An incoming fragment is copied into the right place in the buffer an…
378 The current implementation only has a single buffer for holding packets to be reassembled, and ther…
380 …the ability to broadcast and multicast packets on the local network. Such packets are addressed to…
382 The ICMP protocol is used for reporting soft error conditions and for querying host parameters. Its…
383 The ICMP implementation in uIP is very simple as itis restricted to only implement ICMP echo messag…
384 Since only the ICMP echo message is implemented, there is no support for Path MTU discovery or ICMP…
386 The TCP implementation in uIP is driven by incoming packets and timer events. Incoming packets are …
388 …the 16-bit port number and incoming connection requests are checked against the list of listening …
391 The sliding window algorithm uses a lot of 32-bit operations and because 32-bit arithmetic is fairl…
392 …gh most TCP implementations use the sliding window algorithm, it is not required by the TCP specif…
394 …P continuously estimates the current Round-Trip Time (RTT) of every active connection in order to …
395 The RTT estimation in uIP is implemented using TCP's periodic timer. Each time the periodic timer f…
397 …driven by the periodic TCP timer. Every time the periodic timer is invoked, the retransmission tim…
398 …the device driver, uIP requires that the application takes an active part in performing the retran…
400 The purpose of TCP's flow control mechanisms is to allow communication between hosts with wildly va…
401 …the application cannot send more data than the receiving host can buffer. And application cannot s…
403 The congestion control mechanisms limit the number of simultaneous TCP segments in the network. The…
404 …ne in-flight TCP segment per connection, the amount of simultaneous segments cannot be further lim…
406 …k parts of the data stream as being more urgent than the normal stream. It is up to the receiving …
407 …the BSD implementation, the urgent data feature increases the complexity of the implementation bec…
409 …the checksum calculation loop, the operation of copying packet data and context switching. Operati…
410 …the necessary processing power to have multiple protection domains and the power to run a multitas…
411 …the TCP/IP processing overhead is dominated by the copying of packet data from the network device …
412 The Impact of Delayed Acknowledgments</a></h3>
413 …the delayed acknowledgment algorithm for reducing the number of pure acknowledgment packets sent. …
414 …the delayed acknowledgment algorithm. Because the receiver only receives a single segment at a tim…
415 …the maximum throughput equation when sending data from uIP will be $p = s / (t + t_d)$ where $s$ i…
416 …the delayed acknowledgmen t throughput degradation of uIP need not be very severe. Small amounts o…
417 The maximum throughput when uIP acts as a receiver is not affected by the delayed acknowledgment th…