Trong thuật ngữ máy tính well-known port là gì

Chào mừng các bạn đã đến với bài 6 của series Mạng Căn Bản. Hôm nay chúng ta sẽ tìm hiểu về network ports và những giao thức thường gặp ở lớp 3 và lớp 4 nhé.

Trước khi vào bài chúng ta cũng cần làm rõ những nội dung mà series này không bao gồm:

  • Series này sẽ không dạy các kiến thức để thi CCNA hoặc MSCA cũng như các kiến thức về quản trị mạng ví dụ như cách thiết lập DHCP, DNS, Routing protocols, vâng vâng.
  • Series Mạng Căn Bản sẽ không bao gồm phần lab xây dựng mạng mà chỉ đơn thuần lý thuyết và một vài thực hành nhỏ.
  • Series Mạng Căn Bản sẽ chỉ có kiến thức căn bản và sẽ không đi quá sâu vào bất kỳ một chủ đề nào. Mục đích chính là để tránh series này bị kéo dài một cách không cần thiết. Tuy nhiên, với những bạn muốn nghiên cứu thêm, mình sẽ đính kèm tài liệu tự nghiên cứu trong bài nhé.

Các bạn cũng lưu ý là những nội dung quan trọng sẽ được mình highlight như thế này nhé.


1/ Khái niệm network ports

Network ports (hay còn gọi là cổng mạng) là một khái niệm trừu tượng thuộc lớp Transport trong mô hình TCP/IP. Network ports được dùng để cung cấp một dịch vụ mạng nhất định nào đó thông qua một giao thức được chỉ định hoạt động tại network port đó.

Tất cả các network ports đều sử dụng một trong hai giao thức TCP và/hoặc UDP của lớp Transport để tạo và duy trì kết nối giữa máy cung cấp dịch vụ và máy yêu cầu dịch vụ trong lúc dịch vụ mạng đang được thực hiện. Những port sử dụng giao thức TCP được gọi là TCP ports, những port sử dụng UDP được gọi là UDP ports.

Một port có thể đồng thời sử dụng cả 2 giao thức TCP hoặc UDP. Ví dụ port 53 sử dụng cho hệ thống DNS dùng cả TCP lẫn UDP.

Mỗi network port sẽ chạy một giao thức giao thức nhất định, và số lượng port mà mỗi một host có thể có lên đến 65 535 ports.

Bạn có thể tưởng tượng port giống như các phòng khoa khác nhau trong một bệnh viện, giả dụ nếu bạn muốn khám máu, bạn phải đi tới phòng 21 của khoa máu; bạn có nhu cầu khám phổi, bạn phải đi tới phòng 79 của khoa phổi. Chỉ khác một điều, phòng khoa trong bệnh viện là thật, bạn có thể sờ và nhìn thấy được, còn network ports là ảo và bạn không thể nhìn thấy được.

Một số giao thức và ports thường gặp

Port sốTên giao thức20, 21FTP 22SSH23 Telnet25 SMTP80HTTP110POP3123NTP443HTTPS

Khi một port đang chạy một giao thức hay liên kết nào đó, nó sẽ được gọi là port mở, khi không có giao thức hay liên kết nào được chạy, port đó sẽ bị đóng lại để tránh bị hacker lợi dụng tấn công.

Các ports mở không nhất định phải theo trình tự. Nghĩa là không cần port 10, 11 phải mở thì port 12 mới được mở.

Một host hoặc server có thể cùng một lúc chạy nhiều giao thức trên nhiều network ports khác nhau.

Để truy cập vào port của một host nào đó bạn sẽ làm như sau:

https://: Ví dụ: https://10.25.66.2:22 Nghĩa là bạn đang cố gắng truy cập vào port 22 của địa chỉ IP 10.25.66.2

