0% found this document useful (0 votes)
62 views

Chapter7 TCP UDP Tagged

This document provides an overview of the key topics covered in Chapter 3 on the transport layer. It discusses the transport layer services of multiplexing, demultiplexing, reliable data transfer, flow control and congestion control. It also summarizes the two main Internet transport protocols - UDP which provides connectionless and unreliable delivery, and TCP which provides connection-oriented and reliable delivery along with congestion control and flow control. The outline lists the main sections that will be covered in the chapter, including details on TCP segments, reliable data transfer, and TCP congestion control principles.

Uploaded by

9xcwr5h9c4
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Chapter7 TCP UDP Tagged

This document provides an overview of the key topics covered in Chapter 3 on the transport layer. It discusses the transport layer services of multiplexing, demultiplexing, reliable data transfer, flow control and congestion control. It also summarizes the two main Internet transport protocols - UDP which provides connectionless and unreliable delivery, and TCP which provides connection-oriented and reliable delivery along with congestion control and flow control. The outline lists the main sections that will be covered in the chapter, including details on TCP segments, reliable data transfer, and TCP congestion control principles.

Uploaded by

9xcwr5h9c4
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Chapter 3

Transport Layer

A note on the use of these ppt slides:


We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you can add, modify, and delete slides
(including this one) and slide content to suit your needs. They obviously
Computer Networking:
represent a lot of work on our part. In return for use, we only ask the A Top Down Approach
following:
 If you use these slides (e.g., in a class) in substantially unaltered form, 5th edition.
that you mention their source (after all, we’d like people to use our book!) Jim Kurose, Keith Ross
 If you post any slides in substantially unaltered form on a www site, that
you note that they are adapted from (or perhaps identical to) our slides, and Addison-Wesley, April
note our copyright of this material. 2009.
Thanks and enjoy! JFK/KWR

All material copyright 1996-2009


J.F Kurose and K.W. Ross, All Rights Reserved
Transport Layer 3-1
Chapter 3: Transport Layer
Our goals:
 understand principles  learn about transport
behind transport layer protocols in the
layer services: Internet:
 multiplexing/  UDP: connectionless
demultiplexing transport
 reliable data transfer  TCP: connection-oriented
 flow control transport
 congestion control
 TCP congestion control

Transport Layer 3-2


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-3


‫الزم كونكشن على مستوى‬
‫االجهزة والزم على مستوى‬
‫الزم نعرف املقارنة بني ترانسبورت الير ونتوورك الير‬ ‫البوسسينق اللي شغاله‬
‫عاالجهزه زي املسنجر‬

Transport services and protocols


application
transport
 provide logical communication network
data link
between app processes physical

lo
running on different hosts

gi
ca
 transport protocols run in

l
en
d-
end systems

e nd
 send side: breaks app

tr
an
messages into segments,

s po
rt
passes to network layer
 rcv side: reassembles application
transport
segments into messages, network
data link
passes to app layer physical

 more than one transport


protocol available to apps
 Internet: TCP and UDP

Transport Layer 3-4


‫فرق واضح جدا بني الطبقتني‬

Transport vs. network layer


 network layer: logical Household analogy:
communication 12 kids sending letters to
between hosts 12 kids
 transport layer: logical  processes = kids
communication  app messages = letters
between processes in envelopes
 relies on, enhances,  hosts = houses
network layer services
 transport protocol =
Ann and Bill
 network-layer protocol
= postal service

Transport Layer 3-5


Internet transport-layer protocols
Transmission control protocol (TCP)
:‫يتميز بانه‬

 reliable, in-order application


transport
network
delivery (TCP) data link
physical
network
 congestion control data link

lo
network
physical

gi
data link
 flow control

ca
physical

l en
 connection setup

d-
en
(TCP) Connection-oriented protocol
 unreliable, unordered

d
network

tr
data link

an
physicalnetwork
delivery: UDP

s po
data link

rt
physical
 no-frills extension of network
