Advertisement
pexea12

Chapter 3 - Transport Layer

Jun 1st, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.97 KB | None | 0 0
  1. transport service:
  2. provide logical communication between app process running on different host
  3. run in end systems
  4. send side: break app msg into segment, pass to network layer
  5. receive side: reassemble segment into msg, pass to app layer
  6. Internet: TCP and UDP
  7.  
  8. TCP: reliable, in-order delivery
  9. congestion control
  10. flow control
  11. connection setup
  12.  
  13. UDP: unreliable, unordered delivery
  14. no-frills extension of best-effort IP
  15. no delay guarantee
  16. no bandwidth guarantee
  17.  
  18. demultiplexig at rcv host:
  19. delivering received segment to correct socket
  20.  
  21. multiplexing at send host
  22. gathering data from multiple socket, envelope data with header
  23.  
  24. UDP: User Datagram Protocol
  25. no fills, bare bones
  26. best effort service
  27. connectionless:
  28. no handshaking
  29. UDP segment handled independently
  30.  
  31. no connection establishment
  32. simple
  33. small segment header
  34. no congestion control
  35.  
  36. streaming multimedia app
  37. loss tolerant
  38. rate sensitive
  39. DNS, SNMP
  40.  
  41. reliable transfer over UDP: add at application layer
  42.  
  43. checksum: detect error in transmit segment
  44.  
  45. Reliable data transfer:
  46. rdt1.0: reliable transfer over a reliable channel
  47. no bit error
  48. no loss of packet
  49.  
  50. rdt2.0: channel with bit error
  51. ACK, NACK
  52. error detection
  53. receiver feedback -> sender
  54.  
  55. rdt2.1: handle garble ACK/NAK
  56. stop and wait
  57. retransmit current packet if ACK/NAK garble
  58. sender add sequence number to each packet
  59. receiver discard duplicate packet
  60.  
  61. rdt2.2: NAK free protocol
  62.  
  63. rdt3.0: channel with error and loss
  64. sender wait reasonable amount of time for ACK
  65. retransmit if no ACK receive in this time
  66. require countdown timer
  67.  
  68. Pipelined protocol:
  69. pipelining: sender allow multiple, "in-flight", yet-to-be-acknowledge packet
  70. range of sequence number must be increase
  71. buffering at sender and receiver
  72. go-back-N, selective repeat
  73.  
  74. Go-back-N:
  75. sender: up to N unACK packet in pipeline
  76. receiver: only send cumulative ACK
  77. doesn't ACK packet if there is a gap
  78. sender has timer for oldest unACK packet
  79. if time expire, retransmit all unACK packet
  80.  
  81. Selective repeat:
  82. sender: up to N unACK packet in pipeline
  83. receiver: ACK individual packet
  84. sender: maintain timer for each unACK packet
  85. if time expire, retransmit only unACK packet
  86.  
  87. Go-back-N:
  88. k-bit sequence number in packet header
  89. window of up to N consecutive unACK packet allow
  90. ACK all packet up to, including sequence number - cumulative ACK
  91. may receive duplicate ACK
  92. timer for each in-flight packet
  93. time out: retransmit packet n and all higher sequence number packet in window
  94.  
  95. ACK-only: always send ACK for correctly received packet with highest inorder sequence number
  96. may generate duplicate ACK
  97. need only remember expected sequence number
  98. out of order packet
  99. discard
  100. re ACK packet with highest inorder sequence number
  101.  
  102. Selective repeat:
  103. receiver ack all correctly receive packet
  104. sender only resend packet for which ACK not receive
  105. sender window:
  106. N consecutive sequence number
  107. limit sequence of sent, unACK packet
  108.  
  109. sender:
  110. data from above:
  111. if next available sequence number in window, send packet
  112. timeout(n):
  113. resend packet n, restart timer
  114. ACK(n)
  115. mark packet n as receive
  116. if n smallest unACK packet, advance window base to next unACK sequence number
  117.  
  118. receiver:
  119. send ACK(n)
  120. out of order: buffering
  121. in order: deliver, advance window to next not-yet-receive packet
  122.  
  123. TCP:
  124. point-to-point:
  125. 1 sender, 1 receiver
  126. reliable, inorder
  127. no message boundary
  128. pipeline:
  129. TCP congestion and flow control set window size
  130. send and receive buffer
  131.  
  132. full duplex data:
  133. bidirectional data flow in same connection
  134. MSS: maximum segment size
  135. connection-oriented:
  136. handshaking
  137. flow control:
  138. sender will not overwhelm receiver
  139.  
  140. TCP segment:
  141. source port number
  142. dest port number
  143. sequence number
  144. ACK number
  145. header length
  146. URG: urgent data
  147. Receive window
  148. checksum
  149. urg data pointer
  150. options
  151. application data
  152.  
  153. EstimatedRTT = (1 - alpha) * EstimatedRTT + alpha * SampleRTT
  154.  
  155. TCP reliable data transfer:
  156. TCP create rdt service on top of IP unreliable service
  157. pipelined segment
  158. cumulative ACKs
  159. TCP use single retransmission timer
  160.  
  161. retransmission are triggered by:
  162. timeout event
  163. duplicate ACK
  164.  
  165. initially consider simplified TCP sender:
  166. ignore duplicate ACKs
  167. ignore flow control, congestion control
  168.  
  169. sender:
  170. create segment with seq #
  171. seq # is byte-stream number of first data byte in segment
  172. start timer if not already running
  173.  
  174. timeout:
  175. retransmit segment that cause timeout
  176. restart timer
  177. ACK receive:
  178. if acknowledge previously unACK segment:
  179. update what is known to be ACK
  180. start timer if there are outstanding segments
  181.  
  182. fast retransmit
  183. timeout period often relatively long
  184. long delay before resending lost packet
  185. detect lost segment via duplicate ACK
  186. sender often send many segmenet back-to-back
  187. if segment is lost, there will be many duplicate ACK for that segment
  188. fast retransmit: resend segment before timer expire
  189.  
  190. flow control:
  191. sender won't overflow receiver buffer by transmitting too much, too fast
  192. receiver advertise unused buffer space by including rwnd value in segment header
  193. sender: limit # of unACK byte to rwnd
  194.  
  195. connection management:
  196. establish connection before exchanging data segment
  197. initialize TCP variables
  198. seq #s, buffer, flow control info
  199. 3 way handshake:
  200. client host send TCP-SYN segment to server
  201. specify initial seq #, no data
  202. server host receive SYN, reply with SYNACK segment:
  203. server allocate buffer
  204. specify server initial seq #
  205. client receive SYNACK, reply with ACK segment, may contain data
  206.  
  207. closing connection:
  208. client end system send TCP FIN control segment to server
  209. server receive FIN, reply with an ACK, close connection, send FIN
  210. client receive FIN, reply with an ACK
  211. enter time wait, will respond with ACK to receive FIN
  212. server receive ACK, close connection
  213.  
  214. Congestion control:
  215. too many source sending too much data too fast for network to handle
  216. different from flow control
  217. manifestation:
  218. lost packet (buffer overflow at router)
  219. long delay (queueing in router buffer)
  220.  
  221. cost of congestion:
  222. more work for given goodput
  223. unneeded retransmission
  224. when packet drop, any upstream transmission capacity use for that packet was wasted
  225.  
  226. end-end congestion:
  227. no explicit feedback from network
  228. congestion infer from end-system observe loss, delay
  229. approach taken by TCP
  230.  
  231. network-assisted congestion control:
  232. router provide feedback to end system
  233. single bit indicating congestion
  234. explicit rate sender should send
  235.  
  236. ABR: avaliable bit rate:
  237. elastic service
  238. if sender's path underload:
  239. sender should use available bandwidth
  240. if sender's path congested:
  241. sender throttled to minimum guarantee rate
  242.  
  243. RM (resource management):
  244. sent by sender, intersperse with data cell
  245. bit in RM cell set by switch
  246. NI bit: no increase in rate
  247. CI bit: congestion indication
  248. RM cell return to sender by receiver, with bit intact
  249.  
  250. TCP congestion control:
  251. should transmit as fast as possible, but without congesting network
  252. decentralized: each TCP sender set its own rate, base on implicit feedback:
  253. ACK: segment receive, network not congest, increase sending rate
  254. lost segment: assume loss due to congestion, decrease sending rate
  255.  
  256. probing for bandwidth:
  257. increase transmission rate on receipt of ACK, until eventually loss occur, then decrease transmission rate
  258.  
  259. increase exponentially fast at connection start, or following timeout
  260. congestion avoidance: increase linearly
  261.  
  262. TCP slow start:
  263. when begin, cwnd = 1 MSS
  264. increase rate exponentially until first loss event or when threshold reached
  265. double cwnd every RTT
  266. done by incrementing cwnd by 1 for every ACK received
  267.  
  268. AIMD: Additive Increase, Multiplicative Decrease
  269.  
  270. TCP fairness
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement