CS Lecture 1 Review of Basic Protocols

Similar documents
32 bits. source port # dest port # sequence number acknowledgement number not used. checksum. Options (variable length)

Lecture 08: The Transport Layer (Part 2) The Transport Layer Protocol (TCP) Dr. Anis Koubaa

Transport Layer: outline

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

CSE 4213: Computer Networks II

Transport Layer: Outline

Lecture 8. TCP/IP Transport Layer (2)

CS450 Introduc0on to Networking Lecture 14 TCP. Phu Phung Feb 13, 2015

CC451 Computer Networks

Suprakash Datta. Office: CSEB 3043 Phone: ext Course page:

TCP. TCP: Overview. TCP Segment Structure. Maximum Segment Size (MSS) Computer Networks 10/19/2009. CSC 257/457 - Fall

10 minutes survey (anonymous)

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 9

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols

CNT 6885 Network Review on Transport Layer

Chapter III: Transport Layer

Chapter 3 outline. 3.5 connection-oriented transport: TCP segment structure reliable data transfer flow control connection management

Chapter 3 Transport Layer

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

RSC Part III: Transport Layer 3. TCP

Computer Networking Introduction

COMP 431 Internet Services & Protocols. Transport Layer Protocols & Services Outline. The Transport Layer Reliable data delivery & flow control in TCP

CS 4390 Computer Networks. Pointers to Corresponding Section of Textbook

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

Fall 2012: FCM 708 Bridge Foundation I

Go-Back-N. Pipelining: increased utilization. Pipelined protocols. GBN: sender extended FSM

Master Course Computer Networks IN2097

CSCD 330 Network Programming

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

CSC 401 Data and Computer Communications Networks

Chapter 3- parte B outline

Routers. Session 12 INST 346 Technologies, Infrastructure and Architecture

By Ossi Mokryn, Based also on slides from: the Computer Networking: A Top Down Approach Featuring the Internet by Kurose and Ross

Lecture 5. Transport Layer. Transport Layer 1-1

TCP (Part 2) Session 10 INST 346 Technologies, Infrastructure and Architecture

Chapter 3 Transport Layer

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

The Transport Layer Reliable data delivery & flow control in TCP. Transport Layer Protocols & Services Outline

Foundations of Telematics

CSC 4900 Computer Networks: TCP

Flow and Congestion Control (Hosts)

Chapter 3 Transport Layer

Computer Communication Networks Midterm Review

Chapter 6 Transport Layer

TCP : Fundamentals of Computer Networks Bill Nace

CSCE 463/612 Networks and Distributed Processing Spring 2017

The Transport Layer: TCP & Reliable Data Transfer

Chapter 3 outline. TDTS06 Computer networks. Principles of Reliable data transfer. Reliable data transfer: getting started

Transmission Control Protocol

Master Course Computer Networks IN2097

Chapter 3 Transport Layer

Chapter III: Transport Layer

Transport Protocols and TCP

CSCD 330 Network Programming Winter 2015

Distributed Systems. 5. Transport Protocols

Application. Transport. Network. Link. Physical

Distributed Systems. 5. Transport Protocols. Werner Nutt

Computer Networks & Security 2016/2017

TCP. 1 Administrivia. Tom Kelliher, CS 325. Apr. 2, Announcements. Assignment. Read From Last Time

CS 43: Computer Networks. 18: Transmission Control Protocol October 12-29, 2018

Chapter 3: Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Lecture 12: Transport Layer TCP again

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

3.7 TCP congestion. reliable data transfer. sliding window. Lecture 4: Transport layer III: flow control and congestion control & Network layer I: IP

Lecture 3 The Transport Control Protocol (TCP) Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CSCI Topics: Internet Programming Fall 2008

Chapter 3 Transport Layer

Chapter 3 Transport Layer

TCP: Overview RFCs: 793,1122,1323, 2018, 2581

Course on Computer Communication and Networks. Lecture 5 Chapter 3; Transport Layer, Part B

Our goals: understand d principles. behind transport layer protocols in the. Internet: layer services:

Pipelined protocols: overview

CS 3516: Computer Networks

Chapter 3 Review Questions

CS 3516: Advanced Computer Networks

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Chapter 3 Transport Layer

Lecture 11. Transport Layer (cont d) Transport Layer 1

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Transport layer. Position of transport layer. Transport layer.

CS457 Transport Protocols. CS 457 Fall 2014

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

Data Communications & Networks. Session 9 Main Theme Network Congestion Causes, Effects, Controls, and TCP Applications. Dr. Jean-Claude Franchitti

The aim of this unit is to review the main concepts related to TCP and UDP transport protocols, as well as application protocols. These concepts are

Chapter 3 Transport Layer

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

Transmission Control Protocol (TCP)

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

Chapter 3 Transport Layer

CSCD 330 Network Programming Spring 2018 Lecture 11a Transport Layer

Chapter 3 Transport Layer

Computer Communication Networks Midterm Review

