Bài giảng Mạng máy tính - Tầng vận chuyển

pdf 58 trang hapham 1600
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Mạng máy tính - Tầng vận chuyển", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mang_may_tinh_tang_van_chuyen.pdf

Nội dung text: Bài giảng Mạng máy tính - Tầng vận chuyển

  1. TầngVậnchuyển
  2. CHỨCNĂNG -1 03 / 2009 ¢Cungcấpkênhtruyềndữliệu ở mứclogic giữa2 tiếntrìnhtrên2 máy Application B M MM T & V application transport network Presentation data link physical network Session - KH O A CN TT data link network physical data link Transport physical network data link - physical network Network Đ data link H KH T N P . HCM physical Data link network data link physical Physical appappliliccaattiionon ttrranansspoportrt nenettwwoorkrk dadattaa lilinknk 2 phphyyssiiccalal
  3. NỘIDUNG ¢ Giớithiệu 03 / 2009 ¢ Nguyêntắctruyềndữliệu đángtin cậy ¢ GiaothứcTCP B M MM T & V ¢ GiaothứcUDP ¢ Điềukhiểntắtnghẽn - KH O A CN TT - Đ H KH T N P . HCM 3
  4. NHẮCLẠI source 03 / 2009 message M application segment Ht M transport B M MM T & V packet Hn Ht M network frame Hl Hn Ht M link physical - link KH O A CN TT physical switch - Đ H KH T N P . HCM destination Hn Ht M network H H H M link M application l n t Hn Ht M physical Ht M transport Hn Ht M network link rou4 ter physical
  5. TỔNGQUAN -1 03 / 2009 B M MM T & V P2 P3 M M application Process nhận? - P1 Ht D Ht D P4 KH O A CN TT transport M Gởi đếnProcess? M network Hn segment M application application Ht D DHt D transport transport network - Hn segment network Đ H KH T N P . HCM 5
  6. TỔNGQUAN -2 ¢Giaothứctầngvậnchuyển: 03 / 2009 — Thựcthi ở end-system — Bêngởi: B M MM T & V ¢ Nhậndữliệutừtầng ứngdụng ¢ Phân đoạnthông điệp ở tầng ứngdụngthànhcác segment ¢ Chuyểncácsegment xuốngtầngmạng(network layer) - KH O A CN TT — Bênnhận: ¢ Nhậncácsegment từ tầngmạng ¢ Đónggóicácsegment thànhthông điệptầng ứngdụng - Đ H KH T N P . HCM ¢ Chuyểnthông điệplêntầng ứngdụng 6
  7. DỒNKÊNH –PHÂNKÊNH -1 03 / 2009 ¢Dồnkênh(Multiplexing): — Thựchiệntạibêngởi — Thu thậpdữliệutừcácsocket B M MM T & V — dánnhãndữliệuvới1 header ¢ Phânkênh(Demultiplexing): - KH O A CN TT — Thựchiệntạibênnhận — phânphốicácsegment nhận đượcchosocket tương ứng - ¢ Khi đónggóidữliệu ở tầngtransport, header sẽ Đ thêmvào: H KH T N P . HCM — Source port — Destination port 7
  8. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 8 -2 KÊNH HÂN –P NH NKÊ Ồ D
  9. GIAOTHỨC Ở TẦNGVẬNCHUYỂN ¢ Truyềndữliệu đángtin cậy: 03 / 2009 — Đúngthứ tự — Điềukhiểntắtnghẽn B M MM T & V — Điềukhiểnluồng — Thiếtlậpkếtnốitrướckhigởi - — Internet: TCP KH O A CN TT ¢ Truyềndữliệukhông đángtin cậy — Không đảmbảođúngthứ tự - Đ — Nỗ lựcgởinhanhnhấtcóthể H KH T N P . HCM — Internet: UDP 9
  10. NỘIDUNG ¢ Giớithiệu 03 / 2009 ¢ Nguyêntắctruyềndữliệu đángtin cậy ¢ GiaothứcTCP B M MM T & V ¢ GiaothứcUDP ¢ Điềukhiểntắtnghẽn - KH O A CN TT - Đ H KH T N P . HCM 10
  11. NỘIDUNG ¢ Nguyêntắctruyềndữliệu đángtin cậy 03 / 2009 — Cơ chế truyềndữliệu đángtin cậy — Nghithứctruyềndữliệu đángtin cậy B M MM T & V ¢ Rtd1.0 ¢ Rtd2.0, Rtd2.1, Rtd2.2 ¢ Rtd3.0 - KH O A CN TT — Pipeline ¢ Go-back-N ¢ Gởilạicóchọn - Đ H KH T N P . HCM 11
  12. NGUYÊNLÝTRUYỀNDỮLIỆU ĐÁNGTINCẬY 03 / 2009 Bêngửi Bênnhận B M MM T & V appli c a t ion Đườngtruyềntin cậy Nghithức Nghithức - truyềntin cậy truyềntin cậy KH O A CN TT t r an s po rt Đườngtruyềnkhôngtin cậy - Đ H KH T N P . HCM a. Cungcấpdvụ b. Triểnkhaidvụ ¢Đặctínhcủađườngtruyềnkhôngtin cậyquyết định độ phứctạpcủanghithứctruyềntin cậy 12
  13. RDT1.0 : ĐƯỜNGTRUYỀNLÝTƯỞNG ¢ Giả thiết: kênhtruyềnbêndướituyệt đối 03 / 2009 — Khônglỗibit — Khôngmấtgóitin B M MM T & V ¢ FSM (finite state machine) chobêngửivànhận — Bêngửichuyểndữliệuxuốngkênhbêndưới - — Bênnhận đọcdữliệutừkênhtruyềnbêndưới KH O A CN TT - Đ H KH T N P . HCM Wait for rdt_send(data) Wait for rdt_rcv(packet) call from call from extract (packet,data) packet = above below deliver_data(data) make_pkt(data) udt_send(packet) sender receiver 13
  14. RDT2.0 KÊNHTRUYỀNCÓLỖIBIT -1 ¢Giả thiết: kênhtruyềncóthể xảyralỗibit 03 / 2009 — Sử dụngcáccơchế kiểmtralỗi ¢checksum B M MM T & V ¢ Làmsao để khắcphụckhinhậnralỗi? — Acknowledgement(ACKs): bênnhậnbáochobên - gửi đãnhận đượcdữliệu KH O A CN TT — Nagetiveacknowledgement(NAKs): bênnhậnbáo góitin bị lỗi - Đ — Bêngửisẽgửilạigóitin khinhậnNAK H KH T N P . HCM ¢ So vớirdt1.0, rdt2.0: — Nhậndạnglỗi — Cơchế phảnhồi: ACK, NAK 14
  15. RDT2.0 FSM -2 03 / 2009 rdt_send(data) snkpkt= make_pkt(data, checksum) receiver udt_send(sndpkt) rdt_rcv(rcvpkt) && B M MM T & V isNAK(rcvpkt) Wait for Wait for rdt_rcv(rcvpkt) && call from ACK or udt_send(sndpkt) corrupt(rcvpkt) above NAK - udt_send(NAK) KH O A CN TT rdt_rcv(rcvpkt) && isACK(rcvpkt) Wait for L call from - Đ sender below H KH T N P . HCM ACK/NAK sai??? rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK) 15
  16. RDT2.0 -3 03 / 2009 ¢Giảiquyết: — Bêngửigửilạigóitin khinhậnACK/NAK sai — Bêngửiđánh số thứ tự chomỗigóitin B M MM T & V — Bênnhậnsẽloạibỏgóitin trùng. ¢ Dừngvà đợi - — Bêngửigửimộtgóitin vàchờ phảnhồitừbênnhận KH O A CN TT - Đ H KH T N P . HCM 16
  17. RDT2.1 BÊNGỬIXỬLÍLỖIACK/NAK 03 / 2009 rdt_send(data) sndpkt= make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && B M MM T & V ( corrupt(rcvpkt) || Wait for Wait for call 0 from ACK or isNAK(rcvpkt) ) above NAK 0 udt_send(sndpkt) - rdt_rcv(rcvpkt) KH O A CN TT rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) && isACK(rcvpkt) L - L Đ H KH T N P . HCM Wait for Wait for ACK or call 1 from rdt_rcv(rcvpkt) && NAK 1 above ( corrupt(rcvpkt) || rdt_send(data) isNAK(rcvpkt) ) udt_send(sndpkt) sndpkt= make_pkt(1, data, checksum) udt_send(sndpkt) 17
  18. RDT2.1 BÊNNHẬNXỬLÍLỖIACK/NAK 03 / 2009 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) B M MM T & V sndpkt= make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(NAK, chksum) - sndpkt= make_pkt(NAK, chksum) KH O A CN TT udt_send(sndpkt) udt_send(sndpkt) Wait for Wait for rdt_rcv(rcvpkt) && 0 from 1 from rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && below below not corrupt(rcvpkt) && - has_seq1(rcvpkt) Đ has_seq0(rcvpkt) H KH T N P . HCM sndpkt = make_pkt(ACK, chksum) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) udt_send(sndpkt) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) 18
  19. RDT2.1 THẢOLUẬN 03 / 2009 Bêngửi Bênnhận ¢Thêmsốthứ tự vàogóitin •Phảikiểmtranếu B M MM T & V — 0 và1??? nhậntrùng ¢ Phảikiểmtra: ACK/NAK sai không –So sánhtrạngthái - KH O A CN TT ¢ Phảinhớ góitin hiệnthờicó đangchờ (0 hay 1) với thứ tự 0 hay 1 trạngtháigóitin nhận được - Đ H KH T N P . HCM •Bênnhậnkhôngbiết ACK/NAK cuốicùng cóchuyểntớibêngửi an toànkhông? 19
  20. CƠ CHẾ TRUYỀN ĐÁNGTINCẬY-RTD ¢ Cơ chế: 03 / 2009 — Checksum: kiểmtracólỗixảyrakhông? — ACK: bênnhậnnhận đúnggóitin B M MM T & V — NAK: bênnhậnnhậnsaigóitin — Sequence Number (1 bit = 0 hoặc1) - KH O A CN TT - Đ H KH T N P . HCM 20
  21. RDT2.2 KHÔNGSỬDỤNG NAK ¢ Hoạt độnggiốngrdt2.1, nhưngkhôngdùngNAK 03 / 2009 ¢ BênnhậngửiACK chogóitin khônglỗinhận được cuốicùng. B M MM T & V — Bênnhậnphảithêmsốthứ tự vàogóitin ACK ¢ Bêngửinhậntrùnggóitin ACK xemnhư góitin NAK - è gửilạigóivừagởivìgóinàychưanhận đượcACK KH O A CN TT - Đ H KH T N P . HCM 21
  22. RDT2.2: BÊNGỬIVÀBÊNNHẬN 03 / 2009 rdt_send(data) sndpkt= make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && B M MM T & V Wait for call Wait for ( corrupt(rcvpkt) || 0 from ACK isACK(rcvpkt,1) ) above 0 udt_send(sndpkt) sender FSM - KH O A CN TT fragment rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && && isACK(rcvpkt,0) - Đ (corrupt(rcvpkt) || L H KH T N P . HCM has_seq1(rcvpkt)) Wait for receiver FSM 0 from udt_send(sndpkt) below fragment rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt= make_pkt(ACK1, chksum) 22 udt_send(sndpkt)
  23. RDT3.0 KÊNHTRUYỀNCÓLỖIVÀMẤT-1 03 / 2009 ¢Giả thiết: Giảipháp: — Lỗibit •bêngửiđợimộtkhoảng — mấtgói thờigianhợplíchoACK B M MM T & V è Checksum, số thứ tự, ACKs, •Gửilạinếukhôngnhận đc truyềnlạivẫnchưa đủ ACK trongkhoảngthời - ¢ Xử lý? giannày KH O A CN TT •Nếugóitin (hay ACK) bị - trễ (khôngmất) Đ H KH T N P . HCM –Gửilạicóthể trùng, phải đánhsốthứ tự –Bênnhậnphảixác địnhthứ tự củagóitin đãACK •Yêucầuđếmthờigian 23
  24. RDT3.0 BÊNGỬI-2 rdt_send(data) 03 / 2009 rdt_rcv(rcvpkt) && sndpkt= make_pkt(0, data, checksum) ( corrupt(rcvpkt) || udt_send(sndpkt) isACK(rcvpkt,1) ) start_timer L B M MM T & V Wait Wait for timeout call 0from for udt_send(sndpkt) above ACK0 start_timer rdt_rcv(rcvpkt) - && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) KH O A CN TT && isACK(rcvpkt,1) && notcorrupt(rcvpkt) stop_timer && isACK(rcvpkt,0) stop_timer - Wait Wait for Đ H KH T N P . HCM timeout for call 1 from udt_send(sndpkt) ACK1 above start_timer rdt_rcv(rcvpkt) rdt_send(data) L rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || sndpkt= make_pkt(1, data, checksum) isACK(rcvpkt,0) ) udt_send(sndpkt) start_timer L 24
  25. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 25 -3 3.0 DT R
  26. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 26 -4 3.0 DT R
  27. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 27 -5 I ĐỢ VÀ NG Ừ D 3.0 3.0 DT R
  28. RDT3.0 –HIỆUQUẢ -6 03 / 2009 ¢Rdt3.0 làm việc, nhưng không hiệu quả ¢ Vd:băng thông 1Gbps, 15ms end2end delay, gói tin 8Kb B M MM T & V - KH O A CN TT - Đ H KH T N P . HCM •Usender : tỉ lệ thờigianbêngửigửigóitin •Nghithức đãhạnchế việcsửdụngtàinguyênmạng 28
  29. NGHITHỨCPIPELINE -1 03 / 2009 ¢Pipelining: bêngửichophépgửinhiềugóitin khichưa đượcbáonhận(ACK) — Góitin: sắptheothứ tự tăngdần B M MM T & V — Dùngbộđệm ở bêngửihoặc/vàbênnhận: “Sliding window” - KH O A CN TT - Đ H KH T N P . HCM •Cóhaigiảiphápchínhcủanghithứcpipeline: –go-Back-N –gửilạicóchọn. 29
  30. NGHITHỨCPIPELINE -2 03/2009 B M MM T & V - KH O A CN TT - Đ H KH T N P . HCM Tăng hiệu quả sử dụng lên 3 lần 30
  31. GO-BACK-N –1 03 / 2009 ¢Sốthứ tự: k-bit ¢ “window” = N è số góitin đượcgởiliêntục B M MM T & V khôngACK - KH O A CN TT - Đ H KH T N P . HCM •ACK(seq#): nhận đúng đếnseq# 31
  32. GO-BACK-N: BÊNNHẬN -2 ¢Bêngởi: 03 / 2009 — Sử dụngbuffer (“window”) để lưucácgóitin đãgởinhưng chưanhận đượcACK B M MM T & V — Gởinếugóitin cóthểđưavào“window” — Thiếtlậpđồnghồchogóitin cũ nhất(góitin ở đầu“window”) — Timeout: gửilạitấtcảcácgóitin chưaACK trongwindow - KH O A CN TT ¢ Bênnhận: — Chỉ gửiACK chogóitin đãnhận đúngvớisốthứ tự caonhất - ¢ Cóthể phátsinhtrùngACK Đ H KH T N P . HCM — Chỉ cầnnhớ số thứ tựđang đợi — Góitin khôngtheothứ tự: ¢ Loạibỏ: khôngcóbộđệm ¢ GửilạiACK vớisốthứ tự lớnnhất 32
  33. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 33 -3 Ụ VÍD -N – ACK -B O G
  34. GỬILẠICÓCHỌN -1 ¢Bênnhận: 03 / 2009 — Báonhậnriênglẻtừnggóitin nhận đúng ¢ ACK(seq#): đãnhận đúnggóitin seq# B M MM T & V — dùngbộđệm để lưucácgóitin không đúngthứ tự — Nhận1 góitin không đúngthừ tự ¢ Đưavàobộđệmnếucònchỗ - KH O A CN TT ¢ Hủygóitin ¢ Bêngởi: — Có đồnghồchomỗigóitin chưanhận đcACK - Đ H KH T N P . HCM — Time out: chỉ gửinhữnggóitin khôngnhận đượcACK 34
  35. GỬILẠICÓCHỌN -2 03 / 2009 Bắt đầu bên gửi Thứ tự kế tiếp Đã ACK Chưa dùng B M MM T & V Gửi, chưa ACK không dùng đc - Thứ tự bên gửi KH O A CN TT - Sai thứ tự Đ Có thể nhận đc H KH T N P . HCM nhưng đã ACK Đang đợi, chưa không dùng đc nhận đc Bắt đầu bên nhận Thứ tự bên nhận 35
  36. 03/2009 BM MMT&VT - KHOA CNTT - ĐH KHTN TP.HCM 36 -4 N Ọ CH ICÓ Ạ IL Ử G
  37. GỬILẠICÓCHỌN -5 03 / 2009 ¢Vd: — Số thứ tự:0,1,2,3 — Window size: 3 B M MM T & V - KH O A CN TT Mốiquanhệgiữasốthứ - Đ tự vàwindow size??? H KH T N P . HCM 37
  38. NỘIDUNG ¢ Giớithiệu 03 / 2009 ¢ Nguyêntắctruyềndữliệu đángtin cậy ¢ GiaothứcTCP B M MM T & V — TCP — Điềukhiểnluồng - — Quảnlýkếtnối KH O A CN TT ¢GiaothứcUDP - ¢ Điềukhiểntắtnghẽn Đ H KH T N P . HCM 38
  39. NỘIDUNG ¢ GiaothứcTCP 03 / 2009 — TCP — Điềukhiểnluồng B M MM T & V — Quảnlýkếtnối - KH O A CN TT - Đ H KH T N P . HCM 39
  40. DỊCHVỤHƯỚNGKẾTNỐI–TCP -1 ¢TCP = Transport Control Protocol 03 / 2009 — rfc: 793,1122,1323,2018,2581 — Point –to –point B M MM T & V — Full-duplex ¢ Dữ liệutruyền2 chiềutrêncùngkếtnối ¢MSS: maximum segment size - — Hướngkếtnối KH O A CN TT ¢Handshaking trướckhigửidữliệu — TCP cungcấpkếtnốitheokiểudòng(stream-of- - Đ bytes) H KH T N P . HCM — Tin cậy, theothứ tự — Kiểmsoátluồng — Kiểmsoáttắtnghẽn — Pipeline 40
  41. TCP -2 32 bits 03/2009 URG: urgent data (generally not used) source port # dest port # sequence number B M MM T & V ACK: ACK # valid acknowledgement number head not PSH: push data now UAPRS F rcvr window size len used - # bytes KH O A CN TT (generally not used) checksum ptr urgent data rcvr willing RST, SYN, FIN: Options (variable length) to accept connection estab - Đ (setup, teardown H KH T N P . HCM commands) application data (variable length) 41
  42. TCP –3 ¢Source & destination port 03 / 2009 — 16 bit xác định port cho mỗi gói tin ¢ Số sequence B M MM T & V — Số thứ tự, duy nhất cho mỗi gói - ¢ Số acknowledgment KH O A CN TT — Số thứ tự của gói tin kế tiếp mà bên nhận đang đợi - Đ H KH T N P . HCM ¢ Window size — Xác định có thể gửi bao nhiêu byte sau byte cuối cùng được xác nhận đã nhận 42
  43. TCP –4 ¢Checksum 03 / 2009 — Checksum TCP header và trường địa chỉ IP ¢ Urgent pointer B M MM T & V — Chỉ đến dữ liệu khẩn trong trường dữ liệu ¢ Các bit — URG = trường urgent pointer đang sử dụng (thường không - dùng) KH O A CN TT — ACK = chỉ gói tin đang chứa ACK — PSH = dữ liệu cần phân phối ngay - Đ — RST = chỉ định nối kết cần thiết lập lại (reset) H KH T N P . HCM — SYN = sử dụng để thiết lập kết nối — FIN = sử dụng để giải phóng kết nối 43
  44. TCP -5 03 / 2009 Host A Host B User types B M MM T & V ‘C’ host ACKs receipt of ‘C’, echoes - back ‘C’ KH O A CN TT host ACKs - receipt Đ H KH T N P . HCM of echoed ‘C’ simple telnet scenario 44
  45. TCP - ĐIỀUKHIỂNLUỒNG -1 03 / 2009 ¢Nguyênnhân: — Bêngởilàmtrànbộđệmcủabênnhậnkhigởiquánhiềudữliệu hoặcgởiquánhanh B M MM T & V ¢ Bênnhận: sử dụngtrường“window size” - — Window size: lượngDL cóthểđưavàobuffer KH O A CN TT - Đ H KH T N P . HCM 45
  46. TCP - ĐIỀUKHIỂNLUỒNG -2 03 / 2009 Bộ đệm Gửi Nhận bên nhận Ứng dụng gửi 2K 0 4K Empty B M MM T & V 2K - Ứng dụng KH O A CN TT gửi 2K Full - Bên gửi Đ bị khóa H KH T N P . HCM Bên gửi có thể 2K gửi đến 2K 1K 2K 46
  47. TCP – QUẢNLÝKẾTNỐI-1 03 / 2009 ¢Thiếtlậpkếtnối: bắttay3 lần(Three way handshake) B M MM T & V Máy A Máy B - KH O A CN TT SYN_RCVD state - Đ H KH T N P . HCM 47
  48. TCP – QUẢNLÝKẾTNỐI-2 ¢Đóngkếtnối: bắttay2 lần 03/2009 client server B M MM T & V close - KH O A CN TT close - Đ H KH T N P . HCM t i me d w a it closed 48
  49. TCP – QUẢNLÝKẾTNỐI-3 03 / 2009 B M MM T & V TCP server - lifecycle KH O A CN TT TCP client - Đ lifecycle H KH T N P . HCM 49
  50. NỘIDUNG ¢ Giớithiệu 03 / 2009 ¢ Nguyêntắctruyềndữliệu đángtin cậy ¢ GiaothứcTCP B M MM T & V ¢ GiaothứcUDP ¢ Điềukiểnluồng - KH O A CN TT ¢ Điềukhiểntắtnghẽn - Đ H KH T N P . HCM 50
  51. DỊCHVỤHƯỚNGKHÔNGKẾTNỐI–UDP -1 ¢UDP: User Datagram Protocol [rfc768] 03 / 2009 — Dịchvụ“nỗ lực” để truyềnnhanh, góitin UDP cóthể: ¢ Mất B M MM T & V ¢ Không đúngthứ tự — Khôngkếtnối: ¢ Khôngcóhandshaking giữabêngửivànhận - KH O A CN TT ¢ Mỗigóitin UDP đượcxửlý độclập ¢Khôngcótrạngtháikếtnối ¢ - TạisaocầncóUDP? Đ H KH T N P . HCM 51
  52. UDP -2 ¢Thườngsửdụngchocác ứngdụngmultimedia 03 / 2009 — Chịulỗi — Yêucầutốcđộ B M MM T & V ¢ MộtsốứngdụngsửdụngUDP — DNS - — SNMP KH O A CN TT — TFTP — - Đ ¢ Làmsao để dữ liệutruyền đángtin cậy? H KH T N P . HCM 52
  53. UDP -3 03 / 2009 32 bits Chiều dài gói tin source port # dest port # B M MM T & V (tính cả header) length checksum - KH O A CN TT Application - Đ data H KH T N P . HCM (message) UDP segment format 53
  54. UDP -4 ¢TạisaolạisửdụngUDP? 03 / 2009 o Khôngthiếtlậpkếtnối B M MM T & V oĐơngiản: khôngquảnlýtrạngtháinối kết - oHeader nhỏ KH O A CN TT o Khôngkiểmsoátluồng - o Đ Nhanh H KH T N P . HCM ¢ Truyềnthôngtin cậyqua UDP — Tầngapplication pháthiệnvàphụchồilỗi 54
  55. NỘIDUNG ¢ Giớithiệu 03 / 2009 ¢ Nguyêntắctruyềndữliệu đángtin cậy ¢ GiaothứcTCP B M MM T & V ¢ GiaothứcUDP ¢ Điềukhiểntắtnghẽn - KH O A CN TT - Đ H KH T N P . HCM 55
  56. KIỂMSOÁTTẮTNGHẼN -1 03 / 2009 ¢Vấnđề: — Buffer: giớihạn — góitin: đến ồ ạt(cóthể từ nhiềunguồn) B M MM T & V è xử lýkhôngkịpètắtnghẽn ¢ Hiệntượng: - — Mấtgói KH O A CN TT — Delay cao è Sử dụng đườngtruyềnkhônghiệuquả - Đ Host A H KH T N P . HCM lout lin : original data Host B unlimited shared output link buffers 56
  57. KIỂMSOÁTTẮTNGHẼN -2 03 / 2009 ¢GiảiquyếttrongTCP: Host A Host B — Giớihạntốcđộ truyềncủa bêngởi B M MM T & V — Bêngởi: R TT ¢ ThêmthamsốCongWin: tốc độ bêngởicóthể gởi - KH O A CN TT ¢ Có2 pha: ¢ Slow-Start ¢ Congestion Avoidance - Đ H KH T N P . HCM time 57
  58. TÀILIỆUTHAMKHẢO ¢ BàigiảngcủaJ.F Kurose and K.W. Ross về 03 / 2009 Computer Networking: A Top Down Approach B M MM T & V - KH O A CN TT - Đ H KH T N P . HCM 58