-
Notifications
You must be signed in to change notification settings - Fork 0
d-levin/simple-tcp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
================================================ README file for Project 3 - Simple TCP Name(s): Dennis Levin, Harish Bajaj, Matt Jordan ================================================ Files: transport.c, README Run server with ./server Server can be quite by signaling CTRL+C Run client with [-q] [-f <filename>] server:port OVERVIEW: This project implements a "Simple" Transport Control Protocol (STCP) that mimics actual TCP by providing the services listed below. Since this is a simplified version, so not all functionalities of pure TCP are supported. IMPLEMENTED: 1. Sliding Window(s) - Fixed size: 3072 bytes - A receive window - A sender window = min(receive window, congestion window) 2. TCP segment send/receive 3. Connection Setup/Teardown NOT IMPLEMENTED: 1. Congestion Control 2. Since a reliable network layers is assumed, timeouts, packet loss, and reordering of packets are not supported. IMPLEMENTATION DESIGN DECISION: 1. Connection state enumerations were defined and used on an "as needed" basis. 2. Based on need, our context_t manages these resources: - connection state - sequence number - received sequence number - receiver window size - receiver buffer - sender buffer 3. Three-way handshaking mimics that of traditional TCP 4. After a connection is established, on three events are handled: - Application data - Network data - Application close request LIMITATIONS: 1. Project can not call any function in mysock.h/c 2. Only plain text can be retrieved from the server. Other files types may result in unexpected results.
About
Implementation of a simple TCP protocol (sTCP)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published