Thiết lập và đóng một kết nối TCP

Một phần của tài liệu TÌM HIỂU MẠNG RIÊNG ẢO VPN-VÀ ỨNG DỤNG HẠ TẦNG PUBLIC KEY TĂNG ĐỘ TIN CẬY TRONG KẾT NỐI VPN (Trang 27)

Để thiết lập một kết nối TCP sử dụng mô hình bắt tay ba bước, trong trường hợp đơn giản có thể minh họa như sau:

Nhận SYN +ACK ACK y+1

Đầu cuối máy tính gửi Mạng

Đầu cuối máy tính nhận

Gửi SYN Seq = x Nhận SYN

Gửi SYN seq = y, ACK x+1 Nhận ACK

Hình 1.10: Thiết lập kết nối theo giao thức TCP

Gói tin khởi đầu cho kết nối được xác định bởi bit SYN trong trường dữ liệu CODE, bản tin trả lời lập giá trị cho bit SYN và ACK để chuyển ý nghĩa đồng bộ và tiếp tục tiến trình bắt tay. Bản tin cuối cùng chỉ có ý nghĩa như một lời đáp và chỉ để đơn giản dùng để thông báo cho đích rằng cả hai bên cùng đồng ý một kết nối đã được thiết lập.

Tiến trình bắt tay ba bước là điều kiện cần và đủ để có sự đồng bộ chính xác giữa hai đầu của kết nối, thông thường các phần mềm TCP thường sử dụng phương pháp đợi thụ động để chờ kết nối, nhưng điều này không gây khó khăn trong quá trình kết nối vì các kết nối được thiết lập từ các bên độc lập với nhau. Số thực tự được chọn ngẫu nhiên và độc lập với nhau cũng có thể được gửi kèm cùng với dữ liệu. Trong những trường hợp đó, phần mềm TCP giữ lại dữ liệu cho đên khi hoàn tất quá trình bắt tay kết nối. Một khi kết nối được thiết lập, phần mêm TCP sẽ giải phóng dữ liệu trước đây và nhanh chóng chuyển chúng tời các chương trình ứng dụng cấp cao hơn.

Thủ tục đóng kết nối TCP được thực hiện theo từng chiều, (giả thiết kết nối TCP là song công). Một khi kết nối đóng lại theo chiều nào đó, TCP sẽ từ chối nhận thêm dữ liệu trong kết nối của chiều đó, trong lúc dữ liệu vẫn di chuyển theo chiều ngược lại cho đến khi nơi gửi thực hiện đóng kết nối. Như vây, lời đáp của kết nối vẫn được chuyển về nơi gửi ngay cả khi kết nối đã đóng lại, khi cả hai chiều đều đóng, phần mềm TCP tại mỗi bên xóa bỏ những ghi nhận về kết nối này.

Nhận ACK

Đầu cuối máy tính gửi Mạng

Đầu cuối máy tính nhận

Gửi FIN Seq = x Nhận FIN Gửi ACK x+1

Gửi FIN seq=x, ACK x+1

Nhận ACK Nhận FIN+ACK

Gửi ACK y+1

Hình 1.11: Thủ tục đóng kết nối TCP c) TCP là giao thức truyền tin cậy

Yêu cầu đối với TCP phát chuyển stream (luồng) là khối dữ liệu lớn và cần độ tin cậy. Các đặc trưng đối với dịch vụ phát chuyển tin cậy gồm:

1. Định hướng stream: Khi hai chương trình ứng dụng (các tiến trình của người sử dụng) truyền những khối lượng lón dữ liệu được xem như một chuỗi bit, dữ liệu này được chia thành các octet. Dịch vụ chuyển phát stream chuyển dữ liệu một cách chính xác tới máy nhận.

2. Kết nối kênh ảo: Thực hiện việc truyền stream cũng tương tự như thực hiện một cuộc gọi điện thoại. Trước khi việc truyền có thể bắt đầu, cả hai chương trình ứng dụng gửi và nhận đều phải tương tác với hệ điều hành, thông báo về yêu cầu thực hiện truyền stream. Về mặt khái niệm, một chương trình ứng dụng sẽ thực hiện một cuộc gọi mà đầu kia chấp nhận, tức là thiết lập kết nối - hay mạch ảo để truyền và nhận dữ liệu một các chính xác.

3. Việc truyền có vùng đệm: Các chương trình ứng dụng gửi một dòng dữ liệu qua mạch ảo bằng cách lặp lại việc chuyển các octet dữ liệu đến phần mềm giao thức. Khi truyền dữ liệu, mỗi chương trình ứng dụng sử dụng bất kỳ kích thước đơn vị truyền nào nó thấy thuận tiện, có thể chỉ bằng một octet. Tại đầu nhận, phần mềm giao thức phát chuyển một cách tự động dữ liệu theo đúng thứ tự mà chúng được gửi đi, làm cho chúng sẵn sàng được chương trình ứng dụng nhận sử dụng ngay sau khi chúng được nhận và kiểm tra. Phần mềm giao thức được tự do phân chia dòng dữ liệu thành những gói dữ liệu độc lập với đơn vị mà chương trình ứng dụng truyền đi. Để làm cho việc truyền hiệu quả hơn và tối thiểu giao thông trên mạng, các cài đặt thường

tập hợp cho đủ dữ liệu để đặt vào datagram có độ lớn thích hợp trước khi truyền nó qua Internet.

1. Như vậy ngay cả khi chương trình ứng dụng phát sinh dòng dữ liệu có kích thước là 1 octet mỗi lần thì việc truyền qua Internet vẫn hoàn toàn hiệu quả.

2. Tương tự, nếu chương trình ứng dụng quyết định phát chuyển những khối dữ liệu cực lớn, phần mềm giao thức có thể quyết định chia khối này thành những khối nhỏ hơn khi truyền.

3. Đối với những chương trình ứng dụng mà dữ liệu phải được phát chuyển ngay cả khi nó không đầy một vùng đệm, dịch vụ stream cung cấp cơ chế đẩy cho các chương trình ứng dụng để bắt buộc truyền.

1. Stream không có cấu trúc: Dịch vụ TCP stream không xác định các dòng dữ liệu có cấu trúc. Nghĩa là nó không phân biệt được cấu trúc hay nội dung phân chia bên trong của dòng dữ liệu. Các chương trình ứng dụng sử dụng dịch vụ stream phải hiểu nội dung stream và thống nhất với nhau về định dạng stream trước khi khởi động việc kết nối.

2. Kết nối hai chiều: Các kết nối do dịch vụ TCP cấp cho phép truyền đồng thời cả hai chiều. Cách kết nối này được gọi là song công. Nghĩa là từ quan điểm của một tiến trình ứng dụng, kết nối 2 chiều bao gồm 2 dòng dữ liệu độc lập chạy ngược nhau, không có tương tác hay va chạm. Dịch vụ stream cho phép một tiến trình ứng dụng chấm dứt dòng chảy theo một chiều trong khi dữ liệu vẫn tiếp tục chảy theo chiều kia làm cho kết nối trở thành một chiều (half duplex). Ưu điểm chính của kết nối hai chiều là phần mềm giao thức cơ sở có thể gửi thông tin điều khiển cho một tream ngược trở về nguồn trong những datagram đang chuyển tải dữ liệu theo chiều ngược lại. Điều này làm giảm bớt giao thông trên mạng.

Để thực hiện cung cấp tính tin cậy khi truyền tin, TCP sử dụng giao thức xác nhận gói tin (ACK) đã nhận được và truyền lại những gói tin bị mất hoặc bị lỗi. Bộ đếm thời gian bên gửi sẽ được kích hoạt mỗi khi gửi gói (mỗi gói được gửi sẽ được một bộ thời gian đếm từ lúc gửi). Khi qúa thời gian của bộ đếm mà chưa nhận được ACK thì mặc nhiên coi là mất gói hoặc hỏng gói và gói sẽ

được gửi lại. Số thứ tự gói trong tiêu đề dùng cho bên gửi và thu xác định việc mất gói và trùng lặp dữ liệu, từ đó tái truyền hay loại bỏ gói lặp cho phù hợp.

Một phần của tài liệu TÌM HIỂU MẠNG RIÊNG ẢO VPN-VÀ ỨNG DỤNG HẠ TẦNG PUBLIC KEY TĂNG ĐỘ TIN CẬY TRONG KẾT NỐI VPN (Trang 27)

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

(153 trang)
w