hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
      • NodeJS
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
      • MongoDB
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
      • Spring Boot
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Lập trình Python
    • Git và Github
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
    • Mạng và truyền thông
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Mạng và truyền thông
Mạng máy tính bài 04: TCP, UDP, port và socket: Dữ liệu đến đúng ứng dụng thế nào?
Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP

Mạng máy tính bài 04: TCP, UDP, port và socket: Dữ liệu đến đúng ứng dụng thế nào?

  • 19-10-2026
  • Toanngo92
  • 0 Comments

Mạng và truyền thông cho người mới · Bài 4/6 · Biên soạn lại tháng 10/2026.

Lộ trình 6 bài: Bài 1 · Bài 2 · Bài 3 · Bài 4 · Bài 5 · Bài 6

Hiểu TCP và UDP qua nhu cầu của ứng dụng; phân biệt IP với port, kết nối với phiên đăng nhập, độ tin cậy với tính bảo mật.

Trong bài này

  1. Một máy mở nhiều ứng dụng cùng lúc
  2. Port và socket khác nhau như thế nào?
  3. TCP cung cấp luồng byte tin cậy
  4. Bắt tay và kết thúc một kết nối TCP
  5. UDP cung cấp datagram với bảo đảm khác
  6. Quan sát kết nối trên Windows
  7. Đọc thêm: khi bắt đầu lập trình socket

Mục lục

  • 1. Một máy mở nhiều ứng dụng cùng lúc
  • 2. Port và socket khác nhau như thế nào?
  • 3. TCP cung cấp luồng byte tin cậy
  • 4. Bắt tay và kết thúc một kết nối TCP
  • 5. UDP cung cấp datagram với bảo đảm khác
  • 6. Quan sát kết nối trên Windows
  • 7. Đọc thêm: khi bắt đầu lập trình socket
  • Ghi nhớ sau bài học
  • Tài liệu đối chiếu và đọc thêm

1. Một máy mở nhiều ứng dụng cùng lúc

Laptop đang mở website, nhận thư và chạy một cuộc gọi. Chỉ biết dữ liệu đến đúng máy chưa đủ: hệ điều hành còn cần giao nó cho điểm cuối ứng dụng thích hợp. Port giúp phân biệt các điểm giao tiếp ở tầng giao vận; giao thức giao vận xác định cách trao đổi giữa các phía.

Ví dụ dễ nhớ: địa chỉ một tòa nhà chưa chỉ ra bộ phận nào cần nhận hàng. Port giống một phần thông tin để chọn điểm nhận trong tòa nhà đó. Đây chỉ là phép so sánh về vai trò; port là số logic trong giao thức, không phải cổng cắm mạng và không phải số thứ tự process của hệ điều hành.

IP giúp chuyển gói tới một giao diện mạng phù hợp trong hệ thống IP; port TCP hoặc UDP được dùng cùng thông tin địa chỉ và giao thức để phân phối dữ liệu. Một process có thể sử dụng nhiều socket và nhiều port, nên không xem mỗi port là một ứng dụng duy nhất bất biến.

2. Port và socket khác nhau như thế nào?

Số port TCP/UDP có độ dài 16 bit, giá trị từ 0 tới 65535. Các nhóm thường dùng để đăng ký và quản lý gồm 0–1023, 1024–49151 và 49152–65535; ý nghĩa sử dụng cụ thể cần xem theo giao thức và hệ điều hành. Port 0 có vai trò đặc biệt trong nhiều API nên không chọn nó như một cổng dịch vụ thông thường.

Socket là đối tượng/giao diện mà chương trình dùng để giao tiếp với ngăn xếp mạng. Một kết nối TCP thường được phân biệt bằng cặp IP/port phía nguồn và cặp IP/port phía đích. Nhờ vậy nhiều kết nối có thể cùng tới TCP 443 của một server nhưng vẫn được phân biệt theo các đầu cuối.

TCP 53 và UDP 53 thuộc hai không gian giao thức khác nhau. Port 443 cũng không tự bảo đảm dữ liệu đã được mã hóa: đó là quy ước dịch vụ thường gặp, còn thực tế phải có giao thức bảo mật hoạt động đúng.

