Mạng số liệu và mô hình OSI

Tài liệu Mạng số liệu và mô hình OSI: CHƯƠNG 1. MẠNG SỐ LIỆU VÀ MÔ HÌNH OSI. ---oOo--- Giới thiệu về Internet. Tiền thân của mạng Internet là mạng ARPANET của bộ quốc phòng Mỹ. Mạng ARPANET ra đời với mục đích là kết nối các trung tâm nghiên cứu của một số viện nghiên cứu và trường đại học nhằm chia sẻ, trao đổi tài nguyên thông tin. Ban đầu giao thức truyền thông sử dụng là NCP (Network Control Protocol) nhưng sau đó được thay thế bởi TCP/IP. ARPANET nhanh chóng mở rộng thêm các nút mạng mới và trở thành mạng quốc gia. Bộ quốc phòng Mỹ quyết định tách phần quân sự ra khỏi ARPANET là mạng MILNET. Năm 1987, mạng NFSnet (với tốc độ đường truyền lớn 1,5 Mbps so với 56kbps của ARPANET ) và các mạng vùng đã thúc đẩy sự tăng trưởng mạnh mẽ của Internet. Một xa lộ thông tin mới hình thành và nhiều trường đại học, viện nghiên cứu đã tham gia vào cộng đồng Internet. Về kiến trúc, mạng Internet cũng đã có thay đổi. Trước dây, người ta định nghĩa “Internet là mạng của tất cả các mạng sử dụng giao thức IP . Nhưng hiện nay đi...

