TIME
What is TIME?
The TIME protocol is a simple network protocol used for retrieving the current time from a remote server. It allows clients to synchronize their clocks by receiving a timestamp from a server.
Why is TIME useful?
Provides an easy and lightweight way to synchronize system clocks.
Essential for logging and time-based functions in computer systems.
Often used in legacy systems or where precision time synchronization (like NTP) is not required.
Helps in the alignment of time across devices on a network.
How it works?
A client sends a request to a TIME server.
The server responds with the current time in a standardized format.
The client adjusts its system clock based on the received timestamp.
The protocol operates over TCP, using port 37 for communication.
Where is TIME used?
Often used in older systems or devices that need simple time synchronization.
Primarily found in legacy computing systems or embedded devices.
Used where high precision (like NTP) is not required, and basic time updates are sufficient.
Which OSI layer does this protocol belong to?
The TIME protocol operates at the Application Layer (Layer 7) of the OSI model.
It relies on the Transport Layer for communication, typically using TCP.
Is TIME Windows specific?
No, TIME is not Windows-specific.
It is supported on various operating systems, including UNIX, Linux, and even some embedded systems.
Is TIME Linux specific?
No, TIME is not Linux-specific.
It can be implemented on any operating system that supports TCP/IP and can use port 37 for communication.
Which Transport Protocol is used by TIME?
TIME typically uses TCP (Transmission Control Protocol) for communication.
It ensures reliable, ordered transmission of time data from the server to the client.
Which Port is used by TIME?
The TIME protocol operates over TCP port 37 for communication between the client and server.
Is TIME using Client-server model?
Yes, the TIME protocol follows the client-server model.
The client sends a request to the server, which then responds with the current time.
Topics in this section,
In this section, you are going to learn
Terminology
Version Info
RFC details |
|||
---|---|---|---|
S.No |
TIME Version |
core Idea/ Contribution |
RFC Details |
1 |
TIME Protocol v1 |
Defines a simple protocol for retrieving the current time as a 32-bit unsigned integer representing seconds since |
RFC 868 |
00:00:00 UTC on January 1, 1900. Supports both TCP and UDP over port 37. |
TIME protocol over TCP using IPv4 on interface enp0s8
Step-1: Assign IPv4 Addresses for two VM’s.
test:~$sudo ip addr add 192.168.200.1/24 dev enp0s8 test:~$sudo ip link set enp0s8 up test:~$sudo ip addr add 192.168.200.2/24 dev enp0s8 test:~$sudo ip link set enp0s8 upStep-2: Create TIME Service Configs.
test:~$sudo nano /etc/xinetd.d/time-tcpStep-3: Enable and Start xinetd.
test:~$sudo systemctl enable xinetd test:~$sudo systemctl restart xinetdStep-4: Verify TIME service is listening.
test:~$sudo netstat -tulnp | grep ":37"Step-5: Test from Another VM.
test:~$rdate -p 192.168.200.1 You should see the current time printedStep-6: Wireshark Capture.
:download:Download wireshark capture <TIME/time_ipv4_tcp.pcapng>
TIME protocol over TCP using IPv6 on interface enp0s8
Step-1: Assign IPv6 Addresses for two VM’s.
test:~$sudo ip addr add 2001:db8:abcd:1/64 dev enp0s8 test:~$sudo ip link set enp0s8 up test:~$sudo ip addr add 2001:db8:abcd:2/64 dev enp0s8 test:~$sudo ip link set enp0s8 upStep-2: Install Required Packages.
test:~$sudo apt update test:~$sudo apt install -y xinetd rdate net-toolsStep-3: Create TIME Service Configs (IPv6).
test:~$sudo nano /etc/xinetd.d/time-streamStep-4: Enable and Start xinetd.
test:~$sudo systemctl enable xinetd test:~$sudo systemctl restart xinetdStep-5: Verify TIME service is listening on IPv6.
test:~$sudo ss -tln6 | grep :37 # TCP
Step-6: Test from Another IPv6 VM.
test:~$rdate -6 -p 2001:db8:abcd::1
- Step-6: Wireshark Capture.
:download:Download wireshark capture <TIME/time_ipv6_tcp.pcapng>
Client Request Packet
S.No |
Protocol Packet |
Description |
Size(Bytes) |
---|---|---|---|
1 |
Client Request Packet |
The client sends an empty request to the server on port 37 (TCP or UDP). |
0 (no payload) |
Application Data |
No payload is sent; the client simply initiates a connection to port 37. |
0 |
|
Total Packet Size |
No application-layer data; only transport and IP headers are used. |
0 Bytes |
|
Server Response Packet
S.No |
Protocol Packet |
Description |
Size(Bytes) |
---|---|---|---|
2 |
Server Response Packet |
The server responds with a 32-bit unsigned integer representing the number of seconds since |
4 |
00:00:00 UTC on January 1, 1900. |
|||
Timestamp |
A 32-bit unsigned integer representing seconds since 00:00:00 UTC on Jan 1, 1900 |
4 |
|
Total Packet Size |
The entire TIME protocol response consists of this single field. |
4 Bytes |
|
Use Case |
||
---|---|---|
S.No |
Use Case |
Description |
1 |
Legacy System Time Sync |
Used in older operating systems and network devices that support only basic time protocols. |
2 |
Minimal Embedded Systems |
Ideal for microcontrollers or embedded devices with limited memory and processing power. |
3 |
Boot-Time Clock Initialization |
Helps systems without a real-time clock (RTC) to set the correct time during startup. |
4 |
Network Time Testing |
Useful for verifying time server availability and basic time accuracy in test environments. |
5 |
Fallback Time Source |
Acts as a backup when NTP or SNTP services are unavailable or unsupported. |
6 |
Firewall-Friendly Time Sync |
Easier to allow through firewalls due to its simple use of TCP/UDP port 37. |
7 |
Educational Demonstrations |
Used in labs and classrooms to demonstrate basic client-server time exchange. |
8 |
Simple IoT Devices |
Suitable for Internet of Things devices that need basic time stamping. |
9 |
Low-Bandwidth Environments |
Efficient in networks with limited bandwidth due to its small 4-byte response. |
10 |
Custom Time Clients |
Developers can build lightweight time clients for specific applications or platforms. |
11 |
Historical Protocol Compatibility |
Maintains compatibility with older systems or software that still rely on RFC 868. |
12 |
Offline Time Sync Testing |
Can be used in isolated networks or virtual labs to simulate time synchronization. |
Basic Features |
||
---|---|---|
S.No |
Feature |
Description |
1 |
Simplicity |
TIME protocol is extremely simple, consisting of a single 4-byte response from the server. |
2 |
Lightweight Communication |
Requires minimal bandwidth and processing, making it ideal for low-resource environments. |
3 |
TCP and UDP Support |
Can operate over both TCP and UDP transport protocols on port 37. |
4 |
Fixed Epoch |
Uses a fixed epoch starting from January 1, 1900, unlike Unix time which starts from 1970. |
5 |
Stateless Server |
The server does not maintain any session or state; it simply responds with the current time. |
6 |
Firewall-Friendly |
Operates on a single well-known port (37), making it easier to configure in firewalled environments. |
7 |
Cross-Platform Compatibility |
Can be implemented on any system that supports basic TCP/UDP networking. |
8 |
No Authentication Required |
Does not require credentials or encryption, simplifying implementation (though less secure). |
9 |
Legacy System Support |
Still supported in some older operating systems and embedded devices. |
10 |
Quick Time Retrieval |
Provides a fast and efficient way to retrieve the current time from a remote server. |
Simplicity - Testcases
Simplicity |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Default Configuration |
Start TIME service with default settings |
Service starts successfully |
2 |
Minimal Setup |
Configure TIME with minimal parameters |
Time sync works |
3 |
One-Command Start |
Start TIME with a single command |
Service starts and syncs |
4 |
Simple CLI Help |
Run –help command |
Clear and concise help output |
5 |
Simple Config File |
Use a basic config file |
TIME reads and applies settings |
6 |
Human-Readable Logs |
Check log format |
Logs are easy to understand |
7 |
Clear Error Messages |
Trigger a config error |
Error message is descriptive |
8 |
Simple Time Format |
Output time in standard format |
Time is readable (e.g., ISO 8601) |
9 |
Easy Installation |
Install TIME on Linux |
Installation completes with one command |
10 |
Easy Uninstallation |
Uninstall TIME |
TIME removed cleanly |
11 |
Simple Update |
Update TIME version |
Update completes without issues |
12 |
Minimal Dependencies |
Check required packages |
Only essential dependencies used |
13 |
Simple API Call |
Make a time request via API |
Response is quick and readable |
14 |
Simple JSON Output |
Request time in JSON |
Output is clean and structured |
15 |
Simple Integration |
Integrate TIME with app |
Integration succeeds with minimal code |
16 |
Simple Sync Check |
Check sync status |
Output is clear (e.g., “Synced”) |
17 |
Simple Restart |
Restart TIME service |
Service restarts without errors |
18 |
Simple Port Usage |
Use default port |
TIME listens on standard port |
19 |
Simple Firewall Rule |
Allow TIME through firewall |
Rule added with one command |
20 |
Simple Time Drift Correction |
Detect and correct drift |
Drift corrected automatically |
21 |
Simple Client Setup |
Configure TIME client |
Client syncs with server |
22 |
Simple Server Setup |
Configure TIME server |
Server responds to requests |
23 |
Simple Debug Mode |
Enable debug mode |
Extra logs appear clearly |
24 |
Simple Status Command |
Run status check |
Output is readable |
25 |
Simple Time Zone Handling |
Set time zone |
TIME respects system time zone |
26 |
Simple UTC Output |
Output time in UTC |
UTC time displayed |
27 |
Simple Local Time Output |
Output local time |
Local time displayed |
28 |
Simple Sync Interval |
Set sync interval |
TIME syncs at set interval |
29 |
Simple Retry Logic |
Handle failed sync |
Retry occurs automatically |
30 |
Simple Logging Toggle |
Enable/disable logging |
Logging toggled easily |
31 |
Simple Version Check |
Check TIME version |
Version displayed clearly |
32 |
Simple Help Docs |
Access documentation |
Docs are concise and clear |
33 |
Simple GUI (if available) |
Use GUI interface |
GUI is intuitive |
34 |
Simple Mobile Support |
Use TIME on mobile |
App syncs time easily |
35 |
Simple Cross-Platform Support |
Run on Windows/Linux/Mac |
TIME works consistently |
36 |
Simple Config Validation |
Validate config file |
Errors shown clearly |
37 |
Simple Backup |
Backup TIME settings |
Backup created easily |
38 |
Simple Restore |
Restore TIME settings |
Settings restored correctly |
39 |
Simple Sync Log |
View sync history |
Log is easy to read |
40 |
Simple Time Accuracy Display |
Show sync accuracy |
Accuracy shown in ms |
41 |
Simple Network Setup |
Use TIME over LAN |
Sync works without extra setup |
42 |
Simple IPv6 Support |
Use TIME with IPv6 |
Sync works over IPv6 |
43 |
Simple IPv4 Support |
Use TIME with IPv4 |
Sync works over IPv4 |
44 |
Simple Error Recovery |
Recover from crash |
TIME restarts and resumes |
45 |
Simple Notification |
Notify on sync failure |
Alert is shown or logged |
46 |
Simple Time Source Switch |
Switch time source |
TIME adapts automatically |
47 |
Simple Offline Mode |
Run in offline mode |
TIME uses cached time |
48 |
Simple Sync Verification |
Verify time sync |
Output confirms sync |
49 |
Simple User Permissions |
Run as non-root user |
TIME works with limited permissions |
50 |
Simple Security Settings |
Enable basic security |
TIME uses secure defaults |
Ligthweight Communication - Testcases
Lightweight Communication |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Send Basic Message |
Send a simple text message |
Message is delivered successfully |
2 |
Receive Basic Message |
Receive a simple text message |
Message is received and displayed |
3 |
Timestamp Accuracy |
Verify timestamp on sent message |
Timestamp matches system time |
4 |
Timestamp Sync |
Verify timestamp sync between sender and receiver |
Timestamps are consistent |
5 |
Message Acknowledgement |
Check if ACK is sent after message received |
ACK is received by sender |
6 |
Message Retry on Failure |
Simulate network failure |
Message is retried automatically |
7 |
Message Order |
Send multiple messages in sequence |
Messages are received in order |
8 |
Duplicate Message Handling |
Send same message twice |
Duplicate is detected and ignored |
9 |
Message Size Limit |
Send message at max allowed size |
Message is accepted and delivered |
10 |
Exceed Message Size |
Send message exceeding size limit |
Error is returned |
11 |
Empty Message |
Send an empty message |
Error or warning is shown |
12 |
Special Characters |
Send message with special characters |
Message is delivered correctly |
13 |
Unicode Support |
Send message in non-English script |
Message is displayed correctly |
14 |
Message Encryption |
Send encrypted message |
Message is decrypted correctly |
15 |
Message Integrity |
Tamper with message in transit |
Integrity check fails |
16 |
Delayed Delivery |
Simulate network delay |
Message is eventually delivered |
17 |
Offline Storage |
Send message while receiver is offline |
Message is stored and delivered later |
18 |
Message Expiry |
Set expiry time on message |
Message is deleted after expiry |
19 |
Priority Messaging |
Send high-priority message |
Message is delivered before others |
20 |
Low Bandwidth Mode |
Simulate low bandwidth |
Message is compressed and delivered |
21 |
Connection Timeout |
Simulate timeout during send |
Timeout error is shown |
22 |
Reconnection Handling |
Disconnect and reconnect |
Messages resume after reconnect |
23 |
Multi-Device Sync |
Send from one device, receive on another |
Message syncs across devices |
24 |
Message Queueing |
Queue messages when offline |
Messages are sent when online |
25 |
Message Logging |
Log all sent/received messages |
Logs are accurate and complete |
26 |
Message Deletion |
Delete a sent message |
Message is removed from receiver |
27 |
Message Edit |
Edit a sent message |
Updated message is shown |
28 |
Message Read Receipt |
Enable read receipts |
Sender sees read status |
29 |
Message Delivery Receipt |
Enable delivery receipts |
Sender sees delivery status |
30 |
Group Messaging |
Send message to multiple recipients |
All recipients receive message |
31 |
Broadcast Messaging |
Send broadcast message |
All users receive message |
32 |
Message Compression |
Compress large message |
Message is compressed and delivered |
33 |
Message Fragmentation |
Break large message into parts |
All parts are reassembled correctly |
34 |
Protocol Version Compatibility |
Use different protocol versions |
Communication still works |
35 |
Invalid Protocol Header |
Send message with invalid header |
Error is returned |
36 |
Unauthorized Sender |
Send message from unauthorized user |
Message is rejected |
37 |
Session Timeout |
Let session expire |
New session is required |
38 |
Session Reuse |
Reuse existing session |
Session is valid and reused |
39 |
Time Drift Detection |
Simulate clock drift |
Drift is detected and corrected |
40 |
Time Sync Request |
Request time sync from server |
Time is updated correctly |
41 |
Time Zone Handling |
Send message across time zones |
Time is displayed in local time |
42 |
Daylight Saving Adjustment |
Send message during DST change |
Time is adjusted correctly |
43 |
Message Format Validation |
Send malformed message |
Error is returned |
44 |
Protocol Handshake |
Initiate handshake |
Handshake completes successfully |
45 |
Secure Channel Establishment |
Establish secure channel |
Channel is encrypted |
46 |
Message Replay Attack |
Replay old message |
Replay is detected and blocked |
47 |
Load Testing |
Send 1000 messages rapidly |
System handles load without failure |
48 |
Stress Test |
Simulate high traffic |
System remains stable |
49 |
Latency Measurement |
Measure message round-trip time |
Latency is within acceptable range |
50 |
Resource Usage |
Monitor CPU/memory during messaging |
Usage is within limits |
TCP and UDP Support - Testcases
TCP and UDP Support |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
TCP Connection Establishment |
Connect to TIME server over TCP |
Connection established |
2 |
UDP Packet Send |
Send TIME request over UDP |
Server responds with time |
3 |
TCP Time Format |
Validate time format over TCP |
32-bit unsigned integer |
4 |
UDP Time Format |
Validate time format over UDP |
32-bit unsigned integer |
5 |
TCP Port Listening |
Check if server listens on TCP port 37 |
Port is open |
6 |
UDP Port Listening |
Check if server listens on UDP port 37 |
Port is open |
7 |
TCP Response Time |
Measure response time over TCP |
< 100ms |
8 |
UDP Response Time |
Measure response time over UDP |
< 100ms |
9 |
TCP Connection Timeout |
Simulate timeout on TCP |
Connection times out |
10 |
UDP Packet Loss |
Simulate packet loss on UDP |
No response or retry |
11 |
TCP Invalid Request |
Send malformed TCP request |
Server ignores or closes connection |
12 |
UDP Invalid Request |
Send malformed UDP packet |
Server ignores packet |
13 |
TCP Multiple Clients |
Connect multiple clients via TCP |
All receive valid time |
14 |
UDP Multiple Clients |
Send multiple UDP requests |
All receive valid time |
15 |
TCP Server Crash Recovery |
Restart server after crash |
Server resumes correctly |
16 |
UDP Server Crash Recovery |
Restart server after crash |
Server resumes correctly |
17 |
TCP Firewall Block |
Block TCP port 37 |
Connection fails |
18 |
UDP Firewall Block |
Block UDP port 37 |
No response |
19 |
TCP IPv6 Support |
Connect using IPv6 over TCP |
Connection successful |
20 |
UDP IPv6 Support |
Connect using IPv6 over UDP |
Response received |
21 |
TCP High Latency |
Simulate high latency |
Time still received |
22 |
UDP High Latency |
Simulate high latency |
Time still received |
23 |
TCP Packet Sniffing |
Capture TCP packet |
Time value visible |
24 |
UDP Packet Sniffing |
Capture UDP packet |
Time value visible |
25 |
TCP Time Accuracy |
Compare time with NTP |
Within 1 second |
26 |
UDP Time Accuracy |
Compare time with NTP |
Within 1 second |
27 |
TCP Port Scan Detection |
Scan for TCP port 37 |
Server logs or ignores |
28 |
UDP Port Scan Detection |
Scan for UDP port 37 |
Server logs or ignores |
29 |
TCP Connection Flood |
Flood with TCP connections |
Server handles or throttles |
30 |
UDP Flood Attack |
Flood with UDP packets |
Server handles or throttles |
31 |
TCP Keep-Alive |
Maintain long TCP connection |
Server closes after response |
32 |
UDP Statelessness |
Send multiple UDP packets |
Server responds to each |
33 |
TCP Logging |
Check server logs for TCP |
Request logged |
34 |
UDP Logging |
Check server logs for UDP |
Request logged |
35 |
TCP Authentication |
Attempt auth on TCP |
Not required |
36 |
UDP Authentication |
Attempt auth on UDP |
Not required |
37 |
TCP Encryption |
Attempt TLS on TCP |
Not supported |
38 |
UDP Encryption |
Attempt DTLS on UDP |
Not supported |
39 |
TCP Time Drift |
Check time drift over hours |
Drift < 1s/hour |
40 |
UDP Time Drift |
Check time drift over hours |
Drift < 1s/hour |
41 |
TCP Retry Mechanism |
Retry on TCP failure |
Time received on retry |
42 |
UDP Retry Mechanism |
Retry on UDP timeout |
Time received on retry |
43 |
TCP Server Load |
Test under high TCP load |
Server remains responsive |
44 |
UDP Server Load |
Test under high UDP load |
Server remains responsive |
45 |
TCP Packet Fragmentation |
Send fragmented TCP packets |
Server reassembles correctly |
46 |
UDP Packet Fragmentation |
Send fragmented UDP packets |
Server handles or drops |
47 |
TCP NAT Traversal |
Connect from NATed client |
Time received |
48 |
UDP NAT Traversal |
Send from NATed client |
Time received |
49 |
TCP Version Compatibility |
Test with various OS TCP stacks |
All succeed |
50 |
UDP Version Compatibility |
Test with various OS UDP stacks |
All succeed |
Fixed Epoch - Testcases
Fixed Epoch |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Validate Epoch Start |
Check if time starts from 1900-01-01 00:00:00 GMT |
Time = 0 |
2 |
Validate Epoch Offset |
Compare TIME value with Unix epoch |
TIME = UNIX + 2208988800 |
3 |
Past Date Before Epoch |
Request time before 1900 |
Not supported or error |
4 |
Epoch Consistency |
Restart server and check epoch |
Epoch remains fixed |
5 |
Epoch Format |
Validate 32-bit unsigned integer format |
Correct format |
6 |
Epoch Overflow |
Simulate time past 2036 |
Wraps or handled correctly |
7 |
Epoch Leap Year |
Validate leap year handling since 1900 |
Accurate time |
8 |
Epoch Leap Second |
Validate leap second handling |
Ignored (as per spec) |
9 |
Epoch Time Drift |
Compare with NTP server |
Within 1s |
10 |
Epoch Conversion |
Convert TIME to human-readable date |
Matches expected date |
11 |
Epoch in TCP |
Validate epoch in TCP response |
Correct |
12 |
Epoch in UDP |
Validate epoch in UDP response |
Correct |
13 |
Epoch in IPv6 |
Validate epoch over IPv6 |
Correct |
14 |
Epoch in IPv4 |
Validate epoch over IPv4 |
Correct |
15 |
Epoch in Big Endian |
Validate byte order |
Big endian |
16 |
Epoch in Little Endian |
Send little endian |
Server rejects or misinterprets |
17 |
Epoch in Future |
Simulate future date (e.g., 2030) |
Valid TIME value |
18 |
Epoch in Past |
Simulate past date (e.g., 1950) |
Valid TIME value |
19 |
Epoch in 2025 |
Validate TIME value for 2025 |
Matches expected |
20 |
Epoch in 2000 |
Validate TIME value for 2000 |
Matches expected |
21 |
Epoch in 1970 |
Validate TIME value for Unix epoch |
2208988800 |
22 |
Epoch in 1900 |
Validate TIME = 0 |
Correct |
23 |
Epoch in 2036 |
Validate near overflow |
Max 32-bit unsigned int |
24 |
Epoch Wraparound |
Simulate post-2036 wrap |
Handled or documented |
25 |
Epoch in Leap Year |
Validate 2004, 2008, etc. |
Correct |
26 |
Epoch in Non-Leap Year |
Validate 2001, 2003, etc. |
Correct |
27 |
Epoch in Feb 29 |
Validate Feb 29 in leap years |
Correct |
28 |
Epoch in Feb 28 |
Validate Feb 28 in all years |
Correct |
29 |
Epoch in Dec 31 |
Validate end of year |
Correct |
30 |
Epoch in Jan 1 |
Validate start of year |
Correct |
31 |
Epoch in DST Start |
Validate during DST change |
No DST adjustment |
32 |
Epoch in DST End |
Validate during DST end |
No DST adjustment |
33 |
Epoch in GMT |
Validate time is GMT |
Always GMT |
34 |
Epoch in Local Time |
Convert to local time |
Matches conversion |
35 |
Epoch in NTP Format |
Compare with NTP epoch |
Offset = 70 years |
36 |
Epoch in SNTP |
Validate SNTP compatibility |
Matches |
37 |
Epoch in Logging |
Log TIME value |
Matches expected |
38 |
Epoch in Monitoring |
Monitor TIME values over time |
Increments correctly |
39 |
Epoch in Simulation |
Simulate TIME server |
Matches epoch |
40 |
Epoch in Emulation |
Emulate TIME client |
Converts correctly |
41 |
Epoch in Embedded Device |
Validate on IoT device |
Correct |
42 |
Epoch in Virtual Machine |
Validate in VM |
Correct |
43 |
Epoch in Cloud |
Validate in cloud server |
Correct |
44 |
Epoch in Container |
Validate in Docker |
Correct |
45 |
Epoch in Mobile |
Validate on mobile client |
Correct |
46 |
Epoch in Browser |
Convert TIME in JS |
Matches expected |
47 |
Epoch in Python |
Convert TIME in Python |
Matches expected |
48 |
Epoch in Java |
Convert TIME in Java |
Matches expected |
49 |
Epoch in C/C++ |
Convert TIME in C |
Matches expected |
50 |
Epoch in API |
Validate TIME in REST API |
Matches epoch |
Stateless Server - Testcases
Stateless Server |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Stateless TCP Request |
Send TCP request |
Server responds without storing state |
2 |
Stateless UDP Request |
Send UDP request |
Server responds without storing state |
3 |
Multiple UDP Requests |
Send multiple UDP requests |
Each handled independently |
4 |
Multiple TCP Requests |
Open/close TCP connections repeatedly |
No session retained |
5 |
No Session Memory |
Send request, disconnect, reconnect |
Server behaves identically |
6 |
No Authentication State |
Send request with credentials |
Server ignores credentials |
7 |
No Client Tracking |
Send from different IPs |
Server treats all equally |
8 |
No Cookies |
Check for cookie headers |
None present |
9 |
No Session ID |
Check for session identifiers |
None present |
10 |
Stateless Logging |
Check logs for session data |
Only request timestamp/IP |
11 |
Stateless Load Balancing |
Use load balancer |
All servers respond identically |
12 |
Stateless Failover |
Switch server mid-test |
No impact on response |
13 |
Stateless UDP Retry |
Retry UDP request |
Same response, no memory of previous |
14 |
Stateless TCP Retry |
Retry TCP request |
Same response, no memory of previous |
15 |
Stateless Under Load |
High volume of requests |
No degradation due to state |
16 |
Stateless After Crash |
Restart server |
No recovery needed |
17 |
Stateless with NAT |
Send from NATed clients |
Server responds without tracking |
18 |
Stateless with VPN |
Send from VPN |
Server responds without tracking |
19 |
Stateless with Proxy |
Send via proxy |
Server responds without tracking |
20 |
Stateless with IPv6 |
Send IPv6 request |
Stateless behavior maintained |
21 |
Stateless with IPv4 |
Send IPv4 request |
Stateless behavior maintained |
22 |
Stateless with Invalid Data |
Send malformed request |
Server ignores without logging state |
23 |
Stateless with Fragmented Packets |
Send fragmented UDP |
Server handles or drops without state |
24 |
Stateless with Delayed Packets |
Delay packets |
Server does not wait or track |
25 |
Stateless with Out-of-Order Packets |
Send out-of-order UDP |
Server handles each independently |
26 |
Stateless with Duplicate Packets |
Send duplicate UDP |
Server responds to each |
27 |
Stateless with Spoofed IP |
Send from spoofed IP |
Server responds without validation |
28 |
Stateless with Port Scan |
Scan ports |
Server does not retain scan info |
29 |
Stateless with Firewall |
Block/reopen port |
Server resumes without state loss |
30 |
Stateless with DNS Change |
Change DNS mid-test |
Server unaffected |
31 |
Stateless with Time Drift |
Change system time |
Server reflects new time, no state |
32 |
Stateless with Clock Sync |
Sync clock via NTP |
Server reflects new time |
33 |
Stateless with Logging Disabled |
Disable logs |
Server still responds |
34 |
Stateless with Logging Enabled |
Enable logs |
No session data logged |
35 |
Stateless with Rate Limiting |
Apply rate limit |
Server may throttle but not track |
36 |
Stateless with TLS Attempt |
Try TLS |
Server does not support or track |
37 |
Stateless with DTLS Attempt |
Try DTLS |
Server does not support or track |
38 |
Stateless with Connection Drop |
Drop mid-request |
Server unaffected |
39 |
Stateless with Reconnection |
Reconnect immediately |
Server responds normally |
40 |
Stateless with Load Test |
1000+ requests |
Server handles without memory issues |
41 |
Stateless with Client Rotation |
Rotate clients |
Server treats all equally |
42 |
Stateless with Time Zone Change |
Change client time zone |
Server sends GMT time |
43 |
Stateless with OS Change |
Change client OS |
Server responds identically |
44 |
Stateless with Protocol Switch |
Switch TCP/UDP |
Server responds statelessly |
45 |
Stateless with Packet Inspection |
Inspect packets |
No session info present |
46 |
Stateless with API Gateway |
Use API gateway |
Server remains stateless |
47 |
Stateless with Cloudflare |
Route via Cloudflare |
Server remains stateless |
48 |
Stateless with CDN |
Use CDN in front |
Server remains stateless |
49 |
Stateless with Serverless Infra |
Deploy as serverless |
Stateless behavior maintained |
50 |
Stateless with Container Restart |
Restart container |
No state retained |
Firewall Friendly - Testcases
Firewall-Friendly |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
TCP Port 37 Open |
Check if TIME server responds on TCP port 37 |
Response received |
2 |
UDP Port 37 Open |
Check if TIME server responds on UDP port 37 |
Response received |
3 |
TCP Port 37 Blocked |
Block TCP port 37 via firewall |
No response |
4 |
UDP Port 37 Blocked |
Block UDP port 37 via firewall |
No response |
5 |
TCP Port Whitelisting |
Whitelist TCP port 37 |
Server responds |
6 |
UDP Port Whitelisting |
Whitelist UDP port 37 |
Server responds |
7 |
TCP NAT Traversal |
Request from behind NAT |
Response received |
8 |
UDP NAT Traversal |
Request from behind NAT |
Response received |
9 |
TCP Stateful Firewall |
Request through stateful firewall |
Response received |
10 |
UDP Stateless Firewall |
Request through stateless firewall |
Response received |
11 |
TCP Deep Packet Inspection |
Inspect TIME packet |
No sensitive data exposed |
12 |
UDP Deep Packet Inspection |
Inspect TIME packet |
No sensitive data exposed |
13 |
TCP Port Forwarding |
Forward port 37 to internal server |
Response received |
14 |
UDP Port Forwarding |
Forward port 37 to internal server |
Response received |
15 |
TCP Connection Timeout |
Simulate firewall timeout |
Connection closed |
16 |
UDP Packet Timeout |
Simulate firewall timeout |
No response |
17 |
TCP Keep-Alive Blocked |
Block keep-alive packets |
TIME still works |
18 |
UDP Fragment Blocked |
Block fragmented UDP |
TIME still works or drops |
19 |
TCP Proxy Support |
Send request via TCP proxy |
Response received |
20 |
UDP Proxy Support |
Send request via UDP proxy |
Response received |
21 |
TCP Transparent Proxy |
Use transparent proxy |
TIME works |
22 |
UDP Transparent Proxy |
Use transparent proxy |
TIME works |
23 |
TCP Port Remapping |
Remap port 37 to another port |
TIME responds on new port |
24 |
UDP Port Remapping |
Remap port 37 to another port |
TIME responds on new port |
25 |
TCP Application Firewall |
Pass through app-layer firewall |
TIME allowed |
26 |
UDP Application Firewall |
Pass through app-layer firewall |
TIME allowed |
27 |
TCP Port Scan Detection |
Scan port 37 |
Server logs or ignores |
28 |
UDP Port Scan Detection |
Scan port 37 |
Server logs or ignores |
29 |
TCP Port Range Allowed |
Allow port range including 37 |
TIME works |
30 |
UDP Port Range Allowed |
Allow port range including 37 |
TIME works |
31 |
TCP Port Range Blocked |
Block port range including 37 |
TIME fails |
32 |
UDP Port Range Blocked |
Block port range including 37 |
TIME fails |
33 |
TCP with IDS |
Use Intrusion Detection System |
TIME not flagged |
34 |
UDP with IDS |
Use Intrusion Detection System |
TIME not flagged |
35 |
TCP with IPS |
Use Intrusion Prevention System |
TIME not blocked |
36 |
UDP with IPS |
Use Intrusion Prevention System |
TIME not blocked |
37 |
TCP with VPN |
Send request over VPN |
TIME works |
38 |
UDP with VPN |
Send request over VPN |
TIME works |
39 |
TCP with Split Tunneling |
Use split tunnel VPN |
TIME works |
40 |
UDP with Split Tunneling |
Use split tunnel VPN |
TIME works |
41 |
TCP with Cloud Firewall |
Use cloud-based firewall |
TIME allowed |
42 |
UDP with Cloud Firewall |
Use cloud-based firewall |
TIME allowed |
43 |
TCP with Geo-Blocking |
Block by region |
TIME blocked as expected |
44 |
UDP with Geo-Blocking |
Block by region |
TIME blocked as expected |
45 |
TCP with DNS Filtering |
Use DNS firewall |
TIME unaffected |
46 |
UDP with DNS Filtering |
Use DNS firewall |
TIME unaffected |
47 |
TCP with Port Knocking |
Use port knocking to open 37 |
TIME works after knock |
48 |
UDP with Port Knocking |
Use port knocking to open 37 |
TIME works after knock |
49 |
TCP with Zero Trust Firewall |
Use zero-trust policy |
TIME allowed if configured |
50 |
UDP with Zero Trust Firewall |
Use zero-trust policy |
TIME allowed if configured |
Cross Platform Compatibility - Testcases
Cross-Platform Compatibility |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Windows 10 Client |
Run TIME client on Windows 10 |
Time received correctly |
2 |
Windows 11 Client |
Run TIME client on Windows 11 |
Time received correctly |
3 |
macOS Ventura Client |
Run TIME client on macOS Ventura |
Time received correctly |
4 |
macOS Monterey Client |
Run TIME client on macOS Monterey |
Time received correctly |
5 |
Ubuntu 22.04 Client |
Run TIME client on Ubuntu 22.04 |
Time received correctly |
6 |
Debian 12 Client |
Run TIME client on Debian 12 |
Time received correctly |
7 |
Fedora 39 Client |
Run TIME client on Fedora 39 |
Time received correctly |
8 |
Arch Linux Client |
Run TIME client on Arch Linux |
Time received correctly |
9 |
Android 13 Client |
Run TIME client on Android 13 |
Time received correctly |
10 |
iOS 17 Client |
Run TIME client on iOS 17 |
Time received correctly |
11 |
Raspberry Pi OS |
Run TIME client on Raspberry Pi |
Time received correctly |
12 |
FreeBSD Client |
Run TIME client on FreeBSD |
Time received correctly |
13 |
Solaris Client |
Run TIME client on Solaris |
Time received correctly |
14 |
Windows Server 2022 |
Run TIME server on Windows Server |
Responds correctly |
15 |
Linux Server |
Run TIME server on Linux |
Responds correctly |
16 |
macOS Server |
Run TIME server on macOS |
Responds correctly |
17 |
Docker Container |
Run TIME server in Docker |
Responds correctly |
18 |
Kubernetes Pod |
Run TIME server in Kubernetes |
Responds correctly |
19 |
Virtual Machine |
Run TIME server in VM |
Responds correctly |
20 |
Bare Metal Server |
Run TIME server on physical hardware |
Responds correctly |
21 |
x86 Architecture |
Run TIME client on x86 |
Time received correctly |
22 |
ARM Architecture |
Run TIME client on ARM |
Time received correctly |
23 |
M1/M2 Mac |
Run TIME client on Apple Silicon |
Time received correctly |
24 |
IPv4 Network |
Connect over IPv4 |
Time received correctly |
25 |
IPv6 Network |
Connect over IPv6 |
Time received correctly |
26 |
Dual Stack Network |
Connect over dual stack |
Time received correctly |
27 |
Wi-Fi Network |
Connect via Wi-Fi |
Time received correctly |
28 |
Ethernet Network |
Connect via Ethernet |
Time received correctly |
29 |
Mobile Network |
Connect via 4G/5G |
Time received correctly |
30 |
Satellite Network |
Connect via satellite |
Time received correctly |
31 |
VPN Connection |
Connect through VPN |
Time received correctly |
32 |
Proxy Connection |
Connect through proxy |
Time received correctly |
33 |
Cloud VM (AWS) |
Run TIME server on AWS EC2 |
Responds correctly |
34 |
Cloud VM (Azure) |
Run TIME server on Azure VM |
Responds correctly |
35 |
Cloud VM (GCP) |
Run TIME server on GCP |
Responds correctly |
36 |
IoT Device |
Run TIME client on IoT device |
Time received correctly |
37 |
Smart TV |
Run TIME client on smart TV |
Time received correctly |
38 |
Game Console |
Run TIME client on console |
Time received correctly |
39 |
Web Browser (JS Client) |
Use JS to fetch TIME |
Time parsed correctly |
40 |
Python Client |
Use Python script to fetch TIME |
Time parsed correctly |
41 |
Java Client |
Use Java app to fetch TIME |
Time parsed correctly |
42 |
C/C++ Client |
Use C/C++ app to fetch TIME |
Time parsed correctly |
43 |
Go Client |
Use Go app to fetch TIME |
Time parsed correctly |
44 |
Rust Client |
Use Rust app to fetch TIME |
Time parsed correctly |
45 |
Node.js Client |
Use Node.js app to fetch TIME |
Time parsed correctly |
46 |
.NET Client |
Use .NET app to fetch TIME |
Time parsed correctly |
47 |
Cross-Platform CLI Tool |
Use CLI tool on all OS |
Time received correctly |
48 |
Cross-Platform GUI Tool |
Use GUI tool on all OS |
Time received correctly |
49 |
Multi-User Environment |
Multiple users on same system |
All receive correct time |
50 |
Multi-Platform Sync |
Sync time across platforms |
All show consistent time |
No Authentication Required - Testcases
No Authentication Required |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
TCP Request Without Credentials |
Send TCP request without credentials |
Time received |
2 |
UDP Request Without Credentials |
Send UDP request without credentials |
Time received |
3 |
TCP Request With Credentials |
Send TCP request with credentials |
Credentials ignored, time received |
4 |
UDP Request With Credentials |
Send UDP request with credentials |
Credentials ignored, time received |
5 |
No Login Prompt |
Connect to TIME server |
No login prompt shown |
6 |
No Token Required |
Send request without token |
Time received |
7 |
Invalid Token Sent |
Send request with invalid token |
Time still received |
8 |
Basic Auth Header Sent |
Send HTTP-style auth header |
Ignored, time received |
9 |
OAuth Header Sent |
Send OAuth token |
Ignored, time received |
10 |
API Key Sent |
Send API key in request |
Ignored, time received |
11 |
Encrypted Credentials Sent |
Send encrypted credentials |
Ignored, time received |
12 |
Auth Failure Simulation |
Simulate auth failure |
No effect, time received |
13 |
Auth Required Server |
Connect to server requiring auth |
TIME protocol fails (not supported) |
14 |
Auth Header Injection |
Inject auth header in packet |
Ignored, time received |
15 |
Auth Query Parameter |
Add auth param in URL |
Ignored, time received |
16 |
Auth in Payload |
Embed auth in payload |
Ignored, time received |
17 |
Auth in TCP Options |
Send auth in TCP options |
Ignored, time received |
18 |
Auth in UDP Options |
Send auth in UDP options |
Ignored, time received |
19 |
Auth in DNS |
Use DNS-based auth |
Ignored, time received |
20 |
Auth in Proxy |
Use proxy with auth |
Proxy handles auth, TIME works |
21 |
Auth in VPN |
Use VPN with auth |
VPN handles auth, TIME works |
22 |
Auth in Firewall |
Firewall requires auth |
TIME blocked by firewall |
23 |
Auth in NAT |
NAT requires auth |
TIME blocked or NAT handles |
24 |
Auth in Load Balancer |
Load balancer requires auth |
TIME works if LB handles it |
25 |
Auth in TLS |
Use TLS with auth |
TIME protocol does not support TLS |
26 |
Auth in DTLS |
Use DTLS with auth |
TIME protocol does not support DTLS |
27 |
Auth in Application Layer |
Application layer requires auth |
TIME protocol bypasses it |
28 |
Auth in Middleware |
Middleware requires auth |
TIME protocol bypasses it |
29 |
Auth in API Gateway |
API gateway requires auth |
TIME protocol bypasses or fails |
30 |
Auth in Cloud Firewall |
Cloud firewall requires auth |
TIME blocked or allowed |
31 |
Auth in CDN |
CDN requires auth |
TIME blocked or allowed |
32 |
Auth in WebSocket |
Use WebSocket with auth |
Not applicable to TIME |
33 |
Auth in REST API |
Use REST API with auth |
Not applicable to TIME |
34 |
Auth in SNMP |
Use SNMP with auth |
Not applicable to TIME |
35 |
Auth in NTP |
Compare with NTP auth |
TIME does not support auth |
36 |
Auth in SSH |
Use SSH with auth |
Not applicable to TIME |
37 |
Auth in FTP |
Use FTP with auth |
Not applicable to TIME |
38 |
Auth in HTTP |
Use HTTP with auth |
Not applicable to TIME |
39 |
Auth in HTTPS |
Use HTTPS with auth |
Not applicable to TIME |
40 |
Auth in MQTT |
Use MQTT with auth |
Not applicable to TIME |
41 |
Auth in CoAP |
Use CoAP with auth |
Not applicable to TIME |
42 |
Auth in gRPC |
Use gRPC with auth |
Not applicable to TIME |
43 |
Auth in SOAP |
Use SOAP with auth |
Not applicable to TIME |
44 |
Auth in Web App |
Web app requires auth |
TIME protocol unaffected |
45 |
Auth in Mobile App |
Mobile app requires auth |
TIME protocol unaffected |
46 |
Auth in CLI Tool |
CLI tool requires auth |
TIME protocol unaffected |
47 |
Auth in GUI Tool |
GUI tool requires auth |
TIME protocol unaffected |
48 |
Auth in OS |
OS requires login |
TIME protocol works post-login |
49 |
Auth in BIOS |
BIOS password set |
TIME protocol unaffected |
50 |
Auth in TPM |
TPM-based auth enabled |
TIME protocol unaffected |
Legacy System Support - Testcases
Legacy System Support |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
Windows XP Client |
Run TIME client on Windows XP |
Time received correctly |
2 |
Windows 7 Client |
Run TIME client on Windows 7 |
Time received correctly |
3 |
Windows 2000 Client |
Run TIME client on Windows 2000 |
Time received correctly |
4 |
Windows NT Client |
Run TIME client on Windows NT |
Time received correctly |
5 |
MS-DOS Client |
Run TIME client on MS-DOS |
Time received correctly |
6 |
macOS 10.6 (Snow Leopard) |
Run TIME client on macOS 10.6 |
Time received correctly |
7 |
macOS 10.4 (Tiger) |
Run TIME client on macOS 10.4 |
Time received correctly |
8 |
Ubuntu 10.04 |
Run TIME client on Ubuntu 10.04 |
Time received correctly |
9 |
Debian 6 |
Run TIME client on Debian 6 |
Time received correctly |
10 |
Red Hat 5 |
Run TIME client on RHEL 5 |
Time received correctly |
11 |
Solaris 10 |
Run TIME client on Solaris 10 |
Time received correctly |
12 |
AIX 7.1 |
Run TIME client on IBM AIX |
Time received correctly |
13 |
HP-UX 11i |
Run TIME client on HP-UX |
Time received correctly |
14 |
FreeBSD 9 |
Run TIME client on FreeBSD 9 |
Time received correctly |
15 |
NetBSD 6 |
Run TIME client on NetBSD 6 |
Time received correctly |
16 |
OpenBSD 5 |
Run TIME client on OpenBSD 5 |
Time received correctly |
17 |
OS/2 Warp |
Run TIME client on OS/2 |
Time received correctly |
18 |
BeOS |
Run TIME client on BeOS |
Time received correctly |
19 |
AmigaOS |
Run TIME client on AmigaOS |
Time received correctly |
20 |
VMS |
Run TIME client on OpenVMS |
Time received correctly |
21 |
Legacy TCP Stack |
Use old TCP/IP stack |
TIME protocol works |
22 |
Legacy UDP Stack |
Use old UDP/IP stack |
TIME protocol works |
23 |
32-bit Architecture |
Run on 32-bit system |
Time received correctly |
24 |
16-bit Architecture |
Run on 16-bit system |
Time received correctly |
25 |
Legacy BIOS Clock Sync |
Sync BIOS clock via TIME |
Time updated |
26 |
Legacy Hardware Clock |
Use TIME to sync hardware clock |
Time updated |
27 |
Legacy Network Card |
Use old NIC |
TIME protocol works |
28 |
Legacy Serial Modem |
Use dial-up connection |
TIME protocol works |
29 |
Legacy Ethernet |
Use 10 Mbps Ethernet |
TIME protocol works |
30 |
Legacy Wi-Fi (802.11b) |
Use old Wi-Fi standard |
TIME protocol works |
31 |
Legacy Firewall |
Pass through old firewall |
TIME protocol allowed |
32 |
Legacy NAT Device |
Use old NAT router |
TIME protocol works |
33 |
Legacy Proxy Server |
Use old proxy |
TIME protocol works |
34 |
Legacy DNS Resolver |
Use old DNS resolver |
TIME server resolved |
35 |
Legacy Logging System |
Log TIME requests |
Logs correctly |
36 |
Legacy Scheduler |
Use TIME in cron or AT |
Time used correctly |
37 |
Legacy Embedded Device |
Run TIME client on embedded system |
Time received correctly |
38 |
Legacy POS Terminal |
Use TIME to sync POS clock |
Time updated |
39 |
Legacy SCADA System |
Use TIME for SCADA sync |
Time updated |
40 |
Legacy Industrial Controller |
Use TIME for PLC sync |
Time updated |
41 |
Legacy Mainframe |
Use TIME on mainframe |
Time received correctly |
42 |
Legacy Terminal Emulator |
Use TIME in terminal |
Time displayed |
43 |
Legacy Batch Script |
Use TIME in batch file |
Time parsed correctly |
44 |
Legacy Shell Script |
Use TIME in shell script |
Time parsed correctly |
45 |
Legacy C Application |
Use TIME in C program |
Time parsed correctly |
46 |
Legacy Java Application |
Use TIME in Java 1.4 |
Time parsed correctly |
47 |
Legacy Python Script |
Use TIME in Python 2.4 |
Time parsed correctly |
48 |
Legacy Perl Script |
Use TIME in Perl 5.8 |
Time parsed correctly |
49 |
Legacy SNMP Integration |
Use TIME with SNMP |
Time integrated |
50 |
Legacy System Clock Drift |
Use TIME to correct drift |
Time corrected |
Quick Time Retrieval - Testcases
Quick Time Retrieval |
|||
---|---|---|---|
S.No |
Test Case |
Description |
Expected Result |
1 |
TCP Time Retrieval |
Request time over TCP |
Response within 100ms |
2 |
UDP Time Retrieval |
Request time over UDP |
Response within 50ms |
3 |
Local Network TCP |
Request time on LAN via TCP |
Response < 10ms |
4 |
Local Network UDP |
Request time on LAN via UDP |
Response < 5ms |
5 |
WAN TCP |
Request time over WAN via TCP |
Response < 200ms |
6 |
WAN UDP |
Request time over WAN via UDP |
Response < 150ms |
7 |
High Latency Network |
Simulate 300ms latency |
TIME still retrieved |
8 |
Packet Loss Simulation |
Simulate 10% packet loss |
TIME retrieved with retry |
9 |
Server Under Load |
Request during high server load |
TIME retrieved within threshold |
10 |
Client Under Load |
Request from busy client |
TIME retrieved correctly |
11 |
Mobile Network |
Request via 4G/5G |
TIME retrieved < 200ms |
12 |
Satellite Network |
Request via satellite |
TIME retrieved < 600ms |
13 |
VPN Connection |
Request through VPN |
TIME retrieved correctly |
14 |
Proxy Connection |
Request through proxy |
TIME retrieved correctly |
15 |
Cloud Server |
Request from cloud VM |
TIME retrieved < 100ms |
16 |
Docker Container |
Request from container |
TIME retrieved correctly |
17 |
Virtual Machine |
Request from VM |
TIME retrieved correctly |
18 |
Bare Metal Server |
Request from physical server |
TIME retrieved correctly |
19 |
IPv4 Request |
Request via IPv4 |
TIME retrieved correctly |
20 |
IPv6 Request |
Request via IPv6 |
TIME retrieved correctly |
21 |
Dual Stack Request |
Request via dual stack |
TIME retrieved correctly |
22 |
Multiple Requests |
Send 100 requests in succession |
All responses < 100ms |
23 |
Concurrent Clients |
50 clients request simultaneously |
All receive time quickly |
24 |
Time Retrieval in Python |
Use Python client |
TIME retrieved correctly |
25 |
Time Retrieval in Java |
Use Java client |
TIME retrieved correctly |
26 |
Time Retrieval in C |
Use C client |
TIME retrieved correctly |
27 |
Time Retrieval in Go |
Use Go client |
TIME retrieved correctly |
28 |
Time Retrieval in Rust |
Use Rust client |
TIME retrieved correctly |
29 |
Time Retrieval in Node.js |
Use Node.js client |
TIME retrieved correctly |
30 |
Time Retrieval in .NET |
Use .NET client |
TIME retrieved correctly |
31 |
Time Retrieval in CLI Tool |
Use command-line tool |
TIME retrieved instantly |
32 |
Time Retrieval in GUI Tool |
Use GUI app |
TIME displayed quickly |
33 |
Time Retrieval in Web App |
Use browser-based client |
TIME retrieved correctly |
34 |
Time Retrieval in Mobile App |
Use mobile app |
TIME retrieved correctly |
35 |
Time Retrieval in Embedded Device |
Use IoT device |
TIME retrieved correctly |
36 |
Time Retrieval in POS Terminal |
Use POS system |
TIME retrieved correctly |
37 |
Time Retrieval in SCADA System |
Use SCADA client |
TIME retrieved correctly |
38 |
Time Retrieval in PLC |
Use industrial controller |
TIME retrieved correctly |
39 |
Time Retrieval in Legacy System |
Use old OS |
TIME retrieved correctly |
40 |
Time Retrieval in Modern OS |
Use latest OS |
TIME retrieved correctly |
41 |
Time Retrieval with DNS Resolution |
Resolve server name |
TIME retrieved correctly |
42 |
Time Retrieval with IP Address |
Use direct IP |
TIME retrieved correctly |
43 |
Time Retrieval with Firewall |
Request through firewall |
TIME retrieved correctly |
44 |
Time Retrieval with NAT |
Request from NATed client |
TIME retrieved correctly |
45 |
Time Retrieval with Load Balancer |
Request via LB |
TIME retrieved correctly |
46 |
Time Retrieval with CDN |
Request via CDN |
TIME retrieved correctly |
47 |
Time Retrieval with TLS Attempt |
Attempt TLS |
TIME not supported, fails fast |
48 |
Time Retrieval with DTLS Attempt |
Attempt DTLS |
TIME not supported, fails fast |
49 |
Time Retrieval with Invalid Packet |
Send malformed request |
Server ignores quickly |
50 |
Time Retrieval with Retry Logic |
Retry on failure |
TIME retrieved on retry |
Reference links