You are on page 1of 9

2.

Cơ sở lý thuyết

2.1.Giao thức TCP/IP

2.1.1.Khái niệm

- TCP/IP hoặc Transmission Control Protocol/Internet Protocol (Giao thức điều khiển
truyền vận/giao thức mạng) là một bộ các giao thức trao đổi thông tin được sử dụng để
kết nối các thiết bị mạng trên Internet. TCP/IP có thể được sử dụng như là một giao thức
trao đổi thông tin trong một mạng riêng (intranet hoặc extranet)

Toàn bộ bộ giao thức Internet - một tập hợp các quy tắc và thủ tục - thường được gọi là
TCP/IP, mặc dù trong bộ cũng có các giao thức khác.

TCP/IP chỉ định cách dữ liệu được trao đổi qua Internet bằng cách cung cấp thông tin
trao đổi đầu cuối nhằm mục đích xác định cách thức nó được chia thành các gói, được
gắn địa chỉ, vận chuyển, định tuyến và nhận ở điểm đến. TCP/IP không yêu cầu quản lý
nhiều và nó được thiết kế để khiến mạng đáng tin cậy hơn với khả năng phục hồi tự động.

Có hai giao thức mạng chính trong bộ giao thức mạng phục vụ các chức năng cụ thể.

- TCP xác định cách các ứng dụng tạo kênh giao tiếp trong mạng. Ngoài ra, nó cũng quản
lý cách các tin được phân thành các gói nhỏ trước khi được chuyển qua Internet và được
tập hợp lại theo đúng thứ tự tại địa chỉ đến.

- IP xác định cách gán địa chỉ và định tuyến từng gói để đảm bảo nó đến đúng nơi. Mỗi
gateway trên mạng kiểm tra địa chỉ IP này để xác định nơi chuyển tiếp tin nhắn.

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

TCP/IP sử dụng mô hình giao tiếp máy khách/máy chủ, trong đó người dùng hoặc thiết bị
(máy khách) được một máy tính khác (máy chủ) cung cấp một dịch vụ (giống như gửi
một trang web) trong mạng.

Nói chung, bộ giao thức TCP/IP được phân loại là không có trạng thái, có nghĩa là mỗi
yêu cầu của máy khách được xem là mới bởi vì nó không liên quan đến yêu cầu trước.
Việc không có trạng thái này giúp giải phóng đường mạng, do đó chúng có thể được sử
dụng liên tục.

Tuy nhiên, tầng vận chuyển lại có trạng thái. Nó truyền một tin nhắn duy nhất và kết nối
của nó vẫn giữ nguyên cho đến khi nhận được tất cả các gói trong tin nhắn và tập trung
tại điểm đến.

TCP/IP được chia thành bốn tầng, mỗi tầng bao gồm các giao thức cụ thể.

- Tầng ứng dụng cung cấp các ứng dụng với trao đổi dữ liệu được chuẩn hóa. Các giao
thức của nó bao gồm Giao thức truyền tải siêu văn bản (HTTP), Giao thức truyền tập tin
(File Transfer Protocol - FTP), Giao thức POP3, Giao thức truyền tải thư tín đơn giản
(Simple Mail Transfer Protocol - SMTP) và Giao thức quản lý mạng đơn giản (Simple
Network Management Protocol - SNMP).

- Tầng giao vận chịu trách nhiệm duy trì liên lạc đầu cuối trên toàn mạng. TCP xử lý
thông tin liên lạc giữa các máy chủ và cung cấp điều khiển luồng, ghép kênh và độ tin
cậy. Các giao thức giao vận gồm giao thức TCP và giao thức UDP (User Datagram
Protocol), đôi khi được sử dụng thay thế cho TCP với mục đích đặc biệt.

- Tầng mạng, còn được gọi là tầng Internet, có nhiệm vụ xử lý các gói và kết nối các
mạng độc lập để vận chuyển các gói dữ liệu qua các ranh giới mạng. Các giao thức tầng
mạng gồm IP và ICMP (Internet Control Message Protocol), được sử dụng để báo cáo
lỗi.

- Tầng vật lý bao gồm các giao thức chỉ hoạt động trên một liên kết - thành phần mạng
kết nối các nút hoặc các máy chủ trong mạng. Các giao thức trong lớp này bao gồm
Ethernet cho mạng cục bộ (LAN) và Giao thức phân giải địa chỉ (Address Resolution
Protocol - ARP).

2.2.Mô hình Client – Server

2.2.1.Khái niệm Client Server


Client server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách
(client) và máy chủ (server). Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt
các chương trình dịch vụ theo đúng như yêu cầu của client. Ngược lại, Client bao gồm
máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server.

Mô hình mạng Client Server sẽ cho phép mạng tập trung các ứng dụng có cùng chức
năng tại một hoặc nhiều dịch vụ file chuyên dụng. Chúng sẽ trở thành trung tâm của hệ
thống. Hệ điều hành của mô hình Client server sẽ cho phép người dùng chia sẻ đồng thời
cùng một loại tài nguyên mà không giới hạn vị trí địa lý.

