Related coursework for mca403 - Unix Network Programming
The major task was FTP implementation. This repo holds all the trials.
- Beej's guide to Network Programming
- Tutorial based on Beej's guide
- RFC-793 TCP, RFC-854 Telnet
- RFC-959 FTP
- D. J. Bernstein's guide to FTP's practical Implemention
Click here to know more about the trials.
- read TCP, telnet spec and rfc959 FTP spec
- figure out properties of stream sockets and block and compressed sockets
- figure out why len is limited in TCP transmission. MTU 1500 maybe? How can it be resolved.
- Test on 2 VMs. find a working code.
- Connect my system directly to ethernet. Then try. This will confirm the NAT theory. Tried. Not working. IDK WHY?
- figure out why my system is not working. NAT ?
- Modify rfc code to remove HARD coded IP address.
- Read then entire code. Understand it, comment it.
- Break it and start coding new app.
- VM on Digital ocean
ssh [email protected]
- VM on Google cloud
ssh [email protected]
- Strangely enough. Things are not working on my wifi. Tried without the router as well. Even with single IP source, it says no route to host. Now before coding any solution, verify that
telnet <my system IP>
is working. This will tell if there's no path or connection refusing.
-
- dummy login
- responses and response codes
- major functionality implemented and follows rfc959
- Passive port implemented
- Tested the internet working. Works Now. On two VM's. Does not work from my system because of NAT maybe.
- TODO : Figure out a way to remove HARDCODED IP, probably by reading the spec sheet and conforming that IP address can be removed from the PORT command
-
- Basic functionality of commands
- No response codes
- No login
- TODO : There is a strange problem. Maybe it works in only one packet burst, but only half the data is transferred. Limit seems to be 1401 bytes, maybe because Linux MTU is 1500 bytes. FIGURE OUT if possible.
- Works on VMs, but only limited bytes are transferred, as said in point 4.
- Doesn't work from system to internet. Port bind error.
-
- Basic functionality works.
- But leaves a temp file whereever it goes
- Not ready for use
TCP_demo
- Works as intended.
- Works over the internet.
- Somehow has a transfer limit.
- Works as a tcp-demo hello-world app
- TODO : figure out why limit