data link
application
“best-effort” IP physical network
data link
transport
network
 services not available: physical data link
physical

 delay guarantees
 bandwidth guarantees
(UDP) Connectionless protocol

Transport Layer 3-6


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-7


‫امللتي يعني مجموعة من االنبوت‬
‫تتحول الى اوتبوت واحد‬

Multiplexing/demultiplexing
Demultiplexing at rcv host: Multiplexing at send host:
gathering data from multiple
delivering received segments
sockets, enveloping data with
to correct socket ‫مجموعة من االوتبوت‬
‫بتتحول الى واحد انبوت‬ header (later used for
demultiplexing)
= socket = process
p2 ‫ و‬p1 ‫يحاول يعمل كونكشن مع‬
p2 ‫ و‬p1 ‫يحاول يعمل كونكشن مع‬

P3 P1
P1 P2 P4 application
application application

transport transport transport

network network network

link link link

physical physical physical

host 2 host 3
host 1
Transport Layer 3-8
How demultiplexing works
 host receives IP datagrams
each datagram has source IP

address, destination IP address 32 bits
 each datagram carries 1
source port # dest port #
transport-layer segment
 each segment has source,
destination port number other header fields
 host uses IP addresses & port
numbers to direct segment to
appropriate socket
port number ‫ وال‬ip address ‫ايش الفرق بني ال‬
‫الفرق نفس الفرق بني النتورك الير والترانسبورت الير‬ application
‫ ادريس حق كل جهاز‬ip‫النتورك الير تسوي لوجيكال كومينيكيشن بني االجهزه ف احتاج ال‬
‫ حق كل‬port number‫الترانسبورت الير تسوي لوجيكال كومينيكيش بني العمليات ف احتاج ال‬
data
‫بروسس‬ (message)
‫اللي يهمني بالترانسبورت الير‬
‫ ال بورت نمبر للسندر او السورس بروسس‬-١
‫والبورت نمبر حق الديستنيشن بروسس‬-٢

‫ ادرسس للسوروس والديستنيشن‬ip ‫في النيتورك الير كل داتا قرام تشيل‬


‫وفي الترانسبورت الير كل سيقمن تشسل سىوس وديستنيشن بورت نمبر‬ TCP/UDP segment format

Transport Layer 3-9


Connectionless demultiplexing
‫مثال بسيط لكود السوكيت‬
 When host receives UDP
 Create sockets with port
segment:
numbers:
DatagramSocket mySocket1 = new
 checks destination port
DatagramSocket(12534); number in segment
DatagramSocket mySocket2 = new  directs UDP segment to
DatagramSocket(12535); socket with that port
‫يوجه السيقمنت للسوكيت‬
 UDP socket identified by number ‫بناءا على البورت نمبر‬
 IP datagrams with
two-tuple:
(dest IP address, dest port number) different source IP
addresses and/or source
port numbers directed
to same socket

Transport Layer 3-10


‫قال الرسمه ذي للقراءة فقط‬

Connectionless demux (cont)


DatagramSocket serverSocket = new DatagramSocket(6428);

P2 P1
P1
P3

SP: 6428 SP: 6428


,
DP: 9157 DP: 5775

SP: 9157 SP: 5775


client DP: 6428 DP: 6428 Client
server
IP: A IP: C IP:B

SP provides “return address”

Transport Layer 3-11


Connection-oriented demux
‫ بنفس الوقت‬TCP Socket ‫السيرفر يكون عنده اكثر من‬
‫ مايسوي‬udp‫يستخدم االربع النه يسوي كونكشن بينما ال‬
 TCP socket identified  Server host may support
by 4-tuple: many simultaneous TCP
 source IP address sockets:
 source port number  each socket identified by
 dest IP address its own 4-tuple
 dest port number  Web servers have ‫الويب يسوي‬
‫سوكيت لكل‬
‫كونكشن‬
 recv host uses all four different sockets for
values to direct each connecting client
segment to appropriate ‫ مثال‬ non-persistent HTTP will
socket have different socket for
each request

