Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Giaó trình mạng ĐH Cần Thơ P4
MIỄN PHÍ
Số trang
35
Kích thước
1007.2 KB
Định dạng
PDF
Lượt xem
747

Giaó trình mạng ĐH Cần Thơ P4

Nội dung xem thử

Mô tả chi tiết

Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Mạng Máy Tính – V1.0

rằng dữ liệu nào đã đến, cái nào chưa và cuối cùng khởi động lại từ điểm bị bỏ dở dang. Dữ liệu bị

mất hoặc bị hư hỏng sẽ được phục hồi bởi lớp vận chuyển, do đó việc chuyển dữ liệu an toàn hơn.

Như thường lệ, tại lớp vận chuyển, người ta thiết kế các hàm dịch vụ cơ sở để triệu gọi các dịch vụ

vận chuyển và các hàm này là đơn giản, duy nhất và độc lập với các hàm cơ sở ở tầng mạng. Nhờ

vào sự độc lập này, sự phức tạp ở mức mạng bị che đi, các nhà lập trình ứng dụng có thể viết mã

lệnh dựa vào một tập hợp chuẩn các hàm cơ sở mức vận chuyển và cho chương trình của họ chạy

trên nhiều loại mạng mà không bị đau đầu bởi các vấn đề về giao diện các mạng con khác nhau và

việc truyền tải không tin cậy.

7.1.2 Các hàm dịch vụ cơ sở

Các hàm dịch vụ cơ sở ở lớp vận chuyển được chia thành hai nhóm theo phương thức hoạt động:

có nối kết và không nối kết.

7.1.3 Các hàm dịch vụ hướng nối kết

Hàm Gói tin gởi đi Ý nghĩa

LISTEN Không có Nghẽn cho đến khi tiến trình nào đó nối kết

tới

CONNECT Yêu cầu kết nối

(Connection Request)

Chủ động yêu cầu thiết lập nối kết đến tiến

trình khác

SEND Dữ liệu (Data) Gởi thông tin đi

RECEIVE Không có Nghẽn cho đến khi một gói tin đến và nhận

DISCONNECT Yêu cầu hủy kết nối

(Disconnection Request) Muốn hủy kết nối với bên đối tác

7.1.4 Các hàm dịch vụ dạng không nối kết

Hàm Gói tin gởi đi Ý nghĩa

SEND Dữ liệu (Data) Gởi thông tin đi

RECEIVE Không có Nghẽn cho đến khi một gói tin đến và nhận nó

7.2 Các yếu tố cấu thành giao thức vận chuyển

Cũng giống như giao thức ở tầng liên kết dữ liệu, giao thức vận chuyển phải đối phó với các vấn

đề về điều khiển lỗi, đánh số thứ tự gói tin và điều khiển luồng dữ liệu.

Tuy nhiên, giao thức trên hai tầng có nhiều điểm khác biệt quan trọng. Những khác biệt này xuất

phát từ sự khác biệt của môi trường hoạt động của chúng (như được chỉ ra trong hình H7.2).

H7.2. (a) Môi trường của lớp liên kết dữ liệu.

(b) Môi trường của lớp vận chuyển

Biên Sọan: Th.s Ngô Bá Hùng – Ks Phạm Thế Phi - 01/2005 136

Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Mạng Máy Tính – V1.0

Tại lớp liên kết dữ liệu, hai router giao tiếp với nhau qua một kênh truyền vật lý, trong khi tại lớp

vận chuyển, kênh truyền này được thay bằng cả một mạng con. Sự khác nhau này sẽ dẫn đến

nhiều hệ lụy mà những người thiết kế giao thức vận chuyển phải đau đầu giải quyết: định địa chỉ

các tiến trình trên các host khác nhau như thế nào, xử lý như thế nào đối với những trường hợp

mất gói tin trong quá trình trao đổi hoặc gói tin đi chậm dẫn đến mãn kỳ và gởi thêm một gói tin

bị trùng lắp, đồng bộ hóa hai tiến trình đang trao đổi dữ liệu như thế nào khi mà chúng đang ở rất

xa nhau.

7.2.1 Định địa chỉ

Khi một tiến trình mong muốn thiết lập nối kết với một tiến trình khác từ xa, nó phải chỉ ra rằng

nó muốn kết nối với tiến trình nào. (Vận chuyển hướng không nối kết cũng gặp vấn đề tương tự:

thông điệp sẽ gởi đến ai?). Một phương pháp định địa chỉ ở tầng vận chuyển của Internet là dùng

số hiệu cổng (port), còn ở trong mạng ATM là AAL-SAP. Chúng ta sẽ dùng từ chung nhất để định

địa chỉ tiến trình là TSAP (Transport Service Access Point). Tương tự, địa chỉ trong tầng mạng

được gọi là NSAP.

Hình H7.3 mô phỏng mối quan hệ giữa NSAP, TSAP và kết nối vận chuyển. Các tiến trình ứng

