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

Bài giảng Mạng máy tính: Bài 7 (Chương III) - ThS. Nguyễn Cao Đạt

Chia sẻ: Dang Trang | Ngày: | Loại File: PDF | Số trang:45

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

"Bài giảng Mạng máy tính: Bài 7 (Chương III)" giúp các bạn nắm được những kiến thức về: sự truyền tải hướng kết nối, các nguyên lý của kiểm soát tắc nghẽn mạng và kiểm soát tắc nghẽn trong TCP. Tài liệu này giúp các bạn bổ sung thêm vốn kiến thức về Mạng máy tính.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Mạng máy tính: Bài 7 (Chương III) - ThS. Nguyễn Cao Đạt

  1. Trường Đại Học Bách Khoa Tp.HCM Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng Mạng máy tính ThS. NGUYỄN CAO ĐẠT E-mail:dat@cse.hcmut.edu.vn
  2. Bài giảng 7: Tầng truyền tải (tt) Tham khảo: Chương 3: “Computer Networking – A top-down approach” Kurose & Ross, 5th ed., Addison Wesley, 2010. Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 2
  3. Chương 3: Mục lục  3.1 Các dịch vụ tầng-truyền tải  3.4 Sự truyền tải hướng  3.2 Sự dồn và tách kết nối : TCP  3.3 Sự truyền tải không kết  cấu trúc đoạn tin nối: UDP  truyền tải dự liệu tin cậy  kiểm soát lưu lượng  quản lý kết nối  3.5 Các nguyên lý của kiểm soát tắc nghẽn  3.6 Kiểm soát tắc nghẽn trong TCP Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 3
  4. Truyền tải dữ liệu tin cậy TCP  TCP tạo dịch vụ ttdltc trên  Truyền tải lại được kích nên dịch vụ không tin cậy hoạt bởi: IP  sự kiện hết thời gian chờ  Các khúc được tạo đường  Trùng lặp ACK ống  Đầu tiên xem xét  ACK cộng dồn ng/gửi TCP đơn giản: bỏ qua các ack trùng lặp  TCP chỉ sử dụng một bộ  bỏ qua kiểm tra lưu lượng, đếm thời gian cho truyền  kiểm tra tắc nghẽn tải lại Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 4
  5. Các sự kiện phía người gửi TCP: nhận dữ liệu từ ứ/d: hết giờ:  Tạo ra khúc với STT  gửi lại khúc dữ liệu mà  STT là stt trên luồng-byte gây nên hết t/g chờ của byte dữ liệu đầu tiên  khởi động lại bđtg trong đoạn Nhận được ACK:  khởi động bộ đếm t/g nếu  Nếu đó là ACK cho các nó chưa chạy (bộ đếm t/g khúc trước đó chưa được cho khúc dữ liệu chưa ACK ACK lâu nhất)  cập nhật danh sách các gói  khoảng t/g hết hạn: đã được ACK TimeOutInterval  chạy lại bđtg nếu như còn có các khúc chưa ACK Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 5
  6. NextSeqNum = InitialSeqNum SendBase = InitialSeqNum ng/gửi loop (forever) { TCP switch(event) event: nhận được dữ liệu từ ứng dụng tầng trên (đơn giản hóa) tạo ra đoạn TCP với STT NextSeqNum if (bđtg không chạy) khởi chạy bđtg đẩy đoạn xuống IP NextSeqNum = NextSeqNum + length(data) Chú thích: • SendBase-1: byte event: bđtg hết giờ được ack cộng dồn gửi lại đoạn chưa ACK với STT nhỏ nhất cuối cùng khởi chạy bđtg Ví dụ: event: nhận được ACK, với giá trị trường ACK là y • SendBase-1 = 71; if (y > SendBase) { y= 73, vậy người SendBase = y nhận cần 73+ ; if (còn đoạn chưa ACK) y > SendBase, vì khởi chạy bđtg vậy có thêm dữ liệu } được ack } /* end of loop forever */ Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 6
  7. TCP: các kịch bản truyền tải lại Máy A Máy B Máy A Máy B hết giờ seq=92 hết giờ X mất Sendbase = 100 hết giờ seq=92 SendBase = 120 SendBase = 100 SendBase = 120 hết giờ non kịch bản mất ACK t/g t/g Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 7
  8. TCP: các kịch bản truyền tải lại (tt) Máy A Máy B hết giờ X mất SendBase = 120 t/g kịch bản ACK cộng dồn Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 8
  9. Tạo ACK trong TCP [RFC 1122, RFC 2581] Sự kiện tại ng/nhận Hành vi của ng/ nhận TCP Sự đến của khúc đúng thứ tự với Trì hoãn việc ACK. Chờ khúc tiếp theo STT hợp lí. Tất cả dữ liệu từ trong 500ms. Nếu không có khúc nào STT về trước đã được ACK tiếp theo, gửi ACK Sự đến của khúc đúng thứ tự với Ngay lập tức gửi một ACK cộng dồn, STT hợp lí. Một đoạn khác đang xác nhận cả hai đoạn dữ liệu đúng chờ được ACK thứ tự Sự đến của khúc sai-thứ-tự với STT cao hơn STT mong đợi. Ngay lập tức gửi một ACK lặp, Phát hiện ra sự thiếu hụt chỉ rõ STT của byte mong đợi tiếp theo Sự đến của khúc mà khỏa lấp sự thiếu hụt một phần hoặc toàn Ngay lập tức gửi ACK bộ Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 9
  10. Truyền lại nhanh  Thời gian chờ thường  Nếu người nhận nhận tương đối dài: được 3 ACK trùng lặp cho  sẽ bị trị hoãn lâu trước khi cùng một khúc dữ liệu, nó gửi lại gói bị mất sẽ suy ra là các khúc dữ  Phát hiện mất khúc thông liệu theo sau đã bị mất: qua ACK lặp.  truyền lại nhanh: gửi lại  Ng/gửi thường gửi nhiều khúc dữ liệu trước khi bộ khúc liên tục đếm thời gian hết hạn  Nếu một khúc bị mất thì thường sẽ có nhiều ACK trùng lặp. Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 10
  11. Máy A Máy B X thời gian chờ t/g Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 11
  12. Giải thuật truyền tải lại nhanh: sự kiện: nhận được ACK, với trường ACK có giá trị y if (y > SendBase) { SendBase = y if (không có khúc nào chưa được ACK) khởi động bộ đếm thời gian } else { tăng bộ đếm số ACK cho y trùng if (số ACK trùng = 3) { gửi lại khúc với STT y } một ACK trùng truyền tải lại nhanh cho một khúc đã được ACK Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 12
  13. Chương 3: Mục lục  3.1 Các dịch vụ tầng-truyền tải  3.4 Sự truyền tải hướng  3.2 Sự dồn và tách kết nối : TCP  3.3 Sự truyền tải không kết  cấu trúc đoạn tin nối: UDP  truyền tải dự liệu tin cậy  kiểm soát lưu lượng  quản lý kết nối  3.5 Các nguyên lý của kiểm soát tắc nghẽn  3.6 Kiểm soát tắc nghẽn trong TCP Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 13
  14. Kiểm soát lưu lượng trong TCP kiểm soát LL ng/gửi không làm tràn  phía nhận của receive bộ nhớ tạm của side of TCP connection ng/nhận bởi truyền quá has a receive buffer: nhanh và nhiều  dịch vụ làm tương đồng tốc độ: điều chỉnh tốc độ gửi sao cho phù hợp với tốc độ đọc của tiến trình nhận  tiến trình ứ/d có thể chậm trong việc đọc từ bộ nhớ tạm Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 14
  15. KSLL trong TCP làm việc ntn?  Ng/nhận thông báo số chỗ trống trong bnt bằng cách thêm giá trị cửa sổ nhận RcvWindow trong khúc tin  Ng/gửi hạn chế lượng dữ (Giả sử ng/nhận TCP loại bỏ liệu chưa ACK tới giá trị các khúc không-đúng-thứ- của RcvWindow tự)  đảm bảo bộ nhớ tạm của  số chỗ trống trong bnt người nhận kô bao giờ bị = RcvWindow tràn = RcvBuffer-[LastByteRcvd - LastByteRead] Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 15
  16. Chương 3: Mục lục  3.1 Các dịch vụ tầng-truyền tải  3.4 Sự truyền tải hướng  3.2 Sự dồn và tách kết nối : TCP  3.3 Sự truyền tải không kết  cấu trúc đoạn tin nối: UDP  truyền tải dự liệu tin cậy  kiểm soát lưu lượng  quản lý kết nối  3.5 Các nguyên lý của kiểm soát tắc nghẽn  3.6 Kiểm soát tắc nghẽn trong TCP Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 16
  17. Quản lý kết nối TCP Gợi nhớ: ng/gửi, ng/nhận TCP Bắt tay 3 bước: thiết lập “kết nối” trước khi trao đổi các khúc dữ liệu Bước 1: máy khách gửi khúc TCP  khởi tạo các biến TCP: SYN tới máy chủ  chứa STT ban đầu  STT  không có dữ liệu  BNT, thông tin KSLL (vd: RcvWindow) Bước 2: chủ nhận được SYN, gửi  khách: người bắt đầu kết nối trả lại một khúc SYNACK Socket clientSocket = new Socket("hostname","port  chủ cấp bộ nhớ tạm  STT ban đầu của chủ number");  chủ: được liên lạc bởi khách Bước 3: khách nhận được Socket connectionSocket = SYNACK, phản hồi lại với khúc welcomeSocket.accept(); ACK, có thể kèm theo dữ liệu Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 17
  18. Quản lý kết nối TCP (tt) Đóng một kết nối: khách chủ khách đóng socket: đóng clientSocket.close(); Bước 1: khách gửi một khúc điều đóng khiển TCP FIN đến chủ Bước 2: chủ nhận được FIN, phản thời gian chờ hồi với ACK. Đóng kết nối, gửi FIN. đóng Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 18
  19. Quản lý kết nối TCP (tt) Bước 3: khách nhận được FIN, phản hồi với ACK. khách chủ  Bước vào trạng thái “chờ đang đóng có đếm thời gian” – sẽ phản hồi bằng ACK với những FIN nhận được đang đóng Step 4: chủ, nhận được ACK. Đóng kết nối. thời gian chờ Ghi chú: với vài chỉnh sửa nhỏ, có thể xử lý nhiều FIN đồng đã đóng thời. đã đóng Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 19
  20. Quản lý kết nối TCP (tt) chu kì sống của chủ TCP chu kì sống của khách TCP Trường Đại Học Bách Khoa Tp.HCM MẠNG MÁY TÍNH CĂN BẢN Khoa Khoa Học và Kỹ Thuật Máy Tính Bài giảng 2 - Chương 3: Tầng Truyền Tải © 2011 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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