Transport Layer 3-12


Connection-oriented demux
(cont) ‫ماشرح الرسمتني بس شرح الفرق بينهم‬

P1 P4 P5 P6 P2 P1P3

SP: 5775
DP: 80
S-IP: B
D-IP:C

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A
IP: C S-IP: B IP:B
D-IP:C D-IP:C

Transport Layer 3-13


Connection-oriented demux:
Threaded Web Server
‫نفس الرسمه اللي فوق بس خالها بروسس وحده‬

P1 P4 P2 P1P3

SP: 5775
DP: 80
S-IP: B
D-IP:C

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A
IP: C S-IP: B IP:B
D-IP:C D-IP:C

Transport Layer 3-14


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-15


UDP: User Datagram Protocol [RFC 768]
 “no frills,” “bare bones”
Internet transport protocol Why is there a UDP?
 “best effort” service, UDP
 no connection
segments may be: ‫مشاكل‬ ‫يبذل افضل ماعنده عشان يسوي‬
‫ترانسمشن للسقمنت بدون‬ establishment (which can
‫بس مايضمن ف يصير هالشيئني‬
 lost
add delay)
 delivered out of order  simple: no connection state
to app ‫؟ال‬UDP ‫ هل دليم هالشي يصير في ال‬،‫يعني الداتا توصل مومرتبه‬
‫ ممكن‬unreliable protocol ‫وهو يبذل جهده انه مايصير بس النه‬ at sender, receiver ‫صعب‬ ‫لوفي كونكشن‬
‫يحصل لوست او اوت اوف اوردر‬ ‫كان بيكون‬
 connectionless:  small segment header‫لو في كونكشن‬
‫بيكون كبير‬
‫ يعني مايسوي‬ no handshaking between  no congestion control: UDP
‫كونكشن قبل‬
‫الترانسمشن‬ UDP sender, receiver can blast away as fast as
 each UDP segment
‫كل سيقمنت‬
desired ‫سريع في ارساله للداتا‬
‫ يصيرلها معالجه‬handled independently
‫وهاتدليتق بطريقة‬
‫ مستقلة‬of others

‫مايسوي كونكش قبل عملية الترانسمشن اذا يبي يرسل داتا يرسلها مباشرة من غير كونكشن ولو‬
‫حصل لوست او الحاله الثانيه يجلس يسوس ري ترانسمشن لني تمشي زين‬
Transport Layer 3-16
UDP: more ‫اي بروتوكول موجود في االبلكيشن الير الزم يستخدم احد‬
TCP,UDP :‫البروتوكوالت املوجوده في الترانسبورت الير‬

UDP ‫ تستخدم‬multimedia‫البروتوكوالت املسؤوله عن ال‬


 often used for streaming
multimedia apps 32 bits

Length, in source port # dest port #


 loss tolerant
 rate sensitive bytes of UDP length checksum
segment,Header + data
 other UDP uses
including
 DNS header
 SNMP
 reliable transfer over UDP: Application
add reliability at data
application layer
‫ ويستعملونه‬UDP‫يضيفون عال‬ (message)
 application-specific
error recovery!
UDP segment format

Transport Layer 3-17


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-18


Reliable data transfer

Rdt1.0: reliable transfer over a reliable channel

 underlying channel perfectly reliable


 no bit errors Rdt1.0 ‫يفترض ان الترانسمشن تشانيل اللي بتنقل الداتا مش‬
‫ممكن تعمل اي نوع من انواع البت ايررورز واليصير فقذان‬
 no loss of packets
‫الداتا تنتقل ويتم ارسالها واستقباالها بدون اي مشاكل‬
 separate FSMs for sender, receiver:
 sender sends data into underlying channel
 receiver read data from underlying channel

Wait for rdt_send(data) Wait for rdt_rcv(packet)


call from call from extract (packet,data)
above packet = make_pkt(data) below deliver_data(data)

udt_send(packet)

sender receiver

Transport Layer 3-19