Dịch vụ / tình huống Port thường gặp Cần hiểu
HTTP thông thường TCP 80 Có thể dùng cổng khác theo cấu hình
HTTPS qua TCP TCP 443 Còn cần TLS và HTTP phù hợp
HTTP/3 Thường UDP 443 HTTP/3 dùng QUIC, không phải gửi HTTP thô tùy ý qua UDP
DNS truyền thống UDP hoặc TCP 53 Không được kết luận DNS chỉ dùng UDP
SSH TCP 22 Port mặc định có thể được thay đổi

3. TCP cung cấp luồng byte tin cậy

TCP là giao thức hướng kết nối. Nó có cơ chế số thứ tự, xác nhận, truyền lại và sắp xếp để cung cấp luồng byte đúng thứ tự cho ứng dụng khi kết nối hoạt động thành công. Nếu không thể tiếp tục, ứng dụng cần xử lý lỗi; “tin cậy” không phải lời hứa mạng sẽ không bao giờ mất kết nối.

TCP không giữ nguyên ranh giới mỗi lần ứng dụng ghi dữ liệu. Hai lần gửi “HELLO” và “WORLD” không bảo đảm phía nhận sẽ đọc bằng đúng hai lần nhận tương ứng. Giao thức ứng dụng cần cách xác định thông điệp, chẳng hạn độ dài hoặc dấu phân cách theo thiết kế của nó.

TCP còn điều khiển luồng để phù hợp khả năng nhận và điều khiển tắc nghẽn để ứng phó với điều kiện mạng. Hai mục tiêu này liên quan nhưng khác nhau. Không dùng nhãn “TCP chậm” thay cho việc giải thích chi phí và lợi ích của các cơ chế đó.

Ba bước bắt tay TCP cho một kết nối mới. Ví dụ dùng port 443; bắt tay TCP không thay cho bắt tay TLS.
Ba bước bắt tay TCP cho một kết nối mới. Ví dụ dùng port 443; bắt tay TCP không thay cho bắt tay TLS.

4. Bắt tay và kết thúc một kết nối TCP

Trong luồng thiết lập thông thường, client gửi SYN, server phản hồi SYN+ACK rồi client gửi ACK. Các phía trao đổi thông tin để thiết lập trạng thái và số thứ tự thích hợp. Dữ liệu ứng dụng được gửi theo giao thức sử dụng kết nối đó; việc bảo vệ bằng TLS là một công việc khác trong luồng HTTPS trên TCP.

Khi kết thúc có trật tự, hai chiều truyền có thể được đóng theo cơ chế FIN và xác nhận tương ứng. Không khẳng định mọi kết thúc đều đúng bốn gói nhìn thấy: thông điệp có thể được kết hợp và còn có tình huống reset hoặc lỗi. Với nhập môn, hiểu mục đích mở/đóng và quan sát một ví dụ là đủ, chưa cần học toàn bộ máy trạng thái.

Một trang web có thể tái sử dụng kết nối. Không nhất thiết phải bắt tay TCP mới cho từng ảnh và từng lần chuyển trang. Ngược lại, một lần đăng nhập không bị giới hạn bằng vòng đời của đúng một kết nối TCP.

5. UDP cung cấp datagram với bảo đảm khác

UDP gửi các datagram và giữ ranh giới datagram ở giao diện phù hợp. Bản thân UDP không có cơ chế bắt tay, truyền lại hay bảo đảm thứ tự như TCP. Ứng dụng phải quyết định có cần thêm xác nhận, bộ đệm, sắp xếp, truyền lại hoặc chấp nhận mất một phần dữ liệu hay không.

Với dữ liệu thời gian thực, một phần dữ liệu quá muộn có thể ít giá trị hơn dữ liệu mới. Đó là một lý do ứng dụng có thể chọn cơ chế dựa trên UDP, nhưng không có nghĩa mọi cuộc gọi hay video đều dùng cùng một giao thức, hoặc không cần tính toàn vẹn và bảo mật.

QUIC là ví dụ giao thức xây trên UDP nhưng bổ sung nhiều cơ chế, gồm các luồng tin cậy và bảo vệ truyền thông. Vì vậy “dùng UDP” không tự suy ra “ứng dụng chắc chắn không tin cậy”. Cũng không thể suy rằng UDP luôn nhanh hơn trong mọi mạng và mọi khối lượng dữ liệu.

