Transmitted transfer bug and the transport layer of the OSI model

December 1, 2017

This post is part of a series on the test IO blog about real bugs that our testers have found during test cycles. In each post, we explore the details of the issue, explain its impact, and discuss what software teams can do to avoid similar problems.

A little about the seven layers of the OSI model:

  • The application layer supports applications and end-user processes.
  • The presentation layer formats and encrypts data to be sent across a network.
  • The session layer establishes, manages and terminates connections between applications.
  • The transport layer provides transfer of data between end systems, or hosts and is responsible for end-to-end error recovery and flow control.
  • The network layer addresses  networking, error handling, and congestion control.
  • The data link layer encodes and decodes data packets.
  • The physical layer gives hardware the ability to send and receive data on a carrier.

For our bug of the week, we’re taking a look at a bug with transmitted transfers. The tester is able to successfully upload a file, but the website does not display the file in the transfer overview tab.

Transmitted transfer bug

While testing the file transfer process on a file sharing site, one of our testers found a bug while beta testing the user transfer overview section. The tester attempted to upload a file. They completed the registration for an account and uploaded a file. The uploaded file was over 100MB, which was within the 20GB upload limit. The size of the uploaded file was also within the amount of available storage space.

Once the file upload completed, the site indicated that 100% of the file had been transmitted and the transfer was successful. It then generated and displayed a link for the user to copy (and share) for downloading the file. The tester navigated to the transfer overview tab. The transfer overview tab normally displays all transferred files available for sharing. The tab is also where users can check on the download status, edit, forward or delete the files. However, no files appeared under the tab.

The bug was initially discovered on Windows 7, on the Firefox browser. However, it ended up being reproducible across browsers and platforms.

Lessons learned and best practices from test IO

What we can learn from this bug is understanding the importance of the transmission control protocol and the transport layer of the OSI model. TCP helps establish and maintain a network connection through application programs that exchange data. The transport layer is responsible for moving the data.

One of the things the transport layer is responsible for is flow control. As it pertains to TCP, flow control handles on and off functionality, also known as “xon-xoff”. In summary, when the data being sent reaches capacity during transmission, the XOFF stops the data from transmitting. When the system is ready to transmit again it sends an XON character. Since flow control can be implemented on both software and hardware there could be an issue with the software, hardware or firmware being used. Firmware is the software embedded in hardware. As lifewire explains, firmware is software for hardware.

Here are some best practices for handling your transmission transfer issues. In the article “hardware vs software vs firmware, what's the differencelifewire outlines the benefits and the vulnerabilities of all three. We recommend testing all three separately in order to rule them out. You should also confirm that you have all current updates installed, vulnerabilities are patched, and hardware regularly maintained.

If a large part of your business is offering file storage to customers, ensure that they have access to all features. They should be able to easily view, download, edit, delete or forward their desired files.

Read More

January 17, 2020
QA Squads: a new offering from test IO, amplified by EPAM

Going beyond software  Customers come to test IO for many different reasons. Sometimes, an internal product or QA team needs a force multiplier for real-world testing – to extend the existing QA team’s processes and activities beyond their internal team. Other times, it’s crisis mode – perhaps QA leadership has left the company, or there is a critical product release upcoming that […]

November 25, 2019
iOS testing: TestFlight or Resigner

Here's our guide to which method you should use you to distribute your IOS app to the crowd.

November 15, 2019
Exploratory Testing vs. Test Case Testing

Exploratory testing emphasizes creativity and learning. Test Case testing emphasizes planning and execution. Which one is right for you?

Ship Faster, Sleep Better

Get a Demo