Computer >> Máy Tính >  >> Kết nối mạng >> Internet

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?

Nếu bạn đang tham gia vào mạng máy tính hoặc nếu bạn đã tìm hiểu kỹ cài đặt mạng của một số ứng dụng, bạn có thể đã thấy các thuật ngữ sau:TCP và UDP.

TCP, viết tắt của Transmission Control Protocol, và UDP, hoặc User Datagram Protocol, là một phần của bộ giao thức internet. TCP và UDP là các phương thức khác nhau để gửi thông tin qua internet.

Nhưng ngay cả khi biết chúng đại diện cho điều gì, thật khó để biết bạn nên sử dụng giao thức nào hoặc tại sao bạn lại sử dụng giao thức này thay vì giao thức kia.

Trong bài viết này, chúng ta sẽ xem xét các khái niệm cơ bản về mạng máy tính, sự khác biệt giữa TCP và UDP, khi nào chúng được sử dụng và hơn thế nữa.

Kiến thức Cơ bản về Mạng Máy tính

Trước khi đi sâu vào cách thức hoạt động của TCP và UDP, sẽ rất hữu ích nếu bạn biết những điều cơ bản về cách thức hoạt động của Internet.

Nói một cách tổng quát, Internet là một mạng lưới các thiết bị kết nối. Mỗi thiết bị, cho dù đó là điện thoại thông minh của bạn hay máy chủ, đều giao tiếp thông qua bộ giao thức internet.

Bộ giao thức internet là một tập hợp các giao thức hoặc phương thức khác nhau để các thiết bị giao tiếp với nhau. Cả TCP và UDP đều là các giao thức chính trong bộ giao thức internet:

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?
Nguồn

Mỗi thiết bị được kết nối với Internet có một địa chỉ IP duy nhất. Và bất cứ khi nào hai thiết bị giao tiếp qua internet, chúng có thể sử dụng TCP hoặc UDP để làm như vậy.

Dưới đây là so sánh ngắn gọn giữa hai loại:

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?
Nguồn

Để có cái nhìn tổng quan cấp cao hơn về cách thức hoạt động của Internet, hãy xem video dài 5 phút này:

TCP là gì?

TCP, hoặc Giao thức điều khiển truyền tải, là giao thức mạng phổ biến nhất trên mạng. TCP cực kỳ đáng tin cậy và được sử dụng cho mọi thứ, từ lướt web (HTTP), gửi email (SMTP) và truyền tệp (FTP).

TCP được sử dụng trong các trường hợp cần thiết rằng tất cả dữ liệu được gửi bởi một thiết bị sẽ được nhận bởi một thiết bị khác hoàn toàn nguyên vẹn.

Ví dụ:khi bạn truy cập một trang web, TCP được sử dụng để đảm bảo rằng mọi thứ từ văn bản, hình ảnh và mã cần thiết để hiển thị trang đều đến. Nếu không có TCP, hình ảnh hoặc văn bản có thể bị thiếu hoặc đến không đúng thứ tự, làm hỏng trang.

TCP là một giao thức hướng kết nối, có nghĩa là nó thiết lập kết nối giữa hai thiết bị trước khi truyền dữ liệu và duy trì kết nối đó trong suốt quá trình truyền.

Để thiết lập kết nối giữa hai thiết bị, TCP sử dụng một phương thức được gọi là bắt tay ba chiều:

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?
Nguồn

Ví dụ:để đọc bài viết này trên thiết bị của bạn, trước tiên thiết bị của bạn đã gửi một tin nhắn đến máy chủ Tin tức freeCodeCamp có tên là SYN (Synchronize Sequence Number).

Sau đó, máy chủ Tin tức freeCodeCamp sẽ gửi lại một thông báo xác nhận được gọi là SYN-ACK.

Khi thiết bị của bạn nhận được SYN-ACK từ máy chủ, nó sẽ gửi lại thông báo xác nhận ACK để thiết lập kết nối.

Khi kết nối TCP được thiết lập giữa hai thiết bị, giao thức đảm bảo rằng tất cả dữ liệu được truyền.

Quay lại ví dụ về thiết bị của bạn và freeCodeCamp News, sau khi hoàn tất quá trình bắt tay ba bước, máy chủ Tin tức có thể bắt đầu gửi tất cả dữ liệu mà trình duyệt web trên thiết bị của bạn cần để hiển thị bài viết này.

Tất cả các thiết bị chia nhỏ dữ liệu thành các gói nhỏ trước khi gửi chúng qua internet. Sau đó, các gói này cần được tập hợp lại ở đầu bên kia.

Vì vậy, khi máy chủ Tin tức freeCodeCamp gửi HTML, CSS, hình ảnh và mã khác cho bài viết này, nó sẽ chia mọi thứ thành các gói dữ liệu nhỏ trước khi gửi chúng đến thiết bị của bạn. Sau đó, thiết bị của bạn sẽ tập hợp lại các gói đó thành các tệp và hình ảnh mà nó cần để hiển thị bài viết này.

TCP đảm bảo rằng tất cả các gói này đều đến thiết bị của bạn. Nếu bất kỳ gói nào bị mất trên đường đi, TCP sẽ giúp thiết bị của bạn dễ dàng thông báo cho máy chủ biết rằng nó đang thiếu dữ liệu và để máy chủ gửi lại các gói đó.

Khi thiết bị của bạn nhận được tất cả dữ liệu cần thiết để hiển thị bài viết, TCP sẽ tự động ngắt kết nối giữa hai thiết bị bằng một phương thức tương tự như phương thức bắt tay ba chiều, lần này sử dụng gói FIN và ACK.

UDP là gì?

