{"guid":"ffdc92f3-1a39-4931-9409-f8bfabe9f628","title":"Transmission Control Protocol","subtitle":"TCP/IP basics","slug":"35c3-9675-transmission_control_protocol","link":"https://fahrplan.events.ccc.de/congress/2018/Fahrplan/events/9675.html","description":"TCP/IP is the most widely used protocol on the Internet for transmitting data. But how does it work in detail? This talk will explain the TCP protocol, from handshake over established to teardown in detail - and elaborate a bit on protocol adjustments over time and congestion control.\n\nI will briefly explain how computers talk to each other via the Internet Protocol (IP), and explain the transport protocols UDP and TCP, and their interaction with ICMP (for error and control messages). UDP is the user datagram protocol, an unreliable packet-oriented protocol. TCP provides a reliable stream of data, and includes connection establishment, feature negotiation, window management, and teardown.\n\nOver the last years at University of Cambridge I contributed to a formal model of TCP/IP and the Unix sockets API, developed in HOL4. We validated our HOL4 model with the FreeBSD-12 stack using Dtrace (packets, system calls, internal TCP state). In this research, we formalised a more exact TCP state machine than in initial RFCs or common literature (Stevens).\n\n\u003ca href=\"https://www.cl.cam.ac.uk/~pes20/Netsem/paper3.pdf\"\u003ehttps://www.cl.cam.ac.uk/~pes20/Netsem/paper3.pdf\u003c/a\u003e\n\n\u003ca href=\"https://github.com/rems-project/netsem\"\u003ehttps://github.com/rems-project/netsem\u003c/a\u003e","original_language":"eng","persons":["Hannes Mehnert"],"tags":["35c3","9675","Science"],"view_count":4975,"promoted":false,"date":"2018-12-27T00:00:00.000+01:00","release_date":"2018-12-27T01:00:00.000+01:00","updated_at":"2026-04-08T13:30:05.219+02:00","length":2352,"duration":2352,"thumb_url":"https://static.media.ccc.de/media/congress/2018/9675-hd.jpg","poster_url":"https://static.media.ccc.de/media/congress/2018/9675-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/congress/2018/9675-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/congress/2018/9675-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/35c3-9675-transmission_control_protocol","url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_title":"35C3: Refreshing Memories","conference_url":"https://api.media.ccc.de/public/conferences/35c3","related":[{"event_id":6378,"event_guid":"15f4e5c5-40e1-4c73-8da0-4cc2a773ab13","weight":157},{"event_id":6381,"event_guid":"c0e4f528-92c7-4170-aff3-d4dd5cd74b2c","weight":208},{"event_id":6382,"event_guid":"2912b643-f5a8-4bbd-8b24-74983bc55754","weight":125},{"event_id":6383,"event_guid":"7177142b-6f15-4fac-af62-c45df7a377a9","weight":173},{"event_id":6388,"event_guid":"4cc5cf9a-214f-4e7d-991f-199e9f0db8cc","weight":103},{"event_id":6390,"event_guid":"6a5007f4-e7d6-4c63-9a10-26dd48a6eb6c","weight":140},{"event_id":6391,"event_guid":"1601bf3b-ce4a-44c9-993f-7d28fa65168d","weight":140},{"event_id":6396,"event_guid":"b34662ae-f1c6-4711-9270-b5865f6dd6c8","weight":112},{"event_id":6397,"event_guid":"51ede2da-0f9b-4984-bd58-659c556d20c9","weight":132},{"event_id":6400,"event_guid":"527b56af-8d56-4edb-9027-9ca60767c742","weight":255},{"event_id":6401,"event_guid":"f0d70663-0769-4462-ad27-bc516d9cb141","weight":394},{"event_id":6402,"event_guid":"8a3e490c-30a5-46a6-ab4f-45ef3b23b1a1","weight":118},{"event_id":6404,"event_guid":"5b947f86-8ba1-4b99-adbe-7c5030deea0c","weight":173},{"event_id":6406,"event_guid":"686c1387-e761-4df6-b395-f9ddf92d46e7","weight":206},{"event_id":6409,"event_guid":"a42e5a4f-fd9b-4571-bf17-483978afecb3","weight":179},{"event_id":6410,"event_guid":"a12d17e9-3758-4fa0-b612-0c6ba22ea773","weight":113},{"event_id":6411,"event_guid":"42650545-4394-4455-a5f5-9efad111fedc","weight":266},{"event_id":6413,"event_guid":"a9c0c28c-4f40-4d06-99da-d73fbb2655c4","weight":98},{"event_id":6417,"event_guid":"bf5019dc-499d-4c06-9ad0-35adbe01e7f3","weight":126},{"event_id":6418,"event_guid":"dbd61e6a-dbde-4dcd-9b2e-73ba7ad62861","weight":158},{"event_id":6421,"event_guid":"1a28630d-985e-409b-be4a-b6679ecc83c3","weight":100},{"event_id":6422,"event_guid":"e8385c89-d33a-42d8-afb6-8ae28fe5c89d","weight":167},{"event_id":6423,"event_guid":"ea7c532f-cc2d-4cb1-8f15-1933df7fd523","weight":160},{"event_id":6430,"event_guid":"462f9320-3a0e-4785-82de-15343803c2ba","weight":176},{"event_id":6433,"event_guid":"30278963-3b07-49a8-96a7-2b24a8cf573b","weight":119},{"event_id":6435,"event_guid":"9777cea0-ac06-4274-85db-908c1e87e2f4","weight":136},{"event_id":6462,"event_guid":"23e85d7a-9645-4ae2-9954-63b71abc08d4","weight":137},{"event_id":6474,"event_guid":"f58a2b6d-bde0-483b-a8db-043ea9371cb6","weight":181},{"event_id":6477,"event_guid":"c85de43e-107e-4247-b550-946f376e2ec4","weight":134},{"event_id":6499,"event_guid":"a750228d-a37d-43c0-8e2f-d46137a991dc","weight":108},{"event_id":6503,"event_guid":"d0d6d058-f117-4ccb-ba6a-c41d9290a287","weight":106},{"event_id":6543,"event_guid":"48ed6dea-e67d-4866-8c35-318e9d892363","weight":147},{"event_id":6603,"event_guid":"ea00d1e0-a580-415f-a8cf-f02883d939dc","weight":154},{"event_id":6611,"event_guid":"b1b28bd0-5279-4950-8385-9ee8a57187f9","weight":196}],"recordings":[{"size":null,"length":null,"mime_type":"application/x-subrip","language":"eng","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol.en.srt","state":"complete","folder":"","high_quality":true,"width":null,"height":null,"updated_at":"2021-02-21T17:47:14.445+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/35c3-9675-eng-deu-fra-Transmission_Control_Protocol.en.srt","url":"https://api.media.ccc.de/public/recordings/44504","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":122,"length":2352,"mime_type":"video/mp4","language":"eng","filename":"35c3-9675-eng-Transmission_Control_Protocol.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-27T23:08:48.543+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/h264-hd/35c3-9675-eng-Transmission_Control_Protocol.mp4","url":"https://api.media.ccc.de/public/recordings/30939","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":122,"length":2352,"mime_type":"video/mp4","language":"deu","filename":"35c3-9675-deu-Transmission_Control_Protocol.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-27T23:08:54.087+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/h264-hd/35c3-9675-deu-Transmission_Control_Protocol.mp4","url":"https://api.media.ccc.de/public/recordings/30940","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":122,"length":2352,"mime_type":"video/mp4","language":"fra","filename":"35c3-9675-fra-Transmission_Control_Protocol.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-27T23:08:59.819+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/h264-hd/35c3-9675-fra-Transmission_Control_Protocol.mp4","url":"https://api.media.ccc.de/public/recordings/30941","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":228,"length":2352,"mime_type":"video/mp4","language":"eng-deu-fra","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-27T23:09:07.129+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/h264-hd/35c3-9675-eng-deu-fra-Transmission_Control_Protocol_hd.mp4","url":"https://api.media.ccc.de/public/recordings/30942","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":144,"length":2352,"mime_type":"video/mp4","language":"eng-deu-fra","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol_hd-slides.mp4","state":"new","folder":"slides-h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-28T00:06:42.387+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/slides-h264-hd/35c3-9675-eng-deu-fra-Transmission_Control_Protocol_hd-slides.mp4","url":"https://api.media.ccc.de/public/recordings/30981","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":144,"length":2352,"mime_type":"video/mp4","language":"eng-deu-fra","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2018-12-28T00:07:11.013+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/h264-sd/35c3-9675-eng-deu-fra-Transmission_Control_Protocol_sd.mp4","url":"https://api.media.ccc.de/public/recordings/30982","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":35,"length":2352,"mime_type":"audio/mpeg","language":"eng","filename":"35c3-9675-eng-Transmission_Control_Protocol_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2018-12-28T03:13:21.033+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/mp3/35c3-9675-eng-Transmission_Control_Protocol_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/31138","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":24,"length":2352,"mime_type":"audio/opus","language":"eng","filename":"35c3-9675-eng-Transmission_Control_Protocol_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2018-12-28T03:13:35.447+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/opus/35c3-9675-eng-Transmission_Control_Protocol_opus.opus","url":"https://api.media.ccc.de/public/recordings/31139","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":177,"length":2352,"mime_type":"video/webm","language":"eng-deu-fra","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2018-12-28T03:16:09.704+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/webm-sd/35c3-9675-eng-deu-fra-Transmission_Control_Protocol_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/31144","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"},{"size":297,"length":2352,"mime_type":"video/webm","language":"eng-deu-fra","filename":"35c3-9675-eng-deu-fra-Transmission_Control_Protocol_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2018-12-28T03:16:45.005+01:00","recording_url":"https://cdn.media.ccc.de/congress/2018/webm-hd/35c3-9675-eng-deu-fra-Transmission_Control_Protocol_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/31145","event_url":"https://api.media.ccc.de/public/events/ffdc92f3-1a39-4931-9409-f8bfabe9f628","conference_url":"https://api.media.ccc.de/public/conferences/35c3"}]}