0% found this document useful (0 votes)
342 views27 pages

Case Study Tcp-Ip

This document describes coding for sending application layer byte streams over a TCP/IP network using an RTOS. It discusses the TCP/IP stack layers and protocols. Classes are defined for tasks that check strings, generate output streams, segment TCP data, and drive the network. Tasks are scheduled to check strings, generate streams, insert headers, form packets, and send packets. The tasks use semaphores and mailboxes to synchronize. Example code is provided to illustrate using VxWorks RTOS IPC functions to implement the TCP/IP stack tasks.

Uploaded by

sarathkumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
342 views27 pages

Case Study Tcp-Ip

This document describes coding for sending application layer byte streams over a TCP/IP network using an RTOS. It discusses the TCP/IP stack layers and protocols. Classes are defined for tasks that check strings, generate output streams, segment TCP data, and drive the network. Tasks are scheduled to check strings, generate streams, insert headers, form packets, and send packets. The tasks use semaphores and mailboxes to synchronize. Example code is provided to illustrate using VxWorks RTOS IPC functions to implement the TCP/IP stack tasks.

Uploaded by

sarathkumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

RTOS

CASE STUDY OF CODING FOR SENDING


APPLICATION LAYER BYTE STREAMS ON
A TCP/IP NETWORK USING RTOS VX
Works

1/25/2015 J.SUDARSHANREDDY
1. Specifications

TCP/IP Stack
 In TCP/IP suite of protocols,
application layer transfers the
data with appropriate header
words to transport layer.

 At transport layer, either UDP


or TCP protocol is used and
additional header words placed.
1/25/2015 J.SUDARSHANREDDY
TCP/IP Stack transmitting subsystem

1/25/2015 J.SUDARSHANREDDY
TCP/IP Stack
 UDP is connection-less protocol for
datagram transfer of total size including
headers of less than 216 Byte.
 TCP is connection oriented protocol, in
which data of unlimited size can be
transferred in multiple sequences to the
internet layer
 At internet layer, the IP protocol is used and
IP packets are formed, each packet with an
IP header transfers to the network through
network driver subsystem.
1/25/2015 J.SUDARSHANREDDY
TCP/IP stack

 Since the objective of case study is to


learn the use of IPCs in multitasking
RTOS through a case study.

 However, the present case study,


without resorting to the network socket
driver APIs in VxWorks, the required
software to be embedded in the system
is described to understand applications
of IPC functions in VxWorks.
1/25/2015 J.SUDARSHANREDDY
2. Requirements
Purpose
 To generate the byte stream for
sending on the network using TCP
or UDP protocol at transport layer
and IP protocol at network layer

Signals, Events and Notifications


 After forming the packets at IP layer,
SemPktFlag for network driver task
1/25/2015 J.SUDARSHANREDDY
Inputs

 Bytes from application layer


 Notification Sem TCPFlag or
SemUDPFlag in case of TCP
sequences or UDP datagram,
respectively

Outputs
 TCP or UDP Byte stream to
destination socket
1/25/2015 J.SUDARSHANREDDY
Functions of the system

 An HTTP application data is sent after


encoding headers at transport and
network
layers.
 Tasks are scheduled in five sequences
1. Task_StrCheck,
2. Task_OutStream,
3. Task_TCPSegment or ask_UDPDatagram,
4. Task_IPPktStream
5. Task_NetworkDrv
1/25/2015 J.SUDARSHANREDDY
Test and validation conditions

 A loop back from destination socket


should enable retrieval of application
data stream as originally sent

 Buffer Memory over flow tests

1/25/2015 J.SUDARSHANREDDY
3. Classes and Objects
Tasks and their scheduling sequence in TCP/IP
Stack
transmitting subsystem

1/25/2015 J.SUDARSHANREDDY
Classes for TCP or UDP byte tream on TCP/IP
network:
 Task_TCP is an abstract class

 Extended class(es) is derived to create objects TCP or UDP