Khía cạnh TCP UDP
Dạng dữ liệu Luồng byte; ứng dụng tự xác định ranh giới thông điệp Datagram
Kết nối ở mức giao thức Có cơ chế thiết lập và trạng thái kết nối Không bắt tay thiết lập kết nối như TCP
Thứ tự và truyền lại Có các cơ chế tương ứng trong TCP Ứng dụng/giao thức phía trên bổ sung khi cần
Bảo mật nội dung TCP không tự mật mã hóa dữ liệu ứng dụng UDP không tự mật mã hóa dữ liệu ứng dụng
Lựa chọn sử dụng Theo yêu cầu và hệ sinh thái giao thức Theo yêu cầu và các cơ chế ứng dụng bổ sung

6. Quan sát kết nối trên Windows

Mở một website HTTPS, sau đó trong PowerShell chạy lệnh đọc một số kết nối TCP đã thiết lập. LocalAddress/LocalPort là phía máy bạn; RemoteAddress/RemotePort là phía bên kia của kết nối được quan sát. Máy có nhiều ứng dụng sẽ có nhiều dòng; quyền và phiên bản Windows có thể ảnh hưởng thông tin xem được.

Get-NetTCPConnection -State Established |
  Select-Object -First 5 LocalAddress,LocalPort,RemoteAddress,RemotePort

Test-NetConnection -ComputerName khoahoc.hocvietcode.com -Port 443

Test-NetConnection với -Port kiểm tra khả năng kết nối TCP tới cổng đích theo điều kiện mạng lúc đó. Nó không kiểm tra đầy đủ chứng chỉ TLS, nội dung trang, HTTP/3 hoặc việc đăng nhập. Nếu trình duyệt dùng HTTP/3, không nên tìm kết nối TCP của đúng request đó rồi kết luận trang không hoạt động. Một phép đo luôn cần được gắn với giao thức và mục tiêu của phép đo.

7. Đọc thêm: khi bắt đầu lập trình socket

Stream socket và datagram socket là các kiểu giao diện thường gặp. Khi viết ứng dụng, cần xử lý timeout, lỗi, giới hạn bộ đệm và định dạng thông điệp; không giả định một lệnh đọc luôn nhận đủ toàn bộ thông điệp. Raw socket, chi tiết header và các thuật toán điều khiển tắc nghẽn nên học ở chuyên đề riêng sau khi đã hiểu vai trò của TCP, UDP và endpoint.

Ghi nhớ sau bài học

  • IP và port giải quyết các phần khác nhau của việc chuyển dữ liệu.
  • Socket không phải cổng vật lý và port không phải mã process.
  • TCP cung cấp luồng byte đúng thứ tự; ứng dụng vẫn cần xử lý lỗi và ranh giới thông điệp.
  • UDP không tự cung cấp các bảo đảm như TCP, nhưng giao thức phía trên có thể bổ sung.
  • Độ tin cậy và mật mã hóa là hai vấn đề khác nhau.

Tài liệu đối chiếu và đọc thêm

  • TCP hiện hành
  • UDP
  • Quản lý số cổng dịch vụ
  • QUIC
  • Microsoft: Get-NetTCPConnection
  • Microsoft: Test-NetConnection

Lộ trình 6 bài: Bài 1 · Bài 2 · Bài 3 · Bài 4 · Bài 5 · Bài 6

Bài viết liên quan:

Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP
Mạng máy tính bài 01: Mạng máy tính là gì? Từ Wi-Fi gia đình đến Internet
Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP
Mạng máy tính bài 02: OSI và TCP/IP: Điều gì xảy ra khi bạn mở một website?
Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP
Mạng máy tính bài 03: Biểu diễn dữ liệu, mật mã hóa và phiên làm việc trên web
Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP
Mạng máy tính bài 05: Địa chỉ IP, subnet và router: Máy tính tìm đường tới đích thế nào?
Hạ tầng mạng máy tính: router, switch, Wi-Fi và TCP/IP
Mạng máy tính bài 06: Ethernet, Wi-Fi và MAC: Dữ liệu đi qua đường truyền thế nào?

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 05: Đơn vị và kích thước: px, rem, %, min và max

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 02: Selector và class: chọn đúng phần tử cần sửa

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 01: Kết nối CSS với HTML và sửa quy tắc đầu tiên

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 20: Hoàn thiện website và sửa lỗi bằng DevTools

CSS cơ bản – 20 bài từ HTML đến website responsive với Flexbox, Grid và mobile-first

CSS cơ bản – Bài 03: Vì sao CSS không có tác dụng? Cascade và specificity

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×