UDP là gì? Kiến thức cơ bản về UDP

Rate this post

UDP là gì? Khi một ứng dụng sử dụng UDP, các gói tin sẽ được gửi đến người nhận. Người gửi không đợi để chắc chắn người nhận nhận được gói tin hay không, mà nó tiếp tục gửi các gói tiếp theo. Nếu người nhận bỏ lỡ một vài gói tin UDP, gói tin đó bị mất vì người gửi sẽ không gửi lại chúng. Điều này được hiểu là các thiết bị có thể giao tiếp nhanh chóng.

Hãy cùng winerp.vn cùng tìm hiểu UDP ngay sau đây nhé!

Mục lục

UDP là gì?

UDP là viết tắt của User Datagram Protocol – một gói tương tự như một gói của thông tin. Giao thức UDP làm việc tương tự như TCP, nhưng nó bao gồm tổng quan những thứ đã kiểm tra và có lỗi.

Kiến Thức Udp
Kiến Thức cơ bản về Udp

Khi tận dụng UDP, gói chỉ gửi đến bên nhận. Bên gửi sẽ không chờ đợi để đảm bảo rằng bên nhận đã nhận được các gói tin – nó sẽ tiếp tục gửi các gói tiếp theo. Nếu bạn là người nhận và bạn bỏ lỡ một số gói tin UDP vì quá xấu – bạn không thể yêu cầu những gói tin một lần nữa. Không có gì để bảo đảm bạn đang nhận được tổng quan các gói và không có cách nào để yêu cầu một gói một lần nữa nếu bạn bỏ lỡ nó, nhưng bù vào đó, các máy tính hoàn toàn có thể giao tiếp một cách nhanh hơn bình thường hơn.

UDP được tận dụng khi tốc độ là nguyện ước và sửa lỗi là không cần thiết. Ví dụ, UDP thường được tận dụng cho chương trình phát sóng trực tiếp và trò chơi trực tuyến.

Ví dụ, giả sử bạn đang xem hình ảnh video trực tiếp. Live Stream phát sóng thường dùng UDP thay vì TCP. Các máy chủ chỉ cần gửi một dòng của các gói tin UDP để máy tính xem. Nếu bạn bị mất kết nối trong vài giây, video sẽ đóng băng cho một thời điểm và sau đó chuyển đến các bit hiện tại của truyền hình, bỏ qua các bit bạn đã bị bỏ qua. Video hoặc âm thanh có thể bị bóp méo một lúc và video tiếp tục chơi mà không có dữ liệu bị mất.

Điều này làm việc tương tự như trong các trò chơi trực tuyến – nếu bạn bỏ lỡ một số gói tin UDP, nhân vật người chơi có thể có mặt dịch chuyển trên maps khi bạn nhận được các gói tin UDP mới hơn. Không có điểm trong việc yêu cầu các gói cũ nếu bạn bị mất họ, và các trò chơi được tiếp tục mà không có bạn. Tất cả những vấn đề là những gì đang xảy ra ngay bây giờ trên máy chủ trò chơi – không phải những gì đã xảy ra một vài giây.

Các thuật ngữ UDP

Trước khi kiểm tra xem giao thức UDP hoạt động ra làm sao, chúng ta cần làm quen với một số thuật ngữ. Trong phần tiếp sau đây, chúng ta sẽ định nghĩa một số thuật ngữ căn bản có liên quan đến giao thức UDP.

Các Thuật Ngữ Udp
Các Thuật Ngữ Udp

Packet

Trong truyền dữ liệu, một packet là một dãy các số nhị phân, biểu diễn dữ liệu và các tín hiệu điều khiển và tinh chỉnh, các gói tin này được chuyển đi và chuyển tới host. Trong gói tin, thông tin được sắp xếp theo một khuôn dạng cụ thể.

Datagram

Một datagram là một gói tin độc lập, tự chứa, mang từ A đến Z dữ liệu để định tuyến từ nguồn tới đích mà không cần thông tin thêm.

MTU

MTU là viết tắt của Maximum Transmission Unit. MTU là một đặc trưng của tầng mối liên quan mô tả số byte thông số tối đa hoàn toàn có thể truyền trong một gói tin. Mặt khác, MTU là gói dữ liệu lớn nhất mà môi trường mạng cho trước rất có thể truyền. Ví dụ, Ethernet có MTU cố định là 1500 byte. Trong UDP, nếu kích thước của một datagram lớn hơn MTU, IP sẽ thực hiện phân đoạn, chia datagram thành các phần nhỏ hơn (các đoạn), vì vậy mỗi đoạn nhỏ có kích thước nhỏ hơn MTU.