Rdt2.0: channel with bit errors
‫عدل الفرض االول‬
‫يفترض ان التراسمشن‬
‫تشانيل بتسبب بيت ايرورر‬

 underlying channel may flip bits in packet


 checksum to detect bit errors

 the question: how to recover from errors:


 acknowledgements (ACKs): receiver explicitly tells sender
that pkt received OK
 negative acknowledgements (NAKs): receiver explicitly
tells sender that pkt had errors
‫اذا الرسيفر استقبل ذي‬
retransmission ‫يسوي‬

 sender retransmits pkt on receipt of NAK


 new mechanisms in rdt2.0 (beyond rdt1.0):
‫ حاجتني زودهم ال‬
‫ عاللي قبل‬rdt2.0 error detection
 receiver feedback: control msgs (ACK,NAK) rcvr->sender

Transport Layer 3-20


rdt2.0 has a fatal flaw!
‫ وصار تكرار‬retransmit ‫لوسوا‬
‫ايش يصير لو خربت هالخاصيتني؟‬

What happens if Handling duplicates:


ACK/NAK corrupted?  sender retransmits current
 sender doesn’t know what pkt if ACK/NAK garbled
‫السندر يسوي ريتراتسميت اذا هالشيئني خربو‬
happened at receiver!  sender adds sequence
‫السندر يضيف سيكونس رقم ف اذا كان في‬
 can’t just retransmit: number to each pkt .‫تكرار للنسخ احذف نسخه واحتفظ بالثانيه‬
possible duplicate  receiver discards (doesn’t ‫الرسيفير يرمي‬
. ‫البكت املتكرر‬

‫ الن يمكن تكون وصلت ويتكرر‬،retransmission ‫مقدر اسوي‬


deliver up) duplicate pkt

‫من هالسبب جات هالفكره‬


stop and wait
Sender sends one packet,
then waits for receiver
response
NAK ‫ او‬ACK ‫ اذا‬feedback ‫ما ارسل البكت الثاني لني الريسيفر يعطيني‬
‫اذا مره ماجاني فيدباك اسوي ريترانسميشن‬

Transport Layer 3-21


rdt2.1: discussion
Sender: ‫اضيف سيكونس نمبر للبكت‬
Receiver:
 seq # added to pkt  must check if received
 two seq. #’s (0,1) will packet is duplicate
suffice. Why?  state indicates whether
0 or 1 is expected pkt
 must check if received
seq #
ACK/NAK corrupted  note: receiver can not
 twice as many states
know if its last
 state must “remember” ACK/NAK received OK
whether “current” pkt
at sender
has 0 or 1 seq. #
‫الزم السندر يتذكر البكت املرسل زيرو او ون عشان‬ ‫الرسيفر مايعرف اذا السيندر استقبل الفيدباك‬
‫يعرف يسوي اعادة ارسال ملني لوصارت مشاكل‬

Transport Layer 3-22


‫ خالص‬NAK ‫شال ال‬

rdt2.2: a NAK-free protocol


 same functionality as rdt2.1, using ACKs only
 instead of NAK, receiver sends ACK for last pkt
received OK
 receiver must explicitly include seq # of pkt being ACKed
 duplicate ACK at sender results in same action as
NAK: retransmit current pkt
NAK‫ ع نفس البكت تساوي ال‬ACK ‫تكرار ال‬
‫ اذا‬، ‫ اذا البكت وصل‬ACK ‫ يصير الرسيفر يرسل‬NAK ‫بدال ال‬
‫ برقم اخر بكت وصله سواء زيرو او ون‬ACK ‫ماوصله يرجع يرسل‬
‫ف بكذا يعني البكت اللي معرف برقم ثاني فشل وصوله‬

Transport Layer 3-23


rdt3.0: channels with errors and loss

New assumption: Approach: sender waits


underlying channel can “reasonable” amount of
also lose packets (data time for ACK
or ACKs)  retransmits if no ACK
 checksum, seq. #, ACKs, received in this time
