1 / 15

CSC458 Programming Assignment 2

CSC458 Programming Assignment 2. Hossein Kaffash Bokharaei. Simplified TCP (STCP). You will implement a reliable transport layer, a simplified version of TCP. Code Structure. Network Layer: Is given to you! Transport Layer: You should implement it in “ transport.c ”. Application Layer:

sugar
Download Presentation

CSC458 Programming Assignment 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSC458Programming Assignment 2 Hossein Kaffash Bokharaei

  2. Simplified TCP (STCP) • You will implement a reliable transport layer, a simplified version of TCP.

  3. Code Structure • Network Layer: • Is given to you! • Transport Layer: • You should implement it in “transport.c”. • Application Layer: • A sample is given • Different application will be used to test your transport layer.

  4. First Milestone • Assume that the network layer is reliable: • No packet drops • No reordering • No retransmission • … • The supplied client and server programs should work in reliable mode.

  5. Second Milestone • Your implementation should handle unreliable network layer: • Packet loss and reordering • The supplied client/server programs as well as more sophisticated client/server programs should work in unreliable mode.

  6. Deliverables • Your modified transport.c • README file.

  7. Things to consider • Read the code carefully! • Most of the parts are given to you, and it’s better to understand what they are doing.

  8. Sequence Numbers • Every packet requires a sequence number. • Each connection has two streams of sequence numbers for incoming and outgoing data.

  9. Data Packets • Data packets are sent as soon as data is available – no need for optimization.

  10. ACK Packets • An ACK should be sent as soon as data arrives – no need for optimization.

  11. Sliding Windows • Receiver window size and congestion window size are fixed!

  12. TCP Options • Ignore them!

  13. Retransmission • You need to have a timer for each packet sent. • In case of time out, at most 5 retransmission can occur.

  14. Network Initiation • You should implement 3-way SYN handshake.

  15. Network Termination • Each peer transmits a FIN segment when it finishes sending data.

More Related