2.2.2.Nguyên tắc hoạt động

Để máy khách và máy chủ có thể giao tiếp được với nhau thì giữa chúng phải có một
chuẩn nhất định, và chuẩn đó được gọi là giao thức. Một số giao thức được sử dụng phổ
biến hiện nay như: HTTPS, TCP/IP, FTP,...

- Client: Client chính là khách hàng sử dụng dịch vụ. Nó có thể là một tổ chức hay cá
nhân cụ thể nào đó. Trong Client Server thì Client chính là một máy tính (Host). Chúng
có khả năng nhận thông tin từ nhà cung cấp và sử dụng dịch vụ cụ thể (Server).

- Server: Server được triển khai từ một máy tính từ xa. Chúng có chức năng là cung cấp
các thông tin (dữ liệu) cho một dịch vụ cụ thể nào đó hoặc quyền truy cập đối với dịch
vụ.

2.2.3.Ưu nhược điểm của mô hình Client – Server

a, Ưu điểm

- Tập trung: Ưu điểm đầu tiên của mô hình Client Server kiểu mạng khách chủ đó chính
là khả năng kiểm soát tập trung đã được tích hợp sẵn. Theo như mô hình này thì tất cả
mọi thông tin cần thiết đều sẽ được đặt ở một vị trí duy nhất. Tính năng này giúp cho mọi
sự cố trong mạng đều sẽ được giải quyết ở cùng một nơi thống nhất. Đồng thời, việc cập
nhật cơ sở tài nguyên, dữ liệu cũng sẽ dễ dàng hơn rất nhiều.
- Bảo mật: Trong mạng Client Server, tất cả các dữ liệu đều sẽ được bảo vệ một cách tối
đa nhờ vào hệ thống kiến trúc tập trung của mạng. Thông qua đó, nó sẽ giúp người dùng
kiểm soát truy cập để chỉ có những ai được cấp quyền truy cập thì mới được thực hiện
các thao tác cần thiết.

- Khả năng mở rộng: Mô hình mạng kết nối Client Server có khả năng mở rộng tốt. Chỉ
cần người dùng cần sử dụng bất cứ lúc nào thì họ cũng có thể tăng được số lượng tài
nguyên của mình. Ví dụ như số Client hoặc Server. Nhờ đó mà chúng ta có thể tăng kích
thước của Server một cách dễ dàng mà không bị gián đoạn nhiều.

- Khả năng truy cập: Không có sự phân biệt giữa các vị trí hay nền tảng mà mọi Client
đều có khả năng đăng nhập được vào hệ thống mạng máy tính. Điều này sẽ giúp cho tất
cả các nhân viên đều có thể truy cập thông tin của công ty một cách dễ dàng mà không
cần phải dùng một terminal mode hoặc một bộ xử lý nào khác.

b, Nhược điểm

- Tắc nghẽn lưu lượng: Trong trường hợp có quá nhiều Client tạo request từ cùng một
Server thì nó có thể sẽ làm cho kết nối chậm hơn. Trong trường hợp xấu nhất còn có thể
xuất hiện hiện tượng crash. Khi một server bị quá tải thì sẽ tạo ra nhiều vấn đề khi truy
cập thông tin.

- Gián đoạn: Client Server là mạng tập trung chính vì thế, khi Server chính xảy ra sự cố
hoặc bị nhiễu thì cũng đồng nghĩa với việc toàn bộ hệ thống mạng sẽ bị gián đoạn.

- Chi phí: Chi phí được sử dụng để thiết lập và bảo trì Server trong Client Server thường
sẽ khá cao. Với những hệ thống lớn, sẽ tốn nhiều chi phí.

2.3.Lập trình Socket

2.3.1.Giới thiệu về Socket

Socket là một điểm cuối (end-point) của liên kết giao tiếp hai chiều (two-way
communication) giữa hai chương trình chạy trên mạng. Nghĩa là một socket được sử
dụng để cho phép 1 process nói chuyện với 1 process khác.
Các lớp Socket được sử dụng để tiến hành kết nối giữa client và server. Nó được ràng
buộc với một cổng port (thể hiện là một con số cụ thể) để các tầng TCP (TCP Layer) có
thể định danh ứng dụng mà dữ liệu sẽ được gửi tới.

2.3.2.Cách thức hoạt động của Socket

Socket giúp lập trình viên kết nối các ứng dụng để truyền và nhận dữ liệu trong môi
trường có kết nối Internet bằng cách sử dụng phương thức TCPIP và UDP.

Khi cần trao đổi dữ liệu cho nhau thì 2 ứng dụng cần phải biết thông tin IP và port bao
nhiêu của ứng dụng kia.

Có rất nhiều dạng socket khác nhau phụ thuộc vào sự khác biệt giữa cách truyền dữ liệu
(protocol). Dạng phổ biến nhất là TCP và UDP.

2.3.3.Phân loại Socket

a, Stream Socket

Stream Socket còn được gọi là socket TCP. Nó hoạt động dựa trên giao thức hướng kết
nối. Tức là chỉ sử dụng được khi máy chủ và máy khách có sự liên kết.