retransmissions will be  if pkt (or ACK) just delayed
of help, but not enough (not lost):
 retransmission will be
duplicate, but use of seq.
rdt1.0
‫فرض انه مابيصير ايرور وال فقدان‬ #’s already handles this
rdt2.0
‫قال ممكن التراسمشن تسبب ايرورز‬  receiver must specify seq
rdt3.0
‫قال ممكن تسبب ايرورز وفقدان مع بعض وهو االكثر واقعية‬
# of pkt being ACKed
 requires countdown timer

Transport Layer 3-24


rdt3.0 in action pkt loss

Transport Layer 3-25


ACK loss

rdt3.0 in action

Transport Layer 3-26


‫ يتأخر‬rdt3.0 ‫ماحس مهم بس يبني ان‬
Performance of rdt3.0
‫ سيء جدا‬،‫يقلل البيرفورمانس للنتورك‬
 rdt3.0 works, but performance stinks
 ex: 1 Gbps link, 15 ms prop. delay, 8000 bit packet:

L 8000bits
d trans   9 8 microseconds ‫الوقت اللي تاخذه الداتا بالترانسمشن‬

R 10 bps
 U sender: utilization – fraction of time sender busy sending

L/R .008
U = = = 0.00027 ‫الوقت الحقيقي‬
sender 30.008
RTT + L / R microsec
 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link onds
 network protocol limits use of physical resources!

Transport Layer 3-27


rdt3.0: stop-and-wait operation
‫الرسمه توضح املعادلة وانه في وقت كثير‬
‫كان ممكن ينرسل فيه بكتات جديده بس م‬
sender receiver ACK ‫انرسلت الن تنتظر ال‬

first packet bit transmitted, t = 0


last packet bit transmitted, t = L / R

first packet bit arrives


RTT last packet bit arrives, send ACK

ACK arrives, send next


packet, t = RTT + L / R

L/R .008
U = = = 0.00027
sender 30.008
RTT + L / R microsec
onds

Transport Layer 3-28


‫ارسل امكثر من‬

Pipelined protocols ‫بكت بدل م ارسل‬


‫واحد واستنى‬
‫ حقتهم‬ACK‫ال‬

Pipelining: sender allows multiple, “in-flight”, yet-to-


be-acknowledged pkts
 range of sequence numbers must be increased ‫بكتسفيها البكتس‬ ‫الزم تزيد االرقام اللي نرقم‬
‫دامنا بنرسل مجموعة‬
‫الزم يكون في اتفاق بني السيندر‬
 buffering at sender and/or receiver ‫والرسيفر على عدد البكتس اللي‬
‫السندر بيرسلها وذا يعتمد على‬
‫البفر سايز اللي بالريسيفر‬

:‫عندي تو تكنيكس بهالبروتوكول وهي؛‬

 Two generic forms of pipelined protocols: go-Back-N,


selective repeat
Transport Layer 3-29
Pipelining: increased utilization ‫يورينا كيف تحسن‬

sender receiver
first packet bit transmitted, t = 0
last bit transmitted, t = L / R

first packet bit arrives


RTT last packet bit arrives, send ACK
last bit of 2nd packet arrives, send ACK
last bit of 3rd packet arrives, send ACK
ACK arrives, send next
packet, t = RTT + L / R

Increase utilization
by a factor of 3!
3*L/R .024
U = = = 0.0008
sender 30.008
RTT + L / R microsecon
ds
Transport Layer 3-30
Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-31


‫الهالف دوبلكس السيندر يقدر يسوي مهمه‬
‫وحده والريسيفر يقدر يسيو مهمه وحد‬

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

‫يعني السندر كان سيند‬


 point-to-point:  full duplex data: ‫اند ريسيف والرسيفر كان‬
‫سيند اند ريسيف‬

 one sender, one receiver  bi-directional data flow

 reliable, in-order byte in same connection


 MSS: maximum segment