Có 3 loại TCP and UDP ports:

  • Well-known ports: Từ port 0 đến 1023 được xem là well-known ports hay những ports phổ biến nhất. Phần lớn những giao thức quan trọng và phổ biến đều nằm trong tầm port này.
  • Registered ports: Từ port 1024 đến 49 151 được gọi là registered ports hay những ports đã được đăng ký với IANA (The Internet Assigned Numbers Autority) vĩnh viễn cho một protocol nào đó. Giao thức RDP (Microsoft Remote Desktop Protocol) sử dụng port 3389 là một ví dụ của registered port. Cũng nên lưu ý là mặc dù là ports đã được đăng ký, nhưng nếu trên máy bạn không chạy những giao thức của dải port này, thì dải port này vẫn đóng và bạn có quyền sử dụng những port này theo ý muốn của mình. Ví dụ như khi pentest, mình hay gọi reverse shell trả về port 8888 hay 9999 nếu như 2 ports này trên máy mình đang không chạy bất kỳ một giao thức nào.
  • Dynamic/Private ports: Từ port 49 152 đến 65 535 được gọi là dynamic hoặc private ports hay những ports có thể được dùng cho mục đích cá nhân. Nếu bạn tự phát triển một protocol nào đó, bạn có thể dùng những ports trong dải này để chạy protocol của bạn.

Khi các bạn thực hành pentest giai đoạn 4, các bạn sẽ chủ yếu là pentest các giao thức đang chạy trên các ports của máy mục tiêu.

Mình cũng xin có vài lưu ý sau:

Lưu ý 1: Mặc dù mặc định của một giao thức nào đó ví dụ như HTTP sẽ sử dụng port 80, nhưng không phải lúc nào port 80 cũng sẽ là HTTP. Quản trị viên hệ thống hoàn toàn có thể cài đặt giao thức HTTP chạy ở port 4003 hoặc 50000, hoặc bất kỳ port nào mà quản trị viên đó muốn.

Lưu ý 2: Một host có thể có cùng một giao thức được mở trên nhiều port khác nhau. Mình đã từng thấy 3 giao port chạy HTTP trên cùng 1 host với mỗi port là một website có nội dung khác nhau. Nên việc kiểm tra tất cả các ports đang mở là hết sức cần thiết khi làm pentest.

Lưu ý 3: Sẽ có những giao thức ví dụ như FTP hay SMB/Samba cần đến 2 ports để chạy giao thức.

Lưu ý 4: Vì port chỉ có thể được mở từ bên trong bởi chính host/server sở hữu port đó, nên việc đầu tiên mà hacker phải làm sẽ luôn là thu thập thông tin và kiểm tra xem liệu có cách nào xâm nhập được vào hệ thống mục tiêu từ các ports đang mở hay không? Sau khi xâm nhập thành công, họ sẽ mở một port từ bên trong để tạo một kết nối từ máy mục tiêu tới máy hacker (kết nối này thường được gọi là cổng hậu hay backdoor) để phục vụ cho các bước pentest tiếp theo.

Lưu ý 5: Khi bạn truy cập vào một website nào đó, chính là bạn đang truy cập vào port 80 của server đang host website đó. Vì port 80 và 443 được xem là mặc định để truy cập web khi dùng giao thức http và https, nên khi bạn dùng trình duyệt ví dụ như Chrome để truy cập một website như tuhocnetworksecurity.business.blog; thay vì bạn phải gõ http://www.tuhocnetworksecurity.business.blog: 80 hay https://www.tuhocnetworksecurity.business.blog: 443, bạn chỉ cần gõ http://www.tuhocnetworksecurity.business.blog hoặc https://www.tuhocnetworksecurity.business.blog là đủ.

2/ Những giao thức thường gặp ở lớp 3 và 4

2a/ Lớp Network

2a-1/ Giao thức IP

Bạn nào quên thì xem lại bài 5 nhé.

2a-2/ Giao thức ICMP

