Assignment Task
Single Client
Please note, scripts may be used during marking to automate the execution of your applications (for both single client and multiple clients), but all behaviour will be assessed manually by a tutor.
Using a different master file to the sample master file that’s provided, we will first execute your server. We will then execute various queries, similar to those in Appendix G. Sample Interactions, running one client at a time. For each, we will consider query names at various levels of the DNS hierarchy.
In the first scenario, we will execute queries that can resolve to a single answer without any referrals or query restarts. That is, there will be no need to populate the authority or additional sections of the response, and the server will never encounter an alias that would require the query to restart.
We will test with the following query types:
- A
- CNAME
- NS
The second scenario will be similar to the first, however there may be multiple answers.
We will test with the following query types:
- A
- NS
In the third scenario, we will execute queries that result in a referral, without any answers or query restarts.
We will test with the following query types:
- A
- CNAME
- NS
The referrals may include any number of expected records in the authority and additional sections.
In the fourth scenario, we will execute queries that may encounter one or more aliases and require query restart, but will not require any referrals.
We will test with the following query type:
- A
In the fifth scenario, we will execute queries that require both query restart and referrals.
We will test with the following query type:
- A
Finally, we will test:
- Client timeout
Using various timeout values.
Throughout testing, we will also assess whether the general requirements of the assignment have been met. For instance:
- Whether the server is binding to the port given as a command-line argument.
- Whether the client is using an ephemeral port.
- Whether the query ID is randomly generated.
- Whether the output is complete and easily readable.
Failure to meet any of the general requirements may result in penalties.
However, we will not assess the server’s query processing delay during this stage of the marking
Multiple Clients:
Using a different master file to the sample master file that’s provided, we will first execute your server. We will then execute various queries, using multiple clients simultaneously. For each, we will consider query names at various levels of the DNS hierarchy.
We will assess the server processing delay to ensure it’s random, in the correct range, and accurate. Without evidence of this random delay and the server being able to receive and delay/process multiple queries concurrently, it will not be possible to assess this aspect of your submission.
Also note, the server log showing some minor variation (e.g. 10 milliseconds), in addition to the random delay, between delaying a query and sending a response, is expected and acceptable.
The various scenarios we will test are:
- The same as scenario 1 for the single client, but running all types simultaneously
- The same as scenario 3 for the single client, but running all types simultaneously
- Any combination of scenarios from the single client, run simultaneously
