Debugging network activity on an iOS device can be challenging. There are fantastic tools built into Xcode that allow you to to see the data flowing in and out of the device, but troubleshooting network activity at the TCP level can be difficult. Often the best option you have is to perform a packet capture at the router level, but this presents it’s own set of challenges.
Debugging network issues no matter what platform you are on can be challenging. Often, the deeper you dig into the operating system the harder it can be to analyze and accurately interpret the network traffic you are seeing. And working with iOS is no different. Debugging iOS traffic from a device to a router or from a device to a server can present many challenges.
A few weeks ago Apple released a new open source framework on GitHub called Swift-NIO. What is Swift-NIO? The opening line on GitHub describes the project as a cross platform, event driven, non-blocking, application framework to develop high performance networking applications in Swift. So what does that mean?
Over the last 6 months I have noticed a lot of code going into CPython working with SSL and TLS. At first I did not think anything commits and brushed it off as bug fixes and improvements. However, as the months went by and I kept seeing these commits come through it started to get my curiosity piqued about what might be happening in language under the hood.