Rechnernetze / Kommunikationssysteme
SW-Klassendiagramm
classDiagram
direction BT
class ARQ {
<<Interface >>
+ data_req(byte[], int, boolean) boolean
+ data_ind_req(int[]) byte[]
+ closeConnection() void
int retryCounterStat
int backData
int retransmissionCounter
int MTU
}
class ARQAbst {
+ ARQAbst(Socket)
+ ARQAbst(Socket, int)
# int MTU
# int retransmissionCounter
# int retryCounterStat
# int backData
+ data_req(byte[], int, boolean) boolean
+ data_ind_req(int[]) byte[]
~ sendAck(int) void
~ generateAckPacket(int) byte[]
~ checkStart(DatagramPacket) boolean
# getPacketNr(DatagramPacket) int
# getAckData(DatagramPacket) void
# getSessionID(DatagramPacket) int
# waitForAck(int) boolean
# generateDataPacket(byte[], int) byte[]
int retryCounterStat
int backData
int retransmissionCounter
int MTU
}
class Channel {
~ Channel(DatagramSocket, double, int)
+ sendPacket(DatagramPacket) void
+ setChannelSimulator(double, int) void
+ receivePacket(DatagramPacket) DatagramPacket
- simulateLoss() boolean
}
class FT {
<<Interface >>
+ file_init() boolean
+ file_req() boolean
}
class FileCopy {
+ FileCopy()
+ main(String[]) void
- handleConnection(int) void
- sendFile(String, int, String, byte) void
}
class FileTransfer {
+ FileTransfer(Socket, String)
+ FileTransfer(String, Socket, String, byte)
+ file_init() boolean
+ file_req() boolean
- setFileOut() CheckedOutputStream
- printTime(boolean) void
- generateStartPacket(String, long) byte[]
- printCRC(byte[]) boolean
- printVersion() void
- readStartPacket(byte[]) boolean
- getDataFromArq(ARQ, byte[], int[]) boolean
}
class SW {
+ SW(Socket, int)
+ SW(Socket)
+ data_ind_req(int[]) byte[]
+ data_req(byte[], int, boolean) boolean
+ closeConnection() void
~ generateAckPacket(int) byte[]
~ sendAck(int) void
~ checkStart(DatagramPacket) boolean
# generateDataPacket(byte[], int) byte[]
# getAckData(DatagramPacket) void
# getPacketNr(DatagramPacket) int
# getSessionID(DatagramPacket) int
# waitForAck(int) boolean
- extractData(DatagramPacket, int) byte[]
}
class Socket {
+ Socket(String, int)
+ Socket(int, double, int)
+ sendPacket(byte[]) void
+ receivePacket() DatagramPacket
int timeout
}
class TimeoutCalculation {
+ TimeoutCalculation()
- long startTime
- int rto
+ checkRto(long) boolean
+ updateRto(int) void
+ setStartTime() void
+ updateRto() void
- calculateRto(long) void
int startTime
int rto
}
ARQAbst ..|> ARQ
ARQAbst "1" *--> "socket 1" Socket
FileCopy ..> FileTransfer : «create»
FileCopy ..> Socket : «create»
FileTransfer "1" *--> "myARQ 1" ARQ
FileTransfer ..|> FT
FileTransfer ..> SW : «create»
FileTransfer "1" *--> "socket 1" Socket
SW --|> ARQAbst
SW ..> Socket
SW ..> TimeoutCalculation
Socket "1" *--> "channel 1" Channel
Socket ..> Channel : «create»
Letzte Änderung: 17. September 2025 12:14