A method of monitoring network performance in respect of a digital communications network, the digital communications network comprising a user-network comprising at least one user-device (11, 12, 13) operable to submit requests for data to and receive data from one or more remote servers via an intermediate control module, and an access network via which data may be delivered to the user-network via the control module; the method comprising the control module performing steps of: monitoring data communication between the at least one user-device (11, 12, 13) and the one or more remote servers, the data communication comprising one or more requests for data submitted by the at least one user-device, and determining from the monitoring of said data communication a location in the network of at least one remote server from which at least one user device in the user-network is deemed likely to request one or more portions of data; identifying in dependence on the determined location in the network a remote test-server, and establishing communication between the control module and the remote test-server; monitoring the communication between the control module and the remote test-server and obtaining therefrom a first network performance metric in respect of the transfer of data between the control module and the remote test-server; and in response to a request from a user-device (11, 12, 13) in the user-network for a portion of data from a remote server, providing the requested portion of data from the control module to the user-device; characterised in that the method further comprises obtaining from the provision of the requested portion of data from the control module to the user-device (11, 12, 13) a second network performance metric in respect of the transfer of data between the control module and the user-device; and establishing a network performance diagnosis in dependence on the first network performance metric and the second network performance metric. monitoring data communication between the at least one user-device (11, 12, 13) and the one or more remote servers, the data communication comprising one or more requests for data submitted by the at least one user-device, and determining from the monitoring of said data communication a location in the network of at least one remote server from which at least one user device in the user-network is deemed likely to request one or more portions of data; identifying in dependence on the determined location in the network a remote test-server, and establishing communication between the control module and the remote test-server; monitoring the communication between the control module and the remote test-server and obtaining therefrom a first network performance metric in respect of the transfer of data between the control module and the remote test-server; and in response to a request from a user-device (11, 12, 13) in the user-network for a portion of data from a remote server, providing the requested portion of data from the control module to the user-device; characterised in that the method further comprises obtaining from the provision of the requested portion of data from the control module to the user-device (11, 12, 13) a second network performance metric in respect of the transfer of data between the control module and the user-device; and establishing a network performance diagnosis in dependence on the first network performance metric and the second network performance metric.