Port

UDP tận dụng các cổng để ánh xạ thông số đến vào một tiến trình cụ thể đang chạy trên một máy tính. UDP định đường đi cho packet tại vị trí định hướng với cách dùng số hiệu cổng được định hướng trong header của datagram. Các cổng được biểu hiện bởi các số 16-bit, vì thế các cổng nằm trong dải từ 0 đến 65535. Các cổng cũng được xem như là các điểm cuối của các kết nối logic, và được chia thành ba loại sau:

  • Các cổng phổ biến: Từ 0 đến 1023
  • Các cổng đã đăng ký: 1024 đến 49151
  • Các cổng động/dành riêng 49152 đến 65535

Chú ý rằng các cổng UDP có thể nhận nhiều hơn một thông điệp ở một thời điểm. Trong một số tình huống, các dịch vụ TCP và UDP rất có thể sử dụng cùng một số hiệu cổng, như 7 (Echo) hoặc trên cổng 23 (Telnet).

Các cổng UDP

 

Các Cổng Udp
Các Cổng Udp

TTL (Time To Live)

chất lượng TTL cho phép chúng ta setup một hạn hẹp trên của các router mà một datagram hoàn toàn có thể đi qua. Giá trị TTL ngăn ngừa các gói tin khỏi bị kẹt trong các vòng lặp định tuyến vô hạn. TTL được khởi tạo bởi phía gửi và giá trị được giảm đi bởi mỗi router quản trị datagram. Khi TTL bằng 0, datagram bị loại bỏ.

Multicasting

Multicasting là phương pháp dựa trên chuẩn có tính chất mở để phân phối các thông tin giống nhau đến nhiều người tận dụng. Multicasting là một đặc trưng chính của giao thức UDP. Multicasting cho phép chúng ta truyền tin theo kiểu một nhiều, ví dụ gửi tin hoặc thư điện tử tới nhiều người nhận, đài phát thanh trên Internet, hoặc các chương trình demo trực tuyến.

Hoạt động của giao thức UDP

Khi một phần mềm dựa trên giao thức UDP gửi thông số tới một host khác trên mạng, UDP thêm vào một header có độ dài 8 byte chứa các số hiệu cổng nguồn và đích, cùng theo với tổng chiều dài số liệu và thông tin checksum. IP thêm vào header của riêng nó vào đâu mỗi datagram UDP để tạo lên một datagram IP:

Các điểm yếu của giao thức UDP

So với giao thức TCP, UDP có những nhược điểm sau:

  • Thiếu các tín hiệu bắt tay: Trước khi gửi một đoạn, UDP không gửi các tín hiệu bắt tay giữa bên gửi và bên nhận. Vì thế phía gửi không có cách nào để biết datagram đã đến đích hay chưa. Do vậy, UDP không chắc rằng việc thông số đã đến đích hay chưa.
  • Dùng các phiên: Để TCP là hướng mối liên quan, các phiên được duy trì giữa các host.
  • TCP tận dụng các chỉ số phiên (session ID) để duy trì các kết nối giữa hai host: UDP không hỗ trợ bất kỳ phiên nào do bản chất phi kết nối của nó.
  • Độ tin tưởng: UDP không chắc rằng rằng chỉ có một bản sao số liệu tới đích. Để gửi thông số tới các hệ thống cuối, UDP phân chia thông số thành các đoạn nhỏ. UDP không chắc rằng rằng các đoạn này sẽ đến đích đúng thứ tự như chúng đã được tạo ra ở nguồn. Ngược lại, TCP tận dụng các số thứ tự cùng với số hiệu cổng và các gói tin xác thực liên tục, điều này chắc chắn rằng các gói tin đến đích đúng thứ tự mà nó đã được tạo ra.
  • Bảo mật: TCP có tính bảo mật cao hơn UDP. Trong nhiều tổ chức, firewall và router cấm các gói tin UDP, điều này là vì các hacker thường dùng các cổng UDP.
  • Kiểm soát luồng: UDP không có kiểm soát luồng; kết quả là, một phần mềm UDP có thiết kế tồi hoàn toàn có thể làm giảm băng thông của mạng.

Các điểm mạnh của UDP

Không cần cài đặt mối liên quan. UDP là giao thức phi liên kết, vì thế không cần phải thiết đặt quan hệ. Vì UDP không tận dụng các tín hiệu handshaking, nên hoàn toàn có thể tránh được thời gian trễ. Đó chính là lý do tại sao DNS thường dùng giao thức UDP hơn là TCP-DNS sẽ chậm hơn rất nhiều khi tận dụng TCP.