ICMP viết tắt của Internet Control Message Protocol. Đây là giao thức đứng đằng sau lệnh ping nổi tiếng trên cả Windows và Linux. Lệnh Ping hay giao thức ICMP được dùng để:

  • Xác định xem một host đang hoạt động hay đang tắt
    • Tuy nhiên do ICMP từng được các hackers dùng để tìm mục tiêu tấn công trong mạng, nên một số router mạng hiện đại hoặc tường lửa sẽ chặn giao thức ICMP, khi không thấy phản hồi, hackers có thể lầm tưởng là máy mục tiêu đang tắt nhưng thật chất là nó vẫn đang chạy.
  • Tìm nguyên nhân gây ra độ trễ trong đường truyền từ máy bạn đến máy chủ bạn đang muốn truy cập
  • Tìm nguyên nhân khi dữ liệu đường truyền bị mất.

Cách thức hoạt động:

Lệnh Ping sẽ gửi một loạt các gói tin ICMP đến máy mục tiêu. Khi gói tin đến mục tiêu nếu không bị chặn hoặc máy đang off, máy mục tiêu sẽ có tối đối đa vài giây để gửi phản hồi ngược lại cho máy đã gửi ICMP. (Tìm hiểu thêm tại đây)

2a-3/ Giao thức ARP

ARP viết tắt của Address Resolution Protocol. Đây là giao thức được dùng để tìm địa chỉ MAC của một thiết bị nếu bạn đã biết địa chỉ IP của thiết bị đó và cập nhật vào một bảng gọi là ARP look-up, ARP cache hay ARP table.

Cách thức hoạt động:

Mỗi khi bạn gửi một gói tin ví dụ như bạn muốn ping tới một máy bên trong mạng. Chắc hẳn bạn vẫn còn nhớ ở bài 4, khi một gói tin được truyền đi, nó sẽ đi từ lớp cao nhất đến lớp thấp nhất của mô hình TCP/IP. Do ICMP là giao thức thuộc lớp Network sử dụng địa chỉ IP, nên để có thể xuống tới lớp Data Link bên dưới vốn sử dụng địa chỉ MAC, nó cần phải có dựa vào ARP table để tìm địa chỉ MAC của thiết bị có địa chỉ IP cần đến.

ARP table được lập nên dựa vào việc gửi một gói tin arp broadcast đến tất cả các máy trong mạng để thu thập địa chỉ IP kèm theo địa chỉ MAC tương ứng sau đó cập nhật vào bảng có dạng như sau:

? (10.241.1.114) at 00:25:90:3e:dc:fc [ether] on vlan241 ? (10.252.1.8) at 00:c0:b7:76:ac:19 [ether] on vlan244 ? (10.252.1.9) at 00:c0:b7:76:ae:56 [ether] on vlan244 ? (10.241.1.111) at 00:30:48:f2:23:fd [ether] on vlan241 ? (10.252.1.6) at 00:c0:b7:74:fb:9a [ether] on vlan244 ? (10.241.1.121) at 00:25:90:2c:d4:f7 [ether] on vlan241

Ví dụ như bạn muốn ping tới địa chỉ 10.241.1.55.

Khi địa chỉ MAC của máy bạn cần gửi gói tin nằm trong ARP table, máy sẽ dựa vào bảng trên để gửi gói tin của bạn đến đúng điểm cần đến.

Khi địa chỉ MAC của máy bạn cần gửi gói tin không nằm trong ARP table, máy sẽ tự động gửi một gói tin arp broadcast khác tới tất cả các máy trong cùng mạng với nội dung “Ai có địa chỉ IP 10.241.1.55 xin trả lời và đính kèm địa chỉ MAC”, khi đó máy có địa chỉ 10.241.1.55 sau khi nhận được gói tin arp, sẽ phản hồi ngược lại “Tôi là 10.241.1.55 và đây là địa chỉ MAC của tôi …”. Thông tin của máy 10.241.1.55 sau đó sẽ được cập nhật lại vào ARP table.

