intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 3b: Tổng quan TCP

Chia sẻ: Le Trung Dung | Ngày: | Loại File: PDF | Số trang:19

127
lượt xem
29
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Điểm nối đếm: Một gửi, một nhận. Tin cậy, theo đúng thứ tự: Không quan tâm đến khuôn dạng thông điệp. Đường ống: Cửa sổ kiểm soát tắc nghẽn và điều khiển lưu lượng. Truyền song công: Dữ liệu truyền theo cả hai hướng, MSS: Kích thước tối đa của một segment.

Chủ đề:
Lưu

Nội dung Text: Chương 3b: Tổng quan TCP

  1. TCP: T ng quan RFCs: 793, 1122, 1323, 2018, 2581 r ði m n i ñi m: r Truy n song công: m M t g i, M t nh n m D li u truy n theo c hai r Tin c y, theo ñúng th t : hư ng m Không quan tâm ñ n khuôn m MSS: Kích thư c t i ña m t d ng thông ñi p. segment r ðư ng ng: r Hư ng n i: m C a s ki m soát t c ngh n m B t tay, chào h i trư c khi và ñi u khi n lưu lư ng. nói chuy n (trao ñ i thông tin ñi u khi n). Thi t l p b r B ñ m phía Nh n và G i ñ m hai ñ u. r Ki m soát lưu lư ng: application application socket writes data reads data socket m Nói quá nhanh, nghe quá door door TCP send buffer TCP receive buffer ch m segment 3: Transport Layer 3b-1 C u trúc TCP segment 32 bits URG: d li u kh n c p ðư c xác ñ nh (ít s d ng) source port # dest port # theo STT c a sequence number byte trong lu ng ACK: ACK # H pl acknowledgement number d li u head not PSH: chuy n d li u len used UAP R S F rcvr window size ngay (ít s d ng) S lư ng byte checksum ptr urgent data mà bên nh n RST, SYN, FIN: có kh năng Options (variable length) Ki m soát k t n i nh n (L nh Thi t l p và ðóng ) D li u ng d ng Internet (kích thư c tùy ý) checksum (gi ng UDP) 3: Transport Layer 3b-2 1
  2. TCP: S th t và S biên nh n S th t (STT): Máy A Máy B m Là S th t c a byte ñ u tiên trong lu ng Ngư i dùng Seq=4 2, ACK ñánh ch =79, d d li u ‘C’ ata = ‘C’ S biên nh n: Biên nh n ch ‘C’, ph n m Là S th t c a byte ‘C’ h i 3, data = k ti p mà bên nh n CK=4 l i ch ‘C’ 79, A Seq= mu n nh n. m Biên nh n tích lũy Biên nh n Q? Bên nh n x lý gói tin l i cho ch Seq=4 ‘C’ ph n h i 3, ACK =8 0 không ñúng th t ntn ? m A: TCP không quy ñ nh. Tùy thu c vào Th i gian ngư i cài ñ t. ng d ng telnet ñơn gi n 3: Transport Layer 3b-3 TCP: Truy n Tin c y S ki n: nh n d li u t phía bên trên FSM bên G i ñơn gi n, gi T o và G i segment ñ nh r ng: •D li u truy n theo m t hư ng •Không ki m soát t c ngh n wait S ki n: timer timeout cho •Không ñi u khi n lưu lư ng wait for segment có STT là y for S ki n S ki n G i l i segment S ki n: Nh n biên nh n cho gói có STT là y X lý ACK 3: Transport Layer 3b-4 2
  3. Nhanh chóng truy n l i r Kho ng th i gian Timeout r N u phía g i nh n ñư c 3 thư ng tương ñ i dài: ACK trùng l p, có th gi m Ch m tr trong vi c g i l i thi t gói tin ngay sau gói gói tin b m t tin ñư c biên nh n 3 l n liên ti p b m t: r Phát hi n m t gói tin qua m G i l i k c khi gói này các ACK trùng l p chưa timeout m Phía g i thư ng g i nhi u gói tin m N u gói tin b m t, s có ACK trùng l p 3: Transport Layer 3b-5 Fast Retransmit: event: ACK received, with ACK field value of y if (y > SendBase) { … SendBase = y if (there are currently not-yet-acknowledged segments) start timer … } else { increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) { resend segment with sequence number y … ACK trùng l p cho gói tin ðã ñư c biên nh n Truy n l i nhanh chóng 3: Transport Layer 3b-6 3
  4. 00 sendbase = initial_sequence number agreed by TWH 01 nextseqnum = initial_sequence number by TWH 02 loop (forever) { 03 switch(event) 04 event: data received from application above 05 if (window allow send) 06 create TCP segment with sequence number nextseqnum 06 if (no timer) start timer TCP: 07 08 pass segment to IP nextseqnum = nextseqnum + length(data) else put packet in buffer Truy n 09 10 event: timer timeout for sendbase retransmit segment 11 compute new timeout interval tin c y 12 13 restart timer event: ACK received, with ACK field value of y 14 if (y > sendbase) { /* cumulative ACK of all data up to y */ 15 cancel the timer for sendbase 16 sendbase = y 17 if (no timer and packet pending) start timer for new sendbase TCP phía G i 17 while (there are segments and window allow) 18 sent a segment; ñơn gi n 18 } 19 else { /* y==sendbase, duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y == 3) { 22 /* TCP fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 26 } /* end of loop forever */ 3: Transport Layer 3b-7 TCP: Chính sách ACK [RFC 1122, RFC 2581] S ki n Bên nh n (TCP) Segment theo ñúng STT ñ n, Trì hoãn ACK. ð i segment k ti p Không thi u d li u, trong 500ms. N u không có segment, Không có ACK treo g i ACK Segment theo ñúng STT ñ n, Ngay l p t c g i m t ACK mang giá Không thi u d li u, tr tích lũy Có m t ACK b treo Segment theo ñúng STT ñ n G i ACK trùng l p, ch STT c a (STT ñ n l n hơn s mong byte d li u mình mu n nh n ñ i). Thi u d li u M t segment ñ n ñi n vào Biên nh n STT bên nh n mong mu n ño n d li u b khuy t nh n 3: Transport Layer 3b-8 4
  5. TCP: Ví d v Truy n l i Host A Host B Host A Host B Seq=9 Seq=9 2, 8 b 2, 8 b yte ytes d s data ata Seq=92 timeout Seq= 100, 20 by tes d Seq=100 timeout ata timeout =1 00 ACK 0 10 X K= 120 AC ACK= loss Seq=9 Seq=9 2, 8 b 2, 8 b yte yte s data s data 20 K=1 =100 AC ACK time time Ví d m t ACK Timeout trư c khi nh n ACK, bên g i biên nh n tích lũy 3: Transport Layer 3b-9 ði u khi n lưu lư ng trong TCP ði u khi n Phía Nh n: Thông báo rõ lưu lư ng ràng cho phía G i kh Không cho bên G i g i năng nh n d li u c a quá nhi u, quá nhanh mình (thay ñ i thư ng xuyên) RcvBuffer = Kích thư c B ñ m nh n RcvWindow = Kích thư c vùng còn tr ng trong B ñ m Phía G i: Gi kh i lư ng d li u g i ñi nhưng chưa ñư c biên nh n nh hơn lư ng bên kia ch p nh n ñư c B ñ m phía Nh n 3: Transport Layer 3b-10 5
  6. ði u khi n lưu lư ng trong TCP source port # dest port # sequence number acknowledgement number head not len used U A P R S F rcvr window size checksum ptr urgent data r Ch tr ng trong B ñ m = RcvWindow Options (variable length) application data (variable length) 3: Transport Layer 3b-11 TCP Round Trip Time and Timeout Q: Thi t l p giá tr Q: Làm th nào ñ ư c lư c RTT? timeout ntn ? r SampleRTT: kho ng th i gian t khi r Timeout > RTT g i gói tin cho ñ n khi nh n ñư c biên nh n m Chú ý: RTT thay ñ i thư ng xuyên m B qua truy n l i r Quá bé: timeout ngay r SampleRTT thay ñ i thư ng xuyên. Chúng ta mu n ư c lư ng RTT “m n m Truy n l i không c n hơn” thi t m S d ng nhi u giá tr ño ñư c r Quá l n: x lý vi c m t trong quá kh , không ph i ch có gói tin b ch m tr m t SampleRTT g n nh t 3: Transport Layer 3b-12 6
  7. TCP Round Trip Time và Timeout EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT r Tr ng s s thay ñ i giá tr trung bình r nh hư ng c a SampleRTT r x thư ng ch n giá tr 0.1 Thi t ñ t giá tr timeout r EstimtedRTT c ng thêm m t “giá tr an toàn” r Bi n thiên EstimatedRTT càng l n -> tăng “giá tr an toàn” Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x*|SampleRTT-EstimatedRTT| 3: Transport Layer 3b-13 TCP : Qu n lý K t n i Chú ý: Trong TCP, phía G i và B t tay ba bư c: Nh n thi t l p “k t n i” trư c Bư c 1: Phía client g i gói tin ñi u khi trao ñ i các segment d khi n TCP SYN t i server li u. m Ch a S th t kh i ñ u r Kh i t o các bi n TCP: m S th t Bư c 2: Nh n ñư c gói SYN, n u ch p nh n k t n i, server g i tr l i gói tin m B ñ m, Thông tin v lưu ñi u khi n SYNACK lư ng (RcvWindow) m Biên nh n cho gói SYN v a r client: Kh i t o k t n i nh n Socket clientSocket = new Socket("hostname","port m C p phát b ñ m m Thông báo v STT kh i ñ u c a number"); server r server: ð i k t n i t client Socket connectionSocket = welcomeSocket.accept(); 3: Transport Layer 3b-14 7
  8. B t tay ba bư c r ð ñ m b o r ng bên kia th c s mong mu n thi t l p k t n i A B A B SYN(s e q=x) SYN(s e q=x) y) Ch p nh n? seq= =y) YN( (seq x), S , SYN (seq = (se q=x) ACK ACK Không có yêu ACK(s c u như v y e q=y) ACK(s e q=z) DATA T ch i (seq= x+1 ) REJE CT(se q=y) 3: Transport Layer 3b-15 TCP: Qu n lý K t n i (ti p) ðóng m t k t n i: client server close client ñóng socket: FIN clientSocket.close(); Bư c 1: client g i gói ñi u khi n ACK close FIN t i server FIN Bư c 2: server nh n ñư c gói timed wait ACK FIN, biên nh n cho gói tin này. ðóng k t n i, g i gói FIN. closed 3: Transport Layer 3b-16 8
  9. TCP: Qu n lý K t n i (ti p) Bư c 3: client nh n gói FIN, client server biên nh n l i ACK. closing FIN m Bư c vào tr ng thái “timed wait” – s biên nh n ACK cho các gói FIN nh n ñư c ACK closing FIN Bư c 4: server nh n ñư c ACK, ñóng k t n i. timed wait ACK Chú ý: V i vài c i ti n nh , ta có closed th x lý ñ ng th i nhi u gói FIN. closed 3: Transport Layer 3b-17 ðóng k t n i r M c tiêu: client server m M i phía gi i phóng Yêu c u I am d tài nguyên và xóa b one. A re you ñóng done tr ng thái v kênh too? truy n Gi i phóng Tài nguyên? dbye ! ðóng too . Goo done Gi i I am ðóng phóng Gi i phóng Tài Tài nguyên nguyên 3: Transport Layer 3b-18 9
  10. V n ñ t ng quát: Quân Xanh-Tr ng Hai phía quân xanh c n th ng nh t th i ñi m ñ cùng t n công quân tr ng. H th a thu n b ng cách g i thông ñi p cho nhau. N u cùng ñ ng ý : t n công, còn không s không t n công. Chú ý r ng ngư i truy n tin có th b b t ! N u cùng t n công, bên xanh th ng, còn n u t n công riêng l , bên tr ng th ng 3: Transport Layer 3b-19 ðóng k t n i trong b n bư c A B ð ngh ñóng ðóng A->B FIN A->B ñóng ACK ðóng ð ngh ñóng A->B ñóng FIN B->A ACK timed wait - Có th truy n l i ACK n u ACK này b m t ðóng Xóa b t t ðóng c tr ng thái Xóa b t t c tr ng thái 3: Transport Layer 3b-20 10
  11. TCP: Qu n lý K t n i (ti p) Vòng ñ i TCP phía Server Vòng ñ i TCP phía Client 3: Transport Layer 3b-21 CLOSED %netstat -t -a SYN SENT SYN CLOSED LISTEN SYN RCVD K /AC SYN ESTABLSIHED ACK ESTABLSIHED ESTABLSIHED ESTABLSIHED FIN WAIT 1 FIN CLOSE WAIT ACK LAST FIN ACK FIN WAIT 2 TIME WAIT ACK 3: Transport Layer 3b-22 11
  12. Nguyên t c Ki m soát T c ngh n T c ngh n: r Mư ng tư ng: “có quá nhi u nút g i quá nhi u d li u v i t c ñ quá nhanh mà m ng không chuy n k p” r Khác v i ði u khi n lưu lư ng! r Bi u hi n : m M t gói tin (Tràn b ñ m t i router) m ð tr l n (Các gói tin ph i “x p hàng” t i router) r Là m t trong 10 v n ñ quan tr ng nh t ! 3: Transport Layer 3b-23 Nguyên nhân và Giá t c ngh n: Ví d 1 r 2 g i, 2 nh n r Router v i b ñ m vô h n r Không có cơ ch truy n l i r ð tr l n khi t c ngh n r Thông lư ng có th ñ t c c ñ i 3: Transport Layer 3b-24 12
  13. Nguyên nhân và Giá t c ngh n: Ví d 2 r M t router, b ñ m h u h n r G i l i các packet b m t 3: Transport Layer 3b-25 Nguyên nhân và Giá t c ngh n: Ví d 2 r Thông thư ng: λ = λ (t t) in out r Truy n l i khi m t (lý tư ng): λ > λ in out r Truy n l i c a các gói tin ñ n tr (không b m t) khi n λ l n hơn (so v i in trư ng h p lý tư ng) λout “Giá” c a T c ngh n: r Ph i truy n l i nhi u r Truy n l i không c n thi t: Nhi u b n sao c a cùng 1 gói tin có th n m trên m ng 3: Transport Layer 3b-26 13
  14. Nguyên nhân và Giá t c ngh n: Ví d 3 r 4 ngư i g i Q: Chuy n gì x y ra khi λ r Nhi u tuy n in và tăng λin ? r Timeout => G i l i 3: Transport Layer 3b-27 Nguyên nhân và Giá t c ngh n: Ví d 3 M t v n ñ khác c a t c ngh n: r Khi m t packet b m t, t t c “công s c” t o và chuy n gói tin này c a các t ng bên trên ñ u b m t ! 3: Transport Layer 3b-28 14
  15. Gi i pháp ch ng T c ngh n Có hai l p gi i pháp chính: Gi i pháp ñ u cu i: Có s h tr t m ng: r T ng m ng (router) không r routers thông báo cho thi t b thông báo cho các nút v T c ñ u cu i ngh n (n u có) m S d ng m t bit thông báo r M t gói tin, ð tr l n: d u tình tr ng t c ngh n (SNA, hi u c a T c ngh n DECbit, TCP/IP ECN, r Là gi i pháp ñư c TCP áp d ng ATM) m Thông báo t c ñ g i t i ña 3: Transport Layer 3b-29 Ví d : Ch ng t c ngh n trong ATM ABR: available bit rate: T bào RM (resource r D ch v “co giãn” management) : r N u ñư ng truy n phía g i r Phía G i g i kèm cùng các t bào chưa dùng h t: d li u m Phía g i có th g i thêm r ATM switch có th thi t l p m t s r N u ñư ng truy n phía g i bit trong t bào RM (“có s tr giúp t c ngh n : t m ng”) m Phía g i có th ñư c ñ m m NI bit: Không ñư c tăng t c ñ b o m t băng thông t i g i (T c ngh n ít) thi u m CI bit: Có t c ngh n r T bào RM ñư c phía Nh n g i tr cho phía G i 3: Transport Layer 3b-30 15
  16. Ví d : Ch ng t c ngh n trong ATM r Trư ng ER (explicit rate) 2 byte trong t bào RM m switch b t c ngh n có th gi m ER trong t bào m sender’ send rate thus minimum supportable rate on path r Trư ng EFCI 1 bit ñư c switch t c ngh n thi t l p giá tr 1 m N u t bào d li u ñ ng trư c t bào RM có giá tr EFCI =1, phía g i thi t l p bit CI trong t bào RM ph n h i 3: Transport Layer 3b-31 Ki m soát t c ngh n trong TCP r Ki m soát ð u cu i (M ng không h tr ) r T c ñ truy n b gi i h n b i c a s ki m soát t c ngh n, Congwin, (s lư ng segment) : Congwin r w segments, kích thư c là MSS byte ñư c g i ñi trong 1 RTT: w * MSS Thông lư ng = Bytes/sec RTT 3: Transport Layer 3b-32 16
  17. TCP : Ki m soát t c ngh n r “thăm dò” băng thông c a r hai “giai ño n” ñư ng truy n: m Kh i ñ u ch m m Lý tư ng: khi không có t c m Tránh t c ngh n ngh n, truy n nhanh nh t có r M t s bi n quan tr ng: th (Congwin càng l n càng t t) m Congwin m Tăng Congwin cho ñ n khi m threshold: xác ñ nh giá có m t d li u (t c ngh n) tr Ngư ng gi a hai pha m M t mát: Gi m Congwin, và b t ñ u quá trình thăm dò 3: Transport Layer 3b-33 TCP : Kh i ñ u ch m Host A Host B Thu t toán kh i one segm ñ u ch m ent RTT initialize: Congwin = 1 two segm ents for (each segment ACKed) Congwin++ until (loss S ki n OR four segm ents CongWin > threshold) r Kích thư c c a s tăng theo hàm s mũ (không quá ch m !) time r S ki n loss : timeout (Tahoe TCP) ho c/và ba l n nh n ACK trùng l p (Reno TCP) 3: Transport Layer 3b-34 17
  18. TCP : Tránh t c ngh n Tránh t c ngh n /* slowstart is over */ /* Congwin > threshold */ Until (loss S ki n) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart 1 1: TCP Reno b qua giai ño n kh i ñ u ch m (khôi ph c nhanh) sau khi nh n 3 ACK trùng l p 3: Transport Layer 3b-35 AIMD Tính công b ng trong TCP Tránh t c ngh n trong TCP: Công b ng: N u N phiên r AIMD: additive TCP cùng nhau chia s increase, multiplicative m t kênh truy n t c decrease ngh n, m i phiên nh n m Tăng c a s lên 1 khi ñư c 1/N băng thông nh n ñư c m t gói ph n TCP phiên 1 h i m Gi m c a s theo s mũ c a 2 khi có s ki n m t gói d li u TCP Router t c ngh n phiên 2 có băng thông R 3: Transport Layer 3b-36 18
  19. T i sao TCP công b ng? Hai phiên c nh tranh nhau s d ng ñư ng truy n: r Tăng theo c p s c ng : băng thông tăng d n d n r Gi m theo c p s nhân : gi m ñ t ng t băng thông R Chia s công b ng kênh truy n Thông lư ng k t n i 2 M t: chia ñôi kích thư c c a s Tránh t c ngh n: c ng theo c p s c ng M t: chia ñôi kích thư c c a s Tránh t c ngh n: c ng theo c p s c ng Thông lư ng k t n i 1 R 3: Transport Layer 3b-37 Chapter 3: T ng k t r Các d ch v c a t ng giao v n: m Phân kênh/ D n kênh Ti p theo: m Truy n tin c y r R i kh i l p “Rìa” m ði u khi n lưu lư ng c a M ng m Ki m soát t c ngh n r Ti n vào l p “Lõi” r Cài ñ t trên Internet m UDP m TCP 3: Transport Layer 3b-38 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2