Tốc độ. UDP nhanh chóng so với TCP. Bởi vì điều này, nhiều ứng dụng thường được cài đặt trên giao thức UDP hơn so với giao thức TCP.

Hỗ trợ hình trạng (Topology). UDP hỗ trợ các mối liên quan 1-1, 1-n, ngược lại TCP chỉ hỗ trợ quan hệ 1-1.
Kích thước header. UDP chỉ có 8 byte header cho mỗi đoạn, ngược lại TCP cần các header 20 byte, vì vậy dùng băng thông ít hơn.

Khi nào nên sử dụng UDP?

Rất nhiều ứng dụng trên Internet sử dụng UDP. Dựa trên các ưu và điểm yếu của UDP chúng ta rất có thể tóm lại UDP có ích khi:

  • Sử dụng cho các phương thức truyền broadcasting và multicasting khi chúng ta muốn truyền tin với nhiều host.
  • Kích thước datagram nhỏ và trình tự đoạn là không có ảnh hưởng
  • Không cần thiết lập quan hệ
  • Phần mềm không gửi các dữ liệu đáng kể
  • Không cần truyền lại các gói tin
  • Băng thông của mạng đóng vai trò đáng kể

Việc cài đặt ứng dụng UDP trong Java cần có hai lớp là DatagramPacket và DatagramSocket. DatagramPacket đóng gói các byte thông số vào các gói tin UDP được gọi là datagram và cho phép ta mở các datagram khi nhận được. Một DatagramSocket đồng thời thực hiện cả hai nhiệm vụ nhận và gửi gói tin. Để gửi số liệu, ta đặt số liệu trong một DatagramPacket và gửi gói tin bằng cách tận dụng DatagramSocket. Để nhận dữ liệu, ta nhận một đối tượng DatagramPacket từ DatagramSocket và sau đó đọc Content nội dung của gói tin.

Sử Dụng Udp
Sử Dụng Udp

UDP không có bất kể khái niệm nào về mối liên quan giữa hai host. Một socket gửi tất cả số liệu tới một cổng hoặc nhận tất cả dữ liệu từ một cổng mà không cần quan tâm host nào gửi. Một DatagramSocket rất có thể gửi dữ liệu tới nhiều host độc lập hoặc nhận thông số từ rất nhiều host độc lập. Socket không dành riêng cho một kết nối cụ thể thể nào cả như trong giao thức TCP. Các socket TCP xem liên kết mạng như là một luồng: ta gửi và nhận thông số với các luồng nhập và luồng xuất nhận được từ socket. UDP không cho phép điều này; ta phải làm việc với từng gói tin. Tất tần tật số liệu được đặt trong datagram được gửi đi dưới dạng một gói tin. Gói tin này cũng hoàn toàn có thể nhận được bởi một nhóm hoặc cũng hoàn toàn có thể bị mất. Một gói tin không nhất thiết phải liên quan đến gói tin tiếp theo. Cho trước hai gói tin, không có cách nào để biết được gói tin nào được gửi trước và gói tin nào được gửi sau.

Kiến thức về UDP

  • Là loại giao thức connectionless (nghĩa là có gói tin nào là đẩy ngay vào đường truyền mà không cần thiết đặt các liên kết trước)
  • Không đảm bảo tính uy tín khi truyền dữ liệu và không có chính sách phục hồi thông số ( nó không chăm sóc gói tin có đến đích hay không, không biết gói tin có bị mất mát trên đường đi hay không)

UDP Header: Như đã đề cập, trước khi thông số xuống tầng Internet thì nó sẽ được đóng 1 Transport Header (TCP Header hoặc UDP Header). Ta cùng phân tích UDP Header.

Udp Header
UDP Header

UDP Header rất dễ (phần màu vàng)

Gồm 16 bit source port, 16 bit des port. Vậy port là gì ?

Có tương đối nhiều session tận dụng quan hệ UDP vậy làm cách nào để định danh chúng? Thì tầng Transport tận dụng 1 cặp source port và des port để định danh 1 session đang truy nhập vào đường truyền của mối liên quan UDP. Ta hoàn toàn có thể coi port là địa chỉ tầng Transport ( giao thức DNS chạy UDP port 53, TFTP port 69 v.v)

  • Số hiệu cổng nguồn (Source Port – 16 bit): số hiệu cổng nơi đã gửi datagram
  • Số hiệu cổng đích (Destination Port – 16 bit): số hiệu cổng nơi datagram được chuyển tới
  • Độ dài UDP (Length – 16 bit): độ dài tổng cổng kể cả phần header của gói UDP datagram.
  • UDP Checksum (16 bit): dùng để kiểm soát lỗi, nếu phát hiện lỗi thì UDP datagram sẽ bị sa thải mà không có một thông báo nào trả lại cho trạm gửi. UDP có cơ chế gán và quản trị các số hiệu cổng (port number) để định danh duy nhất cho các tiện ích chạy trên một trạm của mạng. Do có ít chức năng phức tạp nên UDP có xu thế làm việc nhanh chóng so với TCP. Nó thường dùng cho các ứng dụng không đòi hỏi lòng tin cao trong giao vận.

