Địa chỉ Port

Một phần của tài liệu Giáo trình quản trị hạ tầng mạng phần cứng căn bản Truyền thông và mạng máy tính (Trang 45 - 49)

Những dịch vụ server phổ biến thường có một port mặc định và người quản trị hầu như không thay đổi port này khi cấu hình nếu khơng có một lý do gì đặc biệt. Làm như vậy để tạo thuận lợi cho người sử dụng. Khi muốn truy cập đến dịch vụ server nào đó, người sử dụng khơng cần chỉ ra port đích. Chẳn hạn HTTP có port là 80, telnet có port là 23,…Khi một ứng dụng client gửi một yêu cầu đến một ứng dụng server, tùy thuộc vào ứng dụng mà lớp Transport biết được port đích là bao nhiêu mà gán cột Destiantion port trong header. Ví dụ, bạn mở một trình duyệt web và truy cập đến một website. Trình duyệt web gửi một yêu cầu đến một dịch vụ web server. Khi đó Source port là một số ngẫu nhiên và Destination port là 80. Nếu người quản trị thay đổi port của dịch vụ web server thành 8080 thì khi đó trong đường dẫn URL người sử dụng phải chỉ ra port 8080.

Port nguồn của một yêu cầu từ client được gán ngẫu nhiên miễn là không trùng với port nào khác đang được dùng trong hệ thống. Port này đóng vai trị là một địa chỉ trả về của ứng dụng đang yêu cầu. Lớp Transport theo dõi port này và ứng dụng phát sinh yêu cầu để khi nhận được một trả lời thì nó có thể chuyển đến đúng ứng dụng đã yêu cầu. Trong một trả lời từ server, port này được dùng như port đích.

Socket

Đặt trường hợp, chúng ta có hai máy tính với địa chỉ IP là 192.168.1.20, 192.168.1.21 và trên hai máy tính này đều mở trình duyệt web và cùng truy cập đến một web site. Giả sử rằng cả hai trình duyệt web này đều được gán một port ngẫu nhiên là 49152,

thì làm sao web server phân biệt được yêu cầu nào trên máy nào để xử lý và phản hồi cho đúng. Lúc này, xuất hiện một khái niệm mới đó là Socket.

Socket là một sự kết hợp giữa địa chỉ IP của lớp Network và port của lớp Transport để nhận dạng một tiến trình duy nhất đang chạy trên một máy tính. Trong trường hợp này hình thành hai socket: 192.168.1.20:49152 và 192.168.1.21:49152. Như vậy, dựa vào socket mà web server có thể phân biệt được các cuộc trao đổi giữa các host.

Port Number Group

Internet Assigned Numbers Authority (IANA) là một tổ chức có nhiệm vụ gán port cho các ứng dụng và cũng là tổ chức đưa ra các chuẩn địa chỉ khác nhau.

Trong TCP header và UDP header giá trị Source port và Destination port được dùng 2 byte để biểu diễn. Như vậy giá trị của port nằm trong khoảng từ 0 đến 65535. Chúng được chia làm ba khoảng:

 Các port thông dụng (Well Known Port) (từ 0 đến 1023): những số này được gán cho dịch vụ và ứng dụng phổ biến. chẳn hạn như HTTP (web server)–80, POP3/SMTP (e-mail server)–10/25, Telnet–23, và v.v…Bằng cách định nghĩa những well–known- port này cho các ứng dụng server, các ứng dụng client, có thể được lập trình để yêu cầu một kết nối đến port chỉ định đó và dịch vụ được gán đến nó.

 Các port đã đăng ký (Registered Port) (từ 1024 đến 49151): những port này được gán cho các tiến trình hay ứng dụng của người dùng. Các tiến trình này là các ứng dụng cá nhân mà người dùng cài đặt vào máy chứ không phải các dịch vụ server phổ biến ở trên vốn sử dụng well-known-port. Port của các chương trình client thường được cấp động ngẫu nhiên trong khoảng này.

 Port riêng hay port động (Dynamic hay Private Port) (từ 49152 đến 65535): cịn

có tên gọi là port phù du (Ephemeral Port), những port này thường được gán động cho các ứng dụng client khi khởi tạo một kết nối. Các client ít khi sử dụng các port Dynamic hay Private để kết nối đến server.

Bảng 2: Các port thông dụng