UDP, hoặc User Datagram Protocol, là một trong những giao thức chính khác tạo nên bộ giao thức internet. UDP kém tin cậy hơn TCP, nhưng đơn giản hơn nhiều.

UDP được sử dụng cho các trường hợp có thể chấp nhận được một số mất mát dữ liệu, chẳng hạn như video / âm thanh trực tiếp hoặc trong đó tốc độ là một yếu tố quan trọng như chơi trò chơi trực tuyến.

Mặc dù UDP tương tự như TCP ở chỗ nó được sử dụng để gửi và nhận dữ liệu trực tuyến, nhưng có một số điểm khác biệt chính.

Đầu tiên, UDP là một giao thức không có kết nối, có nghĩa là nó không thiết lập kết nối trước như TCP thực hiện với kiểu bắt tay ba chiều của nó.

Tiếp theo, UDP không đảm bảo rằng tất cả dữ liệu được chuyển thành công. Với UDP, dữ liệu được gửi đến bất kỳ thiết bị nào đang nghe, nhưng không quan tâm đến việc một số dữ liệu có bị mất trên đường đi hay không. Đây là một trong những lý do tại sao UDP còn được gọi là giao thức "cháy và quên".

Một cách tốt để nghĩ về những khác biệt này là TCP giống như một cuộc trò chuyện giữa hai người. Người A yêu cầu người B nói chuyện. Người B nói chắc chắn, điều đó tốt. Người A đồng ý và cả hai bắt đầu nói.

UDP giống như một người biểu tình bên ngoài với một cái loa. Tất cả những ai đang chú ý đến người biểu tình sẽ nghe thấy hầu hết những gì họ đang nói. Nhưng không có gì đảm bảo rằng mọi người trong khu vực sẽ nghe thấy những gì người biểu tình đang nói hoặc thậm chí họ đang nghe.

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?
UDP và TCP - Nguồn

Nhanh hơn - TCP hay UDP?

Nói chung, UDP là giao thức nhanh hơn.

UDP đơn giản hơn nhiều và không cố gắng thiết lập kết nối giữa các thiết bị trước khi gửi dữ liệu hoặc xác minh rằng tất cả dữ liệu đã đến. Nó chỉ đơn giản là gửi dữ liệu đến bất kỳ thiết bị nào yêu cầu và tiếp tục làm điều đó cho đến khi thiết bị khác ngắt kết nối hoặc không còn dữ liệu để gửi.

Hãy nghĩ đến việc uống từ vòi hơn là nhấm nháp từ chai. Bạn sẽ làm dịu cơn khát của mình bằng cách nào đó, nhưng có thể sẽ kết thúc với một chiếc áo sơ mi ẩm ướt bằng cách sử dụng phương pháp cũ.

TCP so với UDP - Sự khác biệt là gì và Giao thức nào nhanh hơn?
Không phải là một ống mềm, nhưng vẫn khá chính xác. Cũng hãy tưởng tượng rằng chai TCP liên tục hỏi bạn có nhận được nước khi bạn uống từ chai không. Nguồn

Nhưng nhanh hơn không có nghĩa là UDP nói chung là giao thức tốt hơn. Nó chỉ có nghĩa là nó tốt hơn trong một số tình huống nhất định.

Như đã đề cập trước đó, TCP là cần thiết trong các tình huống mà điều quan trọng là tất cả các gói dữ liệu được gửi theo thứ tự và tất cả các gói đều đến. Web sẽ không hoạt động nếu không có TCP.

Và mặc dù TCP chậm hơn do cách nó thiết lập kết nối và do việc kiểm tra các gói bị thiếu, nó vẫn có thể nhanh như chớp. Vì chúng ở trên web và sử dụng HTTP, các trang web như YouTube hoặc Netflix đều sử dụng TCP để gửi dữ liệu đến thiết bị của bạn.

TCP cũng cho phép lưu vào bộ đệm, vì vậy trình duyệt của bạn có thể yêu cầu và tải thêm dữ liệu khi bạn xem, cho phép phát lại mượt mà và để bạn chuyển sang các phần khác của video.

UDP là lựa chọn tốt hơn cho video và âm thanh trực tiếp hoặc trò chơi trực tuyến, nơi tốc độ quan trọng hơn khả năng mất dữ liệu.

Khi bạn thực hiện cuộc gọi qua Google Meet hoặc Zoom, video và âm thanh của bạn sẽ được truyền qua UDP. Nếu một số gói bị mất trên đường đi, nó sẽ chỉ xuất hiện ở dạng hơi trễ hoặc video / âm thanh bị cắt.

Nếu bạn chơi trò chơi điện tử, bạn có thể nghĩ rằng cách TCP đảm bảo tất cả các gói dữ liệu đến thiết bị khác sẽ khiến nó trở thành lựa chọn lý tưởng. Nhưng trên thực tế, tất cả việc kiểm tra và gửi lại dữ liệu mà TCP thực hiện chỉ làm tăng thêm độ trễ.

Các nhà phát triển trò chơi đã tìm ra những cách thông minh khác để đảm bảo rằng đầu vào và trạng thái của người chơi chính xác nhất có thể. Nếu bạn muốn đọc thêm về lý do tại sao UDP được ưu tiên cho chơi game trực tuyến, hãy xem bài viết này.

KẾT THÚC

Tôi hy vọng bài viết này đã giúp bạn hiểu một số sắc thái giữa TCP và UDP. Và nếu ai đó hỏi cái nào nhanh hơn, hãy cho họ biết những gì bạn đọc ở đây:"UDP nhanh hơn, nhưng ... "

Và nếu bạn thích những gì bạn đọc, hãy cho tôi biết trên Twitter.