Lecture 5 Overview
description
Transcript of Lecture 5 Overview
![Page 1: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/1.jpg)
Lecture 5 Overview
![Page 2: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/2.jpg)
ICMP: Internet Control Message Protocol
• ICMP is a protocol used for exchanging control messages
• ICMP messages are usually generated and processed by the IP software– not the user process
• ICMP uses IP to deliver messages
TCP/IP model 2
![Page 3: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/3.jpg)
ICMP Message Types
• Echo Request• Echo Response• Destination Unreachable• Redirect• Time Exceeded• Redirect (route change)• there are more ...
TCP/IP model 3
![Page 4: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/4.jpg)
The Internet Hourglass
TCP/IP model 4
ICMP, ARP & RARP
802.3
![Page 5: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/5.jpg)
UDP User Datagram Protocol
• UDP is a transport protocol– communication between processes
• UDP uses IP to deliver datagrams to the right host
• UDP uses ports to provide communication services to individual processes
TCP/IP model 5
![Page 6: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/6.jpg)
Ports
• TCP/IP uses an abstract destination point called a protocol port– Ports are identified by a positive integer– Operating systems provide some mechanism that
processes use to specify a port
TCP/IP model 6
Host BHost B
Process
Process
Process
Host AHost A
Process
Process
Process
![Page 7: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/7.jpg)
UDP
• Datagram Delivery• Connectionless• Unreliable• Minimal
TCP/IP model 7
Source Port Destination Port
Length Checksum
Data
UDP Datagram FormatUDP Datagram Format
![Page 8: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/8.jpg)
TCP vs. UDP
• Q: Which protocol is better ?• A: It depends on the application.
• TCP provides a connection-oriented, reliable, byte stream service – lots of overhead
• UDP offers minimal datagram delivery service– as little overhead as possible
TCP/IP model 8
![Page 9: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/9.jpg)
Lecture 6
Transmission Control Protocol
CPE 401 / 601
Computer Network Systems
slides are modified from Dave Hollinger
![Page 10: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/10.jpg)
TCP: Transmission Control Protocol
• TCP is an alternative transport layer protocol supported by TCP/IP.
• TCP provides:– Connection-oriented– Reliable– Full-duplex– Byte-Stream
TCP/IP model 10
![Page 11: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/11.jpg)
Connection-Oriented
• A virtual connection is established before any user data is transferred
• If the connection cannot be established, the user program is notified
• If the connection is ever interrupted, the user program(s) finds out there is a problem
TCP/IP model 11
![Page 12: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/12.jpg)
Reliable
• Every transmission of data is acknowledged by the receiver
• Reliable does not mean that things don't go wrong– it means that we find out when things go wrong
• If the sender does not receive ack within a specified amount of time, – the sender retransmits the data
TCP/IP model 12
![Page 13: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/13.jpg)
Byte Stream
• The connection is treated as a stream of bytes
• The user application does not need to package data in individual datagrams– as with UDP
TCP/IP model 13
![Page 14: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/14.jpg)
Buffering
• TCP is responsible for buffering data and determining when it is time to send a datagram
• It is possible for an application to tell TCP to send the data it has buffered without waiting for a buffer to fill up
TCP/IP model 14
![Page 15: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/15.jpg)
Full Duplex
• TCP provides transfer in both directions – over a single virtual connection
• To the application program these appear as two unrelated data streams
• TCP can piggyback control and data communication by providing control information (such as an ACK) along with data
TCP/IP model 15
![Page 16: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/16.jpg)
TCP Ports
• Interprocess communication via TCP is achieved with the use of ports– just like UDP
• UDP ports have no relation to TCP ports – different name spaces
TCP/IP model 16
![Page 17: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/17.jpg)
TCP Segments
• The chunk of data that TCP asks IP to deliver is called a TCP segment
• Each segment contains:– data bytes from the byte stream– control information that identifies the data bytes
TCP/IP model 17
![Page 18: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/18.jpg)
TCP Segment Format
TCP/IP model 18
Destination Port
Options (if any)
Data
1 byte 1 byte
Source Port
Sequence Number
Request Number (ACK)
1 byte 1 byte
offset Rsrvd Control Window Size
Checksum Urgent Pointer
![Page 19: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/19.jpg)
TCP Segment Format
• Sequence Number refers to the first byte of data included in the segment
• Request Number (Acknowledgement Number) indicates the byte number of the next data that is expected to be received– All bytes up through this number have already
been received
TCP/IP model 19
![Page 20: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/20.jpg)
TCP Segment Format
• Window: tells the sender how many bytes it can send before the receiver will have to toss it away – due to fixed buffer size
• MSS: Maximum segment size (A TCP option)
TCP/IP model 20
![Page 21: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/21.jpg)
Control Flags
• URG: urgent data included
• ACK: this segment is (among other things) an acknowledgement
• RST: error - abort the session
• SYN: synchronize Sequence Numbers (setup)
• FIN: polite connection termination TCP/IP model 21
![Page 22: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/22.jpg)
TCP Connection Creation
• Programming details later - for now we are concerned with the actual communication.
• A server accepts a connection.– Must be looking for new connections!
• A client requests a connection.– Must know where the server is!
TCP/IP model 22
![Page 23: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/23.jpg)
Client Starts
• A client starts by sending a SYN segment with the following information:– Client’s Initial Sequence Number
• ISN is generated pseudo-randomly
– Maximum Receive Window for client– Optionally (but usually) MSS
• largest datagram accepted
– No payload! • Only TCP headers
TCP/IP model 23
![Page 24: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/24.jpg)
Sever Response
• When a waiting server sees a new connection request, the server sends back a SYN segment with:– Server’s ISN (generated pseudo-randomly)– Request Number is Client ISN+1– Maximum Receive Window for server.– Optionally (but usually) MSS – No payload!
TCP/IP model 24
![Page 25: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/25.jpg)
Finally
• When the Server’s SYN is received, the client sends back an ACK with:– Request Number is Server’s ISN+1
TCP/IP model 25
![Page 26: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/26.jpg)
TCP Connection Creation
TCP/IP model 26
Client ServerSYN
ISN=X
SYNISN=X
1
SYNISN=Y, ACK=X+1
SYNISN=Y, ACK=X+1
2
ACK=Y+1ACK=Y+1 3
time
![Page 27: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/27.jpg)
TCP Data and ACK
• Once the connection is established, data can be sent.
• Each data segment includes a sequence number identifying the first byte in the segment
• Each segment (data or empty) includes a request number indicating what data has been received
TCP/IP model 27
![Page 28: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/28.jpg)
TCP Buffers• The TCP layer doesn’t know when the
application will ask for any received data– buffers incoming data so it’s ready when application
asks for it
• Both client and server allocate buffers to hold incoming and outgoing data– The TCP layer does this
• Both client and server announce with every ACK how much buffer space remains– Window field in a TCP segment
TCP/IP model 28
![Page 29: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/29.jpg)
Send Buffers
• The application gives the TCP layer some data to send
• The data is put in a send buffer, where it stays until the data is ACK’d– it has to stay, as it might need to be sent again!
• TCP layer won’t accept data from application unless (or until) there is buffer space
TCP/IP model 29
![Page 30: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/30.jpg)
ACKs
• A receiver doesn’t have to ACK every segment – it can ACK many segments with a single ACK
segment
• Each ACK can also contain outgoing data – piggybacking
• If a sender doesn’t get an ACK after some time limit (MSL) it resends the data.
TCP/IP model 30
![Page 31: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/31.jpg)
TCP Segment Order
• IP delivers TCP segments and IP in not reliable – IP datagrams can be lost or arrive out of order
• Most TCP implementations will accept out-of-order segments– if there is room in the buffer
• Once the missing segments arrive, a single ACK can be sent for the whole thing
TCP/IP model 31
![Page 32: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/32.jpg)
Termination
• The TCP layer can send a RST segment that terminates a connection if something is wrong
• Usually the application tells TCP to terminate the connection politely with a FIN segment
TCP/IP model 32
![Page 33: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/33.jpg)
FIN
• Either end of the connection can initiate termination
• A FIN is sent, which means the application is done sending data– The FIN is ACK’d
• The other end must now send a FIN– That FIN must be ACK’d
TCP/IP model 33
![Page 34: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/34.jpg)
Connection Termination
TCP/IP model 34
App1 App2FIN
SN=X
FINSN=X
1
ACK=X+1ACK=X+12
ACK=Y+1ACK=Y+1 4
FINSN=Y
FINSN=Y
3...
![Page 35: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/35.jpg)
TCP TIME_WAIT
• Once a TCP connection has been terminated there is some unfinished business:– What if the ACK is lost?
• The last FIN will be resent and it must be ACK’d.
– What if there are lost or duplicated segments that finally reach the destination after a long delay?
• TCP hangs out for a while to handle these situations
TCP/IP model 35
![Page 36: Lecture 5 Overview](https://reader035.fdocuments.in/reader035/viewer/2022081603/56813fc0550346895daa9f55/html5/thumbnails/36.jpg)
Test Questions
• Why is a 3-way handshake necessary?– HINTS: TCP is a reliable service, IP delivers each
TCP segment, IP is not reliable.
• Who sends the first FIN– the server or the client?
• Once the connection is established, what is the difference between the operation of the server’s TCP layer and the client’s TCP layer?
• What happens if a bad guy can guess ISNs?
TCP/IP model 36