Là người quản trị các dịch vụ, bạn cần phải biết rõ trên các server của mình hiện giờ đang mở những port nào, trạng thái của chúng ra sao, hay có bao nhiêu kết nối từ bên ngồi đến server. Cách tốt nhất để bảo mật các server của mình là bạn tực hiện ngun tắc “đóng tất cả các port chỉ mở những port nào cần thiết cho hoạt động của server”. Làm như vậy bạn sẽ kiểm sốt các port được dễ dàng hơn và khơng tạo nhiều kẻ hở cho những truy cập không mong muốn đến server.

Một tiện ích quan trọng mà hầu như người quản trị mạng nào cũng cần để kiểm tra những điều này đó là netstat.

Netstat, liệt kê các giao thức đang được các dịch vụ hay ứng dụng sử dụng, địa chỉ và port cục bộ, địa chỉ và port ở ngoài, và trạng thái của liên kết.

Thiết lập phiên làm việc và duy trì nó

Một chức năng của lớp Transport là một phiên (session) làm việc giữa các thiết bị tương tự nhau tại lớp ứng dụng. Để hoạt động truyền dữ liệu bắt đầu, cả hai ứng dụng truyền và nhận thông báo cho hệ điều hành rằng một kết nối sẽ được khởi tạo. Thiết bị khởi đầu một kết nối phải được chấp nhận bởi thiết bị kia. Các giao thức mạng để xác nhận rằng hoạt động truyền dữ liệu đã được quản lý và cả hai phía đang ở trạng thái sẳn sàng.

Kết nối này được thiết lập và truyền dữ liệu bắt đầu sau khi đạt được tất cả sự đồng bộ. Trong quá trình truyền dữ liệu thực sự, hai máy tiếp tục thông tin để xác nhận rằng dữ liệu đang được phân phát chính xác.

TCP – Làm cho cuộc trao đổi trở nên tin cậy

Sự khác biệt chính giữa giao thức TCP và UDP là độ tin cậy. Độ tin cậy của giao thức TCP được thể hiện ở chỗ nó là một giao thức hướng kết nối (connection-oriented). Điều này có nghĩa là: trước khi hai ứng dụng trên hai máy tính có thể trao đổi dữ liệu cho nhau địi hỏi phải có một kết nối được thiết lập giữa chúng. Nó đảm bảo rằng mỗi máy tính đã sẳn sàng trao đổi dữ liệu. Đồng thời, nó cho phép theo dõi một phiên giao dịch hay chuỗi giao tiếp giữa các máy tính. Một cuộc trao đổi hồn chỉnh dựa trên giao thức TCP yêu cầu phải thiết lập một phiên giao dịch theo cả hai hướng.

TCP còn một cơ chế khác đó là sự xác nhận trong quá trình trao đổi dữ liệu để đảm bảo rằng máy nhận đã nhận đầy đủ dữ liệu từ máy gửi. Sau khi kết nối được thiết lập, máy nhận phải phản hồi cho máy gửi biết nó đã nhận được những segment nào và mong chờ nhận segment nào kế tiếp bằng các ACK (acknowledgement). Khi nhận ACK từ máy nhận, máy gửi biết được là mình đã gửi thành công và không theo dõi các segment đó nữa. Ngược lại, nếu khơng nhận được nó trong một khoảng thời gian quy định, thì máy gửi truyền lại các segment đó.

Các bước thiết lập kết nối, các ACK và việc truyền lại tiêu tốn băng thơng mạng. Bên cạnh đó, các máy tính cũng bận rộn hơn khi phải theo dõi các segment đang đợi ACK và truyền lại dữ liệu.

Để đạt được độ tin cậy này, TCP dựa vào các thông tin trong TCP header. TCP header có nhiều cột, mỗi cột cung cấp một tính năng xác định.

Ý nghĩa các cột:

 Source Port: port của ứng dụng nguồn.

 Sequence Number: chỉ ra số octet (byte) cuối cùng trong một segment.

 Acknowledgement Number: chỉ ra octet kế tiếp mà máy nhận đang mong chờ.

 Header Length: chỉ ra chiều dài của header, tính theo byte.

 Control Bits (Flags): được sử dụng trong việc quản lý phiên giao dịch và theo

dõi các segment.

 Window (Window Size): là giá trị của cửa sổ động – có thể gửi bao nhiêu octet

trước khi đợi nhận một ACK.

 Checksum: được sử dụng để kiểm tra lỗi của header và data.

 Urgent: chỉ được sử dụng với cờ URG (Urgent).

 Options: thông tin tùy biến.

 Data: dữ liệu của ứng dụng.

Một phần của tài liệu Giáo trình quản trị hạ tầng mạng phần cứng căn bản Truyền thông và mạng máy tính (Trang 45 - 49)

Tải bản đầy đủ (PDF)

(184 trang)