Stream Socket giúp quá trình truyền gửi diễn ra nhanh chóng và đúng hạn. Ngoài ra, với
yếu tố đảm bảo, người dùng cũng có thể yên tâm rằng dữ liệu sẽ được chuyển đến đúng
người nhận với độ tin cậy tuyệt đối. Mỗi hành động diễn ra trong quá trình dịch chuyển
thông tin đều sẽ được ghi lại kết quả và truyền về cho người dùng dù có thành công hay
không. Các bản ghi dữ liệu cũng không hề có giới hạn nào, bạn có thể thoải mái truyền
bao nhiêu thông tin tùy thích. Song song với đó, Stream Socket còn sở hữu 2 cơ chế bao
gồm quản lý luồng lưu thông trên mạng và chống tắc nghẽn nhằm tối ưu hóa thời gian
truyền dữ liệu.
Điều kiện để sử dụng Stream Socket là phải có địa chỉ IP rõ ràng giữa 2 đầu kết nối. Các
thông tin được gửi đi tuần tự theo kế hoạch lên trước. Mỗi thông điệp được thực hiện
phải có thông báo trả về mới tính là hoàn thành. Ngoài ra, Stream Socket hoạt động dựa
trên mô hình lắng nghe và chấp nhận. Có nghĩa rằng giữa 2 process phải có 1 bên yêu cầu
kết nối trước.

b, Datagram Socket

Datagram Socket hoạt động dựa trên giao thức UDP về việc truyền thông tin không yêu
cầu sự kết nối. Để hoạt động này diễn ra, nó cung cấp connection-less point cho việc gửi
và nhận thông tin. Chính vì thế mà Datagram Socket còn được gọi là socket không hướng
kết nối.
Hai tiến trình có thể liên lạc với nhau thông quan Datagram Socket mà không cần IP
chung. Thông điệp muốn gửi đi phải kèm theo thông điệp người nhận. Có thể gửi một
thông điệp nhiều lần, tuy nhiên không thể gửi cùng một lúc. Ngoài ra, thứ tự hoàn thành
dịch chuyển cũng không cố định, thông điệp gửi sau có thể đến trước và ngược lại.

Datagram Socket không đảm bảo tuyệt đối kết quả của tiến trình. Một số trường hợp ghi
nhận thông điệp không thể đến tay của bên nhận. Cùng với đó, điều kiện để thực hiện các
cuộc trao đổi 2 đầu là 1 trong 2 tiến trình phải công bố port của socket mà mình đang sử
dụng.

Tuy nhiên vì không yêu cầu kết nối của 2 tiến trình nên quá trình truyền dữ liệu diễn ra
vô cùng nhanh chóng, phù hợp để ứng dụng trong cách hoạt động như nhắn tin, chat
game online…

c, Unix socket

Unix socket được biết đến như một điểm chuyển giao giữa các ứng dụng ở trong một
máy tính. Vì không phải qua bước kiểm tra và routing nên quá trình truyền tin diễn ra vô
cùng nhẹ nhàng và nhanh chóng. Đường chuyền khép kín đảm bảo không bị rò rỉ thông
tin khi thực hiện.

Unix socket mang đến những ưu điểm tuyệt vời như: tăng tốc độ truy cập MySQL lên
đến 30-50%, tăng PostgreSQL lên hơn 30%, tăng Redis lên 50%. Cùng với đó còn giảm
thời gian latency xuống từ 60ms còn 5ms.

Bên cạnh đó, Unix socket vẫn còn một số nhược điểm tồn đọng như: không thể dịch
chuyển giữa 2 máy khác nhau, đôi khi xảy ra delay do vấn đề phân quyền giữa các tệp
tin.

d, Web socket

Websocket là giao thức hỗ trợ giao tiếp hai chiều giữa client và server để tạo một kết nối
trao đổi dữ liệu. Giao thức này không sử dụng HTTP mà thực hiện nó qua TCP. Mặc dù
được thiết kế để chuyên sử dụng cho các ứng dụng web, lập trình viên vẫn có thể đưa
chúng vào bất kì loại ứng dụng nào.
Websocket sở hữu gần như hầu hết những ưu điểm của các loại socket khác như: tỷ lệ
xảy ra delay thấp, dễ xử lý lỗi, khả năng dịch chuyển thông tin nhanh chóng và mạnh mẽ,
phù hợp cho những hoạt động cần đến tính tức thời như chat realtime, chat online, biểu
đồ chứng khoán…

Giao thức chuẩn phổ biến nhất của WebSocket là ws:// . Còn giao thức secure là wss:// .
WebSocket có chuẩn giao tiếp là String và hỗ trợ buffered arrays cùng blobs.

Tuy ưu việt là thế nhưng Web socket vẫn có một số nhược điểm. Một số trình duyên chưa
có khả năng tương thích với Websocket. Bên cạnh đó, Websocket cũng sẽ dễ bị hạn chế
với các dịch vụ có phạm vi yêu cầu.

You might also like