ACK có cần thiết khi sử dụng các giao thức đáng tin cậy như TCP không? Nó tạo ra bao nhiêu tiền phạt / thông lượng?


5

ACK có cần thiết khi sử dụng các giao thức đáng tin cậy như TCP không? Bao nhiêu chi phí / thông lượng hình phạt nào nó tạo ra?


22
Bạn đang nói về acks cấp ứng dụng hay acks cấp TCP?
grawity

12
Làm thế nào để giao thức biết nếu nó đáng tin cậy trừ khi có xác nhận đáng tin cậy?
Journeyman Geek

8
Đó là ACK làm cho nó đáng tin cậy
user207421

Cờ ACK sử dụng 1 bit cho mỗi gói và luôn có trong các giao tiếp tcp là 0 hoặc 1. Vì vậy, 80.000 gói = khoảng 8k. Nói chung một gói là 1500 byte, không bao gồm các gói jumbo, vì vậy 114mb so với 8k. Gói Jumbo là 9000 nên 686mb so với 8k.
cybernard

Câu trả lời:


25

ACK có cần thiết khi sử dụng các giao thức đáng tin cậy như TCP không?

Vâng. ACK là cơ chế giúp TCP trở thành một giao thức đáng tin cậy.

Nếu ACK bị xóa khỏi giao thức, thì TCP sẽ không còn biết liệu gói tin đã bị mất hay bị mất và do đó cần phải truyền lại.

Điều đó sẽ làm cho nó giống như UDP hơn.


Nó tạo ra bao nhiêu tiền phạt / thông lượng?

Nói chung, điều này không thể được trả lời vì nó phụ thuộc vào điều kiện mạng giữa hai điểm cuối.

Rõ ràng chi phí thấp nhất nếu không có mất gói, nhưng nếu mất gói đáng kể thì chi phí sẽ cao hơn nhiều vì dữ liệu được truyền lại.


Đọc thêm


5

Bạn đã hỏi về "các giao thức đáng tin cậy như TCP / IP"; Tôi sẽ trả lời cho TCP / IP.

ACK có cần thiết khi sử dụng TCP không?

Vâng, nó là một phần không thể thiếu của TCP / IP. TCP / IP là một giao thức cửa sổ trượt . ACK cho phép người nhận "trượt cửa sổ", cho phép người gửi gửi thêm dữ liệu. Nếu không có ACK, TCP / IP sẽ không gửi nhiều dữ liệu chưa được kiểm tra hơn kích thước cửa sổ cho phép.

Nếu không có cửa sổ trượt, người gửi sẽ phải bảo toàn toàn bộ nội dung của luồng dữ liệu trong trường hợp người nhận muốn truyền lại một phần của nó. Cửa sổ trượt cho phép người gửi chỉ giữ một phần nhỏ của luồng dữ liệu xung quanh để truyền lại có thể.

Nó tạo ra bao nhiêu tiền phạt / thông lượng?

Trong trường hợp kích thước cửa sổ phù hợp với điều kiện mạng và băng thông của người nhận đến người gửi không bão hòa, ACK (và số thứ tự đi kèm với nó) sẽ không bị phạt thông lượng. Đó là bởi vì TCP / IP không yêu cầu một gói tin được xác nhận trước khi có thể gửi gói tiếp theo. Trong điều kiện thuận lợi, người gửi có thể gửi mà không tạm dừng trong khi đồng thời nhận một luồng ACK từ người nhận.


2
Nếu dữ liệu chảy cả hai chiều, ACK đều miễn phí vì thông tin ACK di chuyển trong cùng các gói với dữ liệu.
pedz

3

Một lớp ứng dụng ACK được ưu tiên để biết rằng đầu kia đã thực sự xử lý dữ liệu. Độ tin cậy của TCP không tự nó giúp ứng dụng biết liệu dữ liệu đã thực sự đến và được xử lý bởi đầu bên kia hay chưa. Đó là một sự hiểu lầm phổ biến rằng bản thân TCP làm cho giao tiếp trở nên đáng tin cậy. Dữ liệu qua các kết nối TCP có thể bị kẹt trong một thời gian tùy ý trong các bộ đệm ở phía bên gửi hoặc bên nhận và nếu kết nối bị ngắt thì người gửi sẽ không biết người xử lý đã xử lý bao nhiêu .

Chi phí chung là một vòng tròn bổ sung giữa các bên nhưng nếu có liên lạc liên tục thì không cần thêm bất kỳ độ trễ nào nếu dữ liệu được gửi song song. Chi phí băng thông khá nhỏ, tối thiểu người nhận có thể ACK với gói 1 byte đơn giản nhưng trong trường hợp phức tạp hơn, gói ACK có thể cần vài chục byte.


1
Chào mừng đến với trang web. Và cảm ơn bạn cho một bài viết tốt đầu tiên. Bạn vừa tiết kiệm cho tôi thời gian viết câu trả lời để giải quyết những gì còn thiếu trong các câu trả lời trước đó.
kasperd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.