dụng, cả client và server đều phải gắn vào một TSAP và thiết lập nối kết đến TSAP khác. Và kết

nối này chạy qua cả hai TSAP. Mục tiêu của việc sử dụng các TSAP là vì trong một số mạng, mỗi

máy tính chỉ có một NSAP, do đó cần phải có cách phân biệt nhiều điểm cuối mức vận chuyển khi

chúng đang chia sẻ một NSAP.

Ví dụ, dàn cảnh một cuộc kết nối mức vận chuyển có thể diễn ra như sau:

1. Một server phục vụ thông tin về thời gian trên host 2 gắn nó vào TSAP 1522 để chờ một

cuộc gọi đến.

2. Một tiến trình ứng dụng chạy trên host 1 muốn biết giờ hiện tại, vì thế nó đưa ra một yêu

cầu nối kết chỉ ra TSAP 1208 là cổng nguồn và TSAP 1522 là cổng đích. Hành động này

dẫn đến một kết nối vận chuyển được thiết lập giữa hai tiến trình client và server trên hai

host 1 và 2.

H 6.3. TSAP, NSAP và kết nối vận chuyển

3. Tiến trình client gởi một yêu cầu đến server để hỏi về thời gian.

4. Server trả lời thời gian hiện tại cho client.

5. Kết nối vận chuyển cuối cùng được giải phóng.

Biên Sọan: Th.s Ngô Bá Hùng – Ks Phạm Thế Phi - 01/2005 137

Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Mạng Máy Tính – V1.0

7.2.2 Thiết lập nối kết

Việc thiết lập nối kết nghe có vẻ dễ dàng, nhưng khi thực hiện có thể sẽ gặp nhiều rắc rối. Thoạt

nhìn, một phiên thiết lập nối kết sẽ diễn ra như sau: một bên sẽ gởi TPDU yêu cầu nối kết

(Connection Request – CR) đến bên kia, bên kia sẽ gởi một TPDU trả lời chấp nhận nối kết

(Connection Accepted – CA).

Vấn đề phát sinh khi mạng làm mất, tồn trữ quá lâu hay làm trùng lắp các gói tin do hai thực thể

vận chuyển trao đổi qua lại với nhau. Ví dụ một tình huống như sau: tiến trình 1 gởi yêu cầu kết

nối đến tiến trình 2, yêu cầu này bị các mạng con trung gian trì hoãn do tắc nghẽn. Mãn kỳ, tiến

trình 1 gởi lại yêu cầu nối kết, vừa lúc đó yêu cầu nối kết bị trì hoãn cũng đến tiến trình 2.

Giải thuật thiết lập nối kết phổ biến nhất là giải thuật bắt tay 3 chiều (three-way hand-shake). Xin

xem các tình huống được mô phỏng trong Hình H7.4. Giả sử yêu cầu nối kết phát sinh ở host 1.

Host 1 chọn một số thứ tự là x và đính kèm số đó trong TPDU CR ( CR (seq=x) ) gởi đến host 2.

Host 2 báo nhận ACK ( ACK (seq = y, ACK = x) ) và thông báo số thứ tự khởi đầu của nó là y.

Cuối cùng host 1 báo nhận cho host 2 nó đã biết số thứ tự khởi đầu của host 2 là y bằng TPDU dữ

liệu đầu tiên gởi đến host 2 ( DATA (seq=x, ACK=y) ).

Bây giờ xét đến tình huống TPDU CR bị trùng lắp. Khi TPDU CR thứ hai đến host 2, host 2 liền

trả lời ACK vì tưởng rằng host 1 muốn thiết lập nối kết khác. Khi host 1 từ chối cố gắng thiết lập

nối kết của host 2, host 2 hiểu rằng nó đã bị lừa bởi CR bị trùng lắp và sẽ từ bỏ nối kết đó.

Trường hợp xấu nhất là cả hai TPDU CR và ACK của host 1 đều bị trùng lắp. Như trong ví dụ (b),

host 2 nhận được một CR trễ và trả lời cho yêu cầu đó với số thứ tự khởi đầu y. Giả sử, không

may trong trả lời cho yêu cầu CR trước đó, host 2 thông báo số thứ tự khởi đầu của nó là z. Báo

nhận ở chiều thứ ba của host 1 lại bị trễ. Khi host 1 nhận được báo nhận ACK (seq=y, ACK=x), nó

nhận ra rằng thông báo DATA (seq=x, ACK=z) bị trễ, do đó nó từ bỏ nối kết này.

H7.4 Khung cảnh việc bắt tay 3 chiều.

(a) Hoạt động bình thường.

(b) Bản CR bị trùng lắp.

(c) Cả CR và ACK đều bị trùng lắp

Biên Sọan: Th.s Ngô Bá Hùng – Ks Phạm Thế Phi - 01/2005 138

Tải ngay đi em, còn do dự, trời tối mất!