doc105 trang | Chia sẻ: hunglv | Lượt xem: 1212 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Mạng số liệu và mô hình OSI, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1. MẠNG SỐ LIỆU VÀ MÔ HÌNH OSI. ---oOo--- Giới thiệu về Internet. Tiền thân của mạng Internet là mạng ARPANET của bộ quốc phòng Mỹ. Mạng ARPANET ra đời với mục đích là kết nối các trung tâm nghiên cứu của một số viện nghiên cứu và trường đại học nhằm chia sẻ, trao đổi tài nguyên thông tin. Ban đầu giao thức truyền thông sử dụng là NCP (Network Control Protocol) nhưng sau đó được thay thế bởi TCP/IP. ARPANET nhanh chóng mở rộng thêm các nút mạng mới và trở thành mạng quốc gia. Bộ quốc phòng Mỹ quyết định tách phần quân sự ra khỏi ARPANET là mạng MILNET. Năm 1987, mạng NFSnet (với tốc độ đường truyền lớn 1,5 Mbps so với 56kbps của ARPANET ) và các mạng vùng đã thúc đẩy sự tăng trưởng mạnh mẽ của Internet. Một xa lộ thông tin mới hình thành và nhiều trường đại học, viện nghiên cứu đã tham gia vào cộng đồng Internet. Về kiến trúc, mạng Internet cũng đã có thay đổi. Trước dây, người ta định nghĩa “Internet là mạng của tất cả các mạng sử dụng giao thức IP . Nhưng hiện nay điều đó không còn chính xác nữa vì nhiều mạng có kiến trúc khác nhau nhưng nhờ các cầu nối giao thức nên vẫn có thể kết nối vào Internet và vẫn có thể sử dụng đầy đủ các dịch vụ Internet. Khái niệm về mạng . Mạng LAN ( Local Area Network ) là mạng máy tính có phạm vi bán kính vài trăm met. Các kiến trúc thường gặp là họ Ethernet, Token-ring, ArcNet, FDDI,.. thường có tốc độ cao hàng Megabit/s, cung cấp các dịch vụ chia sẻ tập tin, cơ sở dữ liệu, chia sẻ phần cứng, thư điện tử, nhóm làm việc,.. Mạng MAN (Metropolitant Area Network ) thường có bán kính trong một thành phố, kiến trúc thường dùng là ATM, cung cấp các đường truyền tốc độ cao đến hàng Gigabit/s phục vụ cho nhiều ứng dụng như truyền hình cáp, hội nghị truyền hình, liên kết mạng máy tính. Mạng WAN (Wide Area Network ) là mạng viễn thông cung cấp các phương tiện kết nối cho các mạng máy tính cục bộ muốn liên kết với nhau và một số ứng dụng khác. Các kiến trúc mạng WAN thường gặp là X25, Frame Relay, ISDN,..phạm vi bán kính của mạng WAN rộng cả một quốc gia hoặc rộng hơn. Các loại mạng LAN. Mạng Ethernet. Kiến trúc Ethernet được biểu diển bằng đặc tả xAy, trong đó x là tốc độ truyền dữ liệu tính bằng Mbps, A đặc trưng cho phương thức truyền thông là dải nền hay dải rộng và y đặc trưng cho độ dài một đoạn segment hoặc môi trường truyền ( loại cáp). Ví dụ:10Base5: mô tả mạng truyền dải nền (Base), tốc độ truyền dữ liệu 10 Mbps, độ dài tối đa một đoạn segment là 500 met. Hình 1.1. Kiến trúc mạng 10Base5. 100BaseT: mô tả mạng dải nền, tốc độ 100 Mbps, môi trường truyền là cáp xoắn đôi. Hình 1.2a. Mạng 10BaseT đơn giản. Hình 1.2b. Mạng 10BaseT mở rộng. 1.3.2. Mạng Token-ring. Kiểu mạng này định nghĩa một dạng hub đặc biệt gọi là MSAU ( Multi Station Access Unit ), đôi khi còn là MAU. Mạng Token-ring hoạt động ở nhiều tốc độ khác nhau như 4Mbps, 16Mbps,..hình sau phác họa sơ đồ đấu nối và kiến trúc logic của mạng Token-ring đơn giản. Kiến trúc Token-ring được IBM đưa ra năm 1985 với tốc độ truyền dữ liệu 4Mbps trên môi trường truyền cáp xoắn đôi STP và UDP. Đến năm 1989, ấn bản 2.0 ra đời với 3 tốc độ 1 Mbps, 4Mbps, 16 Mbps. Các nút mạng được nối với nhau tạo thành một vòng logic ( mặc dù sơ đồ đấu nối mạng có thể là hình sao ). Token-ring được thiết kế theo chuẩn IEEE-802.3. Đây là mạng dải nền và làm việc theo nguyên tắc thẻ bài (Token). Một nút trạm muốn truyền dữ liệu thì phải nắm giữ thẻ bài. Sau khi truyền xong sẽ chuyển thẻ bài cho trạm kế. Thẻ bài là khung 3 byte có dạng [ SD AC ED ], trong đó : SD : Start Delimiter. AC : Access Control. ED : End Delimiter . Hình 1.3a. mạng Token Ring. Hình 1.3b. mạng sử dụng chung một Hub. 1.3.2 Mạng ARCnet C. Mạng ARCnet có kiến trúc vật lí như mạng 10Base2 của Ethernet, nhưng về mặt logic thì đây là cấu trúc Token bus. Ngoài ra ARCnet có dạng hình sao hoặc star-bus. Kiến trúc ARCnet định nghĩa hai kiểu hub là active hub có chức năng khuyếch đại tín hiệu và passive hub thực chất là một cụm điện trở 470 ohm. Mạng ARCnet có tối đa 255 trạm, mỗi trạm có một địa chỉ khác nhau, riêng địa chỉ Zero là địa chỉ broadcast. Các địa chỉ được khai báo theo cách thủ công lúc cài đặt mạng. Mỗi địa chỉ có 3 tham số : Add: là địa chỉ của chính trạm đó. P: là địa chỉ của trạm đứng trước nó. S: là địa chỉ của trạm đứng sau nó. Khi khởi động một mạng ARCnet, việc tạo thành cấu hình ban đầu được thực hiện bằng cách lấy ví dụ là trạm A có địa chỉ là Add=1 làm ví dụ, sẽ gởi Token cho địa chỉ Add =2, nếu không thấy tín hiệu phúc đáp ACK, nó sẽ gởi cho địa chỉ Add=3,..đến khi trạm Add=20 nhận được Token sẽ trả lời ACK cho trạm 1 và trạm 1 sẽ điền được giá trị P=20 và trạm 20 điền được giá trị S=1. Sau đó trạm 20 sẽ gởi Token cho trạm 21,22,23,24,..30. Quá trình cứ thế tiếp diễn cho đến khi tất cả các trạm định được địa chỉ cho mình. Mỗi byte được truyền đi theo dạng (100100). Sự chuẩn hóa và mô hình OSI. 1.4.1. Sự chuẩn hóa các quá trình truyền số liệu. Trước đây, các chuẩn được dùng trong công nghệ máy tính của các tổ chức khác nhau đề cập chủ yếu đến các hoạt động bên trong của máy tính hay các kết nối thiết bị ngoại vi mang tính cục bộ. Kết quả là các hệ thống phần cứng và phần mềm truyền số liệu xuất hiện sớm từ mỗi hãng chỉ cho phép chạy trên các máy tính của chính nhà sản xuất đó để trao đổi thông tin với nhau. Các hệ thống như vậy gọi là hệ thống đóng, vì các máy tính của các hãng khác nhau không thể thông tin với nhau trừ khi chúng tuân thủ các chuẩn của các hãng này. Mặt khác, khi có nhu cầu liên kết nhiều mạng LAN có kiến trúc khác nhau như Tokenring, Ethernet, ARCnet… để tạo ra mạng Enteprise (Internetwork) nhằm chia sẽ tài nguyên thì vấn đề đặt ra là làm thế nào để chúng có thể “hiểu nhau” như trong nội bộ của một mạng LAN, vì hầu hết đều có cấu trúc không giống nhau từ dạng địa chỉ đến tổ chức hệ thống file cũng như hệ điều hành cho mỗi LAN là khác nhau. Do vậy khi tiến hành liên kết chúng thành một Internetwork thống nhất thì cần phải có chuẩn chung và các thao tác chuyển đổi. Ngoài ra, để cung cấp nhiều dịch vụ thông tin phân bố mở rộng như trao đổi các bản tin điện tử và truy xuất mở rộng, các tổ chức chuẩn hóa liên quan đến công nghệ viễn thông đã xây dựng không chỉ các tiêu chuẩn giao tiếp mạng mà còn xây dựng các chuẩn mức cao liên quan đến dạng thức, cú pháp và điều khiển trao đổi thông tin giữa các hệ thống. Trên cơ sở đó, thiết bị từ bất kỳ hãng nào tuân thủ các chuẩn này có thể dùng thay thế với thiết bị từ bất kỳ hãng nào khác cũng tuân thủ các chuẩn này. Một hệ thống được xây dựng để thỏa mãn các nhu cầu này gọi là hệ thống mở hay nói đầy đủ hơn là môi trường liên kết các hệ thống mở (OSIE: Open System Interconnection Envirroment). Tiêu chuẩn đầu tiên đề cập đến kiến trúc tổng thể của hệ thống thông tin hoàn chỉnh là chuẩn công bố bởi tổ chức tiêu chuẩn quốc tế ISO (International Standards Organization) và được gọi là mô hình tham chiếu OSI (Open System Interconnection) cho liên kết các hệ thống mở. Mục đích của mô hình OSI là cung cấp khuôn mẫu chung cho sự phối hợp phát triển các chuẩn và cho phép các chuẩn hiện có phù hợp với khuôn mẫu này. Mục tiêu cụ thể là cho phép một quá trình ứng dụng trong bất kỳ máy tính nào được hổ trợ một tập các tiêu chuẩn đặc biệt để thông tin với một quá trình ứng dụng trong một máy tính khác có hổ trợ cùng một chuẩn, bất chấp nó có nguồn gốc từ hãng nào. Mô hình OSI. OSI đã thừa nhận một tiếp cận phân lớp cho mô hình tham khảo. Trong đó, một hệ thống truyền thông hoàn chỉnh được phân thành một số lớp , mỗi lớp thực hiện một chức năng đặc biệt. Về mặt khái niệm có thể xem các lớp này thực hiện một trong hai chức năng tổng quát: các chức năng phụ thuộc mạng và chức năng thiên hướng ứng dụng. Điều này tạo ra ba môi trường hoạt động tách biệt. Môi trường mạng: liên quan đến giao thức và các tiêu chuẩn thuộc về các dạng khác nhau của hạ tầng cơ sở mạng truyền số liệu Hình 1.4. Các môi trường hoạt động. Môi trường OSI: bao gồm môi trường mạng và thêm vào các giao thức cũng như tiêu chuẩn hướng ứng dụng để cho phép các thống đầu cuối liên lạc với đầu cuối khác theo phương thức mở. Môi trường hệ thống thực: nó xây dựng nên môi trường OSI, liên quan đến các dịch vụ và phần mềm đặc trưng của nhà chế tạo, các dịch vụ và phần mềm đặc trưng này được phát triển nhằm thực hiện một nhiệm vụ xử lý thông tin phân tán đặc biệt nào đó. Mô hình OSI gồm 7 lớp (layer) mỗi lớp được quy định bởi những chức năng cụ thể, độc lập với các lớp khác cung cấp một số dịch vụ nhất định cho lớp liền trên và liền dưới nó. Cụ thể như sau: Hình 1.5. Kiến trúc toàn cục mô hình tham chiếu OSI. 1.4.2.1. Lớp vật lý (physical layer). Thực hiện chức năng quy định các giao tiếp trên môi trường vật lý. Để truyền dữ liệu nhị phân qua một đường dây, các bit nhị phân phải được chuyển thành tín hiệu điện tương ứng. Lớp vật lý liên quan đến giao tiếp về điện giữa các thiết bị đầu cuối. Nó cung cấp cho lớp liên kết dữ liệu các phương tiện để truyền dòng bit nối tiếp giữa hai thiết bị. Lớp này đảm nhận việc truyền và nhận bit thông qua kênh truyền mà không cần xem xét nội dung thông tin của các bit. Các bit này có thể là dữ liệu bất kỳ tùy thuộc vào dịch vụ lớp trên cung cấp. 1.4.2.2. lớp liên kết dự liệu ( Data Link Leyer). Thực hiện chức năng liên kết dữ liệu giữa lớp vật lý và lớp mạng, phát hiện lỗi và truyền lại các gói tin bị hỏng. Khi nhận được gói tin từ lớp mạng, thực hiện tháo rời các khung thành các bit cung cấp cho các lớp vật lý và lớp mạng, phát hiện lỗi và truyền lại các gói tin bị hỏng. Khi nhận được dòng bit rời rạc từ lớp vật lý, thực hiện tổ chức lại thành khung trả về cho lớp mạng. Hoạt động của lớp liên kết dữ liệu được cụ thể hóa bằng hai lớp con: LLC (Logical link Control) và MAC (Media Access Control). - LLC: có chức năng đóng gói hoặc phân tách khung dữ liệu trước khi truyền đi. Đồng thời thực hiện giám sát lỗi ở lớp 2, đảm bảo thông tin truyền đi là chính xác. -MAC: thực hiện chức năng điều khiển truy nhập lớp vật lý. 1.4.2.3. Lớp mạng (Network Layer). Lớp mạng có chức năng định tuyến, cung cấp các phương tiện để truyền dữ liệu qua mạng, và qua mạng của các mạng. Do mạng của các mạng có những đặc tính kỹ thuật khác nhau cho nên lớp mạng phải thích ứng được với nhiều kiểu mạng cũng như các dịch vụ mạng khác nhau. Do đó cấu trúc của lớp mạng được xem là phức tạp nhất trong mô hình OSI. Định tuyến: lớp mạng thực hiện việc tìm đường đi tốt nhất cho gói tin dựa vào tình hình của mạng, mức độ ưu tiên, và một số yếu tố khác. Để thực hiện được nhiệm vụ này, lớp mạng sử dụng thuật toán định tuyến gói tin qua các nút mạng. Để các gói tin có thể được truyền chính xác thì mỗi nút mạng được đánh một địa chỉ riêng. Lớp mạng còn thực hiện quản lý lưu lượng trên toàn mạng như chuyển đổi gói, kiểm soát tắt nghẽn. Lớp mạng còn chịu trách nhiệm thiết lập và xóa cầu nối giữa hai thực thể giao thức lớp truyền tải. 1.4.2.4. Lớp truyền tải (Transport Layer). Lớp truyền tải có chức năng truyền thông giữa các ứng dụng, kiểm soát chất lượng đường truyền, và hỗ trợ thêm một số chức năng cho lớp mạng nhằm đảm bảo dữ liệu được truyền chính xác. Đây là lớp cuối cùng hỗ trợ việc phát hiện và sữa lỗi. Dịch vụ cung cấp bởi lớp mạng chỉ ở mức Unreliable Service (dịch vụ không tin cậy). Lớp truyền tải cung cấp thêm các dịch vụ kiểm soát lỗi gọi là Reliable Service (dịch vụ tin cậy). Khi có nhiều người dùng cùng sử dụng đấu nối thì lớp truyền tải còn có nhiệm vụ tạo ra kết nối logic cho từng người dùng, công việc này gọi là ghép kênh. Do thực hiện được nhiệm vụ ghép kênh nên các giao thức ở lớp trên có thể sử dụng cùng một địa chỉ lớp mạng. Lớp truyền tải đóng vai trò trung gian giữa các lớp cao và các lớp thấp. Làm cho dữ liệu giữa lớp thấp và lớp cao có thể truyền thông suốt với nhau. Do đó nó phải biết yêu cầu về chất lượng dịch vụ QoS của người sử dụng, đồng thời biết được khả năng cung cấp dịch vụ của mạng bên dưới. 1.4.2.5. Lớp phiên (Sesstion Layer). Lớp phiên có chức năng thiết lập, quản lý và giải tỏa một phiên làm việc giữa hai đầu cuối. Cho phép các phần tử lớp ứng dụng tổ chức, đồng bộ đối thoại cũng như quản lý việc trao đổi số liệu giữa chúng. Công việc của các phần tử lớp ứng dụng trong kết nối này được thực hiện theo kiểu tương tác bao gồm: - Quản lý tương tác: hoạt động trao đổi dữ liệu có thể là song công hay bán song công. Truyền bán song công thì Session sẽ chuyển sang chế độ truyền đồng bộ hướng ký tự. Truyền song công thì Session sẽ chuyển sang chế độ truyền không đồng bộ. - Đồng bộ: khi giao tiếp với khoảng thời gian lớn, có thể thiết lập đồng bộ một cách định kỳ. Nếu xuất hiện lỗi thì có thể khôi phục lại tại một thời điểm đã thống nhất trước. - Thông báo đặc biệt: các trường hợp cá biệt không thể khắc phục lỗi phát sinh trong quá trình giao tiếp thì lớp phiên sẽ thông báo cho lớp ứng dụng. 1.4.2.6. Lớp trình bày. (Presentation Layer). Lớp trình bày có chức năng phiên dịch, nén và mã hóa dữ liệu. Đảm bảo truyền thông suốt khi dạng dữ liệu ở hai đầu cuối là khác nhau. Do đó lớp trình bày còn gọi là bộ dịch mạng. Các hoạt động của lớp trình bày: - Phiên dịch dữ liệu: lớp trình bày thực hiện đàm phán với hai ứng dụng để đưa ra phương thức truyền thích hợp, đó gọi là phương thức chuẩn. Sau đó sẽ so sánh với kiểu dữ liệu của ứng dụng với phương thức chuẩn, nếu thấy khác thì giao thức của lớp trình bày sẽ thực hiện việc chuyển đổi. - Nén dữ liệu: quy định các thuật toán nén và giải nén để đảm bảo khôi phục tin tức một cách trung thực. - Mã hóa dữ liệu: quy định thuật toán mã hóa và giải mã dữ liệu. Có thể được sử dụng bảo mật dữ liệu. Trước khi truyền, ứng dụng được mã hóa với một khóa bảo mật. Sau đó ở đầu thu, chỉ có lớp trình bày của hệ thống thu hợp lệ mới có thể giải mã được. 1.4.2.7. Lớp ứng dụng (Application Layer). Lớp ứng dụng có chức năng giao tiếp hỗ trợ các chương trình ứng dụng. Đây là lớp cao nhất trong mô hình OSI cho nên không trao đổi dữ liệu cho tầng trên. Thực hiện trao đổi thông tin với người sử dụng. Người dùng muốn trao đổi thông tin thì phải làm việc với lớp ứng dụng. Tầng ứng dụng bao gồm các thực thể ứng dụng, các thực thể này dùng giao thức và dịch vụ trình diễn để trao đổi thông tin với người dùng. Truyền dữ liệu trên mạng theo OSI và mô hình TCP/IP. Hai ứng dụng cần trao đổi dữ liệu cho nhau thì dữ liệu đó được đóng thành từng gói gọi là PDU (Protocol Data Unit) hay Data-Block. PDU được chuyển từ lớp cao nhất (lớp 7) xuống lớp thấp nhất (lớp 1). Mỗi lần đi qua 1 layer , PDU được các giao thức lớp dưới thêm các thông tin điều khiển riêng gọi là header. Header bao gồm thông tin kiểm lỗi, thứ tự, địa chỉ… Như vậy một data –block có thể được kiểm lỗi rất nhiều lần làm giảm tốc độ truyền dữ liệu, mặc khác đi từ lớp 7 xuống lớp 1, data block có thể bổ sung 6 header nữa, làm cho nó to lớn. Do đó tùy thuộc vào yêu cầu an toàn dữ liệu cũng như độ tin cậy của đường truyền chúng ta có thể bỏ qua một vài bước kiểm tra lỗi để cải thiện tốc độ truyền dữ liệu hiệu dụng. Hình 1.6. Quá trình truyền dữ liệu qua mạng theo chuẩn OSI. Trên liên mạng, việc truyền dữ liệu phải thông qua các Router hoặc gateway trước khi đến trạm đích. Sự khác nhau của repeater, router, gateway thể hiện ở phạm vi chức năng của từng thiết bị. Hình 1.7. Tầm hoạt động của các thiết bị liên mạng. Việc sử dụng Router trên mạng cần phải cân nhắc bởi khi số lượng Router càng lớn thì mạng càng trở nên phức tạp và việc định tuyến trở nên khó khăn, giảm hiệu suất sử dụng mạng. 1.5.1. Sơ lược lịch sử phát triển của mô hình TCP/IP. Giao thức TCP/IP thực chất là một họ các giao thức kết hợp với nhau để thực hiện truyền thông liên mạng. Mỗi giao thức trong TCP/IP có một vai trò khác nhau trong quá trình truyền thông. Quá trình truyền thông TCP/IP bắt đầu bằng một ứng dụng trên máynguồn chuẩn bị dữ liệu được truyền mà một ứng dụng trên máy đích có thể hiểu được. Sau đó, dữ liệu được gia nhập vào ứng dụng đích và máy tính nơi đến và cuối cùng địa chỉ của máy tính đích được bổ sung vào dữ liệu. Rồi một yêu cầu xác nhận phân phối dữ liệu được gởi đến đích thông qua mạng. Các hoạt động trong quá trình truyền thông trên được gán cho các giao thức khác nhau trong họ giao thức TCP/IP. Các giao thức trong họ TCP/IP được chia ra thành các tầng. Trong đó thông tin địa chỉ được đặt cuối cùng , nên chỉ có máy tính đích mở và xử lí toàn bộ dữ liệu. Bộ giao thức TCP/IP rất quan trọng trong việc lựa chọn phương cách truyền thông để hạn chế sự cố và tăng hiệu quả truyền dữ liệu vì nó có một số đặc tính sau. -Độc lập với cấu hình mạng :TCP/IP có thể dùng cho mạng bus, mạng ring hay star, cho mạng cục bộ, mạng diện rộng hay liên mạng. -Độc lập với phần cứng vật lý của mạng: TCP/IP có thể dùng Ethernet, Token Ring hay bất cứ với loại phần cứng vật lý nào. Chuẩn giao thức mở: bộ giao thức chuẩn TCP/IP có thể thực thi trên các loại hệ điều hành khác nhau nên nó thích hợp dùng cho các mạng có nhiều loại phần cứng và phần mềm khác nhau ví dụ như mạng INTERNET . Định vị địa chỉ tổng quát: mỗi máy trên mạng TCP/IP có một địa chỉ duy nhất để có thể liên lạc với bất kỳ máy nào khác trên mạng. Dịch vụ ban đầu của mạng ARPANET là login từ xa Telnet, truyền tập tin FTP và thư điện tử SMTP. Khi ARPANET phát triển, nó được chia thành hai mạng MILNET (còn gọi là DDN) và DARPANET (Còn gọi là DARPA). Đến 1985, mạng DARPA đổi tên thành Internet ngày nay. Tổ chức Internet thế giới còn có tên gọi tắt là InterNIC, có trụ sở tại Mỹ với chức năng quản lý và cấp phát địa chỉ IP, tên miền các quốc gia hoặc các tổ chức tham gia Internet. Ngoài ra InternetNic còn đảm nhiệm vai trò nghiên cứu, ban hành các tiêu chuẩn, các khuyến nghị kĩ thuật cho các thành viên mạng. InterNic chia thành các ban chuyên tránh như sau: - IAB (Internet Activities Board): Đại diện cho Hội đồng quản trị mạng, nghiên cứu và ban hành các RFC, các tiêu chuẩn áp dụng cho Internet. - IRTF (Internet Research Task Force): Nhóm nghiên cứu phát triển Internet. - IETF (Internet Engineering Task Force): Nhóm kĩ thuật hệ thống mạng. Về sau InterNic thành lập các trung tâm khu vực chịu trách nhiệm cấp phát và quản lý địa chỉ IP và Domain cho các quốc gia nằm trong khu vực đó. Ví dụ trung tâm ApNIC là đơn vị trực thuộc InterNic có văn phòng tại Tokyo-Nhật Bản, phụ trách khu vực Châu Á-Thái Bình Dương. 1.5.2.. Sự tương quan của mô hình TCP/IP với mô hình OSI. TCP/IP thực chất là một họ giao thức cùng làm việc với nhau để cung cấp phương tiện truyền thông liên mạng, hổ trợ các phương thức giao tiếp chuẩn trên mạng cũng như liên mạng . Họ giao thức TCP/IP được ứng dụng rộng rãi và rất đặc biệt trở thành một chuẩn không thể thiếu cho mạng toàn cầu Internet. Khác với mô hình OSI 7 lớp , họ (bộ)giao thức TCP/IP có kiến trúc gồm 4 lớp như hình 1.8. Hình1.8. Bộ giao thức TCP/IP trong tương quan với OSI. Mỗi lớp gồm có một hoặc một số giao thức thực hiện các chức năng riêng đảm bảo việc truyền dữ liệu trên mạng và liên mạng. Đơn vị tin của lớp 4 là Message, của lớp 3 là Segment(hoặc Packet cho UDP), của lớp 2 là Datagram và lớp 1 là Frame. Tin tức của người sử dụng từ lớp 4 xuống được thêm vào phần header ở lớp 3 tạo nên các Segment, các segment sau khi được chuyển xuống lớp 2 và header của lớp 2 được thêm vào tạo thành Datagram. Tại lớp 1, các datagram tại lớp 2 được thêm Header và chuyển lên đường truyền đến trạm thu. Tại trạm thu các giao thức tại các lớp tuần tự thực hiện tách các Header và thu lại thông tin cần trao đổi. Mỗi lớp có một cấu trúc dữ liệu độc lập nhau, tức là một lớp khi hoạt động không cần biết cấu trúc dữ liệu của các lớp trên và dưới nó là gì. Thực ra cấu trúc dữ liệu của một lớp luôn được thiết kế tương thích với các lớp lân cận và điều này giúp đảm bảo hiệu suất cũng như chất lượng thông tin trên mạng và liên mạng. TCP/IP chứa tập hợp các giao thức con nằm rải rác từ lớp 3 đến lớp 7 của mô hình OSI. Hình 1.9. Kiến truc TCP/IP . Lớp truy cập mạng( Network Interface Layer) và các giao thức. Là lớp thấp nhất trong mô hình 4 lớp của bộ giao thức TCP/IP. Các giao thức trong lớp này cung cấp các phương tiện để hệ thống phân phối dữ liệu đi cũng như thu nhận dữ liệu về thông qua các kết nối trực tiếp với môi trường truyền dẫn mạng. Các giao thức này phải biết được các chi tiết của môi trường truyền dẫn mạng để tạo ra các frame phù hợp như khung Ethernet, Token Ring hay Frame relay… Các giao thức lõi như TCP/IP làm việc độc lập với các giao thức bên dưới và tính “mở”của bộ giao thức TCP/IP cũng được thể hiện ở vai trò chuyển đổi cấu trúc khung và giao tiếp mạng của các giao thức lớp truy cập mạng Network Access. Nhờ vậy, TCP/IP có thể kết nối tới nhiều loại mạng vật lý khác nhau như các loại mạng LAN: Ethernet, Token Ring hay mạng WAN : X25, Frame relay hay một số công nghệ mới như ATM Lớp Network Access có thể bao hàm và thực hiện chức năng của hai lớp dưới cùng trong mô hình OSI Lớp internet và các giao thức của lớp. Là lớp trung tâm quan trọng nhất trong các lớp. Các giao thức lớp Internet đảm nhận chức năng định địa chỉ (Addressing),đóng gói dữ liệu (Packing) và định tuyến trên liên mạng (Routing). Các giao thức cốt lõi của lớp internet gồm có IP, ARP, ICMP, RARP và IGMP trong đó IP là giao thức quan trọng nhất. Lớp truyền tải. Chức năng của lớp này là bảo đảm truyền thông giữa các máy tính và chuyển dữ liệu lên lớp ứng dụng hoặc xuống lớp mạng. Lớp truyền tải gồm có các giao thức sau. -Giao thức điều khiển truyền dữ liệu : đây là giao thức được xem là đáng tin cậy vì TCP bảo đảm phân phối dữ liệu thông qua một báo nhận. -Giao thức gói dữ liệu người dùng (UDP) cung cấp cách phân phối dữ liệu nhanh nhưng không đáng tin cậy vì không thực hiện phát báo nhận. Lớp ứng dụng và các giao thức(Application Layer). Hệ thống tên miền DNS( Domain Name System). Việc nhớ các địa chỉ IP bằng các con số là việc khó khăn, dễ nhầm lẫn cho người sử dụng mạng. DNS là dịch vụ làm cho việc nhớ địa chỉ các Host trên mạng dễ dàng hơn nhờ vào việc chuyển đổi các địa chỉ IP 32 bit thành cacù tên hình tượng dễ đọc, dễ nhớ hơn bằng cách sử dụng cơ sở dữ liệu chứa tên hình tượng của các host kèm theo địa chỉ IP tương ứng. Thường thì DNS không phải là dịch vụ miễn phí. Việc định danh bằng tên cũng có những vấn đề của nó như tên phải duy nhất. Ngoài ra, cần phải có cách để chuyển đổi tương ứng giữa tên và địa chỉ vì một số người thích dùng số hơn dùng tên. Đăng nhập từ xa (Telnet). Telnet là một trong những giao thức Internet đầu tiên. Có thể sử dụng Telnet để đăng nhập vào một trạm ở xa qua mạng và làm việc với hệ thống y như một trạm cuối nối với trạm xa đó. Ví dụ : một máy trên mạng dùng hệ điều hành Windows, nay muốn dùng hệ điều hành Unix cho mục đích tạm thời có thể dùng Telnet để thâm nhập vào một máy khác trên mạng có hệ Unix và sử dụng hệ này như ngay trên máy mình mà không cần cài đặt. Giao thức truyền file (FTP). FTP sử dụng TCP ở lớp dưới để cung cấp dịch vụ truyền file giữa các máy tính một cách chính xác và trung thực. FTP trên một máy cho phép người sử dụng từ các máy khác trên mạng thực hiện một số chúc năng từ xa. -Xem cấu trúc thư mục cũng như tổ chức file. - Đổi tên , xóa file (nếu được cấp quyền). -Copy file về máy của mình(download). -Copy file từ máy mình sang máy khác trên mạng (upload). Giao thức truyền thư điện tử (SMTP). Thư điện tử là một dịch vụ phổ biến trên mạng Internet. Thư điện tử cho phép người sử dụng có thể gởi hoặc nhận các thông báo từ các người khác qua mạng thay vì phải viết lên giấy và gởi bằng bưu điện. Thuận lợi lớn nhất của Email là tốc độ truyền tải nhanh, tuy nhiên cũng có một số bất lợi là người nhận phải vào Internet để kiểm tra thư hay thư bị thất lạc, bị gởi nhầm. Đây không phải là dịch vụ từ đầu cuối đến đầu cuối mà là một dịch vụ lưu và chuyển tiếp. Dịch vụ World Wide Web (HTTP). Là dịch vụ cung cấp một giao diện đồ họa hổ trợ cho việc truy cập thông tin từ các Website trên mạng . CHƯƠNG 2. CÁC GIAO THỨC LỚP INTERNET CỦA TCP/IP ---oOo--- *Giới thiệu Mục đích của lớp internet là chọn lấy một đường dẫn tốt nhất xuyên qua mạng cho các gói di chuyển tới đích. Giao thức chính hoạt động tại lớp này là Internet Protocol (IP). Sự xác định đường dẫn tốt nhất và chuyển gói diễn ra tại lớp này. Các giao thức sau đây hoạt động tại lớp internet của mô hình TCP/IP. -Giao thức IP cung cấp: định tuyến chuyển phát gói theo giao thức IP không quan tâm đến nội dung của các gói nhưng tìm kiếm đường dẫn cho gói tới đích. - Giao thức ICMP (Internet Control Message Protocol): đem đến khả năng điều khiển và chuyển thông điệp. -Giao thức ARP (Address Resolution Protocol): xác định địa chỉ lớp liên kết số liệu (Mac address) khi đã biết trước địa chỉ IP. -Giao thức RARP (Reverse Address Resolution protocol): xác định các địa chỉ IP khi biết trước địa chỉ MAC. Hình 2.1. Các giao thức trong lớp internet. 2.1. Địa chỉ IP. 2.1.1. Các thành phần của địa chỉ IP. Cũng giống như các giao thức lớp mạng khác, địa chỉ IP dùng để định tuyến cho các IP datagram đi đến đích mong muốn. Mỗi host trên mạng TCP/IP được ấn định một địa chỉ IP 32 bit duy nhất. Địa chỉ IP được chia thành 2 phần chính: chỉ số mạng và chỉ số host. Chỉ số mạng dùng để nhận dạng các mạng. Phần này do trung tâm liên mạng (internic) phân phối nếu đây là một mạng thành viên của Internet. Chỉ số host dùng để nhận dạng host. Phần này được ấn định bởi nhà quản lý mạng địa phương. 2.1.2: Khuôn dạng địa chỉ IP Địa chỉ IP 32 bit được phân thành 4 nhóm, mỗi nhóm 8 bit gọi là một octet. Các octet đặt cách nhau bằng một dấu chấm và được thể hiện dưới dạng thập phân. Mỗi bit trong octet có một trọng số khác nhau (128,64,32,16,8,4,2,1 ). Giá trị thấp nhất của một octet là 0 (8 bit đều có giá trị 0) và giá trị cao nhất của một octet là 255 (giá trị tất cả các bit là 1). Hình sau thể hiện một khuôn dạng cơ bản của địa chỉ IP: Hinh 2.2. Khuôn dạng địa chỉ IP. 2.1.3. Phân lớp địa chỉ IP. Địa chỉ IP được phân thành 5 lớp A,B,C,D,E. Ba lớp A,B,C dành cho mục đích thương mại, lớp D dùng cho Multicast, lớp E dùng để dự trữ. -Trong lớp A, chỉ số mạng nằm trong octet đầu tiên. Với địa chỉ 10.1.25.1 thì phần địa chỉ mạng là 10. Octet thứ 2,3,4 ( 24 bit tiếp theo) dùng cho địa chỉ host. Địa chỉ lớp A dùng cho các mạng có hơn 65.536 host (số lượng host tối đa có thể có trong một mạng là 16.581.375 host ). -Trong lớp B, chỉ số mạng nằm trong 2 octet đầu. Với địa chỉ 172.16.122.204 thì địa chỉ mạng là 172.16. Octet 3 và 4 (16 bit tiếp theo ) dùng cho địa chỉ host. Địa chỉ lớp B được dùng cho các mạng có số lượng host từ 256÷65.536. -Trong lớp C, chỉ số mạng nằm trong 3 octet đầu. Với địa chỉ 193.18.9.45 có địa chỉ mạng là 193.18.9. Octet thứ 4 (8 bit cuối cùng ), dùng cho địa chỉ host. Địa chỉ lớp C được dùng cho lớp mạng có số lượng host ít hơn 254. Vai trò của octet đầu tiên: Việc nhận dạng các lớp được thực hiện dễ dàng bằng cách kiểm tra giá trị thập phân của octet đầu tiên và so sánh nó với dãy giá trị của từng lớp được cho trong bảng bên dưới: Hình 2.3. Dãy giá trị lớp thập phân của từng lớp địa chỉ. Các bit có trọng số cao nhất trong octet đầu tiên dùng để nhận dạng các lớp. Ví dụ với một địa chỉ IP 172.31.1.2 thì octet đầu tiên có giá trị là 172. Giá trị này nằm trong khoảng từ 128 -191, vì thế địa chỉ này thuộc lớp B. 2.1.4: Mặt nạ mạng IP: Mỗi một lớp địa chỉ có một mặt nạ lớp mạng. Mặt nạ được sử dụng để tách riêng phần chỉ số mạng và chỉ số host trong mỗi địa chỉ mạng. Mặt nạ mạng được thiết lập bằng cách gán giá trị 1 cho tất cả các bit nằm trong octet nhận dạng mạng, gán giá trị 0 cho tất cả các bit thuộc octet nhận dạng host. Hình sau trình bày cấu trúc địa chỉ của mỗi lớp mạng: Hình 2.4. Trường địa chỉ các lớp mạng địa chỉ Lớp A có octet thứ nhất dùng để nhận dạng mạng, 3 octet tiếp theo nhận dạng host, do đó mặt nạ mạng của lớp A là.11111111.00000000.00000000.00000000. Tương ứng giá trị thập phân là 255.0.0.0. Tương tự ta có mặt nạ mạng ở lớp B, C là 255.255.0.0 và 255.255.255.0. 2.1.5. Địa chỉ mạng con IP. Tất cả các lớp mạng IP có thể chia thành các mạng nhỏ hơn gọi là các mạng con (subnet). Việc phân chia mạng con tạo thuận lợi về mặt quản lí. Với các mạng con ta có thể thực hiện việc phát các bản tin quảng bá, các bản tin này không cần định tuyến qua các router. Các mạng con đặt dưới sự quản lí của mạng nội bộ và coi nó như một mạng độc lập và không biết được cấu trúc bên trong của nó. Một địa chỉ mạng có thể phân thành nhiều mạng con , ví dụ 172.16.1.0; 172.16.2.0;172.16.3.0 và 172.16.4.0 là những mạng con của mạng 172.16.0.0. 2.1.6: Mặt nạ mạng con: Địa chỉ mạng con được tạo ra bằng cách mượn các bit trong trường địa chỉ host và ấn định chúng như là một trường mạng con. Số bit mượn này thay đổi tùy theo cấu trúc riêng của mỗi mạng. Việc ấn định các bit mượn được thực hiện bằng các mặt nạ địa chỉ mạng con. Hình sau thể hiện việc mượn các bit trong trường host để tạo thành trường mạng con. Hình 2.5. Quá trình hình thành trường mạng con. Mặt nạ mạng con cũng có cách thiết lập như một mặt nạ mạng bình thường. Mặt nạ mạng con có các bit trong trường mạng và mạng con có giá trị là 1, các bit trong trường host có giá trị là 0. Việc thiết lập này được thể hiện trong hình sau: Hình 2.6. Một ví dụ về mặt nạ mạng con trong lớp địa chỉ B. Với hình trên ta thấy trường mạng con có 8 bit. Do đó ta có thể phân thành 254 mạng con, mỗi mạng con có tối đa là 254 host (do trong trường host có 8 bit). 2.1.7. Phương pháp nhận dạng mạng con. Khi nhận được một địa chỉ IP để nhận dạng địa chỉ này thuộc mạng con nào thì ta thực hiện phép toán logic AND của địa chỉ IP với mặt nạ mạng con. Đặc trưng của phép toán logic AND được thể hiện bằng. Bảng 2.1. Phép toán Khi thực hiện phép toán AND địa chỉ mạng IP với mặt nạ mạng con thì tất cả các bit thuộc phần địa chỉ host sẽ bằng 0, còn các bit thuộc trường mạng và mạng con vẫn giữ nguyên giá trị ban đầu, từ đó ta nhận biết được địa chỉ mạng và địa chỉ mạng con từ địa chỉ IP nhận được. Ví dụ với địa chỉ IP 172.16.10.50 và mặt nạ mạng con là 255.255.255.0 thì việc nhận dạng địa chỉ mạng con được thực hiện như sau: đầu tiên ta thể hiện địa chỉ này dứơi dạng nhị phân, ta nhận biết được đây là địa chỉ thuộc lớp B nên ta bỏ qua 2 octet đầu. Bây giờ ta thực hiện phép toán AND với octet thứ 3 và 4: Bảng 2.2. Phép toán AND Vậy địa chỉ trên thuộc mạng con có địa chỉ là 10(172.16.10.0). Mạng con này có các host có địa chỉ từ 172.16.10.1 đến 172.16.10.254. Địa chỉ 172.16.10.255 là địa chỉ quảng bá cho mạng con. Số lượng các bit trong trường mạng con thay đổi tùy theo sự ấn định của nhà quản lí. Việc ấn định này xuất phát từ cấu trúc riêng của mỗi mạng. 2.1.8. Các loại địa chỉ IP. 2.1.8.1. Địa chỉ unicast. Đây là một loại địa chỉ xác định duy nhất cho một máy tính tham gia vào mạng Internet. Trong trường địa chỉ đích của phần mào đầu IP, nếu sử dụng một địa chỉ unicast, thì đích đến của gói IP chứa phần mào đầu này sẽ là một máy duy nhất trên mạng. Khi phát gói tin trên mạng, nếu dùng địa chỉ unicast thì việc tắc nghẽn ít xảy ra và ít tiêu tốn băng tần cho các loại gói tin này. Ví dụ như một địa chỉ lớp C 192.10.8.2 là một loại địa chỉ unicast. Khi gói tin có địa chỉ đích là địa chỉ này thì nó chỉ được chuyển đến duy nhất máy có địa chỉ là 2 trên mạng 192.10.8.0. 2.1.8.2. Địa chỉ quảng bá (broadcast). Khi xem xét về một địa chỉ IP 32 bit ta thấy nó có chứa thông tin về mạng và host nằm trong mạng. Ưu điểm của việc đưa thông tin về mạng vào địa chỉ Internet là giúp cho việc định tuyến được hiệu quả. Một ưu điểm khác là các địa chỉ Internet có thể dùng để chỉ ra một mạng cũng giống như chỉ ra một host trên mạng. Theo qui ước Host ID 0 sẽ không bao giờ gán cho một máy nào trên mạng. Một địa chỉ IP có phần Host ID bằng 0 sẽ được dùng cho bản thân mạng. Ví dụ như địa chỉ IP 128.2.0.0 là một địa chỉ của một mạng ở lớp C. Một ưu điểm đáng kể nữa của địa chỉ IP là nó bao gồm một địa chỉ broadcast cho tất cả các máy trên mạng. Địa chỉ broadcast có tất cả các bit thuộc phần hostid điều bằng 1. Với loại địa chỉ quảng bá được mô tả ở trên người ta gọi là địa chỉ broadcast trực tiếp vì nó bao gồm cả phần ID mạng và phần Host ID quảng bá. Bất lợi của loại địa chỉ quảng bá trực tiếp là đòi hỏi phải biết một địa chỉ mạng thì mới có thể phát quảng bá trên mạng đó. Trên Internet có tình huống một Host của một mạng cục bộ khi mới khởi động lên không thể biết được địa chỉ của mạng mà mình đang tham gia. Để giải quyết vấn đề này người ta đưa ra loại địa chỉ quảng bá giới hạn, hay còn gọi là địa chỉ broadcast cục bộ. Với loại địa chỉ này cho phép một máy được phát quảng bá trong phạm vi một mạng cục bộ mà không cần biết địa chỉ cụ thể của mạng đó. Địa chỉ quảng bá cục bộ bao gồm 32 bit 1 ( nên đôi khi còn gọi là địa chỉ broadcast “ toàn là 1”). Một máy có thể biết được địa chỉ của mạng cục bộ ( phần Net ID trong địa chỉ IP của nó) khi mới khởi động bằng cách sử dụng bản tin yêu cầu có chứa địa chỉ đích là địa chỉ quảng bá cục bộ. 2.1.8.3. Địa chỈ multicast. Cùng với việc phát gói tin đến một địa chỉ duy nhất bằng cách sử dụng địa chỉ unicast và gói tin phát đến tất cả các host trong một mạng cục bộ bằng cách sử dụng địa chỉ broadcast, mô hình địa chỉ IP còn hỗ trợ một loại địa chỉ cho phép phát các gói đến nhiều điểm, đó là địa chỉ multicast. Địa chỉ multicast khác địa chỉ broadcast ở chỗ là nó không phát gói tin đến toàn bộ các host có trong một mạng cụ thể, mà nó phát đến một nhóm các host có tham gia vào một địa chỉ multicast. IP dành riêng các địa chỉ lớp D cho việc phát multicast. Địa chỉ lớp D có 4 bit đầu là 1110 còn 28 bit còn lại xác định một nhóm multicast cụ thể. Khi thể hiện dưới dạng dấu chấm thập phân, miền địa chỉ multicast bao gồm từ: 224.0.0.0 đến 239.255.255.255. Tuy nhiên, nhiều phần trong không gian địa chỉ này đã được dành cho mục đích đặt biệt. Ví dụ địa chỉ thấp nhất, 224.0.0.0 được dành riêng, không một nhóm nào được phép lấy địa chỉ này. Các địa chỉ còn lại cho đến 224.0.0.255 được dành riêng cho việc định tuyến multicast và các giao thức bảo trì nhóm; bộ định tuyến bị ngăn cấm trong việc chuyển đi một datagram đến bất kỳ một địa chỉ bất kỳ nằm trong vùng này. Phạm vi tác động của một IP multicast. Phạm vi của một nhóm multicast dùng để chỉ vùng các thành viên trong nhóm. Nếu tất cả các thành viên ở trên cùng một mạng vật lí, chúng ta nói rằng phạm vi của nhóm được được giới hạn trên một mạng. Tương tự, nếu tất cả các thành viên đều nằm trong cùng một tổ chức, chúng ta nói rằng nhóm có phạm vi được giới hạn trong một tổ chức. Cùng với phạm vi của nhóm, mỗi datagram multicast còn có một phạm vi nữa được định nghĩa là tập hợp của các mạng mà trên đó datagram multicast sẽ được nhân bản. Một cách không chính thức phạm vi của một datagram được xem như vùng của nó. IP sử dụng hai kỹ thuật để kiểm soát phạm vi multicast. Kỹ thuật thứ nhất là dựa vào trường thời gian sống (TTL) của datagram để kiểm soát vùng của nó. Bằng cách thiết lập một giá trị nhỏ cho TTL, máy tính có thể xác định khoảng cách giới hạn mà một datagram sẽ được chuyển đi. Ví dụ, chuẩn xác định rằng các thông điệp điều khiển, được sử dụng chỉ để thông tin liên lạc giữa bộ định tuyến và máy tính trên cùng một mạng, phải thiết lập giá trị cho TTL là 1. Kết quả là bộ định tuyến sẽ không chuyển bất kỳ một datagram nào ra khỏi một mạng cục bộ, do khi datagram đến được bộ định tuyến thì nó đã hết thời hạn tồn tại trong mạng nên nó sẽ bị hủy bỏ. Tương tự nếu hai chương trình ứng dụng chạy trên cùng một máy muốn sử dụng IP multicast cho việc truyền thông tin giữa chúng (ví dụ việc kiểm tra phần mềm), chúng có thể gán cho TTL giá trị 0 để ngăn ngừa việc datagram đi ra khỏi máy này. Hiển nhiên là chúng ta có thể gán cho TTL một giá trị lớn hơn để mở rộng phạm vi của nó. Ví dụ, một số nhà sản xuất bộ định tuyến đề nghị việc cấu hình các bộ định tuyến tại các công ty hay tổ chức để giới hạn các datagram multicast không đi ra khỏi đơn vị của mình trừ khi datagram này có giá trị TTL lớn hơn 15. Kỹ thuật thứ hai được sử dụng cho việc quản lí phạm vi tác động của một datagram còn gọi là quản lí phạm vi. Kỹ thuật này sử dụng một không gian địa chỉ dành cho một nhóm riêng biệt. Các bộ định tuyến trong một mạng cục bộ sẽ không được chuyển đi bất kỳ một datagram nào có mang địa chỉ này, công việc này nhằm tránh việc multicast đến các thành viên bên ngoài mạng. 2.2. Giao Thức Ánh Xạ Địa Chỉ (ARP). 2.2.1. Giới Thiệu. Như đã mô tả mô hình địa chỉ TCP/IP, trong đó mỗi máy tính (host) được gán một địa chỉ 32 bit, và internet được coi là một mạng ảo, chỉ sử dụng địa chỉ được gán cho khi gởi và nhận các gói. Mặt khác, cũng cần nhấn mạnh rằng hai máy trên cùng một mạng vật lý chỉ có thể liên lạc được khi biết địa chỉ vật lý của nhau. Do đó, khi một quá trình ứng dụng cần gởi các gói qua một mạng vật lý thì bắt buộc phải ánh xạ địa chỉ internet sang địa chỉ vật lý. 2.2.2. Cách Thực Hiện. A: Máy có yêu cầu ARP B: Máy đích có địa chỉ IP mà máy A yêu cầu Hình 2.7. Qúa trình thực hiện ARP. Việc máy A quảng bá trước khi gởi dữ liệu, thoạt nhìn có vẽ là giải pháp thật dài dòng, nhưng có một lý do quan trọng lý giải việc nó thực hiện quảng bá trước. Việc quảng bá rất là tốn kém, không thể luôn luôn dùng đến khi một máy cần gởi dữ liệu đi, vì mỗi máy trên mạng đều phải nhận và xử lý gói dữ liệu quảng bá. Như trình bày trong hình, ý tưởng về giải địa chỉ động của ARP thật đơn giản: Khi máy A muốn giải địa chỉ IP của máy B là IB, nó phát đi đến mỗi máy khác mội gói dữ liệu đặc biệt để hỏi xem máy nào có địa chỉ IP là IB, thì trả lời bằng địa chỉ vật lý, PB. Tất cả các máy, bao gồm cả B, đều nhận được lời yêu cầu này, nhưng chỉ có máy B nhận ra địa chỉ IP của nó và gởi lại lời đáp có bao gồm địa chỉ vật lý của nó. Khi A nhận được lời đáp, nó sử dụng địa chỉ vật lý này để gởi dữ liệu Internet trực tiếp đến B. Như thế có thể tóm tắt: Giao thức giải địa chỉ, ARP, cho phép một máy tìm địa chỉ vật lý của máy đích trên cùng mạng vật lý, chỉ cần biết địa chỉ IP của máy đích. 2.2.3. ARP và TIMEOUT. Để giảm chi phí truyền tin, các máy tính sử dụng ARP có duy trì một kho chứa (cache) những yêu cầu kết hợp địa chỉ IP thành địa chỉ vật lý mới nhất. Có nghĩa là, bất cứ khi nào máy tính gởi một yêu cầu và nhận một lời đáp ARP, nó cất thông tin về địa chỉ phần cứng tương ứng vào kho chứa, để lần sau lấy ra dùng lại. Khi truyền một gói dữ liệu, máy tính luôn luôn tìm thông tin địa chỉ trong kho chứa của nó trước khi gửi một yêu cầu ARP. Nếu nó tìm thấy địa chỉ kết hợp như mong muốn trong kho chứa ARP của nó, máy tính sẽ không cần broadcast trên mạng. Như thế, khi hai máy tính trên một mạng muốn liên lạc với nhau, chúng sẽ bắt đầu với yêu cầu và lời đáp ARP, và sau đó chỉ việc gởi dữ liệu mà không cần đến ARP. Kinh nghiệm cho thấy rằng, vì hầu hết các trao đổi thông tin trên mạng đều có việc gởi dữ liệu, nên chỉ cần một kho chứa nhỏ cũng đủ. Kho chứa ARP cho ta một ví dụ về trạng thái mền (soft state), một kỹ thuật thường được sử dụng trong các giao thức mạng. Tên của nó mô tả một trạng thái mà khi đó thông tin có thể trở nên “cũ rích” mà lại không được báo trước. Trong trường hợp của ARP, ta xét hai máy tính A và B được nối vào mạng Ethernet. Giả sử máy A gởi một yêu cầu ARP, và máy B đáp lời. Giả sử rằng, sau đó máy B bị hỏng. Máy A sẽ không nhận được thông tin gì về việc máy B bị hỏng. Hơn nữa, vì nó đã có thông tin về địa chỉ của máy B trong kho chứa ARP, máy A sẽ tiếp tục gởi dữ liệu cho B. Vì thế, A không có cách nào biết được khi nào thì thông tin trong kho chứa của nó hết giá trị. Để khắc phục trạng thái mềm, thông thường các giao thức mà cài đặt trạng thái mềm sử dụng bộ đếm thời gian, và thông tin trạng thái bị xóa bỏ sau khi hết thời hạn. Ví dụ, bất cứ khi nào thông tin về địa chỉ liên kết được đặt vào kho chứa ARP, giao thức sẽ yêu cầu bộ đềm thời gian bắt đầu đếm, thông thường là 20 phút. Khi hết hạn (sau 20 phút) thông tin phải được xóa bỏ. Sẽ có hai khả năng xảy ra sau khi đã xóa bỏ. Nếu không còn dữ liệu được gởi tới máy đích này, không có gì xảy ra nữa. Nếu vẫn còn dữ liệu phải được gởi tới máy tính đích này và không còn thông tin về địa chỉ này trong kho chứa, máy tính sẽ phải lặp lại thủ tục thông thường là broacast một yêu cầu ARP và lấy lại thông tin địa chỉ. Nếu máy đích vẫn còn đó, thông tin địa chỉ được đặt vào kho chứa ARP. Nếu không nơi gởi sẽ phát hiện được rằng máy đích không còn nối mạng nữa. Ưu điểm. Lớn nhất là tính tự động, trước hết một máy tính có thể xác định khi nào thông tin ARP trong kho chứa của nó phải được làm mới trở lại độc lập với các máy tính khác. Thứ hai, máy gởi không cần liên lạc với máy nhận hay nơi thứ ba để xác định rằng thông tin về liên kết địa chỉ không còn giá trị sử dụng nữa; nếu máy đích không đáp lại một yêu cầu ARP, máy gởi sẽ xem như máy đích không còn nữa. Thứ ba là mô hình này không phụ thuộc vào phần cứng mạng để xác định việc truyền dữ liệu. Nhược điểm: lớn nhầt của trạng thái mềm là quá trình bị chậm-nếu thời gian đếm là N giây, máy gởi sẽ chỉ nhận biết được rằng máy nhận đã bị hỏng sau N giây. 2.2.4. Tinh chế ARP. Một số tinh chế của ARP được đưa vào giao thức. Trước hết, quan sát rằng nếu máy A sắp sử dụng ARP vì nó cần gởi dữ liệu cho B thì sẽ có xác suất khá cao là máy B sẽ gởi dữ liệu cho A trong tương lai gần. Để lợi dụng điều này và tránh bớt giao dịch trên mạng, A sẽ gộp cả liên kết IP thành địa chỉ vật lý của nó khi gởi cho B một yêu cầu. B sẽ trích thông tin liên kết của A ra và lưu vào kho chứa ARP của nó, và sau đó gởi lời đáp đến A. Thứ hai, lưu ý rằng A đã broadcast yêu cầu của nó đầu tiên, tất cả các máy trên mạng đều nhận được và có thể trích ra và cập nhật thông tin liên kết địa chỉ IP thành địa chỉ vật lý của A vào các kho chứa ARP của chúng. Một máy tính có thể thông báo máy tính khác về địa chỉ mới bằng cách gởi một ARP quảng bá khi khởi động. Tóm tắt: Thông tin liên kết IP thành địa chỉ vật lý của máy gởi được đưa thêm vào mỗi ARP broacast; nơi nhận sẽ cập nhật thông tin liên kết địa chỉ IP thành địa chỉ vật lý trong kho chứa của chúng trước khi xử lý gói dữ liệu ARP. 2.2.5. Đóng gói ARP. Khi một thông điệp ARP di chuyển từ máy này đến máy kia, nó được chuyển tải trong các Frame. Hình 2.8. Quá trình đóng khung ARP. Để xác định khung khi nó chuyển tải thông điệp ARP, nơi gởi sẽ gán một giá trị đặt biệt cho vùng kiể trong phần đầu (header) của frame, và đặt thông điệp ARP vào vùng dữ liệu của frame. Khi một frame đến được một máy tính, phần mềm mạng sử dụng kiểu khung để xác định nội dung củ nó. Trong hầu hết các kỹ thuật, chỉ một kiểu giá trị được sử dụng cho tất cả các frame chuyển tải thông điệp ARP. Phần mền mạng của máy nhận cũng phải kiểm tra các thông điệp của ARP để phân biệt giữa yêu cầu ARP và lời đáp ARP. 2.2.6. Định dạng giao thức ARP. Không giống như hầu hết giao thức, dữ liệu trong các gói không có phần đầu (header) được định dạng cố định. Thay vì thế, để cho ARP có ích với các kỹ thuật mạng khác nhau, độ dài của các vùng chứa địa chỉ tùy thuộc vào kiểu mạng. Tuy nhiên , để có thể hiểu được một thông điệp ARP bất kỳ, trong phần đầu có những vùng cố định nằm gần nơi xác định độ dài của địa chỉ trong các vùng tiếp theo sau. Thực ra dạng thông điệp ARP rất tổng quát sao cho nó có thể được sử dụng với những địa chỉ vật lý bất kỳ và các giao thức địa chỉ bất kỳ. Hình 2.9. Cấu trúc gói thông điệp của ARP và RAPP. Hình 2.9. là một dạng thông điệp của ARP 28- octets, 4 octets trên mỗi hàng. Hardware Type: xác định kiểu của bộ giao tiếp phần cứng mà máy gởi đang cần biết. Với giá trị 1 dành cho mạng Ethernet. Protocol Type: xác định kiểu của giao thức cấp cao mà máy gởi cung cấp. Operation: Xác định loại yêu cầu (yêu cầu ARP(1), lời đáp ARP(2), yêu cầu RARP(3), lời đáp RARP(4)). Hlen (hardware address length): xác định độ dài địa chỉ phần cứng. Plen (IP address length):xác định độ dài địa chỉ của giao thức cấp cao (IP). Sender Hardware Address: Địa chỉ phần cứng nơi gởi. Sender IP Address: Địa chỉ IP nơi gởi. Target Hard Ware Address: Địa chỉ phần cứng của máy đích khi thực hiện một yêu cầu. (RARP) Target IP Address: Địa chỉ IP của máy đích khi thực hiện một yêu cầu. Trước khi máy đích đáp lời, nó sẽ điền các địa chỉ còn thiếu, hoán đổi cặp gởi và nhận, và thay đổi thao tác trở thành lời đáp. 2.3. Giao Thức Ánh Xã Địa Chỉ Ngược RARP (Reverse Address Resolution Protocol). Giao thức này cho phép một máy tính tìm ra địa chỉ IP của nó từ một máy chủ. Giao thức RARP được chuyển thể từ giao thức ARP và sử dụng cùng một dạng thông điệp với nó. Cách một máy sử dụng RARP như sau: Đầu tiên máy gởi broadcast một yêu cầu RARP mà xác định nó vừa là máy gởi vừa là máy đích, và cung cấp địa chỉ mạng vật lý của nó trong vùng địa chỉ phần cứng của máy đích. Tấ cả các máy trên mạng đều nhận được lời yêu cầu này, nhưng chỉ có máy có thẩm quyền cung cấp dịch vụ RARP sẽ xử lý lời yêu cầu và gởi lời đáp; các máy này được gọi là máy chủ RARP. Máy chủ trả lời yêu cầu bằng cách điền vào vùng địa chỉ đích, thay đổi kiểu thông điệp từ yêu cầu trở thành lời đáp, và gởi lời đáp trực tiếp trở lại vào máy nào đã yêu cầu. Máy yêu cầu ban đầu sẽ nhận lời đáp từ tất cả các máy chủ RARP. A: Máy yêu cầu RAPP C,D: Máy chủ RAPP Hình 2.10. Sơ đồ RAPP. 2.4. Internet Contronl Message Protocol (ICMP):Giao Thức Bản Tin Điều Khiển Internet. ICMP là giao thức hỗ trợ IP trong việc điều khiển luồng, điều khiển lỗi, nó làm việc cùng với IP, được đặt tại lớp 3 với IP. Bởi vì IP là giao thức không kết nối, nên nó không có cách để chuyển tiếp thông báo và lỗi về host phát ban đầu. ICMP thực hiện các chức năng của nó dựa trên IP, ICMP sẽ gởi các bản tin trạng thái và các bản tin thông báo lỗi về host gởi. ICMP sử dụng IP để mang dữ liệu ICMP bên trong qua mạng. Bởi vì ICMP sử dụng IP như một phương tiện không có độ tin cậy nên đơn giản có thể coi IP mang thêm bản tin ICMP. Hình 2.11. Cấu trúc bản tin ICMP. ICMP là nguồn gốc của nhiều bản thông báo mà người sử dụng (user) nhìn thấy trên màn hình hiển thị. Ví dụ nếu một user cố gắng nhập vào một trạm ở xa nhưng host không nhận được thì user sẽ được thông báo “host unreachable” trên màn hình hiển thị. Thông báo này là của ICMP. Các chức năng chính của ICMP. Phát hiện và thông báo lỗi. Điều khiển luồng (flow Control): khi các datagram đến quá nhanh không xử lý kịp , hệ thống đích (hoặc router, gateway )sẽ gởi một khung ICMP về hệ thống nguồn., khung này báo cho hệ thống nguồn biết để tạm ngưng phát cho đến khi nhận được khung ICMP khác cho phép phát lại. Phát hiện các địa chỉ không tồn tại thực: địa chỉ đích trên datagram không xác định được hoặc không thể thông tin được. Phát hiện các datagram được định tuyến sai: định tuyến lại và một số chức năng khác. 2.5. Internet Protocol Version 4 (IPv4). Internet Protocol là giao thức chính ở lớp Internet của bộ giao thức liên mạng TCP/IP. IP không thực hiện các chức năng phát hiện và sữa lỗi. Nhưng không vì vậy mà IP trở thành giao thức không đáng tin cậy. Trong sự liên kết hoạt động với các giao thức khác, IP đảm bảo định tuyến cũng như phân phối dữ liệu chính xác cho các dịch vụ trên mạng và liên mạng. 2.5.1. Cấu trúc khung dữ liệu IP( Datagram ). Khung dữ liệu IP (Datagram) là đơn vị tin cơ bản truyền trên Internet. Cấu trúc tổng quát của một IP Datagram như sau: Hình 2.12. Cấu trúc khung IP IP header như hình trên gồn nhiều từ (Word) 32 bits ghép lại, tạo thành một cấu trúc nhiều vùng (fields) như sau: - Ver(Version): dài 4 bits, trường này được sử dụng để chỉ dạng của IP hiện hành được cài đặt (phiên bản 4 hay phiên bản 6). - IHL (Internet Header Length): 4 bit, chỉ độ dài của header, tính bằng từ (Word) 32 bits, tính từ điểm bắt đầu của khung dữ liệu. Chiều dài tối thiểu của header là 5 (5* 32 bits)(khi không có Options). Trong 5*32 bit này, các trường không dùng đều nhận giá trị “0” gọi là các bit đệm (Padding Bit). - Type Of Service: 8 bit đánh số 0 tới 7 chỉ thể loại (kiểu) dịch vụ. 8 bit được phân bố như sau : Trong đó: Precedence (3 bit) chỉ thị quyền ưu tiên gởi Datagarm với: 111 – Ưu tiiên cao nhất 000 – Ưu tiên thấp nhất D (Delay) : 1 bit chỉ độ trể yêu cầu của khung D = 0 : Độ trể bình thường D = 1 : Yêu cầu độ trể thấp T (Throughput): 1 bit, chỉ thông lượng yêu cầu T = 0 : Thông lượng bình thường T = 1 : Thông lượng cao R (Reliability): 1 bit, chỉ độ tin cậy yêu cầu R = 0 : Độ tin cây bình thường R = 1 : Độ tin cậy cao Hai bit cuối không sử dụng. -Total Length: 16 bits, chỉ độ dài tổng cộng của Datagram, bao gồm cả phần header. Total length được tính theo đơn vị Octects (byte). Kích thước tối đa của một gói dữ liệu là 216 = 65,536 octects. Có thể tính được kích thước của vùng dữ liệu bằng cách lấy Total Length trừ đi IHL. Trong hầu hết các ứng dụng chiều dài tối đa của gói 216 không phải là một giới hạn khắc khe. Điều này chỉ trở nên quan trọng hơn trong tương lai nếu các mạng tốc độ cao hơn có thể chuyển tải các gói dữ liệu lớn hơn 65,536 octect. Datagram dài 216 octect là không thực tế cho hầu hết các Host và các mạng. Tất cả các host phải được chuẩn bị để nhận một datagram đến 576 octect (các datagram này có thể là một datagram hoàn toàn hoặc một mảnh). Người ta khuyên rằng các host chỉ nên gởi datagram lớn hơn 576 octect nếu đảm bảo ằng trạm đích có thể chấp nhận được datagram lớn hơn. - Identification : 16 bits (trường nhận dạng). Trường này chì có ý nghĩa đối với trạm đích. Nó cùng với các tham số khác(như địa chỉ nguồn, địa chỉ đích) dùng để định danh duy nhất một datagram trong khoảng thời gian nó vẫn còn trên mạng. - Flags (trường cờ): 3 bits, liên quan đến sự phân đoạn(fragment) các datagram cụ thể là: Bit 0 : Reserve – chưa sử dụng, luôn lấy giá trị 0 Bit 1 (DF): Don’t Fragment – bit không phân đoạn DF = 0 : Chỉ có ý nghĩa khi datagram được phép phân mảnh. DF = 1 : Chỉ rằng datagram không nên phân mảnh Bit 2 (MF) : More Fragment – bit cho biết mảnh này có phải là mảnh cuối cùng trong datagram hay không. MF = 0 : Chỉ đây là mảnh cuối cùng trong datagram. MF = 1 : Cho biết đây không phải là mảnh cuối cùng của datagram. - Fragment Offset: 13 bits, chỉ vị trí lệch của mảnh datagram hiện hành so với toàn bộ chuổi datagram tính bằng đơn vị 64 bits (8 bytes). Mỗi Fragment đều có phần đầu datagram giống hầu hết với phần đầu của datagram ban đầu(ngoại trừ 1 bit trong vùng Flags để chỉ rằng nó là một Fragment), kế tiếp là phần dữ liệu có thể truyền tải trong một Fragment mà vẫn duy trì tổng độ dài nhỏ hơn MTU (Maximum Transfer Unit: đơn vị truyền tải tối đa) của mạng mà nó di chyển trên đó. - Time To Live (thời gian sống) : 8 bits, qui định thời gian tồn tại (tính bằng giây) của datagram bên trong mạng để tránh tình trạng một datagram bị quẩn trên liên mạng. Thời gian này được thiết lập bởi trạm gởi và nó sẽ giảm đi (thường là một đơn vị (1s)) khi đi qua bộ Router, mặc dù thời gian xử lý datagram nhỏ hơn (1s). Nếu thời gian sống tiến đến 0 trước khi datagram đến đích cuối cùng của nó thì datagram này sẽ bị hủy bỏ. Thời gian sống có thể xem như là giới hạn thời gian tự hủy của gói. - Protocol : 8 bits, chỉ 2 giao thức lớp trên sẽ nhận dữ liệu của IP ở trạm đích (hiện tại thường là TCP hoặc UDP được cài đặt) trường này đảm bảo sự phân phối chính xác các datagram đến đúng đích. - Header Checksum: 16 bits, chứa mã kiểm soát lỗi 16 bits theo phương pháp CRC chỉ cho vùng Header. Nó đảm bảo sự toàn vẹn của các giá trị trong phần đầu. Nếu Header Checksum bị sai thì toàn bộ gói sẽ bị hủy. - Source Address : 32 bits , mang địa chỉ trạm nguồn - Destination Address : 322 bits , mang địa chỉ trạm đích, nơi nhận datagram. - Options : có độ dài không cố định. Đây là các tuỳ chọn thêm , có thể là: Security : datagram có được mã hóa ? luật mã hóa?. Source Routing: lưu trữ địa chỉ của các trạm trung chuyển mà datagram phải đi qua. Đây là một hình thức định tuyến trước Route Recording : lưu trữ địa chỉ các trạm trung chuyển mà datagram đã đi qua nhằn định tuyến trước cho các datagram sau (nấu cần). Stream Identification : giúp trạm đích xác định thể loại dữ liệu nếu đó không phải là dữ liệu bình thường(speech, bitmap…). Time Stamp : các trạm trung chuyển lưu lại thời gain xử lý datagram Và một số Option khác - Padding (độ dài thay đổi) là vùng đệm , được dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32bits - Data (độ dài thay đổi ) vùng dữ liệu có độ dài là bội số của 8 bits có độ dài là Total Length – IHL. 2.5.2. Các chức năng của IP. 2.5.2.1. Phân mảnh và tái hợp. + Sự phân mảnh Sự phân đoạn của datagram là cần thiết khi datagram đó bắt nguồn từ một mạng cục bộ, mà cho phép kích thước gói tin lớn, đi qua một mạng cục bộ khác cho phép giới hạn gói có kích thước nhỏ hơn trước khi datagram đó đến đích cuối cùng. Có nghĩa là việc phân đoạn chỉ có thể xảy ra tại các bộ định tuyến hay gateway Một datagram có thể được đánh dấu la “Don’t Fragment” (không phân đoạn). Bất kỳ một datagram nào được đánh dấu như thế sẽ không được phân mảnh trên mạng dưới bất kỳ hoàn cảnh nào. Nếu datagram được đánh dấu “không phân mảnh” mà không thể phân phối nó đến trạm đích cuối cùng với điều kiện không phân mảnh nó thì datagram này sẽ bị hủy. Thủ tục phân mảnh và tái hợp cần thiết để có thể phân các datagram thành các mảnh mà sau đó chúng có thể tái hợp lại. Trạm nhận các mảnh sử dụng trường “Identification”để đảm bảo rằng các mảnh của các datagram khác nhau không trộn lẫn nhau. Trường “Fragment Offset” chỉ cho trạm nhận vị trí hiện tại so với datagram nguyên thủy trong một chuỗi các datagram. Trường “fragment Offset” và Length sẽ quyết định độ dài của từng mảnh. Cờ “More Fragment” chỉ ra mảnh cuối cùng thuộc datagram. Trường này chỉ có ý nghĩa đối với việc tái hợp datagram. Trường “Identification” được sử dụng để phân biệt các mảnh của một datagram này so với các mảnh của các datagram khác. Module giao thức đầu tiên của datagram sẽ thiết lập trường Identification đến một giá trị phải là duy nhất giữa trạm nguồn và trạm đích trong thời gian datagram còn tồn tại trên mạng. Module giao thức ban đầu của toàn bộ datagram sẽ thiết lập cờ MF về 0 và cờ FO(Fragment Offset) về 0. Để phân mảnh một datagram dài, thì module IP sẽ tạo ra 2 datagram mới, copy nội dung của các Field s mào dầu của datagram đưa vào 2 phần header mới. Dữ liệu của datagram dài sẽ chia thành hai phần dựa trên đơn vị 8 octects (phần thứ hai có thể không là bội số của 8 octects). Phần thứ nhất của datagram dài được đặt vào datagram đầu tiên, cờ MF=1. Phần dữ liệu thứ hai được đặt vào mảnh thứ hai, cờ MF có giá trị giống với giá trị của MF thuộc datagram dài. Nếu ta gọi số lượng của các khối 8 octect trong phần dữ liệu của mảnh đầu tiên là NFB(Number of Fragment Blocks) thì trường FO của mảnh thứ hai có giá trị là FO của datagram dài cộng với số NFB. Thủ tục phân mảnh trên có thể áp dụng cho n mảnh chứ không nhất thiết phải hai mảnh như mô tả. Một ví dụ minh họa cho thấy việc phân đoạn : Hinh 2.13. Qúa trình phân đoạn. Cả hai máy tính đều nối trực tiếp vào Ethernet có MTU (Maximum Transfer Unit: đơn vị truyền tải tối đa của của mạng) là 1500 octect. Như thế cả hai máy đều có thể gởi các datagram dài đến 1500 octect . Tuy nhiên con đường nối chung bao gồm một mạng có MTU là 600 Octect. Nếu máy A gởi cho máy B một datagram lớn hơn 620 octect, bộ định tuyến R1 phân đoạn datagram. Tương tự máy B gởi một datagram lớn cho máy A, bộ định tuyến R2 sẽ phân đoạn datagram. Giao thức IP không giới hạn datagram có kích thước nhỏ và cũng không đảm bảo rằng datagram lớn sẽ được chuyển mà không bị phân đoạn. Máy nguồn có thể chọn kích thước của datagram bất kỳ mà nó nghĩ là hợp lý. Việc phân đoạn và tái hợp lại sẽ tự động xảy ra không có sự tác động đặt biệt gì từ máy nguồn. Đặc tả của IP phát biểu rằng các bộ định tuyến phải chấp nhận datagram có kích thước cho tới kích thước lớn nhất của các MTU của các mạng mà nó được nối vào. + Sự tái hợp Để tái hợp các mảnh của một datagram, Module IP kết hợp các mảnh datagram mà có cùng giá trị ở 4 trường là Identification, Source Address, Destination Address và Protocol. Sự kết hợp này được thực hiện bằng thay thế phần dữ liệu của mỗi mảnh theo vị trí tương đối đượoc chỉ ra bởi trường FO trong header của các mảnh. Mảnh đầu tiên sẽ có giá trị FO = 0 và mảnh cuối cùng có cờ MF = 0. Một câu hỏi được đặt ra là: các mảnh nên được tái hợp lại sau khi đi qua một mạng, hay các Fragment được chuyển đến máy cuối cùng trước khi kết hợp lại?. trong một TCP/IP Internet, một khi một datagram được phân đoạn, các mảnh sẽ di chuyển như các datagram riêng biệt cho đến đích cuối cùng nơi mà chúng phải được kết hợp lại. Giữ nguyên cả mảnh đến đích cuối cùng có hai nhược điểm: Trước hết, vì datagram không được tập hợp lại ngay sau khi đi qua một mạng có MTU nhỏ, các mảnh nhỏ phải được chuyển tải từ lúc phân đoạn đến đích cuối cùng. Việc kết hợp datagram tại đích cuối cùng có thể không hiệu quả: kể từ nơi phân đoạn các mảnh nhỏ có thể đi qua các mạng có MTU lớn. Thứ hai: nếu có một mảnh bị thất lạc, datagram không thể kết hợp lại được. Máy nhận sẽ bắt đầu bộ điếm kết hợp khi nhận được mảnh đầu tiên. Nếu thời hạn đếm đã hết trước khi tất cả các mảnh đến được, máy nhận sẽ huỷ bỏ các mảnh đã nhận mà không xử lý gì datagram. Như vậy xác suất mất datagram sẽ tăng lên khi việc phân đoạn xảy ra vì việc mất một mảnh sẽ dẫn đến mất toàn bộ datagram ban đầu. Mặc cho những khuyết điểm nhỏ, thực hiện vịec kết hợp lại tại đích cuối cùng vẫn là việc tốt. Nó cho phép các mảnh chuyển tải một cách độc lập và không đòi hỏi bộ định tuyến trung gian phải lấy lại và kết hợp các mảnh. Trong mạng Intranet thì các mảnh sẽ được tái hợp lại ngay các trạm trung chuyển để được dữ liệu ban đầu, sau đó việc phân đoạn được thực hiện lại để phù hợp với mạng mới. 2.5.2.2. Định tuyến trên liên mạng. Chúng ta biết rằng tất cả các dịch vụ Internet được xây dựng dựa trên hệ thống phát chuyển gói không kết nối, không tin cậy. Và đơn vị cơ bản của truyền tải TCP/IP internet là IP datagram. Phần này sẽ mô tả cách mà gateway định tuyến các IP datagram và phát chuyển chúng đến đích cuối cùng. - Định tuyến trong Internet. Trong hệ thống chuyển mạch gói, định tuyến để chỉ tiến trình chọn lựa con đường để gởi gói dữ liệu qua đó, và bộ định tuyến (Router) để chỉ bất kỳ máy tính nào cũng thực hiện việc chọn lựa này. Việc định tuyến xảy ra tại một số mức. Ví dụ: bên trong một mạng diện rộng có nhiều kết nối vật lý giữa các bộ chuyển gói (packet switch). Bản thân mạng có trách nhiệm định tuyến các gói dữ liệu từ khi chúng vào mạng cho đến khi chúng rời mạng. Việc định tuyến nội bộ là hoàn toàn tự bao hàm trong mạng, các máy bên ngoài không thể tham gia vào những quyết định, chúng đơn thuần xem mạng như một thực thể chuyển phát gói. Chúng ta nhớ rằng mục đích của IP là tạo ra một mạng ảo cung cấp dịch vụ phát chuyển IP datagram không kết nối. Vì thế chúng ta sẽ tập trung vào định tuyến Internet hay định tuyến IP. Định tuyến IP chọn đường dẫn để gởi datagram qua nó. Thuật toán định tuyến IP phải chọn cách để gởi datagram qua nhiều mạng vật lý. Cả hai host và gateway đếu tham gia trong việc định tuyến IP. Khi một chương trình ứng dụng trên một host muốn thông tin, thì giao thức TCP phát ra một hoặc nhiều datagram. Trạm host phải quyết định định tuyến khi nó chọn được nơi để gởi datagram. Gateway khác host ở chỗ Gateway được nối với nhiều mạng vật lý còn host chỉ nối trực tiếp với một mạng vật lý. -Định tuyến IP theo bảng. Thông thường thuật toán định tuyến IP sử dụng bảng định tuyến Internet trên mỗi máy để lưu trữ thông tin về các đích có thể đến và cách để đến các đích đó. Bởi vì cả hai Host và Gateway đều định tuyến datagram nên cả hai đều có bảng định tuyến. Bất cứ khi nào phần mềm định tuyến Ip trên host hoặc Gateway cần truyền các gói datagram thì nó sẽ tham khảo vào bảng định tuyến để nó quyết định nơi nó cần gởi. Một điều đưa ra là cái gì sẽ được lưu trong bảng định tuyến?. Nếu mỗi bảng định tuyến đều chứa thông tin về địa chỉ đích thì nó không thhể giữ thông tin trong bảng luôn được cập nhật. Hơn nữa, số lượng trạm đích quá lớn nên các máy không có đủ không gian để lưu trữ thông tin. Để làm cho bảng định tuyến nhỏ và việc quyết định định tuyến có hiệu quả, người ta dùng phương pháp che dấu thông tin, phần mềm định tuyến IP chỉ giữ thông tin về các địa chỉ mạng đích và không lưu trữ thông tin về các địa chỉ của từng máy. -Định tuyến với địa chỉ IP. Chúng ta cần hiểu một điều quan trọng là ngoại trừ việc giảm bớt thời gian sống và tính lại checksum, định tuyến IP không làm thay đổi datagram ban đầu. Cụ thể, các địa chỉ datagram nguồn và đích sẽ không bị thay đổi. Chúng luôn xác định địa chỉ IP nguồn và địa chỉ IP đích cuối cùng. Khi IP thực hiện thuật giải định tuyến, nó chọn một địa chỉ IP mới giống với địa chỉ gateway. Tuy nhiên nếu datagram phân phát trực tiếp thì địa chỉ mới sẽ giống với địa chỉ đích cuối cùng. Địa chỉ IP được chọn bởi thuật toán định tuyến gọi là địa chỉ trạm kế tiếp bởi vì đây là địa chỉ mà datagram phải được gởi đến. Sau khi thực hiện thuật toán định tuyến, IP gởi datagram và địa chỉ trạm kế tiếp đến phần mềm giao tiếp mạng đảm trách cho mạng vật lý mà datagram phải được gởi qua đó. Phần mềm giao tiếp mạng liên kết địa chỉ trạm kế với địa chỉ vật lý, định dạng khung sử dụng địa chỉ vật lý, đặt datagram vào phần dữ liệu của khung và gởi. Sau khi sử dụng địa chỉ trạm kế tiếp để tìm địa chỉ vật lý, phần mềm giao tiếp mạng sẽ hủy bỏ địa chỉ trạm kế tiếp đã sử dụng ở trên. Việc IP tránh sử dụng địa chỉ vật lý để tính toán là vì để kiểm tra lỗi vấn đề định tuyến, người quản lý mạng cần phải thường xuyên kiểm tra bảng định tuyến. Chỉ sử dụng địa chỉ IP trong bảng định tuyến làm cho người quản trị dễ hiểu hơn và dễ dàng hơn trong việc xem xét phần mềm có cập nhật thông tin bảng định tuyến đúng hay không. Dưới đây là quá trình định tuyến datagram trên module IP hình 2.14. Hình 2.14. Định tuyến trên module IP. - Thiết lập bảng định tuyến IP sử dụng bảng định tuyến bất cứ khi nào nó cần tìm đường chuyển datagram đi, vì thế việc thay đổi trong bảng định tuyến sẽ làm thay được con đường mà datagram sẽ đi qua. Việc thiết lập các đường định tuyến bao gồm: khởi động và cập nhật. Mỗi gateway phải thiết lập một bộ các tuyến đường khởi đầu khi khởi động, và phải cập nhật bảng khi tuyến đường thay đổi (chẳng hạn như bộ giao tiếp mạng bị hỏng). Việc khởi động tùy thuộc vào hệ điều hành. Trong một số hệ điều hành, gateway đọc bảng định tuyến ban đầu từ một bộ nhớ phụ khi khởi động, lưu trữ nó vào bộ nhớ chính. Với một số hệ khác, hệ điều hành bắt đầu từ một bảng trống (rỗng) mà nó phải điền vào bằng cách thực hiện các lệnh cụ thể. Cuối cùng, cũng có những hệ điều hành bắt đầu bằng cách rút ra một tập hợp tuyến đường ban đầu từ địa chỉ của các mạng mà các máy nối vào sau đó liên lạc với các máy lân cận để yêu cầu các tuyến đường thêm vào. - Định tuyến theo cự ly Vecter. Ý tưởng trong thuật toán cự ly vector rất đơn giản. Mỗi gateway bắt đầu với một bộ các tuyến đường mà nó nối vào. Nó giữ danh sách các tuyến đường trong bảng mà mỗi dòng trong bảng xác định một mạng đích và khỏang cách đến mạng đó. Sau một khoảng thời gian định kỳ, mỗi Gateway sẽ gởi đi một bảng sao của bảng định tuyến của nó đến bất kỳ Gateway nào mà nó có thể đến trực tiếp. Các gateway nhận được các thông báo này sẽ lập ra một bảng định tuyến cho riêng mình. Vd : khi dữ liệu thông báo định tuyến được gởi từ gateway J đến gateway K, K kiểm tra danh sách các trạm đích được thông báo và khoảng cách đến từng trạm, nếu J biết được một đường ngắn hơn đến trạm đích hoặc J có chứa các trạm đích mà K không có trong bảng của nó hoặc K hiện tại đang định tuyến đến một trạm đích thông qua J và khoảng cách của J tới trạm đích bị thay đổi, K sẽ thay thế dòng này trong bảng coi như một hình thức cập nhật thông tin của bảng - Định tuyến theo trạng thái kết nối. Không giống như định tuyến theo cự ly vector, mỗi gateway sẽ xác định các trạng thái kết nối logic của nó với các gateway xung quanh và lập nên một bảng đồ định tuyến trong đó các thông tin sẽ nói lên tuyến nào cho phép thông và tuyến nào bị ngắt. Sau một khoảng thời gian có chu kỳ các gateway sẽ gởi các bảng trạng thái liên kết tuyến của nó lên mạng, thông tin này được phát quảng bá, các gateway nhận được thông báo này sẽ lập nên bảng định tuyến chung cho chúng. Ưu điểm của thuật toán này là bảng định tuyến gởi đi có dung lượng nhỏ, chỉ chứa các tuyến đã “thông ”khắc phục nhược điểm của thuật toán cự ly vector là bảng định tuyến chứa tất cả các trạm đích được nối với nó nên dung lượng bảng định tuyến lớn. 2.6. Internet Porotocol Version 6( IPv6). 2.6.1. Đặc điểm của IPv 6. -IPv6 vẫn hỗ trợ phi kết nối, cho phép nơi gửi quyết định kích thước gói dữ liệu và xác định số host tối đa mà gói dữ liệu đi qua trước khi tới đích. -Bên cạnh đó IPv6 đã thay đổi các chi tiết của giao thức IPv6 so với IPv4. -Không gian địa chỉ IPv6 lớn hơn 4 lần của không gian địa chỉ IPv4. -Tăng khả năng phân cấp địa chỉ. -Phần mào đầu của các gói dữ liệu IPv6 linh hoạt. -Cũng cho phép gói dữ liệu chọn lựa thông tin điều khiển nhưv IPv4 nhưng ở IPv6 có thêm một số chọn lựa mới giúp các chọn lựa hoàn thiện hơn. -IPv6 cung cấp phương tiện cho phép các nút trên mạng đơn tự gán các địa chỉ của chúng và cho phép nhười quản lý đánh số mạng một cách tự động. -IPv6 cung cấp khả năng mở rộng của giao thức. 2.6.2. Cấu trúc gói dữ liệu. Gói dữ liệu của IPv6 có nhiều thay đổi so với IPv4. Một gói dữ liệu IPv6 được chia thành 3 phần. Phần mào đầu cơ sở có kích thước cố định tiếp theo là phần mở rộng tùy chọn, cuối cùng là phần dữ liệu. 2.6.2.1. Phần mào đầu cơ sở. Ở phần mào cơ sở của IPv6 có một số trường của IPv4 đã được chuyển sang phần mở rộng nên phần mào đầu cơ sở sẽ chứa ít thông tin hơn. Hình 2.15. Cấu trúc gói dự liệu IPv6 Phiên bản : gồm 4 bit xác định phiên bản của giao thức được dùng. Loại lưu lượng : 8 bit chính là trường loại dịch vụ ở IPv4. Nhãn luồng :20 bit trường này cùng với trường loại lưu lượng thực hiện quyết định chuyển gói. Trong trường hợp này chứa các thông tin mà bộ định tuyến sử dụng để phối hợp gói dữ liệu với một luồng và một độ ưu tiên nhất định. -Trường số octet :16 bit xác định số lượng octet được chuyển trong gói dữ liệu. -Trường mào đầu kế : xác định kiểu mào đầu của gói dữ liệu tiếp theo. -Trường giới hạn hop : 8 bit xác định số hop tối đa mà gói dữ liệu đi qua trước khi nó bị huỷ bỏ. -Trường địa chỉ đích : 16 octet xác định địa chỉ nơi nhận. -Trường địa chỉ nguồn : 16 octet xác định địa chỉ nơi gửi. 2.6.2.2. Phần mở rộng của mào đầu. Trong cấu trúc của gói dữ liệu phần mở rộng là phần có thể thay đổi. Các phần mở rộng này tương ứng với các chức năng như định tuyến, phân đoạn, giám định. Không phải lúc nào cũng cần hết chức năng này. IPv6 mỗi gói dữ liệu chỉ đưa vào các phần đầu mở rộng dành cho những phương tiện mà nó sử dụng. Nếu đưa hết vào phần cố đinh như IPv4 thì sẽ không hiệu quả. Phần mở rộng dùng cho việc phân đoạn và tái hợp. Khác hẳn với IPv4, IPv6 không thực hiện phân đoạn ở các bộ đinh tuyến. Phân đoạn ở IP v6 thực hiện ở đầu cuối nguồn và kết hợp lại thực hiện ở đầu cuối đích. Nghĩa là tại nơi gửi việc phân đoạn sẽ được thực hiện nếu trên tuyến đường xác định gói đi qua có MTU có kích thước nhỏ hơn. Điều này cho thấy khi gói dữ liệu thay đổi đường đi thì MTU cũng có thể bị thay đổi. Vì vậy việc phân đoạn đầu cuối-đầu cuối không có thêm việc phân đoạn ở IPv4 Phần mở rộng dành cho việc định tuyến. Chức năng định tuyến ở IPv6 có một phần mở rộng riêng trong gói dữ liệu phần mở rộng này có các trường hỗ trợ cho việc định tuyến. Các phần mở rộng khác. Để giúp cho việc giám định : một vài phần mở rộng thêm vào như mở rộng hop by hop, mở rộng end to end. 2.6.3. Địa chỉ trong IPv6. Với phiên bản mới IPv6 không gian địa chỉ đã mở rộng gấp 4 lần không gian địa chỉ IPv4. Mỗi địa chỉ chiếm 16 octet. Đây cũng là một vấn đề mới cần được giải quyết. Một địa chỉ quá dài đòi hỏi người quản trị mạng cần phải đọc, nhập và bảo trì các địa chỉ này. Địa chỉ này không thể biễu diễn ở dạng thập phân vì như vậy sẽ quá dài. Để địa chỉ gọn và dễ nhớ người thíết kế đã đưa ra phương pháp 2 chấm thập lục. Mỗi ký số trong địa chỉ dạng thập lục là 16 bit gồm 2 ký số trong địa chỉ dạng thập phân Vd con số 128 bit biễu diễn dạng chấm thập phân : 104.230.146.100.255.255.255.255.0.017.128.150.10.255.255 khi chuyển sang dạng 2 chấm thập lục 68 E6 : 8C 64 : FF FF : FF FF : 0 11 : 80 96 : AFF :F ngoài ngắn gọn địa chỉ biễu diễn dạng 2 chấm thập lục có thể nén được các số 0 với một địa chỉ gồm chuỗi các số 0 vd 0 :0 :0 :128 :0 :B3 :FFFF có thể viết lại 128 : 0 : B3 : FFFF. nhưng chỉ nén được một lần trong một địa chỉ. IPv6 có 3 loại địa chỉ như sau. Đạ chỉ unicast: là địa chỉ của một máy hay bộ định tuyến. Địa chỉ Anycast : là địa chỉ của một tập hợp máy tại những địa chỉ khác nhau. Gói dữ liệu khi được định tuyến đến địa chỉ này nó sẽ được đưa tới máy gần nhất trong nhóm này. Địa chỉ multicast : là địa chỉ của một tập các máy, gói tin được định tuyến theo địa chỉ này bằng cách quảng bá. Khi áp dụng một phiên bản mới vào một mạng lớn điều này rất phức tạp cần phải có các phần mềm nâng cấp từ IPv4 sang IPv6. Muốn vậy các địa chỉ. IPv4 cần phải có quá trình chuyển đổi thành IPv6 trước khi nó được gán địa chỉ IPv6 hợp lệ. Trong quá trình thay phiên bản mới IPv6 các máy sử dụng IPv4 nên cần có sự chuyển đổi giữa hai loại địa chỉ này. Các nhà thiết kế đã dự tính dùng nhóm nhỏ trong không gian địa chỉ IPv6 dành riêng với tiền tố thập phân 0000.0000 để mã hoá IPv4 địa chỉ IPv4 được mã hoá có dạng. Các địa chỉ này gồm 80 bit đấu là 0 ; 16 bit tiếp theo có thể là 0 hay 1 ; 32 bit cuối cùng là địa chỉ IPv4 32 bit. Việc chuyển đổi này cần có phần mềm chuyển đổi riêng. Ở các lớp trên việc tính các checksum sẽ gặp khó khăn ; do phần tính checksum bao gồm địa chỉ IP nguồn và địa chỉ IP đích. Nếu có sự thay đổi ở các địa chỉ sẽ làm thay đổi cách tính và kết qủa. Để tránh việc tính checksum không trùng khớp việc mã hoá IPv4 đã được chọn sao cho 16 bit phần bù của địa chỉ IPv4 và IPv6 là giống nhau. 2.6.4. So sánh IPv6 và IPv4. IPv6 là phiên bản sau của IPv4 nên nó có khả năng cung cấp nhiều địa chỉ hơn IPv4 với 128 bits địa chỉ. - Giảm thiểu thời gian xử lý header hơn trong IPv4 vì trong IPv6 phần tùy chọn chiếm phần lớn trong mào đầu. - Một chức năng mới của IPv6 là dán nhãn các gói thuộc các luồng lưu lượng đặc biệt mà phía gởi yêu cầu xử lý đặc biệt như không mặc định chất lượng dịch vụ hoặc dịch vụ có tính thời gian thực. 2.6.5. Kết luận. Trên đây chúng ta đã xem xét cấu trúc cũng như chức năng của các giao thức lớp Internet, đây là lớp giao thức khá quan trọng trong bộ giao thức TCP/IP, nó thực hiện chức năng đánh địa chỉ và định tuyến, điều khiển luồng. Tuy nhiên đây là giao thức không kết nối do đó nó không đáng tin cậy. Một giao thức khác sẽ bổ sung sự thiếu xót của giao thức IP này là TCP, đây là một giao thức đi chung với IP, dựa vào IP để hoạt động. CHƯƠNG 3. CÁC GIAO THỨC LỚP TRUYỀN TẢI CỦA BỘ GIAO THỨC TCP/IP. ---oOo--- Ở chương trước đã trình bày dịch vụ phát chuyển dữ liệu kiểu không kết nối và hình thành nên cơ sở cho tất cả thông tin Internet và giao thức IP định nghĩa nó. Chương này sẽ trình bày hai giao thức khá quan trọng trong bộ giao thức TCP/IP là giao thức điều khiển truyền TCP (Transmission Control Protocol) và giao thức UDP (User Datagram Protocol). Các giao thức thuộc lớp Transport của bộ giao thức TCP/IP là UDP và TCP đã nói ở trên, chỉ hỗ trợ và làm việc với giao thức IP ở lớp Internet vốn là một giao thức không kết nối. Cả TCP và UDP đều có thể cung cấp dịch vụ lớp Transport cho nhiều ứng dụng ở lớp trên một cách đồng thời. Mỗi một ứng dụng và các giao thức TCP, UDP phân biệt các ứng dụng bằng các địa chỉ khác nhau gọi là cổng địa chỉ hay các cổng. Trường Protocol trong Header của IP-Datagram cho biết các datagram sẽ được xử lý bởi TCP hay UDP ở lớp trên. Trong các giao thức sắp trình bày ở đây, trường cổng địa chỉ trong Header TCP (UDP) sẽ cho TCP (UDP) biết phải chuyển gói tin đến ứng dụng nào ở lớp trên. 3.1 . Giao Thức Datagram Người Sử Dụng UDP (User Datagram Protocol). 3.1.1. Giới thiệu. Các chương trước đã mô tả khả năng của một TCP/IP Internet trong việc gởi các datagram giữa các máy tính, trong đó mỗi datagram được gởi qua Internet dựa vào địa chỉ IP đích đến. Tại lớp Internet Protocol, một địa chỉ xác định một máy tính, không còn phân biệt nào nữa cho người sử dụng nào hoặc chương trình ứng dụng nào sẽ nhận được datagram này. Chương này sẽ mở rộng bộ giao thức TCP/IP bằng việc thêm vào một cơ chế để phân biệt các đích đến trong một máy tính (host), cho phép nhiều chương trình ứng dụng trên một máy tính có thể cùng một lúc gởi và nhận datagram một cách độc lập. Trong bộ giao thức TCP/IP, UDP cung cấp cơ chế chính yếu mà các chương trình ứng dụng sử dụng để gởi datagram đến các chương trình ứng dụng khác. UDP cung cấp cổng giao thức để phân biệt các chương trình đang thực hiện trên một máy đơn. Nghĩa là, cùng với dữ liệu gởi đi, mỗi thông điệp UDP còn bao gồm một giá trị cổng đích và giá trị cổng nguồn, giúp cho phần mềm UDP tại đích có thể phát chuyển thông điệp tới đúng nơi nhận và cho phép nơi nhận gởi lại lời đáp. UDP dựa trên cơ sở Internet Protocol để chuyển cho thông điệp từ một máy đến một máy khác, nên cũng cung cấp dịch vụ phát chuyển datagram không định hướng, không có độ tin cậy như IP. Nó không sử dụng cơ chế ACK để bảo đảm rằng thông điệp đi đến đích, nó không sắp xếp thứ tự các thông điệp gởi đến. 3.1.2. Định dạng thông điệp UDP: Mỗi thông điệp UDP được gọi là user datagram. Về mặt khái niệm, một user datagram gồm hai phần: một phần đầu UDP và một vùng dữ liệu UDP. Hình 3.1. Cấu trúc khung UDP. Phần đầu được chia thành bốn vùng 16 bit để xác định cổng mà thông điệp được gởi đi, cổng mà thông điệp định gởi tới, độ dài thông điệp và UDP checksum. UDP SOURCE PORT: 16 bit, chứa giá trị cho cổng nguồn UDP. Đây là vùng tùy chọn, nó xác định cổng mà ứng dụng gởi gói tin đi và cũng là cổng mà căn cứ vào đó lời đáp lời đáp sẽ được trả lại. Khi không sử dụng (quảng bá) thì trường này nhận giá trị 0. UDP DESTINATION PORT: 16 bits, chứa giá trị cổng đích mà ứng dụng trên trạm đích sẽ nhận. UDP MESSAGE LENGTH: Chứa độ dài của UDP datagram tính theo Octect, bao gồm phần đầu UDP và dữ liệu của người sử dụng. Như vậy giá trị tối thiểu của trường này là 8, chính là độ dài của phần đầu UDP. UDP CHECKSUM: vùng tùy chọn và ít được dùng, một giá trị Zero trong vùng Checksum có nghĩa là Checksum chưa được tính. UDP Checksum được dùng để đảm bảo dữ liệu nhận được là nguyên vẹn và nên được dùng. 3.1.3. Phần đầu giả UDP. Phần đầu giả UDP bao gồm một số octet được gắn vào UDP datagram. Mục đích của việc sự dụng một phần đầu giả để kiểm chứng rằng UDP datagram đã đến được đích chính xác của nó. Điểm mấu chốt của phần đầu giả bao gồm việc nhận thức rằng đích chính xác của nó bao gồm một máy cụ thể và một cổng giao thức xác định trong máy đó. Bản thân phần đầu UDP chỉ xác định giá trị cổng giao thức. Như thế để kiểm chứng đích đến, UDP trên máy gởi sẽ tính một checksum mà bao gồm địa chỉ IP đích cũng như là UDP datagram. Để tính checksum, UDP gán một phần đầu giả vào UDP datagram, thêm vào một octet các giá trị zero vào datagram để có được đúng bội số của 16 bit và tính checksum cho toàn bộ. Octet được nối vào và phần đầu giả sẽ không được truyền đi với UDP datagram và chúng cũng không được kể trong phần độ dài. Để tính checksum trước tiên phần mềm ghi giá trị 0 vào vùng checksum, rồi tích lũy tổng 16 bit phần bù của 1 của toàn bộ đối tượng bao gồm phần đầu giả, phần đầu UDP, và dữ liệu của người sử dụng. Hình 3.2. phần đầu giả UDP. Phần đầu giả được dùng trong việc tính UDP checksum bao gồm 12 octet dữ liệu được bố trí như hình. Các vùng của phần đầu giả được đánh nhãn SOURCE IP ADDRESS và DESTINATION IP ADDRESS chứa địa chỉ IP nguồn và địa chỉ IP đích mà sẽ được dùng khi gởi thông điệp UDP. Vùng PROTO chứa mã kiểu giao thức IP (17 cho UDP), và vùng UDP LENGTH chứa độ dài của UDP datagram (không bao gồm phần đầu giả). Tại đích đến cuối cùng, phần mềm UDP kiểm chứng checksum bằng cách trích các vùng của phần đầu giả từ phần đầu của IP, lắp ráp chúng lại thành dạng phần đầu giả và tính lại checksum. Nếu checksum trùng khớp có nghĩa là datagram đã đến được đích cuối cùng của nó và cũng đến đuợc đúng cổng giao thức trong máy đó. 3.1.4. Đóng gói UDP. UDP thuộc về lớp trên lớp Internet protocol. Các chương trình ứng dụng sẽ truy xuất UDP và UDP lại sử dụng IP để gởi và nhận datagram. Việc phân lớp UDP ở trên IP có nghĩa là một thông điệp UDP hoàn chỉnh bao gồm phần đầu UDP và dữ liệu được đóng gói trong một IP datagram khi nó di chuyển qua Internet như hình 3.3. Hình 3.3. Trình tự đóng gói bản tin UDP. 3.1.5. Ghép Kênh Và Phân Kênh Trong UDP (Multiplexing, Demultiplexing). Phần mềm đi qua các lớp của giao thức phân cấp phải ghép kênh hay phân kênh trong số các đối tượng tại lớp kế tiếp. Phần mềm UDP nhận các UDP datagram từ nhiều chương trình ứng dụng và chuyển chúng đến IP để truyền đi và nó nhận các UDP datagram từ IP và chuyển chúng đến chương trình ứng dụng thích hợp. Về mặt khái niệm, tất cả việc ghép kênh và phân kênh giữa phần mềm UDP và các chương trình ứng dụng xuất hện thông qua cơ chế cổng. Thực tế, mỗi chương trình ứng dụng phải tương tác với hệ điều hành để có được một cổng giao thức và giá trị cổng tương ứng trước khi nó gởi datagram đi. Một khi cổng đã được ấn định thì bất kỳ datagram nào mà chương trình ứng dụng gởi thông qua đó sẽ lưu giá trị cổng đó và field UDP Source Port trong UDP Header. Trong khi xử lý đầu vào, UDP nhận các datagram đến từ phần mềm IP và phân kênh dựa trên cổng đích UDP. Như biểu diễn trong hình 3.4. Hình 3.4. UDP phân phát các datagram. Một cách dễ dàng nhất là hình dung cổng UDP như một hàng đợi. Trong hầu hết các cài đặt, khi chương trình ứng dụng tương tác với hệ điều hành để sử dụng một cổng đã cho thì hệ điều hành tạo ra một hàng đợi bên trong để có thể giữ các thông điệp gởi đến. Thông thường, chương trình ứng dụng có thể xác định hoặc thay đổi kích thước hàng đợi. Khi UDP nhận một datagram, nó kiểm tra xem giá trị cổng đích có phù hợp với một trong những cổng hiện thời đang sử dụng. Nếu không, nó gởi một thông điệp lỗi ICMP “Port Unreachable” và hủy bỏ datagram đó. Nếu có cổng phù hợp, UDP sẽ đặt vào hàng đợi gói mới đến tại cổng mà chương trình ứng dụng có thể truy cập được. Dĩ nhiên, một lỗi xuất hiện khi cổng bị đầy và UDP hủy bỏ datagram đó. 3.1.6. Ứng dụng. UDP thường dùng cho các ứng dụng không yêu cầu độ tin cậy cao cũng như không yêu cầu truyền lại khi mất tin.. 3.1.7. Nhận xét UDP. Việc định nghĩa UDP là một giải pháp hay của nhóm đề án ARPA nhằm tiết kiệm thời gian truyền thông. Nếu dịch vụ nào đó chỉ cần gởi đi một gói là đủ thì việc dùng TCP sẽ tốn rất nhiều thời gian, đôi khi thời gian dành cho việc “bắt tay” (hand shaking) còn lớn hơn thời gian truyền gói đó, lúc này dùng UDP là hay nhất. Trong lập trình nếu thấy dữ liệu có thể chia thành những gói độc lập nhau thì nên mở UDP Port thay vì TCP Port. 3.2. Giao thức điều khiển truyền TCP. 3.2.1. Giới thiệu. TCP là giao thức cung cấp các dịch vụ song công hướng liên kết giữa các host trên mạng. Có thể xem một cuộc nối TCP tương tự như một cuộc gọi trên mạng điện thoại nhưng ở đây các cuộc nối mang tính ảo. Cũng giống như UDP, TCP sử dụng cổng giao thức để xác định đích cuối cùng trong một máy. Mỗi cổng được gán cho một giá trị số nguyên nhỏ, và đây là định danh của nó. TCP định nghĩa một điểm cuối là một cặp số nguyên (địa chỉ IP của một máy, cổng). Ví dụ, điểm cuối (128.10.2.3, 25) xác định cổng TCP 25 trên máy có địa chỉ IP là 128.10.2.3. TCP xác định một kết nối bằng một cặp điểm cuối. Một cổng TCP cho trước có thể được dùng chung bởi nhiều kết nối. Một cuộc nối ảo phải được thiết lập giữa hai host trước khi quá trình truyền tin song công tiến hành. Sau khi thiết lập cuộc nối, các cổng cần truyền tin được xác định hình thành nên một mạch ảo thực sự và trên mạch ảo này, truyền tin song công được tiến hành. Mạch ảo được duy trì trong suốt quá trình cuộc nối còn tồn tại dù có lúc không có dữ liệu truyền trên mạch, dẫn đến lãng phí tài nguyên trên mạng. Khi kết thúc, mạch ảo được xóa và các tài nguyên trên mạng được giải phóng. TCP cung cấp tính tin cậy cho việc truyền số liệu qua mạng bằng cách sử dụng một kỹ thuật cơ bản có tên là đáp lời tích cực và truyền lại. Kỹ thuật này đòi hỏi nơi gởi phải liên lạc với nguồn, gởi ngược lại thông điệp ACK khi nó nhận được dữ liệu. Nơi gởi sẽ lưu lại thông tin của mỗi gói dữ liệu nó gởi đi và đợi thông điệp ACK trước khi gởi gói dữ liệu kế tiếp (hình 3.5). Đồng thời nơi gởi cũng khởi động một bộ đếm thời gian khi nó gởi dữ liệu và sẽ truyền lại gói dữ liệu đó nếu như bộ đếm đã hết hạn trước khi nhận được thông điệp ACK (hình 3.6). Hình 3.5. Qúa trình truyền không lỗi. Hình 3.6. Trong quá trình truyền bị mất gói. Sự trùng lặp về dữ liệu được nhận biết bằng cách gán cho mỗi gói dữ liệu mộ số thứ tự và yêu cầu nơi nhận ghi nhớ lại số thứ tự nào đó đã nhận được. Để tránh sự nhằm lẩn gây ra bởi sự trì hoãn hay trùng lặp các ACK, các giao thức đáp lời tích cực cũng gởi số thứ tự ngược trở lại trong mỗi ACK để cho nơi nhận có thể phối hợp một cách chính xác các ACK với các gói dữ liệu. TCP không phù hợp với các dịch vụ quảng bá. Để có thể thực hiện thông tin quảng bá, TCP phải tạo ra các mạch ảo đến tất cả các host cần nhận tin, điều này là một sự lãng phí về thời gian cũng như tài nguyên mạng. Và do vậy, UDP là giao thức lớp Transport thường được chọn cho các dịch vụ truyền quảng bá trên mạng. Mặc dù TCP được trình bày ở đây như một phần của bộ giao thức TCP/IP, thực ra nó là một giao thức độc lập, một giao thứ tổng quát mà có thể được điều chỉnh để sử dụng với nhiều hệ chuyển phát khác nhau. 3.2.2. Định dạng đoạn (segment) TCP. Đơn vị truyền tải giữa phần mềm TCP trên hai máy được gọi là Segment. Các Segment được trao đổi để thiết lập kết nối, truyền tải dữ liệu, để gởi ACK thông báo kích thước cửa sổ và để đóng kết nối. Hình 3.7. Cấu trúc khung TCP. - Source Port (cổng nguồn) :16 bits,chứa giá trị cổng của trường ứng dụng tại trạm nguồn. - Destination Port (cổng đích): 16 bits, chứa giá trị cổng của trạm đích. - Sequence Number (số tuần tự): 32 bits, chỉ số thứ tự của các sement được gởi. - Acknowledgement Number (số báo nhận): 32 bits, chỉ số hiệu của segment tiếp theo mà trạm nguồn đang chờ nhận. Ngầm ý báo nhận tốt các segment mà trạm đích đã gởi cho trạm nguồn. -Header Length: 4 bits, chứa số nguyên xác định độ dài phần đầu của segment được tính theo đơn vị 32 bit (đặc tả của vùng này là chỉ ra vị trí của dữ liệu trong khung). Cần có trường này bởi vì trường Option có chiều dài thay đổi, tùy thuộc vào những chọn lựa nào được đặt vào. - Reserved (dự trữ): 6 bits, dùng cho các mụch đích tương lai. Có những segment chỉ mang ACK trong khi có những segment khác chỉ mang dữ liệu. Có những segment lại mang thông tin yêu cầu thiết lập kết nối hoặc đóng kết nối. Phần mềm TCP sử dụng 6 bits được gọi là bit điều khiển (Control bit) để quyết định mục đích và nội dung của segment. - URG : vùng con trỏ khẩn (Urgent Pointer) có hiệu lực. - ACK : vùng báo nhận ACK có hiệu lực. - PSH : thực hiện chức năng Push. - RST : reset lại giá trị Sequence Number hoặc ACK Number. - SYN: đồng bộ hóa các số hiệu tuần tự. - FIN : kết thúc, chỉ rằng không còn dữ liệu để trạm đích gởi. Các bit trên chỉ thực hiện chức năng kể trên khi nó thiết lập lên “1”, bình thường mang giá trị “0”. - Window (cửa sổ): 16 bits, cấp phát thẻ điều khiển luồng dữ liệu. Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte mà đã chỉ ra trong vùng Acknowledgement Number mà trạm nguồn sẵn sàng để nhận. -Checksum:16 bits, kiểm soát lỗi theo phương pháp vòng CRC cho toàn bộ Segment (header + data). -Urgent Pointer (con trỏ khẩn): 16 bits, con trỏ này trỏ tới số hiệu tuần tự của byte đi theo sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập và lúc này các trạm trung gian mới quan tâm đến các bit này. Khi nhận được segment này thì trạm trung gian sẽ ưu tiên chuyển đi ngay. -Option (có độ dài thay đổi): khai báo các tùy chọn của TCP trong đó có độ dài tối đa của vùng TCP data trong một segment. Trường này được tính vào trong checksum. -Padding (độ dài thay đổi): phần chèn thêm vào header để bảo đảm phần header luôn kết thúc ở một mốc 32 bits, phần này gồm toàn số “0”. -Data (độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối đa ngầm định là 536 bytes. Giá trị này có thể điều chỉnh bằng cách khai báo trong vùng options. 3.2.3. Quá trình kết nối TCP/IP. 3.2.3.1. Mở thụ động và chủ động. Không giống như UDP, TCP là một giao thức hướng kết nối, đòi hỏi hai điểm cuối đồng ý tham gia. Nghĩa là trước khi một giao dịch TCP có thể chuyển qua Internet, các chương trình ứng dụng ở hai đầu kết nối phải có nhu cầu kết nối. Để làm được việc đó, chương trình ứng dụng ở bên này thực hiện một chức năng mở thụ động bằng cách liên hệ với hệ điều hành của nó và chỉ ra rằng nó sẽ chấp nhận một yêu cầu kết nối (đến từ đầu kia). Và lúc đó hệ điều hành sẽ gán một giá trị cổng TCP cho kết nối tại đầu của nó. Chương trình ứng dụng ở bên kia phải liên hệ với hệ điều hành của nó sử dụng một yêu cầu mở chủ động để thiết lập kết nối. Hai module phần mềm TCP sẽ liên lạc với nhau để thiết lập và kiểm tra kết nối. Một khi kết nối đã được tạo xong, các chương trình ứng dụng có thể bắt đầu truyền dữ liệu, các modul phần mềm TCP tại mỗi đầu trao đổi thông điệp với nhau để đảm bảo việc phát chuyển đáng tin cậy. 3.2.3.2. Thiết lập kết nối TCP. Để thiết lập một cuộc kết nối, TCP sử dụng một cách bắt tay theo 3 bước (Three-way Handshake) Hình 3.8. Trình tự thiết lập kết nối trong TCP. Trạm A bắt đầu việc thiết lập bằng cách gởi sang phía B 1 segment có bit SYN (trong trường Control Bits) được thiết lập. Segment này cho trạm B biết rằng A muốn thiết lập kết nối với B, đồng thời cũng thông báo cho B biết thứ tự segment bắt đầu (ở hình trên là 100). Trạm B trả lời cho A bằng cách gởi về một segment có bit ACK và bit SYN được thiết lập. Segment này trả lời cho A biết B đã nhận đúng segment đầu và thông báo cho A biết số thứ tự segment bắt đầu của B (là 300) và đang chờ segment có số thứ tự 100+1. sau đó A gởi ACK về cho B đồng thời bắt đầu truyền tin. 3.2.3.3. Khởi xướng số thứ tự. Việc bắt tay 3 bước đạt được hai chức năng quan trọng. Nó đảm bảo rằng cả hai bên đã sẳn sàng để truyền dữ liệu và nó cho phép cả hai bên đồng ý với nhau về việc khởi xướng số thứ tự, các số thứ tự này được gởi đi và báo nhận trong suốt quá trình bắt tay. Mỗi máy phải chọn một số thứ tự khởi đầu ngẫu nhiên được sử dụng để xác định các byte trong dòng dữ liệu mà nó gởi. Số thứ tự không luôn luôn bắt đầu tại cùng một giá trị. Cụ thể, TCP không chỉ đơn thuần chọn số thứ tự 1 mỗi lần nó tạo ra một cuộc kết nối. Dĩ nhiên, điều quan trọng là cả hai bên đồng ý với một con số khởi đầu, để cho số lượng octect sử dụng trong lời đáp giống với số được sử dụng trong segment dữ liệu. Để thấy được các máy tính có thể thống nhất với nhau về các số thứ tự cho hai dòng dữ liệu chỉ với ba thông điệp (sau ba bước), chúng ta đã biết rằng mỗi Segment bao gồm cả vùng số thứ tự và vùng lời đáp. Máy tính khởi xướng việc bắt tay (máy A) gởi đi số thứ tự khởi đầu của nó là x trong vùng số thứ tự của segment SYN đầu tiên trong quá trình bắt tay ba bước. Máy tính thứ hai (máy B) nhận SYN và ghi nhận số thứ tự và trả lời bằng cách gởi đi số thứ tự khởi đầu của nó trong vùng số thứ tự cùng với lời đáp để xác định rằng nó đang chờ đợi octect thứ x+1. Trong thông điệp cuối cùng của việc bắt tay, A đáp lại việc nhận từ B tất cả các octect kể từ y. Trong mọi trường hợp, những lời đáp đều tuân theo quy ước về việc sử dụng con số của octect kế tiếp. 3.2.3.4. Đóng kết nối TCP. Hai chương trình sử dụng TCP để thông tin với nhau có thể kết thúc cuộc trao đổi sử dụng thao tác “đóng”. Trong nội bộ, TCP sử dụng cách bắt tay 3 bước để đóng kết nối. TCP là giao thức truyền song công 2 hướng độc lập nhau. Khi chương trình ứng dụng “bảo” TCP là không còn dữ liệu để gởi, TCP sẽ đóng kết nối theo một hướng. Để đóng một nửa cuộc kết nối, phía gởi TCP hoàn tất việc truyền các dữ liệu còn lại, chờ cho phía nhận báo ACK về, sau đó phía gởi sẽ gởi tiếp một segment với bit FIN được thiết lập. Phía TCP nhận báo nhận (ACK) cho segment FIN đó, sau đó TCP gởi thông báo đến chương trình ứng dụng phía trên nó rằng không còn dữ liệu nữa. Một khi cuộc kết nối được ngắt theo một hướng nào đó, TCP từ chối nhận dữ liệu theo hướng đó. Trong lúc đó, dữ liệu có thể tiếp tục truyền theo hướng ngược lại cho đến khi phía gởi kết thúc. Dĩ nhiên, lời báo nhận vẫn tiếp tục truyền cho phía gởi ngay cả sau khi cuộc kết nối đã đóng. Khi cả hai hướng đã đóng thì phần mềm TCP tại mỗi đầu cuối sẽ xoá những ghi nhận của nó về cuộc kết nối. Sự khác nhau giữa bắt tay cho thiết lập và ngắt kết nối chỉ xuất hiện sau khi một máy đã nhận segment FIN khởi đầu. Thay vì phát một segment FIN thứ 2 ngay tức thời, TCP gởi báo nhận ACK cho segment FIN thứ nhất và sau đó thông tin cho chương trình ứng dụng yêu cầu “Shut down”. Việc đáp ứng cho yêu cầu này có thể mất thời gian đáng kể. Việc báo nhận như vậy để phòng trừ việc truyền lại của segment FIN đầu tiên trong khi chờ đợi sự trả lời của chương trình ứng dụng. Cuối cùng, khi chương trình ứng dụnb chỉ thị TCP “shut down” kết nối một cách hoàn toàn, TCP gởi segment thứ hai và phía kia đáp lại bằng thông điệp thứ 3 là một ACK. Hình 3.9. Trình tự ngắt kết nối TCP. 3.2.3.5. Khởi động lại kết nối TCP. Thông thường, một chương trình ứng dụng sử dụng động tác “đóng“ để ngắt kết nối khi nó kết thúc việc sử dụng kết nối đó. Như thế, việc ngắt kết nối được coi như 1 phần bình thường của việc sử dụng, tương tự như việc đóng file. Thỉnh thoảng, một điều kiện bất thường xuất hiện, bắt buộc các chương trình ứng dụng hoặc các phần mềm của mạng ngắt kết nối. TCP cung cấp một chức năng Reset cho các cuộc ngắt kết nối bất thường như thế. Để Reset một kết nối, một phía sẽ khởi động việc kết thúc bằng cách gởi một segment với bit RST (trong trường Control Bits) được thiết lập. Phía kia đáp ứng lại một segment Reset ngay tức thời bằng cách huỷ bỏ kết nối. TCP cũng thông tin cho chương trình ứng dụng rằng, đã xảy ra việc reset. Reset là thao tác hủy bỏ tức thời có nghĩa là việc truyền trên cả hai hướng kết thúc ngay lập tức, và các tài nguyên như vùng đệm được giải phóng. 3.2.4. Điều khiển lỗi và điều khiển luồng trong TCP/IP. 3.2.4.1. Tính TCP Checksum. Vùng checksum trong phần đầu TCP bao gồm một checsum số nguyên 16 bit được sử dụng để kiểm chứng tính toàn vẹn của dữ liệu cũng như là phần đầu TCP. Để tính CHECKSUM, nó gán vào segment một phần đầu giả, thêm vào một số bit zero sao cho độ lớn của segment là bội số của 16 bit và tính CHECKSUM 16 bit trên toàn bộ segment (mới). TCP không đếm phần đầu giả, cũng không thêm vào độ dài segment, và cũng không truyền nó đi. Tương tự nó giả định bản thân vùng checksum là zero cho mục đích tính checksum. TCP sử dụng phép tính số học 16 bit và lấy phần bù của 1 của tổng phần bù của 1. Tại nơi nhận, phần mềm TCP cũng thực hiện tính toán tương tự để kiểm chứng rằng segment đến được nguyên vẹn. Mục đích của việc sử dụng phần đầu giả cũng giống như đối với UDP. Nó cho phép nơi nhận kiểm chứng rằng segment đã đến đúng chính xác đích của nó, bao gồm địa chỉ IP của máy cũng như giá trị cổng giao thức. Cả hai địa chỉ nguồn và đích đều quan trọng đối với TCP bởi vì nó phải sử dụng chúng để xác định kết nối mà segment được truyền trên đó. Hình 3.10. Hình định dạng phần đầu giả của TCP Trong TCP gởi đi, vùng Protocol sẽ được gán giá trị mà hệ thống phát chuyển cơ sở sẽ sử dụng trong vùng kiểu giao thức của nó. Đối IP datagram đang chuyển tải TCP, giá trị này là 6. Vùng TCP LENGTH xác định tổng độ dài của segment TCP bao gồm cả phần đầu TCP. Tại nơi nhận, thông tin được sử dụng trong phần đầu giảđược trích ra từ IP datagram đã chuyển tải segmaent và được đưa vào trong việc tính checksum để kiểm chứng rằng segment đến đúng chính xáx được đích của nó một cách nguyên vẹn. 3.2.4.2. ACK , Timeout và việc truyền lại. Khi dữ liệu được truyền từ đầu cuối này đến đầu cuối khác đòi hỏi nó phải đi qua các mạng trung gian. Trong quá trình truyền đi, dữ liệu sẽ gặp nhiều sự cố làm cho nó bị sai lệch, mất khi truyền, các phân đọan sẽ truyền đi với nhiều đường khác nhau, do đó trật tự các gói ở đích đến cũng bị thay đổi. Như phần trước đã nói đến các phân đọan khi được truyền đi đều được phân phối chỉ số thứ tự. Nên lúc tới đích dựa vào các chỉ số này mà đầu cuối sẽ nhận biết được dữ liệu truyền đi đã bị mất ở vị trí nào, hay bị hỏng tại phân đọan thứ mấy và trật tự đúng của các phân đọan. Nhưng để nơi phát đi biết được dữ liệu nó gởi đi có đúng và chính xác tại đích đến hay không, buộc tại đích đến phải gởi lời đáp theo chiều ngược lại. TCP tạo ra trường Acknowledgement trong phân đọan để nhằm mục đích này. Trường ACK mang chỉ số của phân đọan kế tiếp mà nơi nhận đang chờ. Mặt khác nó muốn báo rằng các phân đọan trước đó đã được truyền thành công . Giả sử, phân đọan khi truyền gặp sự cố bị thất lạc (mất) không đến được đích hoặc đến được đích nhưng báo nhận về nó ở hướng ngược lại bị mất tức là lúc này nó không có báo nhận về phân đọan này. Muốn cho TCP phát biết được phân đọan của nó gởi đi bị hỏng, TCP đã sử dụng bộ đếm thời gian mỗi khi 1 phân đoạn được gởi đi. Nếu bộ đếm thời gian hết thời gian hạn định trước khi nhận được lời đáp, TCP gởi giả định rằng phân đọan bị mất hay bị hỏng nên truyền lại nó. Khoảng thời gian hạn định đó gọi là “timeout”. Nếu các máy tính trao đổi thông tin với nhau trong một mạng riêng có cùng tốc độ, độ trễ nên việc xác định timeout rất dễ dàng. Tuy nhiên TCP là giao thức được sử dụng trong môi trường liên mạng. Trong môi trường INTERNET, 1 phân đoạn di chuyển giữa một cặp máy có thể đi qua một mạng đơn có độ trì hoãn thấp (mạng cục bộ tốc độ cao) hay nó có thể di chuyển qua nhiều mạng trung gian thông qua các bộ định tuyến. Vì lí do này không thể nào biết được chuẩn thời gian mà các lời đáp gửi về nguồn. Hơn nữa bộ trì hoãn tại mỗi bộ định tuyến còn tuỳ thuộc vào mức độ lưu thông nên toàn bộ thời gian cần thiết để một phân đọan di chuyển tới đích và để một lời đáp trở về nguồn vô cùng khác biệt ở từng thời điểm. Phần mềm TCP phải dung nạp được cả sự khác biệt rất lớn về thời gian cần thiết để đi đến đích khác nhau cũng như những thay đổi về thời gian cần để đi đến một đích nào đó khi lượng giao dịch thay đổi. Dung nạp độ trì hoãn khác nhau trên mạng Internet bằng cách sử dụng một thuật giải truyền lại có tính năng hiệu chỉnh. Về bản chất, TCP kiểm tra hiệu suất của mỗi kết nối và điều chỉnh giá trị của bộ đếm thời gian một cách hợp lý. Khi hiệu suất của một kết nối thay đổi. TCP sẽ xem xét lại giá trị bộ đếm thời gian của nó. CHƯƠNG 4. CÁC ỨNG DỤNG CỦA GIAO THỨC TCP/IP. ---oOo--- 4.1. Ứng dụng trong internet trong công ngệ VoIP. Trong thời gian gần đây, Internet ngày càng phát triển. Các ứng dụng đầu tiên được đưa ra như thư tín điện tử, chat, Word Wide Web, giao thức truyền tập tin (FTP), Telnet… đã đưa mọi người khắp nơi trên thế giới lại gần nhau hơn. Hai người ở hai nơi xa có thể liên lạc trò chuyện với nhau qua liên mạng một cách nhanh chóng. Thông tin cập nhật trên mạng dễ dàng. Nhu cầu trao đổi thông tin và liên lạc của con người ngày càng tăng, cùng với sự phát triển khoa học kỹ thuật ngày nay, các nhà thiết kế liên mạng và các nhà thông tin viễn thông đã kết hợp với nhau để đưa ra các ứng dụng mới. Các ứng dụng này nhằm giúp sự liên lạc của mọi người được tiện lợi với cước phí giảm. Các dịch vụ này gồm thoại qua IP (VoIP), Fax qua IP (FoIP), Video qua IP … với việc kết hợp này nhằm gom thoại và dữ liệu truyền trên cùng một đường dây. Vấn đề truyền thoại và video qua một mạng IP là một bước đi đầu cho việc gói hoá thoại. Khi này, thoại cũng sẽ được truyền trong các gói như các dữ liệu khác mặc dù thoại là dịch vụ đòi hỏi thời gian thực. Hiện nay, VoIP đã được thực hiện trên nhiều nơi và nó đang được quan tâm nhằm cải tiến hơn về mặt chất lượng. 4.1.1. Thoại qua giao thức VoIP. Mạng IP là mạng sử dụng họ giao thức TCP/IP làm cơ sở để kết nối các mạng với nhau. Với mạng IP dùng chuyển mạch gói và giao thức chuyển phát gói không kết nối. Việc ứng dụng IP vào các dịch vụ đòi hỏi thời gian thực như thoại và Video làm giảm độ tin cậy cũng như thời gian trễ sẽ lớn dẫn tới chất lượng cuộc gọi VOIP kém hơn so với điện thoại thông thường. Tuy nhiên với chuyển mạch gói, mạng IP cho phép sử dụng hiệu quả băng thông và tài nguyên truyền dẫn, do hệ thống truyền dẫn có thể dùng cho cả thoại và dữ liệu. Giá thành thiết bị của mạng IP thấp, chi phí vận hành mạng thấp; dễ dàng triển khai các dịch vụ thông minh, dịch vụ giá trị gia tăng. Chính các ưu điểm này, VoIP có giá thành thấp, tiết kiệm chi phí thoại nhất là điện thoại đường dài và thoại quốc tế. 4.1.2. Cấu trúc một mạng VoIP. Hình 4.1. Cấu trúc mạng VoIP Trong mạng thoại VoIP, có các thành phần chính: -Mạng IP: truyền các gói tin từ cổng nguồn đến cổng đích, là phần đường dài của mạng, thường sử dụng giao thức IP. -Gateway: đóng vai trò kết nối giữa mạng PSTN với mạng IP, cung cấp giao tiếp chuẩn với PSTN là E1/T1. Sử dụng chuyển mạch kênh và chuyển mạch gói để xử lý tín hiệu voice, fax, thực hiện mã hoá, giải mã để chuyển đổi từ chuyển mạch kênh sang chuyển mạch gói. -Bộ định tuyến (router): chức năng định tuyến trong mạng IP cho các gói. 4.1.3. Các giao thức được dùng trong VoIP. Mạng IP là mạng dùng giao thức IP để truyền dẫn dữ liệu trên mạng. Đặc biệt là liên mạng (Internet) dùng họ giao thức TCP/IP. Đơn vị truyền trong mạng là các gói tin, liên mạng sử dụng chuyển mạch gói để chuyển phát dữ liệu. Trong họ giao thức TCP/IP, lớp truyền tải có hai giao thức TCP và UDP. Như đã phân tích, giao thức TCP là giao thức định hướng kết nối, với giao thức này độ tin cậy cao nhưng đòi hỏi thời gian trễ lớn do mất thời gian thiết lập kết nối. Trong khi đó, UDP là giao thức định hướng phi kết nối, có nghĩa là các gói tin được chuyển phát đi mà không cần thiết lập kết nối trước đó. Hai đầu cuối sẽ không liên lạc trong quá trình truyền dữ liệu, nên dữ liệu có thể bị mất, trùng lặp,… Nhưng UDP không có tốn nhiều thời gian trễ. Trong các mạng thoại truyền thống dùng chuyển mạch kênh và có cấu trúc đồng bộ. Các mạch số được xây dựng phát chuyển dữ liệu cùng thời gian. Nơi gửi và nơi nhận đồng bộ với nhau, đảm bảo thời gian thực cho tín hiệu thoại, chống trễ và trượt. Mạng IP không phải là hệ thống đồng bộ. Các gói tin truyền đi có độ trễ lớn, nên muốn thực hiện dịch vụ thoại qua mạng phải cần có thêm các giao thức hỗ trợ để cho phép việc truyền đầy đủ ý nghĩa và tái tạo lại các tín hiệu được số hoá. Giao thức truyền tải thời gian thực (RTP) được bổ sung. Để kiểm soát chất lượng của thoại trên mạng, một số giao thức điều khiển truyền tải thời gian thực RTCP được thực hiện. 4.1.4. Chuẩn H.232. H.323 là chuẩn cho phép việc truyền thoại qua các kỹ thuật mạng cục bộ, do ITU tạo ra. Khi ứng dụng Voice qua IP được dùng, H.323 được mở rộng thêm. Chuẩn H.323 nhằm xác định cách kết hợp nhiều giao thức thành một hệ thống dùng cho việc truyền thoại qua mạng IP. Mối quan của các giao thức trong chuẩn H.323 được thể hiện trong hình 4.2. Đặc trưng trong các giao thức của chuẩn H.323 dùng trong video và thoại là có kèm giao thức RTP. Giao thức này được sử dụng để truyền các tín hiệu thoại và video đã số hoá qua liên mạng. RTP cung cấp hai phương tiện chủ chốt, đánh số thứ tự trong mỗi gói để cho phép nơi nhận phát hiện ra việc phát chuyển không đúng thứ tự hoặc bị mất gói tin và đánh dấu thời gian để nơi nhận dữ liệu có thể tái tạo lại thời gian của dữ liệu ban đầu. Hình 4.2. Các giao thức sử dụng mạng VoIP. Qua hình trên ta thấy các ứng dụng yêu cầu thời gian thực sử dụng giao thức UDP và phần mào đầu của giao thức truyền tải thời gian thực RTP sẽ được bổ sung vào dữ liệu UDP. Còn các ứng dụng dữ liệu, không đòi hỏi thời gia

Các file đính kèm theo tài liệu này:

  • docTCP_IP va Ung dung.doc