Chapter7 TCP UDP Tagged
Chapter7 TCP UDP Tagged
Transport Layer
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
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
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
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)
اللي يهمني بالترانسبورت الير
ال بورت نمبر للسندر او السورس بروسس-١
والبورت نمبر حق الديستنيشن بروسس-٢
P2 P1
P1
P3
P1 P4 P5 P6 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
P1 P4 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
مايسوي كونكش قبل عملية الترانسمشن اذا يبي يرسل داتا يرسلها مباشرة من غير كونكشن ولو
حصل لوست او الحاله الثانيه يجلس يسوس ري ترانسمشن لني تمشي زين
Transport Layer 3-16
UDP: more اي بروتوكول موجود في االبلكيشن الير الزم يستخدم احد
TCP,UDP :البروتوكوالت املوجوده في الترانسبورت الير
udt_send(packet)
sender receiver
rdt3.0 in action
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!
L/R .008
U = = = 0.00027
sender 30.008
RTT + L / R microsec
onds
sender receiver
first packet bit transmitted, t = 0
last bit transmitted, t = 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
commands)
application
Internet data
checksum (variable length)
(as in UDP) الداتا او املسجس اللي جايه من االبلكيشن الير
تكنيك خاص
باكتشاف االخطاء
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
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
استقبلت تأكيد الوصول
closed