├── .clang-format ├── .gitignore ├── CMakeLists.txt ├── NOTE.md ├── README.md ├── apps ├── CMakeLists.txt ├── bidirectional_stream_copy.cc ├── bidirectional_stream_copy.hh ├── replaced_webget.cc ├── tcp_benchmark.cc ├── tcp_ipv4.cc ├── tcp_native.cc ├── tcp_udp.cc ├── tun.cc ├── udp_tcpdump.cc ├── webget └── webget.cc ├── doctests ├── CMakeLists.txt ├── address_dt.cc ├── address_example_1.cc ├── address_example_2.cc ├── address_example_3.cc ├── parser_dt.cc ├── parser_example.cc ├── socket_dt.cc ├── socket_example_1.cc ├── socket_example_2.cc └── socket_example_3.cc ├── etc ├── Doxyfile.in ├── build_defs.cmake ├── build_type.cmake ├── cflags.cmake ├── clang_format.cmake ├── clang_tidy.cmake ├── cppcheck.cmake ├── cppreference-doxygen-web.tag.xml ├── doxygen.cmake ├── linux-man-doxygen-web.tag.xml ├── rfc-doxygen-web.tag.xml ├── sponge_doxygen.css ├── sponge_small.png ├── tests.cmake └── tunconfig ├── hw_and_exam ├── draft │ ├── connect2.txt │ ├── connection.txt │ ├── reassembler.txt │ ├── receiver.txt │ └── sender.txt ├── imgs │ ├── close.jpg │ ├── receiver-evolution.svg │ ├── sender-evolution.svg │ ├── tcp-connection.jpg │ └── tcp-state.jpg ├── todo.md └── wireshark_exercise │ ├── res.md │ └── wireshark_exercise_pcaps.zip ├── libsponge ├── CMakeLists.txt ├── byte_stream.cc ├── byte_stream.hh ├── stream_reassembler.cc ├── stream_reassembler.hh ├── tcp_connection.cc ├── tcp_connection.hh ├── tcp_helpers │ ├── fd_adapter.cc │ ├── fd_adapter.hh │ ├── ipv4_datagram.cc │ ├── ipv4_datagram.hh │ ├── ipv4_header.cc │ ├── ipv4_header.hh │ ├── lossy_fd_adapter.hh │ ├── tcp_config.hh │ ├── tcp_header.cc │ ├── tcp_header.hh │ ├── tcp_segment.cc │ ├── tcp_segment.hh │ ├── tcp_sponge_socket.cc │ ├── tcp_sponge_socket.hh │ ├── tcp_state.cc │ ├── tcp_state.hh │ ├── tunfd_adapter.cc │ └── tunfd_adapter.hh ├── tcp_receiver.cc ├── tcp_receiver.hh ├── tcp_sender.cc ├── tcp_sender.hh ├── util │ ├── address.cc │ ├── address.hh │ ├── buffer.cc │ ├── buffer.hh │ ├── eventloop.cc │ ├── eventloop.hh │ ├── file_descriptor.cc │ ├── file_descriptor.hh │ ├── parser.cc │ ├── parser.hh │ ├── socket.cc │ ├── socket.hh │ ├── tun.cc │ ├── tun.hh │ ├── util.cc │ └── util.hh ├── wrapping_integers.cc └── wrapping_integers.hh ├── tests ├── CMakeLists.txt ├── byte_stream_capacity.cc ├── byte_stream_construction.cc ├── byte_stream_many_writes.cc ├── byte_stream_one_write.cc ├── byte_stream_test_harness.cc ├── byte_stream_test_harness.hh ├── byte_stream_two_writes.cc ├── fsm_ack_rst.cc ├── fsm_ack_rst_relaxed.cc ├── fsm_ack_rst_win.cc ├── fsm_ack_rst_win_relaxed.cc ├── fsm_active_close.cc ├── fsm_connect.cc ├── fsm_connect_relaxed.cc ├── fsm_listen.cc ├── fsm_listen_relaxed.cc ├── fsm_loopback.cc ├── fsm_loopback_win.cc ├── fsm_passive_close.cc ├── fsm_reorder.cc ├── fsm_retx.cc ├── fsm_retx.hh ├── fsm_retx_relaxed.cc ├── fsm_retx_win.cc ├── fsm_stream_reassembler_cap.cc ├── fsm_stream_reassembler_dup.cc ├── fsm_stream_reassembler_harness.hh ├── fsm_stream_reassembler_holes.cc ├── fsm_stream_reassembler_many.cc ├── fsm_stream_reassembler_overlapping.cc ├── fsm_stream_reassembler_seq.cc ├── fsm_stream_reassembler_single.cc ├── fsm_stream_reassembler_win.cc ├── fsm_winsize.cc ├── ipv4_parser.cc ├── ipv4_parser.data ├── receiver_harness.hh ├── recv_close.cc ├── recv_connect.cc ├── recv_reorder.cc ├── recv_transmit.cc ├── recv_window.cc ├── send_ack.cc ├── send_close.cc ├── send_connect.cc ├── send_equivalence_checker.cc ├── send_equivalence_checker.hh ├── send_retx.cc ├── send_transmit.cc ├── send_window.cc ├── sender_harness.hh ├── string_conversions.hh ├── tcp_expectation.hh ├── tcp_expectation_forward.hh ├── tcp_fsm_test_harness.cc ├── tcp_fsm_test_harness.hh ├── tcp_parser.cc ├── test_err_if.hh ├── test_should_be.hh ├── test_utils.hh ├── test_utils_ipv4.hh ├── webget_t.sh ├── wrapping_integers_cmp.cc ├── wrapping_integers_unwrap.cc └── wrapping_integers_wrap.cc ├── tun.sh ├── txrx.sh └── writeups ├── lab0.md ├── lab1.md ├── lab2.md ├── lab3.md └── lab4.md /.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/.clang-format -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/.gitignore -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /NOTE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/NOTE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/README.md -------------------------------------------------------------------------------- /apps/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/CMakeLists.txt -------------------------------------------------------------------------------- /apps/bidirectional_stream_copy.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/bidirectional_stream_copy.cc -------------------------------------------------------------------------------- /apps/bidirectional_stream_copy.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/bidirectional_stream_copy.hh -------------------------------------------------------------------------------- /apps/replaced_webget.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/replaced_webget.cc -------------------------------------------------------------------------------- /apps/tcp_benchmark.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/tcp_benchmark.cc -------------------------------------------------------------------------------- /apps/tcp_ipv4.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/tcp_ipv4.cc -------------------------------------------------------------------------------- /apps/tcp_native.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/tcp_native.cc -------------------------------------------------------------------------------- /apps/tcp_udp.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/tcp_udp.cc -------------------------------------------------------------------------------- /apps/tun.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/tun.cc -------------------------------------------------------------------------------- /apps/udp_tcpdump.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/udp_tcpdump.cc -------------------------------------------------------------------------------- /apps/webget: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/webget -------------------------------------------------------------------------------- /apps/webget.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/apps/webget.cc -------------------------------------------------------------------------------- /doctests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/CMakeLists.txt -------------------------------------------------------------------------------- /doctests/address_dt.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/address_dt.cc -------------------------------------------------------------------------------- /doctests/address_example_1.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/address_example_1.cc -------------------------------------------------------------------------------- /doctests/address_example_2.cc: -------------------------------------------------------------------------------- 1 | const Address a_dns_server("18.71.0.151", 53); 2 | -------------------------------------------------------------------------------- /doctests/address_example_3.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/address_example_3.cc -------------------------------------------------------------------------------- /doctests/parser_dt.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/parser_dt.cc -------------------------------------------------------------------------------- /doctests/parser_example.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/parser_example.cc -------------------------------------------------------------------------------- /doctests/socket_dt.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/socket_dt.cc -------------------------------------------------------------------------------- /doctests/socket_example_1.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/socket_example_1.cc -------------------------------------------------------------------------------- /doctests/socket_example_2.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/socket_example_2.cc -------------------------------------------------------------------------------- /doctests/socket_example_3.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/doctests/socket_example_3.cc -------------------------------------------------------------------------------- /etc/Doxyfile.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/Doxyfile.in -------------------------------------------------------------------------------- /etc/build_defs.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/build_defs.cmake -------------------------------------------------------------------------------- /etc/build_type.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/build_type.cmake -------------------------------------------------------------------------------- /etc/cflags.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/cflags.cmake -------------------------------------------------------------------------------- /etc/clang_format.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/clang_format.cmake -------------------------------------------------------------------------------- /etc/clang_tidy.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/clang_tidy.cmake -------------------------------------------------------------------------------- /etc/cppcheck.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/cppcheck.cmake -------------------------------------------------------------------------------- /etc/cppreference-doxygen-web.tag.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/cppreference-doxygen-web.tag.xml -------------------------------------------------------------------------------- /etc/doxygen.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/doxygen.cmake -------------------------------------------------------------------------------- /etc/linux-man-doxygen-web.tag.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/linux-man-doxygen-web.tag.xml -------------------------------------------------------------------------------- /etc/rfc-doxygen-web.tag.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/rfc-doxygen-web.tag.xml -------------------------------------------------------------------------------- /etc/sponge_doxygen.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/sponge_doxygen.css -------------------------------------------------------------------------------- /etc/sponge_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/sponge_small.png -------------------------------------------------------------------------------- /etc/tests.cmake: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/etc/tests.cmake -------------------------------------------------------------------------------- /etc/tunconfig: -------------------------------------------------------------------------------- 1 | TUN_IP_PREFIX=169.254 2 | -------------------------------------------------------------------------------- /hw_and_exam/draft/connect2.txt: -------------------------------------------------------------------------------- 1 | 2 | func seg_receiver(seg) 3 | -------------------------------------------------------------------------------- /hw_and_exam/draft/connection.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/draft/connection.txt -------------------------------------------------------------------------------- /hw_and_exam/draft/reassembler.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/draft/reassembler.txt -------------------------------------------------------------------------------- /hw_and_exam/draft/receiver.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/draft/receiver.txt -------------------------------------------------------------------------------- /hw_and_exam/draft/sender.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/draft/sender.txt -------------------------------------------------------------------------------- /hw_and_exam/imgs/close.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/imgs/close.jpg -------------------------------------------------------------------------------- /hw_and_exam/imgs/receiver-evolution.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/imgs/receiver-evolution.svg -------------------------------------------------------------------------------- /hw_and_exam/imgs/sender-evolution.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/imgs/sender-evolution.svg -------------------------------------------------------------------------------- /hw_and_exam/imgs/tcp-connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/imgs/tcp-connection.jpg -------------------------------------------------------------------------------- /hw_and_exam/imgs/tcp-state.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/imgs/tcp-state.jpg -------------------------------------------------------------------------------- /hw_and_exam/todo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/todo.md -------------------------------------------------------------------------------- /hw_and_exam/wireshark_exercise/res.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/wireshark_exercise/res.md -------------------------------------------------------------------------------- /hw_and_exam/wireshark_exercise/wireshark_exercise_pcaps.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/hw_and_exam/wireshark_exercise/wireshark_exercise_pcaps.zip -------------------------------------------------------------------------------- /libsponge/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/CMakeLists.txt -------------------------------------------------------------------------------- /libsponge/byte_stream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/byte_stream.cc -------------------------------------------------------------------------------- /libsponge/byte_stream.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/byte_stream.hh -------------------------------------------------------------------------------- /libsponge/stream_reassembler.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/stream_reassembler.cc -------------------------------------------------------------------------------- /libsponge/stream_reassembler.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/stream_reassembler.hh -------------------------------------------------------------------------------- /libsponge/tcp_connection.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_connection.cc -------------------------------------------------------------------------------- /libsponge/tcp_connection.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_connection.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/fd_adapter.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/fd_adapter.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/fd_adapter.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/fd_adapter.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/ipv4_datagram.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/ipv4_datagram.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/ipv4_datagram.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/ipv4_datagram.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/ipv4_header.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/ipv4_header.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/ipv4_header.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/ipv4_header.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/lossy_fd_adapter.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/lossy_fd_adapter.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_config.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_config.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_header.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_header.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_header.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_header.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_segment.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_segment.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_segment.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_segment.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_sponge_socket.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_sponge_socket.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_sponge_socket.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_sponge_socket.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_state.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_state.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tcp_state.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tcp_state.hh -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tunfd_adapter.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tunfd_adapter.cc -------------------------------------------------------------------------------- /libsponge/tcp_helpers/tunfd_adapter.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_helpers/tunfd_adapter.hh -------------------------------------------------------------------------------- /libsponge/tcp_receiver.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_receiver.cc -------------------------------------------------------------------------------- /libsponge/tcp_receiver.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_receiver.hh -------------------------------------------------------------------------------- /libsponge/tcp_sender.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_sender.cc -------------------------------------------------------------------------------- /libsponge/tcp_sender.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/tcp_sender.hh -------------------------------------------------------------------------------- /libsponge/util/address.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/address.cc -------------------------------------------------------------------------------- /libsponge/util/address.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/address.hh -------------------------------------------------------------------------------- /libsponge/util/buffer.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/buffer.cc -------------------------------------------------------------------------------- /libsponge/util/buffer.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/buffer.hh -------------------------------------------------------------------------------- /libsponge/util/eventloop.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/eventloop.cc -------------------------------------------------------------------------------- /libsponge/util/eventloop.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/eventloop.hh -------------------------------------------------------------------------------- /libsponge/util/file_descriptor.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/file_descriptor.cc -------------------------------------------------------------------------------- /libsponge/util/file_descriptor.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/file_descriptor.hh -------------------------------------------------------------------------------- /libsponge/util/parser.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/parser.cc -------------------------------------------------------------------------------- /libsponge/util/parser.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/parser.hh -------------------------------------------------------------------------------- /libsponge/util/socket.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/socket.cc -------------------------------------------------------------------------------- /libsponge/util/socket.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/socket.hh -------------------------------------------------------------------------------- /libsponge/util/tun.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/tun.cc -------------------------------------------------------------------------------- /libsponge/util/tun.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/tun.hh -------------------------------------------------------------------------------- /libsponge/util/util.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/util.cc -------------------------------------------------------------------------------- /libsponge/util/util.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/util/util.hh -------------------------------------------------------------------------------- /libsponge/wrapping_integers.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/wrapping_integers.cc -------------------------------------------------------------------------------- /libsponge/wrapping_integers.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/libsponge/wrapping_integers.hh -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/CMakeLists.txt -------------------------------------------------------------------------------- /tests/byte_stream_capacity.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_capacity.cc -------------------------------------------------------------------------------- /tests/byte_stream_construction.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_construction.cc -------------------------------------------------------------------------------- /tests/byte_stream_many_writes.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_many_writes.cc -------------------------------------------------------------------------------- /tests/byte_stream_one_write.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_one_write.cc -------------------------------------------------------------------------------- /tests/byte_stream_test_harness.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_test_harness.cc -------------------------------------------------------------------------------- /tests/byte_stream_test_harness.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_test_harness.hh -------------------------------------------------------------------------------- /tests/byte_stream_two_writes.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/byte_stream_two_writes.cc -------------------------------------------------------------------------------- /tests/fsm_ack_rst.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_ack_rst.cc -------------------------------------------------------------------------------- /tests/fsm_ack_rst_relaxed.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_ack_rst_relaxed.cc -------------------------------------------------------------------------------- /tests/fsm_ack_rst_win.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_ack_rst_win.cc -------------------------------------------------------------------------------- /tests/fsm_ack_rst_win_relaxed.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_ack_rst_win_relaxed.cc -------------------------------------------------------------------------------- /tests/fsm_active_close.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_active_close.cc -------------------------------------------------------------------------------- /tests/fsm_connect.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_connect.cc -------------------------------------------------------------------------------- /tests/fsm_connect_relaxed.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_connect_relaxed.cc -------------------------------------------------------------------------------- /tests/fsm_listen.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_listen.cc -------------------------------------------------------------------------------- /tests/fsm_listen_relaxed.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_listen_relaxed.cc -------------------------------------------------------------------------------- /tests/fsm_loopback.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_loopback.cc -------------------------------------------------------------------------------- /tests/fsm_loopback_win.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_loopback_win.cc -------------------------------------------------------------------------------- /tests/fsm_passive_close.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_passive_close.cc -------------------------------------------------------------------------------- /tests/fsm_reorder.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_reorder.cc -------------------------------------------------------------------------------- /tests/fsm_retx.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_retx.cc -------------------------------------------------------------------------------- /tests/fsm_retx.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_retx.hh -------------------------------------------------------------------------------- /tests/fsm_retx_relaxed.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_retx_relaxed.cc -------------------------------------------------------------------------------- /tests/fsm_retx_win.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_retx_win.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_cap.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_cap.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_dup.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_dup.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_harness.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_harness.hh -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_holes.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_holes.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_many.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_many.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_overlapping.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_overlapping.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_seq.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_seq.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_single.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_single.cc -------------------------------------------------------------------------------- /tests/fsm_stream_reassembler_win.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_stream_reassembler_win.cc -------------------------------------------------------------------------------- /tests/fsm_winsize.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/fsm_winsize.cc -------------------------------------------------------------------------------- /tests/ipv4_parser.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/ipv4_parser.cc -------------------------------------------------------------------------------- /tests/ipv4_parser.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/ipv4_parser.data -------------------------------------------------------------------------------- /tests/receiver_harness.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/receiver_harness.hh -------------------------------------------------------------------------------- /tests/recv_close.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/recv_close.cc -------------------------------------------------------------------------------- /tests/recv_connect.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/recv_connect.cc -------------------------------------------------------------------------------- /tests/recv_reorder.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/recv_reorder.cc -------------------------------------------------------------------------------- /tests/recv_transmit.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/recv_transmit.cc -------------------------------------------------------------------------------- /tests/recv_window.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/recv_window.cc -------------------------------------------------------------------------------- /tests/send_ack.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_ack.cc -------------------------------------------------------------------------------- /tests/send_close.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_close.cc -------------------------------------------------------------------------------- /tests/send_connect.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_connect.cc -------------------------------------------------------------------------------- /tests/send_equivalence_checker.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_equivalence_checker.cc -------------------------------------------------------------------------------- /tests/send_equivalence_checker.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_equivalence_checker.hh -------------------------------------------------------------------------------- /tests/send_retx.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_retx.cc -------------------------------------------------------------------------------- /tests/send_transmit.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_transmit.cc -------------------------------------------------------------------------------- /tests/send_window.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/send_window.cc -------------------------------------------------------------------------------- /tests/sender_harness.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/sender_harness.hh -------------------------------------------------------------------------------- /tests/string_conversions.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/string_conversions.hh -------------------------------------------------------------------------------- /tests/tcp_expectation.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/tcp_expectation.hh -------------------------------------------------------------------------------- /tests/tcp_expectation_forward.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/tcp_expectation_forward.hh -------------------------------------------------------------------------------- /tests/tcp_fsm_test_harness.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/tcp_fsm_test_harness.cc -------------------------------------------------------------------------------- /tests/tcp_fsm_test_harness.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/tcp_fsm_test_harness.hh -------------------------------------------------------------------------------- /tests/tcp_parser.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/tcp_parser.cc -------------------------------------------------------------------------------- /tests/test_err_if.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/test_err_if.hh -------------------------------------------------------------------------------- /tests/test_should_be.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/test_should_be.hh -------------------------------------------------------------------------------- /tests/test_utils.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/test_utils.hh -------------------------------------------------------------------------------- /tests/test_utils_ipv4.hh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/test_utils_ipv4.hh -------------------------------------------------------------------------------- /tests/webget_t.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/webget_t.sh -------------------------------------------------------------------------------- /tests/wrapping_integers_cmp.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/wrapping_integers_cmp.cc -------------------------------------------------------------------------------- /tests/wrapping_integers_unwrap.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/wrapping_integers_unwrap.cc -------------------------------------------------------------------------------- /tests/wrapping_integers_wrap.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tests/wrapping_integers_wrap.cc -------------------------------------------------------------------------------- /tun.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/tun.sh -------------------------------------------------------------------------------- /txrx.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/txrx.sh -------------------------------------------------------------------------------- /writeups/lab0.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/writeups/lab0.md -------------------------------------------------------------------------------- /writeups/lab1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/writeups/lab1.md -------------------------------------------------------------------------------- /writeups/lab2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/writeups/lab2.md -------------------------------------------------------------------------------- /writeups/lab3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/writeups/lab3.md -------------------------------------------------------------------------------- /writeups/lab4.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/carlclone/cs144-2019/HEAD/writeups/lab4.md --------------------------------------------------------------------------------