Vì ARP table không được cập nhật theo thời gian thực, nên khi có một máy mới tham gia vào mạng, ARP table sẽ không được update cho đến khi máy mới tham gia mạng nhận và phản hồi lại gói tin ARP broadcast hoặc đến khi ARP table được xóa để cập nhật mới. ()

2a-4/ Giao thức DHCP

DHCP viết tắt của Dynamic Host Configuration Protocol hay còn gọi là giao thức cấp IP tự động. Có 2 cách để địa chỉ IP được cấp cho thiết bị.

  • Static IP (IP tĩnh): Bạn được Quản Trị Mạng cấp cho một địa IP có thể sử dụng được để kết nối thiết bị của bạn vào mạng. Và địa chỉ IP đó của bạn sẽ không bao giờ bị thay đổi. Địa chỉ IP tĩnh thường được dùng để gán IP cho những server quan trọng mà nếu IP thay đổi sẽ gây ra tình trạng đứt kết nối nghiêm trọng.
  • DHCP (IP động): Bạn tham gia vào mạng và sẽ được DHCP tự động cấp cho bạn một IP có thể sử dụng được nào đấy. Ví dụ như bạn được gán cho địa chỉ IP 192.168.0.13, bạn thấy số 13 là số xấu, bạn hoàn toàn có thể release địa chỉ IP đó để nhận về một địa chỉ IP khác ví dụ 192.168.0.88 chẳng hạn, nếu địa chỉ 192.168.0.88 chưa được gán cho bất kỳ thiết bị nào. Một máy được cấp IP bởi DHCP sẽ cần phải được cấp mới IP khoản mỗi 7 ngày. Và địa chỉ IP giữa hai lần cấp có thể giống và cũng có thể khác nhau.

Cách thức hoạt động:

DHCP có 2 thành phần. DHCP server làm nhiệm vụ cấp IP và DHCP làm nhiệm vụ yêu cầu và nhận IP được cấp.

  1. Khi tham vào mạng DHCP client gửi một gói tin broadcast tên DHCPDISCOVER bao gồm tên thiết bị và địa chỉ MAC của thiết bị đó đến tất cả các host trong mạng nhằm tìm DHCP server. Một cách dễ hiểu nhất, DHCP client đang nói với tất cả các rằng “Tôi là DHCP client có tên và địa chỉ MAC là … và tôi đang tìm DHCP server để được cấp địa chỉ IP”.
  2. DHCP server nhận được gói tin DHCPDISCOVER và phản hồi bằng gói tin DHCPOFFER rằng “Tôi là DHCP server, và tôi có 1 địa chỉ IP có thể cấp cho bạn”. Nếu trong mạng có nhiều hơn 1 DHCP server, thì client sẽ nhận gói tin từ server đến đầu tiên.
  3. DHCP client trả lời bằng gói tin broadcast tên DHCPREQUEST rằng “Tôi muốn địa địa chỉ IP mà bạn đã đề cập”. Những DHCP server không đến nhất khi thấy gói tin broadcast này, sẽ hiểu là lời đề nghị của mình đã không được chấp nhận và sẽ rút lại lời đề nghị.
  4. DHCP server có gói tin đến nhất sẽ chấp nhận request từ DHCP client và phản hồi bằng gói tin DHCPACK có nội dung “Tôi chấp nhận request từ bạn và đây là địa chỉ IP của bạn”.
  5. DHCP client gán địa chỉ IP đó và kết nối vào mạng.

Đọc thêm tại đây

2a-5/ Routing protocols (RIP, OSPF, EIGRP, etc.)

Routing protocols là những giao thức có nhiệm vụ thiết lập kết nối giữa các routers với nhau nhằm mục đích truyền tải dữ liệu từ mạng này sang mạng khác.

Ví dụ:

Khi bạn dùng lệnh traceroute (trên Linux) hay tracert (trên Windows), nó sẽ dùng giao thức ICMP để xác định xem gói tin từ điểm bạn gửi đến điểm đích đã đi qua những routers nào. Các bạn hãy tham khảo bên dưới

