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
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.
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.
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
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
const Port ∈ //
input Data coming in, from the application layer.
Port &checksumCreatorOut; // checksum value going to the datagram maker.
const Port ∈ // input Data
coming in,
Port &checksumValidatorOut; // checksum value going to the datagram maker.
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
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:
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:
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:
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