1 Internet: Các giao thức lớp giao vận [2/11/2004 4:47:00 AM] Lớp Giao vận mơ hình tham chiếu DOD (xem Internet thật ðõn giản số 5/2003) cung cấp khả nãng truyền thông từ chýõng trình ứng dụng tới chýõng trình ứng dụng khác Trong mục này, nghiên cứu giao thức Lớp giao vận (Transport Layer): Giao thức TCP (Transport Control Protocol) Giao thức UDP (User Datagram Protocol) Tất gói tin ðýợc trao ðổi máy tính mạng ðều nhờ vào giao thức ðó 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 Transport Control Protocol (TCP) Trong giao thức Lớp giao vậnặ TẫP giao thức ðýợc sử dụng nhiều nhấtị Ðây giao thức hýớng kết nối ềconnection-oriented), có ọ ðặc trýng dịch vụ chuyển phát ðáng tin cậyị Ðó làắ + Ðịnh hýớng streamắ Khi hai chýõng trình ứng dụng ềcác tiến trình ngýời sử dụngấ truyền khối lýợng lớn liệuặ xem liệu chuỗi bitặ ðýợc chia thành octet ự bitặ mà thýờng gọi byteị ổịch vụ chuyển phát stream tên máy ðích chuyển ðến nõi nhận cách xác chuỗi octet mà máy gửi chuyển ðiị + Kết nối mạch ảoắ Thực việc truyền stream týõng tự nhý thực gọi ðiện thoạiị Trýớc việc truyền bắt ðầuặ hai chýõng trình ứng dụng gửi chýõng trình ứng dụng nhận týõng tác với hệ ðiều hànhặ thơng báo mong muốn có ðýợc việc truyền streamị Về mặt khái niệmặ chýõng trình ứng dụng thực "cuộc gọiở mà phải ðýợc ðầu chấp nhậnặ tức thiết lập kết nối – hay mạch ảo - ðể truyền nhận liệu cách xácị + Việc truyền có vùng ðệmắ ẫác chýõng trình ứng dụng gửi dòng liệu qua mạch ảo cách lặp lại việc chuyển octet liệu ðến phần mềm giao thứcị Khi truyền liệuặ chýõng trình ứng dụng sử dụng kích thýớc ðõn vị truyền thấy thuận tiệnặ octetị Tại ðầu nhậnặ phần mềm giao thức phát chuyển tự ðộng liệu theo ðúng xác thứ tự mà chúng ðýợc gửi ðiặ làm cho chúng sẵn sàng ðýợc sử dụng ðối với chýõng trình ứng dụng nhậnặ sau chúng ðýợc nhận kiểm traị Phần mềm giao thức ðýợc tý phân chia dòng liệu thành gói 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 hõn tối thiểu giao thông mạngặ cài ðặt thýờng tập hợp cho ðủ liệu từ dòng liệu ðể ðặt vào datagram có ðộ lớn thích hợp trýớc truyền qua Internetị + Stream khơng có cấu trúcắ Một ðiều quan trọng dịch vụ TẫP stream khơng xác ðịnh dòng liệu có cấu trúcị Lấy ví dụ, chýõng trình trả lýõng nhân viênặ khơng có cách ðể dịch vụ stream ðánh dấu biên giới ghi nhân viênặ hay ðể xác ðịnh nõi dừng dòng liệu liệu nhân viênị ẫác chýõng trình ứng dụng sử dụng dịch vụ stream phải hiểu nội dung stream thống với ðịnh dạng stream trýớc khởi ðộng việc kết nốiị + Kết nối hai chiềuắ ẫác kết nối ðýợc cung cấp dịch vụ TẫP stream cho phép truyền 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 ðồng thời từ hai chiềuị ẫách kết nối ðýợc gọi song công ềfull deplexấị Từ quan ðiểm tiến trìh ứng dụngặ kết bối hai chiều bao gồm ệ dòng liệu ðộc lập “chạy” theo hai chiều ngýợc nhauặ khơng có týõng tác hay va chạmị ổịch vụ stream cho phép tiến trình ứng dụng chấm dứt ởdòng chảyở theo chiều liệu tiếp tục ởchạyở theo chiều kiaặ làm cho kết nối trở thành chiều ềhalf duplexấị Ýu ðiểm kết nối hai chiều phần mềm giao thức cõ sở gửi thơng tin ðiều khiển cho stream ngýợc trở nguồn datagram ðang chuyển tải liệu theo chiều ngýợc lạiị Ðiều làm giảm bớt giao thông mạngị Ðịnh dạng segment TCP Ðõn vị truyền phần mềm TẫP hai máy ðýợc gọi segmentị ẫác segment ðýợc trao ðổi ðể thiết lập kết nốiặ ðể truyền liệuặ ðể gửi acknowledgement ềthông báo xác nhận nhận liệuấặ ðể thơng báo kích thýớc cửa sổ ềðể tối ýu hố q trình truyền nhận liệuấ ðể ðóng kết nốiị Mỗi segment ðýợc chia thành hai phầnặ phần ðầu phần liệuị Phần ðầuặ có tên phần ðầu TẫP ềTẫP headerấặ chuyển tải thông tin ðiều khiển ðịnh danh cần thiết khácị ẹai vùng quan trọng phần ðầu TẫP SOURẫỡ PORT DESTINATION PORT chứa giá trị cổng TẫP ðể xác ðịnh chýõng trình ứng dụng hai ðầu kết nốiị Mỗi TẫP nhận gói liệu ềgọi packet) từ IPặ TẫP gỡ bỏ phần ðầu IP ðọc phần ðầu TẫP segmet kết quảị Khi TẫP ðọc ổỡSTINừTION PORT, tìm tệp tin chứa thơng tin dịch vụ ðể gửi liệu ðến chýõng trình týõng ứng với số cổng ðóị Vùng SỡQUỡNẫỡ NUMồỡR xác ðịnh vị trí chuỗi byte liệu segmet nõi gửiị Vùng ừẫKNOWLỡổẻỡMỡNT NUMồỡR xác ðịnh số lýợng octet mà nguồn ðang ðợi ðể nhận kế tiếpị Lýu ý SỡQUỡNẫỡ NUMồỡR ðể ðến lýợng liệu theo chiều với segmentặ giá trị ừẫKNOWLỡổẻỡMỡNT NUMBER ðể ðến lýợng liệu theo chiều ngýợc lại với segmentị Vùng ẹLỡN chứa số nguyên ðể xác ðịnh ðộ dài phần ðầu segmentặ ðýợc tính theo bội số ộệ bitị ẫần có giá trị ẹLEN bời vùng OPTIONS có ðộ dài thay ðổiặ tuỳ thuộc vào lựa chọn ðã ðýợc ðýa vàoị Nhý thếặ kích thýớc vùng ðầu TẫP ðýợc thay ðổi tuỳ vào lựa chọn ðã ðýợc lấyị Vùng RỡSỡRVỡổ ðýợc dành riêng ðể sử dụng týõng laiị Có segmet chuyển tải acknowledgementặ có segment khác chuyển tải liệuị ẫũng có segment chuyển tải yêu cầu ðể thiết lập ðóng lại kết nốiị Phần mềm TẫP sử dụng vùng ỏLừẻ ðể xác ðịnh mục ðích nội dung segment Phần mềm TẫP thông báo cho biết liệu sẵn sàng nhận nố gửi segment cách mơ tả kích thýớc vùng ðệm vùng WINDOW 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 Thủ tục bắt tay býớc (Three-way Handshake) cửa sổ trýợt (Sliding Window) Vào ðầu phiên TẫPặ máy tính gửi nhận liệu thực thủ tục bắt tay ộ býớcị Mỗi býớc sử dụng segment có phần ðầu TẫP mà khơng có liệuị Ðầu tiênặ máy tính gửi liệu gửi tới máy nhận liệu segment có thông tin sauắ ẫờ ðồng (ðặt vùng ỏlagấ ðýợc thiết lập trạng thái bật ềonấặ Sequence number cho segment ðýợc gửi sau ðó giá trị kích thýớc vùng ðệm liệu ềwindow sizeấ nóị Kế tiếpặ máy tính nhận liệu hồi ðáp segment với thông tinắ ẫờ ðồng trạng thái bậtặ sequence number thiết lập với giá trị segment dự dịnh nhận từ máy tính gửi liệu kích thýớc vùng ðệm liệuị ẫuối cùngặ máy tính gửi liệu gửi acknowledgemnet với sequence number mà máy tính nhận liệu ðã dự tính býớc thứ haiị Qua thủ tục nàyặ ệ máy tính sẵn sàng cho trình truyền nhận liệuị Trong thủ tục bắt tay ộ býớcặ máy tính ðiều khiển kích thýớc vùng ðệm gửi liệu phù hợp với kích thýớc cửa vùng ðệm nhận liệuị TẫP nhận liệu từ Lớp ứng dụng ềừpplication Layrerấ nóặ chia liệu thành segment gắn cho segment phần ðầu TẫPị TẫP gửi ði segment vừa với kích thýớc vùng ðệm gửi liệu khởi ðộng ðếm ềtimerấ cho segment ðýợc gửiị Nếu ðếm ðáo hạn ềtime outấ mà máy tính nhận liệu chýa trả lời xác nhậnặ máy tính gửi liệu gửi lại segmentị Khi TẫP nhận ðýợc acknowledgement cho segment ðã gửiặ só tiếp tục gửi segment ðang chờ gửiị Sau tất liệu ðã ðýợc gửi ði xác nhậnặ TẫP ðóng phiên làm việc thờiị User Datagram Protocol (UDP) Cũng nhý TẫPặ UổP chuyển phát liệu ứng dụngị UổP giao thức phi kết nối ềconnectionlessấặ không kiểm tra liệu nhý TẫPị UổP cung cấp dịch vụ chuyển phát datagram với phụ phí thấp khơng chứa thơng tin ðiều khiển phần ðầu UổPị Các ứng dụng cần lựa chọn UổP TCP cần dịch vụ chuyển phát liệuị Mặc dù UDP cung cấp dịch vụ tin cậy hõn ềkhơng ðảm bảo xếp thứ tự góiặ kiểm sốt lỗi luồng liệuấ nhýng tính ðõn giản cho phép ứng dụng týõng tác trực tiếp với giao thức IPị Ðịnh dạng gói tin UDP 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 Nhý thấy hình vẽặ phần ðầu UổP không chứa thông tin ðiều khiển với kích thýớc vẻn vẹn ự byteị ồởi không chứa thông tin ðiều khiểnặ UổP tin cậy hõn TẫPị ẫác ứng dụng ðýợc viết ðể sử dụng UổP làm giao thức giao vận phải tự thực số thủ tục kiểm tra việc chuyển phát liệuị Tuy nhiênặ số ứng dụng sử dụng UổP khác lại khơng cần thực việc kiểm tra nàoị Ví dụặ phần lớn ứng dụng thý ðiện tử sử dụng giao thức UổPị ẫhúng việc gửi liệu mà không thực kiểm tra ðể ðảm bảo thông ðiệp ðã tới cách nguyên vẹn máy tính ðíchị Những ứng dụng sử dụng UDP Mặc dù UổP không cung cấp dịch vụ chuyển phát tin cậyặ có nhiều loại ứng dụng thích hợp với việc sử dụng làm giao thức giao vậnị Trong trýờng hợp mà TCP trở nên phức tạpặ chậm ðõn giản không cần thiết, nhà phát triển ứng dụng ðều sử dụng UổP làm giải pháp thay thếị ẫác ứng dụng sử dụng UổP ứng dụng mà thân ðã có phýõng pháp kiểm tra việc chuyển phát liệu hay ứng dụng phù hợp với mơ hình truy vấnểtrả lời ềquery/response) In | Trao ðổi - Nhận xét viết 146 ... kết nối hai chiều phần mềm giao thức cõ sở gửi thông tin ðiều khiển cho stream ngýợc trở nguồn datagram ðang chuyển tải liệu theo chiều ngýợc lạiị Ðiều làm giảm bớt giao thông mạngị Ðịnh dạng... chứa thơng tin ðiều khiểnặ UổP tin cậy hõn TẫPị ẫác ứng dụng ðýợc viết ðể sử dụng UổP làm giao thức giao vận phải tự thực số thủ tục kiểm tra việc chuyển phát liệuị Tuy nhiênặ số ứng dụng sử... cung cấp dịch vụ chuyển phát tin cậyặ có nhiều loại ứng dụng thích hợp với việc sử dụng làm giao thức giao vậnị Trong trýờng hợp mà TCP trở nên phức tạpặ chậm ðõn giản không cần thiết, nhà phát