19
EEC-484/584 EEC-484/584 Computer Networks Computer Networks Lecture 15 Lecture 15 Wenbing Zhao Wenbing Zhao [email protected] [email protected] (Part of the slides are based on Drs. Kurose & (Part of the slides are based on Drs. Kurose & Ross’s slides for their Ross’s slides for their Computer Networking Computer Networking book, book, and and on materials supplied by on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall) Dr. Louise Moser at UCSB and Prentice-Hall)

EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao [email protected] (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

EEC-484/584EEC-484/584Computer NetworksComputer Networks

Lecture 15Lecture 15

Wenbing ZhaoWenbing Zhao

[email protected]@ieee.org(Part of the slides are based on Drs. Kurose & Ross’s slides (Part of the slides are based on Drs. Kurose & Ross’s slides

for their for their Computer Networking Computer Networking book, and book, and on materials supplied by on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall)Dr. Louise Moser at UCSB and Prentice-Hall)

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

22

OutlineOutline

• UDP

• TCP– Segment header structure– Connection management

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

33

UDP: User Datagram ProtocolUDP: User Datagram Protocol

• “No frills,” “bare bones” Internet transport protocol• “Best effort” service, UDP segments may be:

– Lost– Delivered out of order to app

• Connectionless:– No handshaking between UDP sender, receiver– Each UDP segment handled independently of

others

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

44

Why is There a UDP?Why is There a UDP?

• No connection establishment (which can add delay)

• Simple: no connection state at sender receiver

• Small segment header

• No congestion control: UDP can blast away as fast as desired

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

55

UDPUDP• Often used for streaming

multimedia apps– Loss tolerant– Rate sensitive

• Other UDP uses– DNS– SNMP

• Reliable transfer over UDP: add reliability at application layer

source port # dest port #

32 bits

Applicationdata

(message)

UDP segment format

length checksumLength, in

bytes of UDPsegment,

includingheader

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

66

UDP ChecksumUDP Checksum

Sender:• treat segment contents as

sequence of 16-bit integers• checksum: addition (1’s

complement sum) of segment contents

• sender puts checksum value into UDP checksum field

Receiver:• compute checksum of

received segment• check if computed checksum

equals checksum field value:– NO - error detected– YES - no error detected. But

maybe errors nonetheless?

Goal: detect “errors” (e.g., flipped bits) in transmitted segment

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

77

Internet Checksum ExampleInternet Checksum Example

• When adding numbers, a carryout from the most significant bit needs to be added to the result

• Example: add two 16-bit integers

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

wraparound

sumchecksum

To know more: http://www.netfor2.com/udpsum.htmhttp://www.netfor2.com/checksum.html

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

88

TCP: OverviewTCP: Overview• 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

• 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

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

99

TCP: OverviewTCP: Overview

• TCP connection is byte stream, not message stream, no message boundaries

• TCP may send immediately or buffer before sending• Receiver stores the received bytes in a buffer

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1010

TCP Segment StructureTCP Segment Structure

source port # dest port #

32 bits

applicationdata

(variable length)

sequence number

acknowledgement numberReceive window

Urg data pnterchecksum

FSRPAUheadlen

notused

Options (variable length)

URG: urgent data (generally not used)

ACK: ACK #valid

PSH: push data now(generally not used)

RST, SYN, FIN:connection estab(setup, teardown

commands)

# bytes rcvr willingto accept

countingby bytes of data(not segments!)

Internetchecksum

(as in UDP)

A TCP segment must fit into an IP datagram!

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1111

The TCP Segment HeaderThe TCP Segment Header

• Source port and destination port: identify local end points of the connection– Source and destination end points together identify the connection

• Sequence number: identify the byte in the stream of data that the first byte of data in this segment represents

• Acknowledgement number: the next sequence number that the sender of the ack expects to receive– Ack # = Last received seq num + 1– Ack is accumulative: an ack of 5 means 0-4 bytes have been

received

• TCP header length – number of 32-bit words in header

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1212

The TCP Segment HeaderThe TCP Segment Header

• URG – indicates urgent pointer field is set• Urgent pointer – points to the seq num of the last byte in a

sequence of urgent data• ACK – acknowledgement number is valid• SYN – used to establish a connection

– Connection request: ACK = 0, SYN = 1– Connection confirm: ACK=1, SYN = 1

• FIN – release a connection, sender has no more data• RST – reset a connection that is confused• PSH – sender asked to send data immediately

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1313

The TCP Segment HeaderThe TCP Segment Header

• Receiver window size –number of bytes that may be sent beyond the byte acked

• Checksum – add the header, the data, and the conceptual pseudoheader as 16-bit words, take 1’s complement of sum– For more info: http://www.netfor2.com/tcpsum.htm

http://www.netfor2.com/checksum.html

• Options – provides a way to add extra facilities not covered by the regular header– E.g., communicate buffer sizes during set up

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1414

TCP Sequence Numbers and ACKsTCP Sequence Numbers and ACKs

Sequence numbers:– byte stream “number” of

first byte in segment’s data

ACKs:– seq # of next byte

expected from other side

– cumulative ACK

Host A Host B

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

Usertypes

‘C’

host ACKsreceipt

of echoed‘C’

host ACKsreceipt of

‘C’, echoesback ‘C’

timesimple telnet scenario

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1515

TCP Connection ManagementTCP Connection Management

TCP sender, receiver establish “connection” before exchanging data segments

• Initialize TCP variables:– Sequence numbers– Buffers, flow control info (e.g. RcvWindow)

• Client: connection initiator Socket clientSocket = new

Socket("hostname","port number"); • Server: contacted by client Socket connectionSocket = welcomeSocket.accept();

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1616

TCP Connection ManagementTCP Connection Management

Three way handshake:

Step 1: client host sends TCP SYN segment to server

– specifies initial sequence number

– no data

Step 2: server host receives SYN, replies with SYN/ACK segment

– server allocates buffers

– specifies server initial sequence number

Step 3: client receives SYN/ACK, replies with ACK segment, which may contain data

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1717

TCP Connection ManagementTCP Connection Management

Three way handshake:• SYN segment is considered

as 1 byte• SYN/ACK segment is also

considered as 1 byte

client

SYN (seq=x)

server

SYN/ACK (seq=y, ACK=x+1)

ACK (seq=x+1, ACK=y+1)

connect accept

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1818

TCP Connection ManagementTCP Connection Management

Closing a connection:

client closes socket: clientSocket.close();

Step 1: client end system sends TCP FIN control segment to

server

Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN.

client

FIN

server

ACK

ACK

FIN

close

close

closed

tim

ed w

ait

Spring Semester 2007Spring Semester 2007 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

1919

TCP Connection ManagementTCP Connection Management

Step 3: client receives FIN, replies with ACK.

– Enters “timed wait” - will respond with ACK to received FINs

Step 4: server, receives ACK. Connection closed.

Note: with small modification, can handle simultaneous FINs

client

FIN

server

ACK

ACK

FIN

closing

closing

closed

tim

ed w

ait

closed