Module giao thức TCP

Một phần của tài liệu Xây dựng hệ thống điều khiển các thiết bị điện qua mạng Internet (Trang 56)

I. Các module chính

I.6. Module giao thức TCP

Cấu trúc header :

Hình IV. 7. Cấu trúc header giao thức TCP

- Để có thể giám sát chặt chẽ trạng thái và mọi sự kiện xảy ra trong 1 kết nối

TCP, trạng thái của một kết nối TCP được chuyển đổi tuân theo một lưu đồ trạng thái

như sau :

SVTH : 57

SVTH : 58

Giải thích :

- Trong lưu đồ trên, áp dụng cho cả client và server. Cả client và server đều bắt

đầu bằng trạng thái “Close”. Client sẽ thiết lập kết nối theo con đường Active Open

(nó chủ động thiết lập kết nối). Server sẽ thiết lập kết nối theo con đường Passive

Open (thụ động, vì nó đợi client bắt đầu mà).

Quá trình chuyển trạng thái: ta hãy xem xét kịch bản thông thường nhất.

- Cả hai bắt đầu bằng trạng thái close, không có kết nối nào tồn tại.

- Khi Server mở một port TCP để đợi client thiết lập kết nối, nó chuyển sang

trạng thái “Listen”.

- Khi client gửi đi bản tin SYN (bước số 1 trong ví dụ minh họa, giai đoạn thiết

lập kết nối), nó chuyển sang trạng thái “SYN sent”.

- Lúc này khi server nhận được bản tin SYN từ client và gửi đáp lại 1 bản tin SYN (bước 2 trong VD), nó chuyển sang trạng thái “SYN Received”.

- Lúc này client gửi lại bản tin xác nhận ACK (bước 3 trong ví dụ), nó chuyển

sang trạng thái thiết lập kết nối “Established”.

- Server nhận được bản tin ACK trên của client, nó cũng chuyển sang trạng thái

“Established”.

- Sau đó 2 bên tiến hành truyền dữ liệu, trạng thái cả 2 phía đều là

“Established”.

- Một trong hai phía truyền xong dữ liệu, đến đây thì vai trò hai bên là như

nhau, ta giả sử client truyền xong dữ liệu trước, nó sẽ gửi bản tin FIN, và chuyển sang

trạng thái “FIN wait 1”.

- Phía server nhận được bản tin này, gửi xác nhận ACK, và chuyển sang trạng

thái “Close wait”.

- Khi client nhận được xác nhận từ server (nhận được bản tin ACK trên) thì nó

chuyển sang trạng thái “FIN wait 2”.

- Đến lúc này server vẫn có thể tiếp tục gửi dữ liệu và client vẫn tiếp tục nhận

SVTH : 59

- Đến khi nào server cũng gửi hết dữ liệu, nó sẽ gửi đi bản tin FIN, cho biết nó

cũng đã gửi xong dữ liệu và chuyển sang trạng thái “LAST ACK”.

- Khi client nhận được bản tin FIN trên từ server, nó gửi xác nhận (ACK) và

chuyển sang trạng thái “Time wait”, sau đó chờ 1 khoảng thời gian Timeout và đóng

kết nối, quay lại trạng thái “Close”.

- Khi server nhận được nó cũng chuyển từ “Last ACK” sang “Close” (không

cần đợi Timeout).

Một phần của tài liệu Xây dựng hệ thống điều khiển các thiết bị điện qua mạng Internet (Trang 56)

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

(75 trang)