vincent@kali:~$ traceroute tuhocnetworksecurity.business.blog traceroute to tuhocnetworksecurity.business.blog (192.0.78.31), 30 hops max, 60 byte packets 1 _gateway (10.0.0.1) 4.939 ms 4.835 ms 5.806 ms 2 174.0.0.1 (174.0.0.1) 12.762 ms 18.158 ms 18.113 ms 3 rc3no-be140-1.cg.shawcable.net (64.59.132.85) 19.664 ms 19.620 ms 19.577 ms 4 rc2wt-be100.wa.shawcable.net (66.163.75.233) 34.796 ms 34.753 ms 34.710 ms 5 rc1wt-be18-1.wa.shawcable.net (66.163.64.81) 37.597 ms 38.953 ms 37.509 ms 6 six.automattic.net (206.81.81.70) 37.465 ms 30.436 ms 36.484 ms 7 192.0.78.31 (192.0.78.31) 31.212 ms 36.231 ms 36.180 ms

Như bạn đã thấy, khi mình dùng lệnh traceroute để tìm xem từ chỗ mình đến website tuhocnetworksecurity.business.blog, gói tin phải đi qua bao nhiêu routers, mình đã phát hiện ra, gói tin phải đi qua 7 routers tất cả kể cả router wifi nhà mình để đến được điểm đích. Để các routers này có thể truyền dữ liệu được cho nhau, chúng cần phải được thiết lập một giao thức routing.

Vì routing protocols là một chủ đề rất lớn và có không ít hơn 5 protocols khác nhau, và vì nội dụng của nó thuộc về kiến thức thi CCNA, nên mình sẽ không đi sâu vào nhé. Tuy nhiên các bạn nào muốn tìm hiểu thêm có thể tham khảo tại đây.

2a-6/ Giao thức NAT

NAT là viết tắt của Network Address Translation. Nhiệm vụ của NAT là chuyển đổi từ địa chỉ IP cá nhân (IP private) (địa chỉ IP bạn tự set hay được set trên router wifi nhà bạn) sang địa chỉ IP công cộng (IP public) được nhà mạng cấp.

Hãy thử tưởng tượng một công ty với nhiều phòng ban khác nhau có địa chỉ là 123 Trần Hưng Đạo, TPHCM, VN. Thư từ gửi tới giám đốc, kế toán, trưởng phòng của công ty đều sẽ được gửi trực tiếp đến công ty. Lúc này, bộ phận lễ tân sẽ làm nhiệm vụ phân loại thư gửi đến ví dụ như thư cho anh Nguyễn Văn A ở phòng kế toán, thư cho chị Trần Thị B ở phòng nhân sự, hay thư cho gíam đốc C, v.v sau đó nhân viên lễ tân sẽ trao tận thư cho người cần nhận thư trong công ty. Nói tóm lại, nhân viên chuyển phát thư của bưu điện, khi cần chuyển thư cho một ai đó trong công ty, chỉ cần đến thẳng công ty và giao cho bộ phận lễ tân, nhân viên lễ tân sẽ giao thư cho người cần nhận.

Chức năng của NAT y chang như vậy.

Trong thuật ngữ máy tính well-known port là gì
Sơ đồ A-1

So sánh sơ đồ A-1 với ví dụ mình đưa ra bên trên, ta sẽ có công ty chính là phần mạng nằm ở nhánh B của router. Địa chỉ công ty chính là địa chỉ IP Public ở nhánh A. Quầy lễ tân cũng chính là giao thức NAT, nơi tiếp nhận thư tín sẽ là ở ngay chỗ đặt router. Như vậy, khi một gói tin gửi đến máy 192.168.0.3 được gửi đến router, NAT sẽ làm việc để chuyển gói tin đó đến cho máy 192.168.0.3.

