-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
executable file
·48 lines (40 loc) · 1.55 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
================================================
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.