16 bit UDP Length: cho biết toàn cục gói tin UDP dài tổng cộng bao nhiêu byte. Ta thấy 16 bit thì sẽ có tổng cộng 2^16 byte = 65536 chất lượng (từ 0 -> 65535 byte).

16 bit UDP checksum: tận dụng thuật toán mã vòng CRC để kiểm lỗi. Và chỉ kiểm tra một cách hạn chế.

Những ứng dụng tận dụng UDP là: voip, video conference, DNS, TFTP v.v

Khác nhau giữa UDP và TCP

Cả hai giao thức được dùng để gửi số liệu qua Internet hoặc mạng nội bộ. Khi cấu hình đến một số phần cứng mạng hoặc các tool, bạn cần phải biết sự khác biệt của chúng.

Điểm giống nhau

Cả hai giao thức TCP và UDP đều là giao thức được tận dụng để gửi các bit thông số – được gọi là các gói tin – trên Internet. Cả hai đều xây dựng trên đầu trang của giao thức Internet. Có thể nói rằng, cho dù bạn đang gửi một gói thông số qua giao thức TCP hoặc UDP, gói đó được gửi đến một địa chỉ IP. Các gói thông số được xử lý tương tự, chúng chuyển từ máy tính tới thiết bị định tuyến trung gian và đến đích.

TCP và UDP không phải là giao thức duy nhất hoạt động trên IP. Mặc dù thế, chúng là những giao thức được dùng rộng rãi nhất. Thuật ngữ dùng rộng rãi “TCP/IP” có thể hiểu là TCP qua IP. UDP qua IP được gọi là “UDP/IP” và đây không phải là một thuật ngữ thông dụng.

Udp Và Tcp
UDP và TCP

Tầng Transport (giao vận) của TCP/IP: Cung cấp 2 giao thức căn bản là TCP, UDP được dùng trong hầu hết trong các phần mềm về mạng.

Giao Thức Tcp Và Udp
Giao Thức Tcp Và Udp

TCP là gì?

TCP là viết tắt của Transmission Control Protocol. Đó là giao thức thịnh hành nhất được tận dụng trên Internet.

Tcp Và Udp
TCP

Khi bạn tải một website, máy tính của bạn sẽ gửi các gói tin TCP đến địa chỉ máy chủ web, yêu cầu nó gửi các trang web cho bạn. Các máy chủ web phản ứng với cách gửi một dòng của các gói tin TCP, mà trình duyệt web của bạn sẽ kết nối với nhau để tạo nên trang web và hiển thị nó cho bạn. Khi bạn bấm vào một mối liên quan, đăng nhập, bình luận, hoặc làm bất cứ điều gì khác, trình duyệt web của bạn gửi các gói tin TCP đến máy chủ và máy chủ sẽ gửi các gói tin TCP lại. TCP không phải là thông tin liên lạc mà chỉ là một cách – hệ thống từ xa gửi gói tin trở lại để thừa nhận nó nhận được các gói số liệu của bạn.

TCP chắc chắn người nhận sẽ nhận được các gói tin theo thứ tự chúng đánh số. Bên nhận sẽ gửi tin nhắn lại cho bên gửi để xác nhận nó đã nhận được tin nhắn. Nếu bên gửi không nhận được một phản ứng chính xác, nó sẽ gửi lại gói tin để chắc chắn bên nhận nhận được. Gói tin cũng được kiểm tra lỗi. Giao thức TCP được xem như là tổng quan về độ tin tưởng này – các gói tin gửi đi với TCP được theo dõi sát sao, vì vậy không có dữ liệu bị mất hoặc bị hỏng trên đường vận chuyển. Đây là lý do tại sao tập tin Download không bị lỗi ngay cả khi có trục trặc mạng. Tất nhiên, nếu người nhận là toàn bộ ẩn, máy tính của bạn sẽ từ bỏ và bạn sẽ thấy một thông báo lỗi nói rằng nó không thể giao tiếp với máy chủ từ xa.

Tcp
TCP

Phương Duy – Tổng hợp và Edit

Chia sẻ
Bài viết liên quan
Tư vấn phần mềm
090909.8984
Scroll to Top