Kiến trúc Client-Server, IP, PORT và những điều cần biết

Bài viết này, mình sẽ điểm qua vài thuật ngữ trong IT và các vai trò của chúng trong mạng nhà mình.

Kiến trúc Client-Server

  • Server: thằng cung cấp dịch vụ
  • Client: thằng sử dụng dịch vụ mà Server cung cấp

Với tình huống tạo server chơi game CS1.6 online, Server chính là thằng mở chương trình Server CS1.6 lên, Client chính là anh em bắn CS, mọi người cần kết nối vào server thì mới bắn nhau được 😛

Một ví dụ khác, bạn chat zalo với bạn gái, thì 2 máy điện thoại chính là Client, còn Server thì thằng chủ zalo nó sẽ làm 1 cái server để trung chuyển tin nhắn, ảnh nóng, clip cho 2 bạn 😀

IP

IP chính là cái địa chỉ của 1 máy khi tham gia vào Internet, nó giống như địa chỉ nhà mình vậy. Có IP thì mới biết đường để mình tìm đến.

Cả ServerClient đều có IP hết.

Giả sử nhà bạn có 2 máy lần lượt là AB.

Mạng nhà bạn sẽ có 1 cái modem, cái modem này sẽ chứa thông tin về IP của mạng nhà bạn. Đây gọi là public IP, với IP này, các máy tính khác trên thế giới sẽ biết về sự tồn tại của nhà bạn.

Mỗi máy trong nhà bạn (A và B) sẽ có 1 IP riêng, chỉ các máy trong nhà mới biế và thấy được IP của nhau, đây là private IP.

Gióng sang ví dụ về địa chỉ nhà: nhà nghỉ Hoan Lạc tọa lạc ở 113 đường CA, có 2 phòng là phòng 1 và 2. public IP chính là 113 đường CA, còn private IP chính là số của các phòng trong nhà nghỉ (1 và 2).

Tương tự, trên công ty bạn có 1 máy khác là C. Cũng sẽ có các IP tương tự.

Để biết được public IP của mạng nhà mình, bạn truy cập vào trang web http://whatismyipaddress.com/ hoặc Google sẽ ra đầy các trang tương tự.

Thường thì ở Việt Nam, các gói cước mà mình đăng ký thì là IP động, tức là mỗi lần reset modem, IP này sẽ thay đổi. Nếu muốn IP tĩnh (reset modem sẽ không đổi) thì trả thêm tiền 😛

Để biết được private IP của máy mình, với máy tính Linux, bạn gõ lệnh sau trong terminal:

Nó sẽ show ra 1 loạt thông tin dạng như này:

  • wlan1 là thông tin khi bạn kết nối qua wifi
  • eth1 là thông tin mạng cắm dây
    Bạn tìm dòng inet addr:10.255.108.171 thì 10.255.108.171 chính là private IP của máy bạn.

Với máy tính Windows thì cũng tương tự, lệnh là:

PORT (cổng)

Tất nhiên, muốn vào nhà thì phải có cổng (cổng chính, cổng phụ, cổng bí mật), muốn vào phòng thì phải đi qua cửa (cửa chính, cửa sổ, lỗ chó chui :v).

Trong IT, PORT cũng có vai trò trương tự. Cổng là 1 con số, có giá trị trong khoảng 1 -> 65535.

Quay lại ví dụ bắn CS1.6, khi bạn bật server lên, chương trình sẽ mở 1 cổng nào đó của máy bạn và đón khách ở cổng đó. Cổng này gọi là private PORT, tức là chỉ lưu hành nội bộ trong mạng nhà mình thôi.

Bên modem, bạn cần tiến hành mở 1 PORT khác, để người ngoài có thể vào nhà bạn được. Cái này là public PORT.

Khoan, có gì đó không đúng, vào nhà xong rồi có cả đống thằng đang mở kính thưa các loại cổng, rồi biết vào phòng nào, cổng nào, của ai? Vào nhầm phòng nó đánh chết thì sao?

Đúng đúng, lúc này, mình cần làm thêm 1 thao tác là chỉ đường, thuật ngữ chuyên môn là NAT (Network Address Translation). Thao tác NAT sẽ chỉ ra rằng: Nếu bạn đi vào mạng bằng public PORT X, thì sẽ được dẫn đến private PORT Y trên máy Z.

Lưu ý khi mở cổng: chỉ được mở cổng từ 1024 -> 65535, mấy cổng nhỏ hơn là của hệ thống rồi, sờ vào có chuyện gì thì tự chịu lấy :v

Để tổng hợp lại cho bài viết này, mình vẽ 1 hình minh họa:
Untitled Diagram (2)
Có 1 điểm cần lưu ý ở đây là public PORT có thể trỏ đến 1 dải các private PORT, nhưng để đơn giản mình chỉ vẽ cho nó trỏ đến 1 PORT thôi.

Lập trình và hơn thế nữa

Spread the love
  • 3
  •  
  •  
  •  
  •  
    3
    Shares

Leave a Reply

Be the First to Comment!

avatar
  Subscribe  
Notify of