packet
streams to a network.

 Task_StrCheck is to check and get the string.

 Task_OutStream extends from the two classes Task_StrCheck and


Task_TCP.

 Task_TCPSegment creates a stream from TCP segment for IP layer.


When datagram is to be sent then Task_UDPDatagram creates a
stream using from Task_OutStream
1/25/2015 output bytes.
J.SUDARSHANREDDY
Class Task_OutStream

1/25/2015 J.SUDARSHANREDDY
task objects

 The task objects are instances of the


classes

1. Task_StrCheck,
2. Task_OutStream,
3. Task_TCPSegment or
Task_UDPDatagram,
4. Task_IPPktStream
5. Task_NetworkDrv.
1/25/2015 J.SUDARSHANREDDY
Object task_OutStreamAppl

1/25/2015 J.SUDARSHANREDDY
4. Class diagrams
Class diagram for sending TCP/IP stacka

1/25/2015 J.SUDARSHANREDDY
5. Hardware architecture
Hardware
 TCP stack will run on same hardware as for
the system which is networked with other
system.
 Only additional hardware needed is memory
for codes, data and queue for data streams,
packets and sockets.
 A single TCP packet or UDP datagram is of
maximum 216 bytes.
 2 MB (512 × 216 bytes) RAM can be taken
as additional memory requirement
1/25/2015 J.SUDARSHANREDDY
6. Modeling of State diagram for of TCP/IP
stack tasks
State diagram for synchronization of TCP/IP
stack tasks- Part 1

1/25/2015 J.SUDARSHANREDDY
State diagram for synchronization of TCP/IP
stack tasks- Part 2

1/25/2015 J.SUDARSHANREDDY
7. Software architecture
Software architecture TCP/IP Stack

1/25/2015 J.SUDARSHANREDDY
8. Multiple tasks and their synchronization model
Multiple tasks and their synchronization model
using
semaphores and mailbox messages

1/25/2015 J.SUDARSHANREDDY
9. Tasks and their priority, action and IPCs

Application Layer Task_StrCheck

 Priority─ 120
 Action─ Get a string from the application
 IPC pending: ─
 IPC posted: SemFlag1

1/25/2015 J.SUDARSHANREDDY
Transmission Control (Transport)
Task_TCPSegment

 Priority ─ 122
 Action─ Insert TCP header to the stream
 IPC pending: SemTCPFlag,
 SemMKey1, QStreamInputID
 IPC posted: QStreamInputID and
SemMKey1

1/25/2015 J.SUDARSHANREDDY
Transmission Control (Transport)
Task_UDPDatagram

 Priority ─ 122
 Action─ Insert UDP header to the
stream sent as a datagram
 IPC pending: SemUDPFlag,
SemMKey1, QStreamInputID
 IPC posted: QStreamInputID, SemMKey1

1/25/2015 J.SUDARSHANREDDY
internet (network) layer
Task_IPPktStream

 Priority ─ 124
 Action─ Form the packets of
maximum 216 bytes
 IPC pending: SemMKey1,
QStreamInputID
 IPC posted: SemMKey1, SemPktFlag,
QPktInputID
1/25/2015 J.SUDARSHANREDDY
Task_NetworkDrv

 Priority ─ 124
 Action─ Send the packets as the
frames
 IPC pending: SemPktFlag,
QPktInputID, SemMKey1
 IPC posted: SemFinishFlag, SemFlag2

1/25/2015 J.SUDARSHANREDDY
10.Coding using VxWorks RTOS IPCfunctions

Coding using VxWorks RTOS

 Refer Example 11.2 in Section 11.3.4

 At each step the explanation for the set


of statements given there.

1/25/2015 J.SUDARSHANREDDY
We learnt

 VxWorks RTOS used for embedded


system codes for driving a network
card
 after generating the TCP/IP stack.
Exemplary codes show a method of
code designing for sending the byte
streams on a network
1/25/2015
Thank You
J.SUDARSHANREDDY

You might also like