steam: ‫ماعندي حدود الي مسج‬
size
 no “message boundaries”
 connection-oriented:
 pipelined: ‫يعني يسوي كونكشن بالبدايه‬
 handshaking (exchange
 TCP congestion and flow
of control msgs) init’s
control set window size sender, receiver state
:‫ اللي هي بتعتمد على‬ACK ‫عدد السيقمنت او البكتس اللي السندر يرسلها من غير م يستنى‬
 send & receive buffers before data exchange
 flow controlled:
applica tion application
sock et
w rites data reads data
sock et
 sender will not
door doo r
TCP
send b uffer
TCP
re ce ive buffer
overwhelm receiver
s eg m e n t ‫سرعة االرسال تكون متوازنة مع سرعة االستقبال‬

Transport Layer 3-32


TCP segment structure
‫يعني هالسقمنت تحتوي على داتا مهمه‬
32 bits
URG: urgent data counting
(generally not used) source port # dest port #
by bytes
‫ جايه من السيندر‬ACK ‫السيقمنت فيها داتا عباره عن‬
sequence number of data
ACK: ACK #
valid acknowledgement number (not segments!)
head not
PSH: push data now len used
UA P R S F Receive window
(generally not used) # bytes
checksum Urg data pnter
‫بعمل كونكشن او بعيد‬ rcvr willing
‫بوقف كونكشن بطلب كونكشن استخدام كونكشن‬
RST, SYN, FIN: to accept
Options (variable length)
connection estab ‫عدد السيقمنت اللي الريسيفر يأمل‬
ACK ‫انه يستقبلها من غير مايسوي‬
(setup, teardown ‫وذا يعتمد على البفر‬

commands)
application
Internet data
checksum (variable length)
(as in UDP) ‫الداتا او املسجس اللي جايه من االبلكيشن الير‬

‫تكنيك خاص‬
‫باكتشاف االخطاء‬

Transport Layer 3-33


TCP seq. #’s and ACKs ‫مثال بسيط عاملوضوع‬

‫السيقمنت عباره عن هيدر وداتا اول‬


Seq. #’s: ‫بايت بالداتا هو السيكونس نمبر‬
Host A Host B
 byte stream “number”
of first byte in User Seq=4
2, A CK=7
segment’s data types 9, data =
‘C’ ‘C’
ACKs: host ACKs
 seq # of next byte receipt of
= ‘C’ ‘C’, echoes
expected from other 43 , data
=
side = 79 , A CK back ‘C’
Seq
 cumulative ACK

Q: how receiver handles host ACKs


out-of-order segments receipt Seq=4
of echoed 3, A CK=
 A: TCP spec doesn’t 80
‘C’
say, - up to
implementor ‫يعتمد على ال‬
time
simple telnet scenario

Transport Layer 3-34


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-35


TCP reliable data transfer
IP‫ لل‬unreliability ‫ يعوض ال‬TCP ‫ال‬

 TCP creates rdt  Retransmissions are


service on top of IP’s triggered by:
unreliable service  timeout events
 Pipelined segments  duplicate acks
 Cumulative acks  Initially consider TCP‫عشان ابسط ال‬

 TCP uses single simplified TCP sender:


 ignore duplicate acks
retransmission timer
 ignore flow control,
congestion control

Transport Layer 3-36


TCP sender events: TCP ‫االحداث اللي بتصير عند السندر في ال‬

data rcvd from app: timeout:


 Create segment with  retransmit segment
seq # that caused timeout
 seq # is byte-stream  restart timer
number of first data Ack rcvd:
byte in segment  If acknowledges
 start timer if not
previously unacked
already running (think segments
of timer as for oldest  update what is known to
unacked segment) ‫احدث للسيقمنت اللي‬
‫ عشان افرق‬ACK ‫صارلها‬ be acked
 expiration interval:  start timer if there are
TimeOutInterval outstanding segments

Transport Layer 3-37


TCP: retransmission scenarios
Host A Host B Host A Host B

Seq=9 Seq=9
2, 8 2, 8 byte
b y te s s data
data Seq=

