Đây là bài Tiểu luận TÌM HIỂU VỀ CÁC VẤN ĐỀ LIÊN QUAN ĐẾN TCP VÀ UDPTìm hiểu cụ thể của từng giao thức , sự khác nhau giữa 2 giao thức này như thế nào . Chức năng của từng giao thức. Phân loại các giao thức cụ thể
Trang 1BÁO CÁO ĐỒ ÁN TÌM HIỂU VỀ CÁC VẤN ĐỀ LIÊN QUAN ĐẾN
Trang 2Để hoàn thành học phần “ Đồ Án ” này, em xin gửi lời cảm ơn chân thành tới quý thầy giáo, cô giáo trường Đại học Đà Lạt nói chung và quý thầy, cô giáo
ở khoa Công nghệ thông tin nói riêng, đã nhiệt tình giảng dạy và giúp đỡ chúng
em trong suốt thời gian qua Các quý thầy, cô giáo không những cho chúng em trithức khoa học mà còn giúp chúng em hiểu biết thêm nhiều điều về cuộc sống và
mở mang tầm nhìn ra thế giới xung quanh bằng chính tâm huyết nghề nghiệp và kinh nghiệm sống của mình Những kiến thức mà em tiếp thu được sẽ là hành trang, là vốn sống phục vụ cho tương lai và mang theo suốt cuộc đời của chính bản thân em
Đặc biệt, em xin chân thành cảm ơn Thầy giáo Vũ Minh Quan – người đã trực tiếp hướng dẫn, tận tình giúp đỡ em trong quá trình thực hiện nghiên cứu và viết đề tài Đồ Án này Thầy luôn luôn chia sẻ những kinh nghiệm cũng như tri thức mà thầy có được giành cho chính những sinh viên của mình Một lần nữa,
em chân thành cảm ơn thầy rất nhiều !
Mặc dù đã có nhiều cố gắng, song do khả năng còn hạn chế và do tài liệu cũng như thời gian có hạn Vì vậy cho nên đề tài của em không thể tránh khỏi những thiếu sót, rất mong nhận được những ý kiến đóng góp quý báu của quý thầy cô và các bạn giúp cho em có thể khắc phục và hoàn thiện đồ án một cách tốt nhất và hoàn chỉnh nhất
Em xin chân thành cảm ơn !
Trang 3
Đà Lạt, ngày … tháng …… năm 2013
Giáo viên hướng dẫn
Trang 4Sinh viên thực hiện:
tầng ứng dụng và các tầng còn lại trong mô hình OSI
Phần mềm và công cụ sử dụng:
Dự kiến kết quả đạt được
Đà Lạt, ngày … tháng … năm 2013
Trần Thị Thắm
Trang 6MỞ ĐẦU 1
Chương I : TỔNG QUAN 1
I MÔ HÌNH OSI 1
II CHỨC NĂNG MÔ HÌNH OSI: 3
III ĐIỂM THUẬN LỢI CỦA MÔ HÌNH OSI 3
IV CẤU TRÚC CỦA MÔ HÌNH OSI 3
4.1 TẦNG VẬT LÝ (PHYSICALLAYER) 4
4.2 TẦNG LIÊN KẾT DỮ LIỆU (DATA LINK LAYER) 5
4.3 TẦNG MẠNG(NETWORK LAYER) 6
4.4 TẦNG VẬN CHUYỂN (TRANSPORT LAYER) 6
4.5 TẦNG PHIÊN (SESSION LAYER) 8
4.6 TẦNG TRÌNH DIỄN (PRESENTATION LAYER) 9
4.7 TẦNG ỨNG DỤNG (APPLICATION LAYER) 9
Chương 2: TẦNG VẬN CHUYỂN (TRANSPORT LAYER) 9
I VAI TRÒ VÀ CÁC CHỨC NĂNG CỦA TẦNG VẬN CHUYỂN 9
II CÁC GIAO THỨC CHUẨN CHO TẦNG VẬN CHUYỂN 10
III CÁC DỊCH VỤ VẬN CHUYỂN 11
IV THÀNH PHẦN CỦA GIAO THỨC VẬN CHUYỂN 11
1 ĐÁNH ĐỊA CHỈ (ADDRESSING) 11
1.1 Port - Cổng giao tiếp 11
1.2.TELNET 14
2 THIẾT LẬP KẾT NỐI (CONNECTION ESTABLISHMENT) 15
3 QUY TRÌNH BẮT TAY 3 BƯỚC (3-WAY HANDSHAKE) 16
Trang 71.2 Cách thức truyền dữ liệu qua giao thức TCP 19
1.3 Cấu trúc gói tin TCP 21
1.4 Truyền dữ liệu 25
1.5 Thiết lập và kết thúc kết nối TCP 27
1.5.1 Thiết lập kết nối : 27
1.5.2 Kết thúc kết nối : 34
1.6 Điều khiển dòng truyền (Cửa sổ trượt – Sliding window ) 37
1.6.1 Hoạt động 38
1.6.2 Phân phối tin cậy và thứ tự 39
1.6.3 Điều khiển luồng 39
1.6.4 Vấn đề truyền tải thông tin theo hai chiều (Duplex) 40
1.7 Điều khiển lưu lượng trong TCP 40
1.7.1 Khởi động chậm 41
1.7.2 Tính thời gian khứ hồi một cách thông minh 42
1.8.Các cổng TCP 44
1.9 Ứng dụng 44
1.10 Sự phát triển của TCP 45
2 GIAO THỨC UDP 46
2.1.Khái niệm 46
2.2 Cấu trúc gói tin 47
2.3 Cổng 48
2.4 Truyền dữ liệu 48
2.5 UDP Checksum 48
2.6 Ứng dụng 50
VI SO SÁNH 2 GIAO THỨC TCP VÀ UDP 50
1 GIỐNG NHAU : 50
Trang 8 Giao thức UDP : 51
MỤC LỤC HÌNH Hình 1: Mô hình OSI 2
Hình 2: Cấu trúc của mô hình OSI 4
Hình 3: Danh sách các port thông dụng 13
Hình 4: Ứng dụng trong cuộc sống 14
Hình 5: Quá trình bắt tay 3 bước của TCP 17
Hình 6: Mô hình hoạt động của giao thức TCP 20
Hình 7 : Cấu trúc gói tin TCP với phần tiêu đề giả 22
Hình 8: Cấu trúc của TCP 22
Hình 9 :Cấu trúc của TCP 24
Hình 10 : Quá trình bắt tay 3 bước của TCP (three- way Handshake) 28
Hình 11: Gói tin đầu tiên của quá trình bắt tay 3 bước 29
Hình 12: Gói tin kế tiếp của quá trình bắt tay 3 bước 31
Hình 13: Gói tin thứ 3 của quá trình bắt tay 3 bước 33
Hình 14: Gói tin đầu tiên của quá trình kết thúc kết nối 34
Hình 15: Gói tin kế tiếp của quá trình kết thúc kết nối 35
Hình 16: Gói tin kế tiếp của quá trình kết thúc kết nối 35
Hình 17: Gói tin cuối cùng của quá trình kết thúc kết nối 36
Hình 18: Quá trình thực hiện của cửa sổ trượt 38
Hình 19 : Minh họa quá trình hoạt động của cửa sổ trượt 39
Hình 20: Sơ đồ mật mã dữ liệu 41
Hình 21 : Sự tăng của cửa sổ trong cơ chế khởi động chậm 43
Trang 10Từ viết
tắt
Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt
Communications Control Procedure
Các thủ tục điều khiển truyền số liệu tiên tiến
Interconnection Reference Model
Mô hình tham chiếu kết nối các hệ thống mở
Architecture
SNA là một đặc tả gồm rất nhiều tài liệu
mô tả kiến trúc của mạng xử lý dữ liệu phân tán
Sợi phân phối dữ liệu giao diện
Protocol
Giao thức truyền File
Unit
khối số liệu giao thức truyền tải
một gói tin chạy từ source đến destination và quay ngược lại
Trang 11trong Visual Studio gồm 3 đĩa CD
dụng để lấy địa chỉ IP từ một máy server
Trang 12MỞ ĐẦU
CHƯƠNG I : TỔNG QUAN
Ngày nay công nghệ thông tin ngày càng được ứng dụng nhiều trong đời sống Vì vậy vai trò của chiếc máy tính ngày càng được nâng cao, cùng với nó, các công nghệ được từ những chiếc máy tính ngày càng được mở rộng ra nhiều lĩnh vực Mạng máy tính
là một ngành khoa học mới được phát triển trong vài chục năm trở lại đây và đang trên con đường phát triển mạnh mẽ Muốn nắm bắt được công nghệ hiện đại trước hết phải hiểu được bản chất của một hệ thống mạng máy tính - phương tiện không thể thiếu đối với những người làm việc trong ngành Công nghệ thông tin Mạng máy tính và cấu trúc của nó đã được tạo ra như thế nào, thành phần của một mạng máy tính bao gồm những gì.Sau đây chúng tôi sẽ trình bày nội dung để giải đáp những câu hỏi trên
Trong các ngành tin học và viễn thông, tầng vận chuyển là tầng thứ tư trong bảy tầng của
mô hình OSI(Open Systems Interconnection Reference Model - Mô hình tham chiếu kết nối các hệ thống mở).Tầng này chịu trách nhiệm đáp ứng các đòi hỏi về dịch vụ của tầng phiên và đưa ra các yêu cầu dịch vụ đối với tầng mạng
I MÔ HÌNH OSI
Sự phát triển các mạng thời kỳ đầu không được tổ chức và diễn ra theo nhiều cách.Những năm đầu cả thập niên 1980 đã chứng kiến sự gia tăng mạnh mẽ về số lượng và kích thước của các mạng Khi các công ty bắt đầu nhận thức được ưu điểm của việc sử dụng công nghệ mạng, các mạng được thêm vào và được mở rộng nhanh chóng khi các công nghệ mạng mới được giới thiệu
Vào giữa thập niên 1980, các công ty bắt đầu vấp phải các khó khăn bởi sự mở rộng nhanh chóng Cũng giống như con người bất đồng ngôn ngữ đã gặp khó khăn khi tiếp xúc với người khác, điều khó khăn cho các mạng sử dụng các đặc tả và hiện thực khác nhau muốn trao đổi thông tin với nhau Vấn đề khó khăn tương tự xảy ra vs các công ty đã phát triển riêng hay một nhóm công ty kiểm soát tất cả việc sử dụng công
Trang 13nghệ này Các công nghệ mạng tuân thủ nghiêm ngặt các luật định riêng có thể không thông tin được với các công nghệ tuân theo các quy định khác.
Để giải quyết vấn đề bất tương thích mạng, tổ chức tiêu chuẩn hóa quốc tế(ISO)
đã nghiên cứu các mô hình thiết lập mạng như Digital Equipment Corporation
networking(DECnet), Systems Network Architecture (SNA) và TCP/IP để tìm ra một số luật định có thể áp dụng một cách tổng quát cho tất cả các mạng Sử dụng nghiên cứu này, ISO đã tạo ra một mô hình mạng, qua đó giúp các nhà cung cấp trang thiết bị tạo ra các mạng có thể tương thích tốt với các mạng khác
Mô hình tham chiếu liên kết các hệ thống mở OSI (Theo OSI reference model) đã được công bố vào năm 1984, đây là một mô hình mạng có tính chất mô tả được tạo ra bởiOSI Nó cung cấp cho nhà chế tạo một tập tiêu chuẩn nhằm đảm bảo khả năng tương thích và khả năng liên kết hoạt động tốt hơn giữa các công nghệ mạng khác nhau được giới thiệu bởi các công ty trên khắp thế giới
Mô hình tham chiếu OSI đã trở thành mô hình chính thức cho hoạt động truyền thông mạng Mặc dù vẫn tồn tại một số các mô hình khác, nhưng hầu hết các nhà chế tạo đều liên hệ các sản phẩm của họ với mô hình tham chiếu OSI Đây là thực tế khá đặc biệtkhi nhà chế tạo muốn huấn luyện khách hàng sử dụng sản phẩm của họ Mô hình này được xem như một công cụ tốt nhất sẵn có cho việc giảng dạy về truyền nhận dữ liệu trênmột mạng
Trang 14Hình 1: Mô hình OSI
Mô hình OSI (OPEN SYSTEMS INTERCONNECTION REFERENCE MODEL, viết ngắn là OSI Model hoặc OSI Reference Model) – tạm dịch là Mô hình tham chiếu kết nối các hệ thống mở – là một thiết kế dựa vào nguyên lý tầng cấp, lý giải một cách trừu tượng kỹ thuật kết nối truyền thông giữa các máy vi tính và thiết kế giao thức mạng giữa chúng Mô hình này được phát triển thành một phần trong kế hoạch kết nối các hệ thống mở (Open Systems Interconnection) do ISO và IUT-T khởi xướng Nó còn được gọi là mô hình bảy tầng của OSI
II CHỨC NĂNG MÔ HÌNH OSI:
Mô hình OSI phân chia chức năng của một giao thức ra thành một chuỗi các tầng cấp Mỗi một tầng cấp có một đặc tính là nó chỉ sử dụng chức năng của tầng dưới nó, đồng thời chỉ cho phép tầng trên sử dụng các chức năng của mình Một hệ thống cài đặt các giao thức bao gồm một chuỗi các tầng nói trên được gọi là “chồng giao thức”
(protocol stack) Chồng giao thức có thể được cài đặt trên phần cứng, hoặc phần mềm, hoặc là tổ hợp của cả hai Thông thường thì chỉ có những tầng thấp hơn là được cài đặt trong phần cứng, còn những tầng khác được cài đặt trong phần mềm
III ĐIỂM THUẬN LỢI CỦA MÔ HÌNH OSI
năng “plug and play” và tích hợp nhiều nhà cung cấp sản phẩm
IV CẤU TRÚC CỦA MÔ HÌNH OSI
Mô hình OSI bao gồm 7 lớp, mỗi lớp thực hiện chức năng riêng trong hoạt động kết nối mạng Trong đó: 4 lớp dưới định nghĩa cách thức thiết lập đầu cuối trên thiết bị phần cứng để kết nối, trao đổi dữ liệu, 3 lớp trên để phát triển ứng dụng, giao tiếp người dùng
Trang 15Hình 2: Cấu trúc của mô hình OSI
4.1 Tầng vật lý (Physicallayer)
Lớp vật lý, lớp thấp nhất của mô hình OSI, là lớp có liên quan với truyền và nhận dòng cấu trúc nguyên bit trên một phương tiện vật lý Mô tả điện/quang, cơ khí và chức năng giao diện phương tiện vật lý và thực hiện các tín hiệu cho tất cả các lớp cao hơn.Cung cấp:
ứng tốt hơn các đặc tính phương tiện vật lý và hỗ trợ đồng bộ hóa bit và khung Nó xác định:
bình?
cho?
Trang 16 Truyền kỹ thuật: xác định cho dù các bit mã hóa sẽ được truyền bởi baseband (kỹ thuật số) hoặc băng thông rộng tín hiệu
cho các phương tiện vật lý, và xác định:
đậu tín hiệu, bằng cách sử dụng một phương tiện vật lý cho
Tầng vật lý định nghĩa tất cả các đặc tả về điện và vật lý cho các thiết bị Trong đóbao gồm bố trí của các chân cắm (pin), các hiệu điện thế, và các đặc tả về cáp nối (cable).Các thiết bị tầng vật lý bao gồm Hub, bộ lặp (repeater), thiết bị tiếp hợp mạng (network adapter) và thiết bị tiếp hợp kênh máy chủ (Host Bus Adapter)- (HBA dùng trong mạng lưu trữ (Storage Area Network))
Chức năng và dịch vụ căn bản được thực hiện bởi tầng vật lý bao gồm:
truyền dẫn
quả giữa nhiều người dùng Chẳng hạn giải quyết tranh chấp tài nguyên (contention)
và điều khiển lưu lượng
các thiết bị người dùng và các tín hiệu tương ứng được truyền qua kênh truyền thông (communication channel)
Cáp (bus) SCSI song song hoạt động ở tầng cấp này Nhiều tiêu chuẩn khác nhau của Ethernet dành cho tầng vật lý cũng nằm trong tầng này, Ethernet nhập tầng vật lý với tầng liên kết dữ liệu vào làm một Điều tương tự cũng xảy ra đối với các mạng cục bộ như Token ring, FDDI và IEEE 802.11
Trang 174.2 Tầng liên kết dữ liệu (Data link layer)
Tầng liên kết dữ liệu cung cấp các phương tiện có tính chức năng và quy trình để truyền dữ liệu giữa các thực thể mạng, phát hiện và có thể sửa chữa các lỗi trong tầng vật
lý nếu có Cách đánh địa chỉ mang tính vật lý, nghĩa là địa chỉ (địa chỉ MAC) được mã hóa cứng vào trong các thẻ mạng (network card) khi chúng được sản xuất Hệ thống xác định địa chỉ này không có đẳng cấp (flat scheme) Chú ý: Ví dụ điển hình nhất là
Ethernet Những ví dụ khác về các giao thức liên kết dữ liệu (data link protocol) là các giao thức HDLC, ADCCP dành cho các mạng điểm-tới-điểm hoặc mạng chuyển mạch gói (packet-switched networks) và giao thức Aloha cho các mạng cục bộ Trong các mạng cục bộ theo tiêu chuẩn IEEE 802, và một số mạng theo tiêu chuẩn khác, chẳng hạn FDDI, tầng liên kết dữ liệu có thể được chia ra thành 2 tầng con: tầng MAC (Media Access Control – Điều khiển Truy nhập Đường truyền) và tầng LLC (Logical Link Control – Điều khiển Liên kết Lôgic) theo tiêu chuẩn IEEE 802.2
Tầng liên kết dữ liệu chính là nơi các cầu nối (bridge) và các thiết bị chuyển mạch (switches) hoạt động Kết nối chỉ được cung cấp giữa các nút mạng được nối với nhau trong nội bộ mạng Tuy nhiên, có lập luận khá hợp lý cho rằng thực ra các thiết bị này thuộc về tầng 2,5 chứ không hoàn toàn thuộc về tầng 2
Trang 18Tầng mạng thực hiện chức năng định tuyến.Các thiết bị định tuyến (router) hoạt động tại tầng này — gửi dữ liệu ra khắp mạng mở rộng, làm cho liên mạng trở nên khả thi (còn có thiết bị chuyển mạch (switch) tầng 3, còn gọi là chuyển mạch IP) Đây là một
hệ thống định vị địa chỉ lôgic (logical addressing scheme) – các giá trị được chọn bởi kỹ
sư mạng Hệ thống này có cấu trúc phả hệ Ví dụ điển hình của giao thức tầng 3 là giao thức IP
Ngoài ra tầng mạng còn có một số chức năng như thiết lập, duy trì và giải phóng các liên kết logic, kiểm soát lỗi, kiểm soát luồng dữ liệu, phân kênh, cắt hợp dữ liệu
4.4 Tầng vận chuyển (Transport Layer)
Tầng vận chuyển là tầng cao nhất trong nhóm 4 tầng thấp của mô hình OSI Nó cung cấp dịch vụ truyền dữ liệu sao cho các chi tiết cụ thể của phương tiện truyền thông
sử dụng bên dưới trở nên trong suốt đối với các tầng cao Chính vì thế nên tầng này rất phức tạp Nó phải có khả năng tương thích với một phạm vi rất rộng các đặc trưng của mạng Phải biết được yêu cầu chất lượng dịch vụ của người sử dụng, biết được khả năng cung cấp dịch vụ của mạng bên dưới Nói một cách cụ thể thì tầng vận chuyển cung cấp mức kết nối bổ sung cho tầng trên, bảo đảm gói truyền không phạm lỗi Tầng này đóng gói thông điệp, chia thông điệp dài thành nhiều gói và cách hợp gói nhỏ thành một bộ Tại nơi nhận thì tầng này mở gói lắp ghép thành thông điệp gốc Nó kiểm soát lưu lượng,
xử lý lỗi và các thao tác truyền nhận gói.Tầng vận chuyển cung cấp dịch vụ chuyên dụng chuyển dữ liệu giữa các người dùng tại đầu cuối, nhờ đó các tầng trên không phải quan tâm đến việc cung cấp dịch vụ truyền dữ liệu đáng tin cậy và hiệu quả Tầng vận chuyển kiểm soát độ tin cậy của một kết nối được cho trước Một số giao thức có định hướng trạng thái và kết nối (state and connection orientated) Có nghĩa là tầng vận chuyển có thểtheo dõi các gói tin và truyền lại các gói bị thất bại Một ví dụ điển hình của giao thức tầng 4 là TCP Tầng này là nơi các thông điệp được chuyển sang thành các gói tin TCP hoặc UDP Ở tầng 4 địa chỉ được đánh là address ports, thông qua address ports để phân biệt được ứng dụng trao đổi
Trang 19Tầng vận chuyển, đảm bảo rằng thư được gửi lỗi-Việt, theo thứ tự, và không có thiệt hại Nó làm giảm các giao thức lớp cao hơn từ bất kỳ mối quan tâm với việc chuyển giao dữ liệu giữa họ và đồng nghiệp của họ.
Kích thước và độ phức tạp của một giao thức giao thông vận tải phụ thuộc vào loại bản ghi dịch vụ, nó có thể nhận được từ các lớp mạng Cho một đáng tin cậy mạng lớp với khả năng mạch ảo, một vận chuyển tối thiểu lớp là cần thiết Nếu lớp mạng là không đáng tin cậy và/hoặc chỉ hỗ trợ cùng, giao thức giao thông vận tải nên bao gồm mở rộng phát hiện lỗi và phục hồi
Tầng vận chuyển cung cấp:
các đơn vị nhỏ hơn (nếu không phải đã nhỏ đủ), và vượt qua các đơn vị nhỏ hơn xuống mạng lớp
với acknowledgments
lại-off" khi bộ đệm thông báo không có sẵn
liên kết hợp lý và giữ theo dõi của thư nào thuộc về phiên họp đó (xem tầng phiên).Thông thường, tầng vận chuyển có thể chấp nhận tin thư thoại tương đối lớn, nhưng cũng có những giới hạn kích thước thư nghiêm ngặt áp đặt bởi các mạng (hoặc lớp thấp)
Do đó, tầng vận chuyển phải chia các tin thư thoại vào các đơn vị nhỏ hơn, hoặc khung prepending một tiêu đề cho mỗi khung
Thông tin tiêu đề lớp giao thông vận tải sau đó phải bao gồm kiểm soát thông tin, chẳng hạn như tin thư thoại Bắt đầu và cờ thư kết thúc, để kích hoạt tầng vận chuyển bên kia để nhận ra ranh giới tin thư thoại Ngoài ra, nếu các lớp thấp hơn không duy trì chuỗi, các tiêu đề giao thông vận tải phải chứa thông tin chuỗi để cho phép các tầng vận chuyển vàocuối nhận để nhận được các mảnh lại với nhau theo thứ tự đúng trước khi bàn giao tin thưthoại nhận được vào các lớp ở trên
Trang 20Kết thúc để kết thúc lớp
Không giống như các lớp thấp hơn "con" giao thức mà nằm giữa ngay lập tức các nút chọn một lân cận, tầng vận chuyển và các lớp ở trên là đúng sự thật "nguồn đến" hoặckết thúc để kết thúc lớp, và là không quan tâm với các chi tiết của các thiết bị thông tin liên hệ cơ bản Giao thông vận tải phần mềm lớp (và phần mềm trên nó) trên các nguồn trạm mang một cuộc trò chuyện với các phần mềm tương tự trên điểm đến bởi sử dụng tiêu đề thư và kiểm soát thư
4.5 Tầng phiên (Session Layer)
Tầng phiên kiểm soát các (phiên) hội thoại giữa các máy tính Tầng này thiết lập, quản lý và kết thúc các kết nối giữa trình ứng dụng địa phương và trình ứng dụng ở xa Tầng này còn hỗ trợ hoạt động song công (duplex) hoặc bán song công (half-duplex) hoặc đơn công (Single) và thiết lập các qui trình đánh dấu điểm hoàn thành
(checkpointing) – giúp việc phục hồi truyền thông nhanh hơn khi có lỗi xảy ra, vì điểm
đã hoàn thành đã được đánh dấu – trì hoãn (adjournment), kết thúc (termination) và khởi động lại (restart) Mô hình OSI uỷ nhiệm cho tầng này trách nhiệm “ngắt mạch nhẹ nhàng” (graceful close) các phiên giao dịch (một tính chất của giao thức kiểm soát vận chuyển TCP) và trách nhiệm kiểm tra và phục hồi phiên, đây là phần thường không được dùng đến trong bộ giao thức TCP/IP
4.6 Tầng trình diễn (Presentation Layer)
Lớp trình diễn hoạt động như tầng dữ liệu trên mạng lớp này trên máy tính truyền
dữ liệu làm nhiệm vụ dịch dữ liệu được gửi từ tầng Application sang dạng Fomat chung
Và tại máy tính nhận, lớp này lại chuyển từ Fomat chung sang định dạng của tầng
Application Lớp thể hiện thực hiện các chức năng sau: – Dịch các mã kí tự từ ASCII sang EBCDIC – Chuyển đổi dữ liệu, ví dụ từ số interger sang số dấu phảy động – Nén
dữ liệu để giảm lượng dữ liệu truyền trên mạng – Mã hoá và giải mã dữ liệu để đảm bảo
sự bảo mật trên mạng
4.7 Tầng ứng dụng (Application Layer)
Tầng ứng dụng là tầng gần với người sử dụng nhất Nó cung cấp phương tiện cho người dùng truy nhập các thông tin và dữ liệu trên mạng thông qua chương trình ứng
Trang 21dụng Tầng này là giao diện chính để người dùng tương tác với chương trình ứng dụng,
và qua đó với mạng Một số ví dụ về các ứng dụng trong tầng này bao gồm Telnet, Giao thức truyền tập tin FTP và Giao thức truyền thư điện tử SMTP, HTTP, X.400 Mail
remote
Chương 2: TẦNG VẬN CHUYỂN (TRANSPORT LAYER)
I VAI TRÒ VÀ CÁC CHỨC NĂNG CỦA TẦNG VẬN CHUYỂN
Tầng vận chuyển (transport layer) là tầng cơ sở mà ở đó một máy tính của mạng chia sẻ thông tin với một máy khác Tầng vận chuyển đồng nhất mỗi trạm bằng một địa chỉ duy nhất và quản lý sự kết nối giữa các trạm Tầng vận chuyển cũng chia các gói tin lớn thành các gói tin nhỏ hơn trước khi gửi đi Thông thường tầng vận chuyển đánh số các gói tin và đảm bảo chúng chuyển theo đúng thứ tự
Tầng vận chuyển cung cấp các chức năng cần thiết giữa tầng mạng và các tầng trên,
nó là tầng cao nhất có liên quan đến các giao thức trao đổi dữ liệu giữa các hệ thống mở
Nó cùng các tầng dưới cung cấp cho người sử dụng các phục vụ vận chuyển
Tầng vận chuyển là tầng cuối cùng chịu trách nhiệm về mức độ an toàn trong truyền dữ liệu nên giao thức tầng vận chuyển phụ thuộc rất nhiều vào bản chất của tầng mạng Người ta chia giao thức tầng mạng thành các loại sau:
+) Mạng loại A: Có tỷ suất lỗi và sự cố có báo hiệu chấp nhận được (tức là chất lượng chấp nhận được) Các gói tin được giả thiết là không bị mất Tầng vận chuyển không cần cung cấp các dịch vụ phục hồi hoặc sắp xếp thứ tự lại
+) Mạng loại B: Có tỷ suất lỗi chấp nhận được nhưng tỷ suất sự cố có báo hiệu lại không chấp nhận được Tầng vận chuyển phải có khả năng phục hồi lại khi xảy ra
sự cố
+)Mạng loại C: Có tỷ suất lỗi không chấp nhận được (không tin cậy) hay là giao
Trang 22thức không liên kết Tầng vận chuyển phải có khả năng phục hồi lại khi xảy ra lỗi
và sắp xếp lại thứ tự các gói tin
Dòng dữ liệu tầng trên tầng vận chuyển là một kết nối logic giữa các điểm cuối của mạng, và cung cấp các dịch vụ vận chuyển từ một trạm đến một đích nào đó, nên còn được xem như là dịch vụ cuối đến cuối
II CÁC GIAO THỨC CHUẨN CHO TẦNG VẬN CHUYỂN
Trên cơ sở loại giao thức tầng mạng chúng ta có 5 lớp giao thức tầng vận chuyển đó là:
+) Giao thức lớp 0 (Simple Class - lớp đơn giản): cung cấp các khả năng rất đơn giản để
thiết lập liên kết, truyền dữ liệu và hủy bỏ liên kết trên mạng "có liên kết" loại A Nó có khả năng phát hiện và báo hiệu các lỗi nhưng không có khả năng phục hồi
+) Giao thức lớp 1 (Basic Error Recovery Class - Lớp phục hồi lỗi cơ bản): dùng với các
loại mạng B, ở đây các gói tin (TPDU) được đánh số Ngoài ra giao thức còn có khả năng báo nhận cho nơi gửi và truyền dữ liệu khẩn So với giao thức lớp 0 giao thức lớp 1
có thêm khả năng phục hồi lỗi
+) Giao thức lớp 2 (Multiplexing Class - lớp dồn kênh) là một cải tiến của lớp 0 cho
phép dồn một số liên kết chuyển vận vào một liên kết mạng duy nhất, đồng thời có thể kiểm soát luồng dữ liệu để tránh tắc nghẽn Giao thức lớp 2 không có khả năng phát hiện
và phục hồi lỗi Do vậy nó cần đặt trên một tầng mạng loại A
+) Giao thức lớp 3 (Error Recovery and Multiplexing Class - lớp phục hồi lỗi cơ bản và
dồn kênh) là sự mở rộng giao thức lớp 2 với khả năng phát hiện và phục hồi lỗi, nó cần đặt trên một tầng mạng loại B
+) Giao thức lớp 4 (Error Detection and Recovery Class - Lớp phát hiện và phục hồi lỗi)
là lớp có hầu hết các chức năng của các lớp trước và còn bổ sung thêm một số khả năng khác để kiểm soát việc truyền dữ liệu
III CÁC DỊCH VỤ VẬN CHUYỂN
Tầng vận chuyển cung cấp truyền thông logic giữa các tiến trình ứng dụng chạy trên các trạm khác nhau
Trang 23Các giao thức vận chuyển chạy trên các hệ thống đầu cuối.
Bên gửi: chia các thông điệp tầng ứng dụng thành các đoạn, rồi đưa chúng xuống cho
tầng mạng
Bên nhận: ráp nối các đoạn lại thành các thông điệp rồi đưa lên cho tầng ứng dụng.
Có nhiều giao thức ở tầng vận chuyển để phục vụ cho tầng ứng dụng
TCP và UDP là 2 giao thức ở tầng vận chuyển được sử dụng nhiều trên internet
IV THÀNH PHẦN CỦA GIAO THỨC VẬN CHUYỂN
1 Đánh địa chỉ (Addressing).
1.1 Port - Cổng giao tiếp.
Trong giao thức TCP và UDP, port là số nguyên 16 bit được chèn vào phần đầu (header) của mỗi gói tin Chẳng hạn, phía người dùng (client) có thể yêu cầu một máy chủ nào đó trên Internet cung cấp dịch vụ chia sẻ tập tin (file) qua máy chủ FTP Để đáp ứng yêu cầu này, lớp phần mềm TCP trên máy của bạn phải nhận diện được port số 21 (đăng ký sẵn cho dịch vụ FTP) trong số các port 16 bit số nguyên được ghép theo gói tin yêu cầu của bạn Tại máy chủ, lớp TCP sẽ đọc port 21 và chuyển tiếp yêu cầu đến máy chủ FTP
Hay nói cách khác, với một địa chỉ IP, chúng ta chỉ có thể xác định được một máy tính duy nhất trên mạng, tuy nhiên khi một máy tính chạy nhiều dịch vụ khác nhau thì chúng phải được phân biệt bởi khái niệm port Ví dụ, máy chủ A (Server A) có dịch vụ web, DNS và FTP server, có địa chỉ IP là 210.245.126.14 Các máy tính khác khi muốn đến Server A thì cần đến địa chỉ IP (hay tên miền), nhưng để phân biệt dịch vụ là web, DNS hay FTP, cần xác định thêm port Chẳng hạn, khi máy B muốn truy nhập dịch vụ web trên server A, trong gói tin gửi đi, IP đích sẽ là 210.245.126.14 và port đích sẽ là 80 Cùng lúc đó có máy C truy nhập đến dịch vụ DNS trên server A thì trong gói tin IP gửi
đi, IP đích vẫn là 210.245.126.14 nhưng port đích sẽ là 53 Tương tự, máy D truy cập đến
Trang 24dịch vụ FTP trên server A, IP đích sẽ là 210.245.126.14 và port là 21 Thông thường các ứng dụng thường ẩn các port này để giảm tính phức tạp của giao thức TCP/IP.
Có tất cả 65535 cổng (port) và được chia thành 3 đoạn: Well Known Port (WKP), Registered Port (RP) và Dynamic/Private Port (D/PP) WKP gồm các port từ 0 đến 1023
và được giữ cho các ứng dụng phổ biến như web (port 80), mail (port 25), ftp (port 21)
RP gồm các port từ 1024 đến 49151 Còn D/PP là các port từ 49152 đến 65535 IANA qui định WKP và RP phải được đăng ký với IANA (iana.org) trước khi sử dụng
Các cổng phổ biến (Well Known Port 0-1023)
triển khai được các dịch vụ, chẳng hạn web server, ftp server hệ thống của bạn phải mở các port tương ứng Ứng với mỗi thiết bị định tuyến (router) của từng hãng, bạn sẽ có cách mở port khác nhau Để dễ dàng mở các port cũng như hướng dẫn chi tiết trên từng router
Một điều cần lưu ý trước khi mở port là bạn nên kiểm tra lại hệ thống đã mở sẵn cổng
này để biết máy của bạn đang sử dụng và "lắngnghe" những port nào.
Trang 25- Danh sách các port thông dụng.
Hình 3: Danh sách các port thông dụng
Cổng đăng ký (Registered port: 1024–49151)
Các cổng TCP và UDP có số từ 1024 đến 49151 được gọi là các cổng đăng ký (registered ports) IANA quản lý danh sách các dịch vụ sử dụng các port trong tầm số này
để giảm thiểu việc sử dụng trùng nhau Không giống nhu các port có số thấp hơn 1023), những nhà phát triển dịch vụ TCP/UDP mới có thể chọn một số mới để đăng ký với IANA thay vì dùng trùng số đã đăng ký
Trang 26(0-Cổng động / (0-Cổng riêng (Dynamic/ Private Port: 49152–65535)
Các cổng TCP và UDP có số bắt đầu từ 49152 đến 65535 được gọi là port động (dynamic port), port riêng (private port) hay port tạm (ephemeral port) IANA không quản lý Dynamic port cũng như không giới hạn việc sử dụng của người dùng Các dịch
vụ có thể chọn một hoặc vài port ngẫu nhiên miễn phí trong tầm số này khi cần truyền trên nhiều socket
Ứng dụng
Bạn phải cho biết server đang lắng nghe (listening) ở port nào để client biết và gửi yêu cầu Router trong mô hình bên dưới giữ vai trò như một người gác cổng Nó sẽ mở các port dịch vụ trong mạng
Trang 27TELNET (phần đông trong số đó là những cái đang được dùng rất phổ biến) Trong số những mở rộng còn lại, những cái có tác dụng nhất, rất có thể là những cái vốn là những
dự thảo tiêu chuẩn, lại là những cái đang trên đà trở thành tiêu chuẩn của IETF
2 Thiết lập kết nối (Connection establishment).
Thiết lập một kết nối tưởng chừng là một công việc dễ dàng, nhưng thực sự nó rất phức tạp Thoạt nhìn, nó là phương tiện truyền tải để gửi một TPDU (Transport Protocol
Trang 28Data Unit) yêu cầu kết nối đến đích và chờ đợi cho một kết nối chấp nhận trả lời Vấn đề xảy ra khi cả mạng có thể bị mất, lưu trữ và trùng lặp các gói tin Việc này gây ra những rắc rối nghiêm trọng.
Giả sử rằng subnet sử dụng các datagram bên trong và mỗi gói tin được truyền theo một route khác nhau Một vài gói tin có thể bị kẹt khi tắc nghẽn xảy ra bên trong subnet
và phải mất 1 khoảng thời gian để đến Điều đó có nghĩa là chúng bị giữ lại trong subnet
và có thể thoát ra được vào một thời điểm nào đó sau tắc nghẽn Để giải quyết vấn đề nàychúng ta đưa ra 2 cách sau:
địa chỉ vận chuyển được yêu cầu thì một cái mới được tạo ra Khi một kết nối được giải phóng, địa chỉ được bỏ đi và không bao giờ sử dụng một lần nữa
identifier) ( ví dụ: một số thứ tự tăng lên cho mỗi kết nối được thành lập) được lựa chọn bởi bên khởi xướng, và được đặt trong mỗi TPDU, bao gồm cả một yêu cầu kết nối Sau khi mỗi kết nối được giải phóng, mỗi đơn vị vận tải(transport entity) có thể cập nhật một bảng liệt kê các kết nối lỗi thời Bất cứ khi nào một yêu cầu kết nốiđến, nó sẽ kiểm tra kết nối đó với bảng để xem nó có thuộc về một kết nối nào trước
đó đã được giải phóng hay không
Đáng tiếc là chương trình này có một lỗ hổng cơ bản: nó đòi hỏi mỗi transport entity cần 1 lượng tiền nhất định để duy trì những thông tin lịch sử vô thời hạn Nếu máy gặp sự
cố và dữ liệu bị mất, nó không còn khả năng nhận dạng kết nối đã được sử dụng
Thay vào đó chúng ta cần có một chiến thuật khác Thay vì cho các gói tin tồn tại mãi mãi, chúng ta phải tạo ra một cơ chế loại bỏ các tập tin cũ mà vẫn còn hobbling về Nếu chúng ta biết chắc chắn rằng gói tin ấy tồn tại không quá một khoảng thời gian nào đó, vấn đề quản lí sẽ trở nên dễ dàng hơn rất nhiều
Với vòng đời của gói tin bị chặn, ta có thể thiết lập kết nối một cách an toàn Phương pháp mô tả dưới đấy do Tomlinson(1975) Phương pháp này tiếp tục được tinh chế bởi
Trang 29Sunshine Dalal (1978) Biến thể của nó được sử dụng rộng rãi trong thực tế, kể cả trong giao thức TCP.
Để thiết lập một kết nối, TCP sử dụng một quy trình bắt tay 3 bước (3-way handshake) Trước khi client thử kết nối với một server, server phải đăng ký một cổng và mở cổng đó cho các kết nối: đây được gọi là mở bị động Một khi mở bị động đã được thiết lập thì một client có thể bắt đầu mở chủ động Để thiết lập một kết nối, quy trình bắt tay 3 bước xảy ra như sau:
3 Quy trình bắt tay 3 bước (3-way handshake).
Quy trình bắt tay 3 bước (3-way handshake) :
Trước khi client thử kết nối với một server, server phải đăng ký một cổng và mở cổng
đó cho các kết nối: đây được gọi là mở bị động Một khi mở bị động đã được thiết lập thì một client có thể bắt đầu mở chủ động Để thiết lập một kết nối, quy trình bắt tay 3 bước xảy ra như sau:
Hình 5: Quá trình bắt tay 3 bước của TCP
- Bước 1: Client yêu cầu mở cổng dịch vụ bằng cách gửi gói tin SYN (gói tin TCP) tới server, trong gói tin này, tham số sequence number được gán cho một giá trị ngẫu nhiên X
Trang 30- Bước 2: Server hồi đáp bằng cách gửi lại phía client bản tin SYN-ACK, trong gói tin này, tham số acknowledgment number được gán giá trị bằng X + 1, tham số sequence number được gán ngẫu nhiên một giá trị Y
- Bước 3: Để hoàn tất quá trình bắt tay ba bước, client tiếp tục gửi tới server bản tin ACK, trong bản tin này, tham số sequence number được gán cho giá trị bằng X + 1 còn tham số acknowledgment number được gán giá trị bằng Y + 1
Tại thời điểm này, cả client và server đều được xác nhận rằng, một kết nối đã được thiết lập
V GIAO THỨC TCP VÀ UDP
1 Giao thức TCP
1.1 Khái niệm
Giao thức TCP (Transmission Control Protocol
-"Giao thức điều khiển truyền vận") là một trong các
giao thức cốt lõi của bộ giao thức TCP/IP TCP là một
cần phải thiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với nhau Một tiến trình ứng dụng trong một máy tính truy nhập vào các dịch vụ của giao thức TCP thông qua một cổng (port) của TCP Sử dụng TCP, các ứng dụng trên các máychủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao đổi dữ liệu hoặc các gói tin Giao thức này đảm bảo chuyển giao dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự TCP còn phân biệt giữa dữ liệu của nhiều ứng dụng (chẳng hạn: dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy trên cùng một máy chủ TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng dụng kết quả trong
TCP (Transmission Control Protocol ) là một giao thức vận chuyển cung cấp dịch vụ tin cậy , connection- oriented , byte-stream
Trang 31TCP chịu trách nhiệm phân chia dữ liệu gửi thành các segment tại máy gửi và lắp ghép các segment lại tại máy đích, trong quá trình truyền có thể truyền lại bất cứ segmentnào nếu đến máy đích chưa nhận được
Dịch vụ này nâng cao hiệu quả của các ứng dụng bởi vì ứng dụng không cần lo lắng
về lỗi hay thứ tự dữ liệu khi truyền TCP có thể là một giao thức thỏa mãn các nhu cầu này :
TCP là một giao thức full-duplex ( có thể trao đổi thông tin hai chiều )
TCP cũng gồm một kỹ thuật điều khiển luồng cho mỗi byte-stream mà nó cho phép máy nhận giới hạn dữ liệu máy gửi gửi trong một khoảng thời gian nào đó
TCP hỗ trợ kỹ thuật phân kênh mà nó cho phép nhiều chương trình ứng dụng trên bất kỳ máy có thể đồng thời trao đổi thông tin với các chương trình trên máy khác
TCP cũng thực hiện kỹ thuật điều khiển xung đột (không làm gửi quá tải máy nhận)
Trong bộ giao thức TCP/IP, TCP là tầng trung gian giữa giao thức IP bên dưới và một ứng dụng bên trên Các ứng dụng thường cần các kết nối đáng tin cậy kiểu đường ống để liên lạc với nhau, trong khi đó, giao thức IP không cung cấp những dòng kiểu đó, mà chỉ cung cấp dịch vụ chuyển gói tin không đáng tin cậy TCP làm nhiệm vụ của tầng vận chuyển trong mô hình OSI đơn giản của các mạng máy tính
Các ứng dụng gửi các dòng gồm các byte 8-bit tới TCP để chuyển qua mạng TCP phân chia dòng byte này thành các đoạn (segment) có kích thước thích hợp (thường được quyết định dựa theo kích thước của đơn vị truyền dẫn tối đa (MTU) của tầng liên kết dữ liệu của mạng mà máy tính đang nằm trong đó) Sau đó, TCP chuyển các gói tin thu đượctới giao thức IP để gửi nó qua một liên mạng tới mô đun TCP tại máy tính đích TCP kiểm tra để đảm bảo không có gói tin nào bị thất lạc bằng cách gán cho mỗi gói tin một
"số thứ tự" (sequence number) Số thứ tự này còn được sử dụng để đảm bảo dữ liệu được trao cho ứng dụng đích theo đúng thứ tự Mô đun TCP tại đầu kia gửi lại "tin báo nhận" (acknowledgement) cho các gói tin đã nhận được thành công, một "đồng hồ" (timer) tại
Trang 32nơi gửi sẽ báo time-out nếu không nhận được tin báo nhận trong khoảng thời gian bằng một round-trip time (RTT), và dữ liệu (được coi là bị thất lạc) sẽ được gửi lại TCP sử dụng checksum (giá trị kiểm tra) để xem có byte nào bị hỏng trong quá trình truyền hay không, giá trị này được tính toán cho mỗi khối dữ liệu tại nơi gửi trước khi nó được gửi
và được kiểm tra tại nơi nhận
Đặc trưng công nghệ : TCP là một giao thức hướng kết nối (nonnection- eoriented) , tin cậy (reliable)
- Dùng cơ chế báo nhận (ACK)
- Dùng số thứ tự của các gói tin(Sequence number )
- Dùng phương pháp kiểm soát lỗi mã dư vòng (CRC)
thước thay đổi
Do vậy TCP là một giao thức tương đối phức tạp
1.2 Cách thức truyền dữ liệu qua giao thức TCP
Trang 33Hình 6: Mô hình hoạt động của giao thức TCP
Như hình trên thì các thực thể ứng dụng dịch vụ truyền tin cậy TCP để trao đổi số liệu trong quá trình xử lý
Chú ý : thực thể ứng dụng và thực thể TCP có bộ đệm riêng của mình để lưu trữ tạm thời số liệu trong quá trình xử lý
Cách thức chuyển tiếp số liệu giữa hai bộ đệm trên là yếu tố quyết định hiệu suất chuyển tiếp số liệu của hệ thống TCP
Số liệu thu từ kết nối TCP có thể được chuyển tiếp tức thời từ bộ đệm thu TCP tới bộ đệm ứng dụng hoặc chỉ khi tỷ lệ phần bộ đệm bị chiếm dụng so với tổng dung lượng bộ
đệm đạt tới một giá trị nào đó
Không như giao thức UDP - giao thức có thể lập tức gửi gói tin mà không cần thiết lậpkết nối, TCP đòi hỏi thiết lập kết nối trước khi bắt đầu gửi dữ liệu và kết thúc kết nối khi việc gửi dữ liệu hoàn tất Cụ thể, các kết nối TCP có 3 pha:
1 Thiết lập kết nối
2 Truyền dữ liệu
Trang 343 Kết thúc kết nối.
- Trước khi miêu tả các pha này, ta cần lưu ý các trạng thái khác nhau của một socket:
1 LISTEN: đang đợi yêu cầu kết nối từ một TCP và cổng bất kỳ ở xa (trạng thái này thường do các TCP server đặt)
2 SYN-SENT: đang đợi TCP ở xa gửi một gói tin TCP với các cờ SYN và ACK được bật (trạng thái này thường do các TCP client đặt)
3 SYN-RECEIVED: đang đợi TCP ở xa gửi lại một tin báo nhận sau khi đã gửi cho TCP ở xa đó một tin báo nhận kết nối (connection acknowledgment) (thường do TCP server đặt)
4 ESTABLISHED: cổng đã sẵn sàng nhận/gửi dữ liệu với TCP ở xa (đặt bởi TCP client và server)
5 FIN-WAIT-1: đang đợi qua đủ thời gian để chắc chắn là TCP ở xa đã nhận được tin báo nhận về yêu cầu kết thúc kết nối của nó Theo RFC 793, một kết nối có thể
ở tại trạng thái TIME-WAIT trong vòng tối đa 4 phút
1.3 Cấu trúc gói tin TCP
Cấu trúc gói tin số liệu TCP :
Giao thức có quy định về khuôn dạng của gói tin sẽ được truyền phát Cấu trúc góitin TCP gồm có phần tiều đề TCP “giả ”(pseudo header TCP), nó cần thiết cho việc xây dựng gói tin IP, bao gồm các thông tin về địa chỉ IP nguồn, địa chỉ IP đích, số liệu