Địa chỉ IP tại nhánh B của router được gọi là địa chỉ default gateway. Đây là điểm mà bất cứ gói tin nào bên trong mạng, muốn được chuyển ra ngoài mạng đều phải đi qua. Cũng giống như trong ví dụ công ty mà mình đã nói bên trên, khi một nhân viên trong công ty muốn gửi thư cho đối tác ở ngoài công ty, thay vì tự đi gửi, họ sẽ thông qua bộ phận lễ tân của công ty để gửi thư đi. Điều tương tự cũng xảy ra, khi một gói tin muốn được chuyển ra ngoài, nó sẽ phải đi qua giao thức NAT để chuyển đổi từ private IP thành public IP.

3 máy tính trong sơ đồ A-1 sẽ có chung địa chỉ IP public là 77.15.66.20/16 mặc dù địa chỉ IP private của mỗi máy là khác nhau. Cũng giống như một công ty dù có bao nhiêu phòng ban, mỗi phòng ban ở một phòng riêng biệt, nhưng đều có chung địa chỉ công ty là 123 Trần Hưng Đạo, TPHCM, VN.

Tại sao chúng ta cần giao thức NAT?

Có 2 nguyên nhân chính:

  1. Nhằm tiết kiệm tối đa số địa chỉ IP Public cần để cấp cho một hộ gia đình, một quán cà phê hay một doanh nghiệp. Như ở bài 5 phần 2 mình đã đề cập, số lượng địa chỉ IP không phải là vô hạn, thế nên thay vì cấp cho mỗi máy kết nối mạng trong mỗi hộ gia đình, quán cà phê hay doanh nghiệp một địa chỉ IP Public, thì chia mỗi hộ gia đình, quán cà phê hay doanh nghiệp đó thành một mạng riêng biệt và mỗi mạng chỉ cần cấp 1 IP public sẽ tiết kiệm hơn rất nhiều.
  2. Vì lí do an ninh mạng. Giao thức NAT giúp bảo vệ tất cả địa chỉ IP của các máy bên trong mạng tránh bị phát hiện khi tất cả các máy bên trong mạng đều có chung địa chỉ IP public. Ngoài ra NAT còn có thể hoạt động như một tường lửa, có nhiệm vụ kiểm tra lưu lượng ra vào mạng và chặn những kết nối nguy hiểm hoặc đáng ngờ.

Làm sao để biết được địa chỉ IP public của mình là bao nhiêu?

Bạn có thể vào trang sau để kiểm tra địa chỉ IP public của mình.

Ngoài ra, bạn có thể thử kiểm tra địa chỉ IP public trên nhiều thiết bị được kết nối trong cùng một mạng và bạn sẽ thấy mặc dù địa chỉ IP của mỗi thiết bị là khác nhau, nhưng đều có chung địa chỉ IP public.

Làm sao NAT biết được gói tin đến từ ngoài mạng là của máy nào ở trong mạng?

Mình sẽ gọi mạng sử dụng địa chỉ IP public là mạng ngoài và mạng sử dụng IP Private là mạng trong nhé.

Có một số cách mà NAT có thể dùng để xác định xem gói tin đến là của máy nào trong mạng. Ví dụ như, mỗi máy trong mạng sẽ được gán cho một port ID, gói tin từ máy đó đi ra khỏi mạng và gói tin phản hồi đều sẽ chứa port ID đó, và NAT căn cứ vào port ID này để chuyển gói tin để đúng máy.

Một cách khác đó là địa chỉ IP public không nhất thiết phải là 1 địa chỉ mà có thể là một dải địa chỉ IP public ví dụ như từ 77.15.66.12/16 đến 77.15.66.25/16. Mỗi máy ở trong mạng khi chuyển gói tin ra ngoài sẽ được NAT đổi IP từ IP trong mạng thành IP đầu tiên trong dải IP public đã cho chưa được sử dụng để gửi gói tin đi.