Seq=92 timeout
1 00, 2
0 byt
es da
timeout

t a
=100
ACK 0
10
X C K
A AC
=
K =120
loss
Seq=9 Seq=9
2, 2, 8 b
8 byte
s data Sendbase y te s d a
ta
= 100

Seq=92 timeout
SendBase
= 120 =120
K
C K =100 AC
A

SendBase
= 100 SendBase
‫اصير ابدا االرسال‬ = 120 premature timeout
100 ‫من الرقم‬
time time
lost ACK scenario
Transport Layer 3-38
TCP retransmission scenarios (more)
Host A Host B

Seq=9
2, 8 bytes
d a ta

=100
timeout

Seq=1 AC K
00, 20 by
tes da
ta
X
loss

SendBase C K =120
A
= 120 120‫ وال‬100‫تأكيد وصول ال‬

‫نسميها كذا‬
time
Cumulative ACK scenario

Transport Layer 3-39


Chapter 3 outline
 3.1 Transport-layer  3.5 Connection-oriented
services transport: TCP
 3.2 Multiplexing and  segment structure
demultiplexing  reliable data transfer
 3.3 Connectionless  flow control
 connection management
transport: UDP
 3.6 Principles of
 3.4 Principles of
reliable data transfer congestion control
 3.7 TCP congestion
control

Transport Layer 3-40


TCP Connection Management ‫يتم بها انشاء الكونكشن قبل‬
‫عملية الداتا ترانسمشن‬

Recall: TCP sender, receiver Three way handshake: ‫الكالينت يبدا كونكشن‬
establish “connection” before
exchanging data segments Step 1: client host sends TCP SYN
 initialize TCP variables: segment to server
 specifies initial seq # ‫يحدد سيكونس مبدئي‬
 seq. #s ‫اختار السيكونس‬
 no data ‫ممايكون في داتا‬
 buffers, flow control info
(e.g. RcvWindow) ‫اشوف حجم البفر‬ Step 2: server host receives SYN,
 client: connection initiator replies with SYNACK segment
Socket clientSocket = new ‫كونكشن يسوي‬
‫الكالينت‬
server allocates buffers

Socket("hostname","port
 specifies server initial seq.
number");
#
 server: contacted by client ‫يقبل الكونكشن‬
Socket connectionSocket =
Step 3: client receives SYNACK,
welcomeSocket.accept(); replies with ACK segment,
which may contain data
‫يستقبل تأكيد الوصول ويرسل‬
‫ يقول للسيرفر اني‬ACK
‫استقبلت تأكيد الوصول‬

Transport Layer 3-41


‫كيف اقفل الكونكشن‬

TCP Connection Management (cont.)

Closing a connection: client server

client closes socket: close


FIN
clientSocket.close();

Step 1: client end system ACK


close
sends TCP FIN control FIN
Finish messages
segment to server

Step 2: server receives


timed wait
ACK

FIN, replies with ACK.


Closes connection, sends
FIN.
‫ الكالينت يرسل فينيش مسج للسيرفر‬-١ closed
‫ انه وصل له املسج‬ACK ‫ السيرفر يرسل‬-٢
‫بعدها السيرفر يرسل فينيش مسج‬
ACK‫ الكالينت يستقبل املسج يرد عليه انه وصله املسج ب‬-٣
‫ ويقفل الكونكشن‬ACK‫ السيرفر يستقبل ال‬-٤ Transport Layer 3-42
TCP Connection Management (cont.)

Step 3: client receives FIN, client server


replies with ACK.
closing
FIN
 Enters “timed wait” - will
respond with ACK to
received FINs
ACK
closing
Step 4: server, receives ACK. FIN
Connection closed.

Note: with small modification,


timed wait
ACK
can handle simultaneous FINs.
‫اسوي تعديالت عشان يتقفل الكونكشن‬
closed
‫عند الكالينت والسيرفر بنفس الرقت‬

closed

Transport Layer 3-43

You might also like