Transcription:

CS 557 - Lecture 1 Review of Basic Protocols IP - RFC 791, 1981 TCP - RFC 793, 1981 Spring 2013

These slides are a combination of two great sources: Kurose and Ross Textbook slides Steve Deering IETF Plenary Talk

IP Datagram Format IP protocol version number header length (bytes) type of data max number remaining hops (decremented at each router) upper layer protocol to deliver payload to how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app layer overhead ver head. len 16-bit identifier time to live type of service upper layer 32 bits flgs length data (variable length, typically a TCP or UDP segment) Internet checksum 32 bit source IP address fragment offset 32 bit destination IP address Options (if any) total datagram length (bytes) for fragmentation/ reassembly E.g. timestamp, record route taken, specify list of routers to visit.

IP Fragmentation network links have MTU (max.transfer size) - largest possible link-level frame. different link types, different MTUs large IP datagram divided ( fragmented ) within net one datagram becomes several datagrams reassembled only at final destination IP header bits used to identify, order related fragments reassembly fragmentation: in: one large datagram out: 3 smaller datagrams

TCP RFCs: 793, 1122, 1323, 2018, 2581 socket door point-to-point: one sender, one receiver reliable, in-order byte steam: no message boundaries pipelined: TCP congestion and flow control set window size send & receive buffers application writes data TCP send buffer segment application reads data TCP receive buffer socket door full duplex data: bi-directional data flow in same connection MSS: maximum segment size connection-oriented: handshaking (exchange of control msgs) init s sender, receiver state before data exchange flow controlled: sender will not overwhelm receiver

TCP segment structure URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used U A P R S F checksum Receive window Urg data pnter Options (variable length) application data (variable length) counting by bytes of data (not segments!) # bytes rcvr willing to accept

TCP Connection Management Three-Way Handshake TCP server lifecycle TCP client lifecycle

TCP Flow control (Suppose TCP receiver discards out-of-order segments) spare room in buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] Rcvr advertises spare room by including value of RcvWindow in segments Sender limits unacked data to RcvWindow guarantees receive buffer doesn t overflow

TCP Congestion Control Review When CongWin is below Threshold, sender in slowstart phase, window grows exponentially. When CongWin is above Threshold, sender is in congestion-avoidance phase, window grows linearly. When a triple duplicate ACK occurs, Threshold set to CongWin/2 and CongWin set to Threshold. When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS.

TCP: retransmission scenarios Host A Host B Host A Host B Seq=92, 8 bytes data timeout SendBase = 100 time Seq=92, 8 bytes data X loss ACK=100 Seq=92, 8 bytes data ACK=100 lost ACK scenario Sendbase = 100 SendBase = 120 SendBase = 120 Seq=92 timeout Seq=92 timeout time Seq=100, 20 bytes data Seq=92, 8 bytes data premature timeout

Setting the timeout TCP Timeouts EstimtedRTT plus safety margin large variation in EstimatedRTT -> larger safety margin first estimate of how much SampleRTT deviates from EstimatedRTT: DevRTT = (1-β)*DevRTT + β* SampleRTT-EstimatedRTT (typically, β = 0.25) Then set timeout interval: TimeoutInterval = EstimatedRTT + 4*DevRTT

Example RTT estimation: RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 350 300 RTT (milliseconds) 250 200 150 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) SampleRTT Estimated RTT

TCP Window Size Over Time 24 Kbytes congestion window 16 Kbytes 8 Kbytes time Long-lived TCP connection

Event State TCP Sender Action Commentary ACK receipt for previously unacked data ACK receipt for previously unacked data Loss event detected by triple duplicate ACK Slow Start (SS) Congestion Avoidance (CA) SS or CA CongWin = CongWin + MSS, If (CongWin > Threshold) set state to Congestion Avoidance CongWin = CongWin+MSS * (MSS/CongWin) Threshold = CongWin/2, CongWin = Threshold, Set state to Congestion Avoidance Timeout SS or CA Threshold = CongWin/2, CongWin = 1 MSS, Set state to Slow Start Duplicate ACK SS or CA Increment duplicate ACK count for segment being acked Resulting in a doubling of CongWin every RTT Additive increase, resulting in increase of CongWin by 1 MSS every RTT Fast recovery, implementing multiplicative decrease. CongWin will not drop below 1 MSS. Enter slow start CongWin and Threshold not changed

Summary

IPv6 Initial motivation: 32-bit address space soon to be completely allocated. Additional motivation: header format helps speed processing/ forwarding header changes to facilitate QoS IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed

IPv6 Header (Cont) Priority: identify priority among datagrams in flow Flow Label: identify datagrams in same flow. (concept of flow not well defined). Next header: identify upper layer protocol for data

Other Changes from IPv4 Checksum: removed entirely to reduce processing time at each hop Options: allowed, but outside of header, indicated by Next Header field ICMPv6: new version of ICMP additional message types, e.g. Packet Too Big multicast group management functions