Ai có thể giải thích cách tương tác gói với Công nhận chọn lọc TCP hoạt động? Tôi đã tìm thấy định nghĩa trên Wikipedia, nhưng tôi không thể có được một bức tranh rõ ràng về sự thừa nhận chọn lọc thực sự so với sự thừa nhận tích cực và sự thừa nhận tiêu cực.Tương tác gói với Công nhận chọn lọc TCP hoạt động như thế nào?
Trả lời
TCP phá vỡ thông tin mà nó gửi vào phân đoạn ... về cơ bản phân đoạn là khối dữ liệu không lớn hơn giá trị hiện tại của TCP MSS (kích thước phân đoạn tối đa) nhận được từ đầu kia. Các khối này có số thứ tự tăng dần (dựa trên tổng số byte dữ liệu được gửi trong phiên TCP) cho phép TCP biết khi nào có thứ gì đó bị mất trong chuyến bay; số thứ tự TCP đầu tiên được chọn ngẫu nhiên, và vì mục đích bảo mật, nó không phải là một số giả ngẫu nhiên. Hầu hết thời gian, MTU của ethernet cục bộ của bạn nhỏ hơn MSS, vì vậy họ có thể gửi nhiều phân đoạn tới bạn trước khi bạn có thể ACK.
Đó là hữu ích để suy nghĩ những điều này trong chuỗi thời gian họ đã được chuẩn hóa ...
đầu tiên đến Positive Lời cảm ơn, đó là cơ chế bảo người gửi bạn nhận được dữ liệu, và số thứ tự bạn ACK với là chuỗi byte tối đa nhận được cho mỗi đoạn TCP (hay còn gọi là phân đoạn) mà anh ta gửi đi.
Tôi sẽ minh họa dưới đây, nhưng trong ví dụ của tôi, bạn sẽ thấy các số phân đoạn TCP nhỏ như 1,2,3,4,5 ... trong thực tế các số thứ tự byte này sẽ lớn, tăng dần và có khoảng cách giữa chúng (nhưng điều đó bình thường ... TCP thường gửi dữ liệu theo các khối dài ít nhất 500 byte).
Vì vậy, giả sử số người gửi xmits phân khúc 1,2,3,4,5 trước khi gửi ACK đầu tiên của bạn. Nếu mọi việc suôn sẻ, bạn gửi một ACK cho 1,2,3,4,5 và cuộc sống là tốt. Nếu 2 bị mất, mọi thứ sẽ bị giữ cho đến khi người gửi nhận ra rằng 2 chưa bao giờ bị ACK; anh ta biết bởi vì bạn gửi ACK trùng lặp cho 1. Khi thời gian chờ thích hợp, người gửi xmits 2,3,4,5 một lần nữa.
Sau đó, Xác nhận chọn lọc được đề xuất như một cách để làm cho điều này hiệu quả hơn. Trong cùng một ví dụ, bạn ACK 1, và SACK phân đoạn 3 đến 5 cùng với nó (nếu bạn sử dụng một sniffer, bạn sẽ thấy một cái gì đó như "ACK: 1, SACK: 3-5" cho các gói ACK từ bạn). Bằng cách này, người gửi biết nó chỉ phải truyền lại phân đoạn TCP 2 ... để cuộc sống tốt hơn. Ngoài ra, lưu ý rằng SACK đã xác định các cạnh của dữ liệu tiếp giáp mà bạn đã nhận được; tuy nhiên, nhiều phân đoạn dữ liệu không tiếp giáp có thể được SACK'd cùng một lúc.
Xác nhận tiêu cực là cơ chế chỉ cho người gửi biết về dữ liệu bị thiếu. Nếu bạn không nói với họ một cái gì đó là mất tích, họ tiếp tục gửi dữ liệu cho đến khi bạn khóc chú.
HTH, \ m
- 1. Đường dẫn tạo tác Teamcity hoạt động như thế nào?
- 2. Gói package.js của Meteor hoạt động như thế nào?
- 3. Công việc SETLOCAL và ENABLEDELAYEDEXPANSION hoạt động như thế nào?
- 4. Tương tự về chuỗi: Bitap hoạt động như thế nào?
- 5. Tấn công XSS thực sự hoạt động như thế nào?
- 6. Tùy chọn "-j" thực sự hoạt động như thế nào?
- 7. Công cụ MatchEvaluator trong Regex.Replace hoạt động như thế nào?
- 8. IP công cộng của EC2 hoạt động như thế nào?
- 9. gói thư viện python hoặc công cụ tương tác cho networkX tương tác trực quan
- 10. netezza hoạt động như thế nào? nó so sánh với Hadoop như thế nào?
- 11. Công việc `__declspec (align (#))` hoạt động như thế nào?
- 12. Công việc xếp tầng "này" hoạt động như thế nào?
- 13. Công cụ random.Random.seed của python hoạt động như thế nào?
- 14. Công việc "respond_with_navigational" hoạt động như thế nào?
- 15. Bộ chọn jQuery này hoạt động như thế nào?
- 16. Công việc Request.IsAuthenticated hoạt động như thế nào?
- 17. Công nghệ "bump" hoạt động như thế nào?
- 18. Công cụ mô phỏng Simulink hoạt động như thế nào?
- 19. Công cụ QGraphicsItem :: prepareGeometryChange() hoạt động như thế nào?
- 20. 'typeof' hoạt động như thế nào?
- 21. jQuery.on() hoạt động như thế nào?
- 22. Chú thích là gì và chúng thực sự hoạt động như thế nào cho các khung công tác như Spring?
- 23. Loại tùy chọn hoạt động như thế nào trong F #
- 24. Android - Tương tác dịch vụ và hoạt động
- 25. Ổ đĩa máy chủ hoạt động như thế nào?
- 26. Sched_setaffinity() hoạt động như thế nào?
- 27. MenuItem.SHOW_AS_ACTION_IF_ROOM hoạt động như thế nào?
- 28. Khung công tác Java nào hoạt động tốt nhất với Bộ công cụ Web của Google?
- 29. Làm thế nào để bạn nhận được gói tin TCP nguyên trong C#?
- 30. JRebel hoạt động như thế nào?