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=…
29the 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…
32the 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 …
35the 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…
44the input handler function, <a class="el" href="a00146.html#ga4360412ee9350fba725f98a137169fe">uip…
45the main control loop infers that the periodic timer should fire, it should invoke the timer handl…
47the 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…
50the 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…
57the 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…
67the application when doing retransmissions. Other TCP/IP stacks buffer the transmitted data in mem…
68the 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>
72the application is called by uIP, the global variable <a class="el" href="a00088.html">uip_conn</a…
74the uIP test function <a class="el" href="a00147.html#g26a14b8dae3f861830af9e7cf1e03725">uip_newda…
76the 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…
80the 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…
84the connection has been closed by the remote end, the test function <a class="el" href="a00147.htm…
86the 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…
91the <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…
94the 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…
96The 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…
129the first application in that it listens to a port for incoming connections and responds to data s…
130the 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…
132the application, the application sends the "Welcome!" message and sets it's state to WELCOME-SENT.…
133the 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>
179the 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…
225the connection has been established, an HTTP request is sent to the server. Since this is the only…
226the application receives new data from the remote host, it sends this data to the device by using
227the device's queue is full, the application stops the data from the remote host by calling the uIP…
229the 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…
273the 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 …
304the 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…
367the 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…
369the 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…
375the IP layer is the first protocol that examines the packet. The IP layer does a few simple checks…
377the 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…
380the 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 …
388the 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…
398the 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…
401the 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 …
407the BSD implementation, the urgent data feature increases the complexity of the implementation bec…
409the checksum calculation loop, the operation of copying packet data and context switching. Operati…
410the necessary processing power to have multiple protection domains and the power to run a multitas…
411the TCP/IP processing overhead is dominated by the copying of packet data from the network device …
412 The Impact of Delayed Acknowledgments</a></h3>
413the delayed acknowledgment algorithm for reducing the number of pure acknowledgment packets sent. …
414the delayed acknowledgment algorithm. Because the receiver only receives a single segment at a tim…
415the maximum throughput equation when sending data from uIP will be $p = s / (t + t_d)$ where $s$ i…
416the 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…