Ví dụ như máy 192.168.0.10 muốn chuyển gói tin ra ngoài mạng, NAT sẽ kiểu tra dải IP và nhận thấy địa chỉ 77.15.66.12 và 77.15.66.13 đã được sử dụng, trong khi địa chỉ IP từ 77.15.66.14 trở đi chưa được sử dụng. NAT sẽ dùng địa chỉ 77.15.66.14 làm địa chỉ IP public cho máy 192.168.0.10 để chuyển gói tin đi.

Default gateway là gì?

Default gateway chính là địa chỉ IP của router wifi hay router mạng nơi gói tin từ trong hay từ ngoài mạng vào đều phải đi qua. Đây cũng là nơi chạy DHCP protocol để cấp phát địa chỉ IP tự động cho các máy trong mạng và đây cũng là nơi thường được chọn để đặt tường lửa nhằm bảo vệ toàn mạng bên trong. Địa chỉ IP thường được chọn làm địa chỉ default gateway là địa chỉ liền sau địa chỉ mạng ví dụ 192.168.0.1.

Các bạn có thể tìm hiểu thêm về giao thức NAT tại đây.

2b / Lớp Transport

2b-1/ Giao thức TCP

TCP là viết tắt của Tranmission Control Protocol. Là một giao thức coi trọng kết nối ở lớp Transport.

Giao thức TCP cho phép một máy tính gửi dữ liệu đến một máy khác nằm trong hay ngoài mạng và TCP sẽ đảm bảo mỗi gói tin đều được chuyển đi an toàn và không bị hư hao. Nếu gói tin được chuyển đến bị thiếu hụt, TCP sẽ hủy gói tin đó và gửi lại gói tin toàn vẹn khác. Kết nối TCP chỉ bị ngắt sau khi các gói tin đã được chuyển đến điểm cần đến đầy đủ và an toàn hoặc một vấn đề khiến cho việc khôi phục kết nối không thể xảy ra ví dụ như cúp điện.

Giao thức TCP chỉ có thể được dùng cho truyền dữ liệu unicast. Nghĩa là chỉ có 1 máy gửi dữ liệu và 1 máy nhận dữ liệu tại mọi thời điểm.

Tại lớp transport, trước khi được chuyển đi bằng giao thức TCP, gói tin sẽ được cắt thành những đơn vị nhỏ hơn cho mục đích truyền dữ liệu trong mạng. Đơn vị này được gọi là segment. Mỗi segment trước khi được truyền đi đều sẽ được đánh số, thứ tự gửi các segment sẽ được đính kèm trong mỗi segment nhằm mục đích phát hiện nếu có một segment bị mất và để ráp lại dữ liệu tại điểm đích.

Giao thức TCP nổi tiếng với cơ chế three way hankshake khi thiết lập kết nối từ máy này đến máy khác.

Trong thuật ngữ máy tính well-known port là gì
Sơ đồ A-2 – Cơ chế three way handshake

Cơ chế three way handshake hoạt động như sau:

  1. SYN: Máy P muốn kết nối với máy Q, nên nó sẽ gửi một gói tin TCP SYN (Synchronize Sequence Number) đến máy Q, đi kèm với một dãy số (ví dụ: 4213) cho biết trình tự mà các segments sẽ được gửi từ máy P.
  2. SYN + ACK: Máy Q nhận gói tin TCP SYN cùng dãy số trình tự và trả lời lại bằng một gói tin TCP SYN + ACK (Acknowledgement). Trong đó phần ACK sẽ cho biết trình tự gửi segments mà máy Q đã nhận được sau khi cộng thêm 1 (4213 + 1 = 4214) và phần SYN sẽ thông báo trình tự gửi segments mà máy Q dùng để gửi thông tin đến máy P (ví dụ 4312).
  3. ACK: Máy P trả lời bằng một gói tin TCP ACK nhằm xác nhận đã nhận được trình tự gửi segments của máy Q sau khi đã cộng thêm 1 (4312 + 1 = 4313). Và hai máy P và Q bắt đầu trao đổi thông tin với nhau.

