Application:

 

const Port ∈               // general application input port, from TCP

            const Port &HTTP_In;

            const Port &FTP_In;

            const Port &SNMP_In;

            const Port &SMTP_In;

            const Port &Telnet_In;

Port &ApplicationOut;         // general appliaction output port, to TCP

Port &RootOut;                // Application Root Access to output incoming data from other

 

DatagrtamCreator:        

           

const Port ∈               // input Data coming in, from the application layer.

const Port &checkin;          //input port to receive data from checksumCreator on   

const Port &ackPort;          // will receive acks from the datagramstripper and check if they are corrupted or not

const Port &ackSender;        // will receive request to send an ack from the datagramStripper. The message received is the ack to send

Port &datagramCreatorOut;     // checksum value going to the datagram maker.

Port &resendPort;             // a port to signal an old data being resend.

Port &gocheck;                // port to send data to the checksumCreator.

 

datagramStripper:

 

const Port ∈               // input Data coming in, from the Internet layer.

// this should also receive Ack signals from the Internet layer.

const Port &checkin;          // input data coming in, from the checksum validator

Port &receiveAck;             // this is to send ack signals to the datagramCreator. will be connected to the datagramCreator ackPort

Port &datagramStripperOut;    // output value (data) to the Appliction layer.

Port &sendAck;                                // this is to signal the datagramCreator to send an Ack.

 

networkTransmitter:

 

const Port &ingress;          // input port, for the networkTransmitter networkTransmitter Module

            const Port &sip;              // to receive source ip on

const Port &dip;              // to receive destination ip on

const Port &resend;           // to receive resend requests on.

            Port &egress;                 // output port

 

Receiver:

 

const Port &ingress;          // input port, for the Receiver Module, will receive data from DATA link layer

            const Port &sip;              // to receive own ip on

Port &egress;                 // output port from network to Transport

checksumCretor:

 

const Port ∈               // input Data coming in, from the application layer.

Port &checksumCreatorOut;     // checksum value going to the datagram maker.

checksumValidator:

 

const Port ∈               // input Data coming in,

Port &checksumValidatorOut;   // checksum value going to the datagram maker.

 

Physical:

const Port ∈   // in == input from host 1

            const Port &in1   // in1== input from host 2

            const Port &sensingPort

            const Port &type;

            Port &signal;          

            Port &out;        // out to host 1, should be connected to in1

            Port &out1;       // out to host 2, should be connected to in

Application                         

 


General Application Layer inputs and outputs

infromHTTPuser

infromFTPuser

infromTelNetuser

infromSMTPuser

infromSNMPuser

infromTransport

 

outtoTransport

outtoUser

// when data comes in from the user

 

infromHTTPuser HTTP_In@Application

infromFTPuser FTP_In@Application

infromTelNetuser TelNet_In@Application

infromSMTPuser SMTP_In@Application

infromSNMPuser SNMP_In@Application

 

// when data goes to transport.

 

ApplicationOut@Application outtoTransport

 

            // when data comes in from the transport layer

 

infromTransport in@Application

 

// for data going to the user

 

RootOut@Application outtoUser

 

Application

Application:

Transport

 

 

General transport layer inputs and outputs:

            infromApplication.

            infromNetwork

 

            outtoApplication

            outtoNetwork

           

//When data comes from the application layer it goes into the datagramCreator

 

infromApplication in@datagramCreator

 

//the datagramCreator will send a request for checksum to the checksum creator

 

gocheck@datagramCreator in@checksumCreator

 

//then the checksum creator would respond by the checksum

 

checksumCreatorOut@checksumCreator checkin@datagramCreator

 

//now the data is ready to be sent to the network layer

 

datagramCreatorOut@datagramCreator outtoNetwork

 

// the reverse of the operation is:

// data coming from the network going to the application layer

 

infronNetwork in@datagramStripper

 

infromNetwork in@checksumValidator

 

// then the checlsumvalidator will notify the datagramstripper with the result.

 

checksumValidatorOut@checksumValidator checkin@datagramStripper

 

// then the datagramStripper must decide on the type of the packet and have connections to all possible models it might need to send to.

 

//1 if the packet is valid and it is data, then we want to output it to the application layer

 

datagramStipperOut@datagramStripper outtoApplication

 

//2 if the packet is an ack that we would like to give to the datagramCreator to handle.

 

receiveAck @datagramStripper ackPort@datagramCreator

 

//3 if the packet is data and we would like the datagramCreator to send an ack, then

 

sendAck@datagramStripper ackPort@datagramCreator

 

Transport

DatagrtamCreator:

datagramStripper:

checksumCretor:

checksumValidator:

Network Layer

            General Network Layer ports:

            infromTransport

            infromDataLink

            SourceIP

            DestinationIP

 

            outtoTransport

            outtoDataLink

 


            // when the layer receives data from the transport layer to send to the data link layer

           

SourceIP sip@networkTransmitter

SourceIP sip@Receiver

DestinationIP dip@ networkTransmitter

infromTransport ingress@networkTransmitter

egress@networkTransmitter outtoDataLink

           

// when the layer receives data from the Data Link layer to send to the transport layer

 

infromDataLink ingress@Receiver

egress@Receiver outtoTransport

 

Network Layer

networkTransmitter:

Receiver:

Data Link Layer

 


Physical Layer

            General Layer ports

            infromfirstEnd

            infromsecondEnd

            Type

            Sensing

 

            responcetoSensing

            outtofirstEnd

            outtosecondEnd

            // when user 1 is sending data to user 2

            // when user 2 is sending data to user 1