Một số ứng dụng và giao thức sử dụng giao thức TCP như trình duyệt web, giao thức HTTP. Khi người dùng truy cập một website, trình duyệt sẽ sử dụng HTTP để gửi truy vấn thông qua giao thức TCP đến server chứa website đó. Sau đó, server dùng HTTP để gửi lại nội dung website đến trình duyệt cũng thông qua giao thức TCP. Ngoài ra còn có giao thức Telnet, FTP và SMTP (cho email).

2b-2/ Giao thức UDP

UDP là viết tắt của cụm từ User Datagram Protocol. Trái ngược với TCP, UDP là một giao thức không coi trọng kết nối. UDP được sử trong những ứng dụng không cần phải duy trì kết nối. Thật vậy, sau khi UDP truyền tải một gói tin, UDP gần như sẽ ngay lập tức quên ngay gói tin đó và không quan tâm gói tin đó có đến được đích, có bị mất hay bị hư hao khi truyền đi hay không.

Nếu có 2 gói tin được gửi đến cùng một người nhận bằng UDP, UDP cũng sẽ không đảm bảo gói tin nào đến trước, gói tin nào sẽ đến sau.

Vì tính đơn giản của nó, UDP mặc dù nhanh hơn TCP (do TCP phải thực hiện three way handshake và kiểm tra các gói tin để đảm bảo chúng đến an toàn và không có lỗi), nhưng lại không đảm bảo như TCP.

Giao thức UDP thích hợp với những ứng dụng chú trọng về tốc độ kết nối hơn là đảm bảo chất lượng kết nối đường truyền. Sau khi gửi gói tin, ứng dụng sẽ chờ phản hồi trong một khoản thời gian nhất định, nếu không thấy phản hồi, ứng dụng sẽ gửi lại gói tin hoặc không làm gì cả.

UDP có thể được dùng cho multicast và broadcast.

Một số giao thức sử dụng UDP: giao thức DHCP (vì DHCP client phải gửi gói tin broadcast để tìm và phản hồi lại DHCP server), hệ thống DNS (Domain Name System). Hệ thống DNS hoạt động như sau, khi trình duyệt web muốn truy cập một website ví dụ như tuhocnetworksecurity.business.blog chẳng hạn, DNS sẽ gửi một gói tin UDP đến DNS server để tìm domain tuhocnetworksecurity.business.blog. Sau khi tìm thấy, nó sẽ gửi trả lại địa chỉ IP của domain đó đến trình duyệt bằng một gói tin UDP khác.

Well known port là gì?

Well Known Port (viết tắt là WKP) gồm các port có địa chỉ từ 0 đến 1023. Chúng được giữ cho các ứng dụng phổ biến như port 80 (web), port 25 (mail), port 21 (FTP)… Registered Port (viết tắt là RP) gồm các port có địa chỉ từ 1024 đến 49151.

Port 53 dùng để làm gì?

Port 53 được sử dụng cho các dịch vụ phân giải tên miền. Nếu bạn có ý định vận hành một ứng dụng dạng này (chẳng hạn Pi-Hole) bạn sẽ cần đến nó.

Port 22 là gì?

22 – TPC /UDP – SSH Remote Login Protocol: Nếu bạn chạy SSH Secure Shell, cổng 22 được yêu cầu cho người dùng SSH để kết nối tới người phục vụ của bạn. 23 – TPC – Telnet: Trường hợp bạn chạy một người phục vụ Telnet, cổng này được yêu cầu cho người dùng Telnet kết nối tới người phục vụ của các bạn.

Một máy tính có bao nhiêu port?

Hiện nay, với máy tính sẽ có đến 65535 port được phân làm 3 phần: WKP: Well Known Port quy định từ 0 đến 1032.