1 MỤC LỤC Chương 1 ......................................................................................................................... 1 GIỚI THIỆU VỀ MẠNG MÁY TÍNH ............................................................................ 1 1.1. Một số khái niệm cơ bản ....................................................................................... 1 1.2. Phân loại mạng máy tính....................................................................................... 1 1.3. Mô hình tham chiếu OSI và mô hình TCPIP ........................................................ 4 Chương 2....................................................................................................................... 12 CÁC TẦNG HƯỚNG ỨNG DỤNG.............................................................................. 12 2.1. Tầng phiên và tầng trình diễn.............................................................................. 12 2.1.1. Tầng phiên ....................................................................................................... 12 2.2. Tầng ứng dụng.................................................................................................... 12 Chương 3 ....................................................................................................................... 18 TẦNG CHUYỂN VẬN ................................................................................................. 18 3.1. Các khái niệm cơ bản.......................................................................................... 18 3.2. Giao thức TCP và UDP....................................................................................... 19 3.3. Giới thiệu phần mềm phân tích mạng Wireshark................................................. 22 3.4. Giới thiệu phần mềm thiết kế và cấu hình mạng Cisco Packet Tracer.................. 23 Chương 4....................................................................................................................... 25 TẦNG MẠNG............................................................................................................... 25 4.1. Chức năng và nhiệm vụ của tầng mạng ............................................................... 25 4.2. Kết nối các mạng ở tầng mạng và giao thức IP.................................................... 27 4.3. Định tuyến và hoạt động của router..................................................................... 41 Chương 5....................................................................................................................... 43 TẦNG LIÊN KẾT DỮ LIỆU......................................................................................... 43 5.1. Tổng quan về tầng liên kết dữ liệu ...................................................................... 43 5.2. Công nghệ Ethernet............................................................................................. 52 5.3. Kết nối mạng ở tầng liên kết dữ liệu.................................................................... 57 Chương 6....................................................................................................................... 65 TẦNG VẬT LÝ ............................................................................................................ 65 2 6.1. Tổng quan về môi trường truyền dẫn .................................................................. 65 6.2. Các môi trường truyền có dây. ............................................................................ 66 6.3. Các môi trường truyền không dây ....................................................................... 71 6.4. Các phương pháp mã hóa dữ liệu ........................................................................ 74 Chương 7....................................................................................................................... 78 BẢO TRÌ HỆ THỐNG MẠNG MÁY TÍNH ................................................................. 78 7.1. Giới thiệu cơ bản về bảo trì hệ thống mạng ......................................................... 78 7.2. Sử dụng phương pháp kiểm tra kết nối................................................................ 78 7.3. Khắc phục hệ thống mạng tốt hơn....................................................................... 82 TÀI LIỆU THAM KHẢO ............................................................................................. 85 Chương 1 GIỚI THIỆU VỀ MẠNG MÁY TÍNH 1.1. Một số khái niệm cơ bản Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đường truyền theo một cấu trúc nào đó và thông qua đó các máy tính trao đổi thông tin qua lại cho nhau. Đường truyền là hệ thống các thiết bị truyền dẫn có dây hay không dây dùng để chuyển các tín hiệu điện tử từ máy tính này đến máy tính khác. Các tín hiệu điện tử đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on off). Tất cả các tín hiệu được truyền giữa các máy tính đều thuộc một dạng sóng điện từ. Tùy theo tần số của sóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu. Ở đây đường truyền được kết nối có thể là dây cáp đồng trục, cáp xoắn, cáp quang, dây điện thoại, sóng vô tuyến ... Các đường truyền dữ liệu tạo nên cấu trúc của mạng. Hai khái niệm đường truyền và cấu trúc là những đặc trưng cơ bản của mạng máy tính. Những ưu điểm khi kết nối các máy tính thành một mạng máy tính: • Nhiều người có thể dùng chung một phần mềm tiện ích. • Trao đổi thông tin trong một mạng máy tính dễ dàng • Dữ liệu được quản lý tập trung nên an toàn hơn, trao đổi giữa những người sử dụng thuận lợi hơn, nhanh chóng hơn. • Có thể dùng chung thiết bị ngoại vi hiếm, đắt tiền (máy in, máy vẽ,...). • Người sử dụng trao đổi với nhau thư tín (EMail), tin tức dễ dàng. • Một số người sử dụng không cần phải trang bị máy tính đắt tiền (chi phí thấp mà chức nǎng lại mạnh). • Mạng máy tính cung cấp môi trường làm việc từ xa (chính phủ điện tử, hội nghị từ xa, elearning..). 1.2. Phân loại mạng máy tính Khái niệm: Topo mạng xác định cấu trúc của mạng. Các loại topo được dùng phổ biến hiện nay: a. Bus Theo cách bố trí hành lang các đường như hình vẽ thì máy chủ (host) cũng như tất cả các máy tính khác (workstation) hoặc các nút (node) đều được nối về với nhau trên một trục đường dây cáp chính để chuyển tải tín hiệu. Hình 1.1. Mạng BUS Tất cả các nút đều sử dụng chung đường dây cáp chính này. Phía hai đầu dây cáp được bịt bởi một thiết bị gọi là terminator. Các tín hiệu và gói dữ liệu (packet) khi di chuyển lên hoặc xuống trong dây cáp đều mang theo điạ chỉ của nơi đến. Loại hình mạng này dùng dây cáp ít nhất, dễ lắp đặt. Tuy vậy cũng có những bất lợi đó là sẽ có sự ùn tắc khi di chuyển dữ liệu với lưu lượng lớn và khi có sự hỏng hóc ở đoạn nào đó thì rất khó phát hiện, một sự ngừng trên đường dây để sửa chữa sẽ ngừng toàn bộ hệ thống. b. Ring Mạng dạng này, bố trí theo dạng xoay vòng, đường dây cáp được thiết kế làm thành một vòng khép kín, tín hiệu chạy quanh theo một chiều nào đó. Các nút truyền tín hiệu cho nhau mỗi thời điểm chỉ được một nút mà thôi. Dữ liệu truyền đi phải có kèm theo địa chỉ cụ thể của mỗi trạm tiếp nhận. Mạng dạng vòng có thuận lợi là có thể nới rộng ra xa, tổng đường dây cần thiết ít hơn so với hai kiểu trên. Nhược điểm là đường dây phải khép kín, nếu bị ngắt ở một nơi nào đó thì toàn bộ hệ thống cũng bị ngừng. Hình 1.2. Mạng Ring c. Star Kết nối tất cả các cáp tới một điểm trung tâm. Nếu sử dụng star mở rộng kết nối các star lại với nhau thông qua HUB hoặc SWITCH. Dạng này có thể mở rộng phạm vi và mức độ bao phủ của mạng. Hình 1.3. Mạng Star và Star mở rộng d. Mesh Mỗi host trong mạng có đường nối riêng tới tất cả các host còn lại. Tăng khả năng tránh bị gián đoạn dịch vụ khi một máy bị hỏng. Hình 1.4. Mạng Mesh 1.3. Mô hình tham chiếu OSI và mô hình TCPIP Để giảm độ phức tạp thiết kế, các mạng được tổ chức thành một cấu trúc đa tầng, mỗi tầng được xây dựng trên tầng trước nó và sẽ cung cấp một số dịch vụ cho tầng cao hơn. Kiến trúc phân tầng được sử dụng để trực quan hóa sự tương tác giữa các giao thức. Một kiến trúc phân tầng có thể mô tả hoạt động của các giao thức ở mỗi tầng, cũng như sự tương tác với các tầng kề trên và kề dưới. Dựa trên kiến trúc phân tầng có thể: Trợ giúp việc thiết kế giao thức: do các giao thức hoạt động ở một tầng cụ thể nào đó luôn sử dụng thông tin và giao diện đã được xác định rõ. Khuyến khích sự cạnh tranh: do các sản phẩm của các hãng khác nhau có thể cùng hoạt động Ngăn cản các thay đổi (thay đổi về chức năng và công nghệ) ở một tầng gây ảnh hưởng tới các tầng kế nó Cung cấp một ngôn ngữ chung để mô tả các chức năng và hoạt động Trong kiến trúc phân tầng hiện nay tồn tại hai mô hình: Mô hình giao thức là một tập hợp có phân cấp của các giao thức liên quan với nhau trong một bộ giao thức mô tả tất cả các chức năng cần thiết để thể hiện mô hình mạng. Ví dụ: TCPIP là một mô hình giao thức. Nó mô tả các chức năng của các giao thức trong bộ TCPIP ở từng tầng. Mô hình tham chiếu cung cấp một mô hình tham khảo để duy trì tính nhất quán trong tất cả các loại giao thức và dịch vụ mạng. o Mục đích của mô hình tham chiếu không phải là cung cấp các đặc tả hoặc thông tin chi tiết để định nghĩa các dịch vụ trong một kiến trúc mạng. o Mục đích chính của một mô hình tham chiếu là trợ giúp để hiểu rõ hoạt động và các quá trình có liên quan. Ví dụ: OSI là mô hình tham chiếu phổ biến hiện nay, được sử dụng trong sửa chữa sự cố, đặc tả hoạt động và thiết kế mạng dữ liệu. 1.3.1. Mô hình TCPIP Mô hình Internet cũng thường được gọi là mô hình TCPIP, đây là mô hình giao thức có phân tầng đầu tiên dành cho truyền thông liên mạng được xây dựng từ đầu những năm 1970. Mô hình này định nghĩa bốn nhóm chức năng cần có để thực hiện truyền thông Mô hình TCPIP là một chuẩn mở Hình 1.5. Mô hình TCPIP Tầng ứng dụng (Application): Tầng ứng dụng của mô hình TCPIP kiểm soát các giao thức ở tầng cao, biểu diễn thông tin, mã hóa, điều khiển hội thoại. Tầng vận chuyển (Transport): Hỗ trợ truyền thông giữa nhiều thiết bị khác nhau qua nhiều loại mạng khác. Tầng Internet (Internet): Mục đích của tầng này là tìm đường đi tốt nhất tới đích cho gói tin trong quá trình truyền trên mạng. Tầng truy cập mạng (Network Access): Điều khiển các thiết bị phần cứng và các môi trường truyền dẫn tạo ra một mạng kết nối vật lý. 1.3.2. Mô hình OSI Mô hình OSI được thiết kết bởi tổ chức tiêu chuẩn hóa quốc tế ISO nhằm cung cấp một “khung” cho việc xây dựng các bộ giao thức cho các hệ thống mở. Mục tiêu ban đầu là Bộ giao thức này có thể được sử dụng để phát triển một mạng quốc tế mà không cần phụ thuộc vào các hệ thống độc quyền. Do mạng Internet trên nền TCPIP được chấp nhận và phát triển nhanh chóng, hiện nay mô hình OSI chỉ là một mô hình tham chiếu, cung cấp một danh sách các dịch vụ và chức năng có thể có ở từng tầng và mô tả tương tác giữa các tầng liền kề. Hình 1.6. Mô hình tham chiếu OSI Tầng một Vật lý Physical: Cung cấp phương tiện truyền tin, thủ tục khởi tạo, duy trì và hủy bỏ các liên kết vật lý cho phép truyền các dòng dữ liệu ở dạng bit. Tầng Liên kết dữ liệu – Data Link: Thiết lập, duy trì, hủy bỏ các liên kết dữ liệu, kiểm soát luồng dữ liệu, phát hiện và khắc phục lỗi truyền tin. Tầng Mạng Network: Chọn đường truyền tin trong mạng (định tuyến), thực hiện kiểm soát luồng dữ liệu, khắc phục sai sót, cắt hợp dữ liệu. Tầng Giao vận Transport: Kiểm soát giữa các nút của luồng dữ liệu, khắc phục sai sót, có thể thực hiện ghép kênh và cắt hợp dữ liệu. Tầng Phiên Session: Thiết lập duy trì đồng bộ hóa và hủy bỏ các phiên truyền thông. Liên kết phiên phải được thiết lập thông qua đối thoại và trao đổi các thông số điều khiển. Tầng Trình diễn Presentation: Biểu diễn thông tin theo cú pháp của người sử dụng. Loại mã sử dụng và vấn đề nén dữ liệu. Tầng Ứng dụng Application: Là giao diện giữa người sử dụng và môi trường hệ thống mở. Xử lý ngữ nghĩa của thông tin và giải quyết các kỹ thuật mà các chương trình ứng dụng dùng để giao tiếp với mạng. 1.3.3 Khái niệm PDU (Protocol Data Unit) Khi dữ liệu của ứng dụng được chuyển xuống dưới trong ngăn xếp giao thức trước khi đưa lên đường truyền, các giao thức tại mỗi tầng bổ sung thêm thông tin điều khiển của chúng vào dữ liệu. Mỗi phần nhỏ của dữ liệu sau khi được định dạng tại mỗi tầng được gọi là PDU (Protocol Data Unit). Trong quá trình đóng gói, tầng kề dưới lại đóng gói PDU nó nhận từ tầng kế trên, tương ứng với giao thức đang được sử dụng. Tại mỗi giai đoạn của quá trình, PDU có tên riêng: Data – Thuật ngữ chung để chỉ PDU ở tầng ứng dụng Segment – PDU ở tầng vận chuyển Packet PDU ở tầng Internet Frame – PDU ở tầng truy cập mạng Bits – PDU ở tầng vật lý 1.3.4. Tiến trình đóng gói và mở gói dữ liệu trong mô hình OSI và TCPIP a. Mô hình OSI Hình 1.7. Tiến trình đóng gói dữ liệu trong mô hình OSI – Tầng ứng dụng: Dữ liệu được bổ sung header của tầng ứng dụng và chuyển xuống tầng Presentation. – Tầng trình diễn: Tại đây dữ liệu được bổ sung header của tầng trình diễn và chuyển xuống tầng Session. – Tầng phiên: Dữ liệu được bổ sung header của tầng phiên và chuyển xuống tầng vận chuyển. – Tầng vận chuyển: Dữ liệu được chia nhỏ thành các TCP segment o Mỗi TCP segment được gán một header chứa thông tin về quá trình nhận trên máy đích và segment này được chuyển xuống tầng Network. – Tầng mạng: Toàn bộ segment TCP được đóng gói vào một gói tin IP với một IP header. Hình 1.8. Đơn vị dữ liệu PDU tại các tầng trong mô hình OSI o IP header chứa địa chỉ IP của máy nguồn và máy đích. – Tầng liên kết dữ liệu: Bổ sung frame header và frame trailer để đóng gói IP packet thành frame. o Frame header chứa địa chỉ vật lý của máy nguồn và máy đích. o Frame trailer chứa thông tin kiểm tra lỗi. – Tầng vật lý: Các bit được card mạng mã hóa và đưa lên đường truyền. b. Mô hình TCPIP – Tầng Ứng dụng: Dữ liệu được bổ sung header của tầng ứng dụng và chuyển xuống tầng vận chuyển. Hình 1.8. Quá trình đóng gói dữ liệu tại các tầng trong mô hình TCPIP – Tầng Vận chuyển: Dữ liệu được chia nhỏ thành các TCP segment o Mỗi TCP segment được gán một header chứa thông tin về quá trình nhận trên máy đích và segment này được chuyển xuống tầng Internet. – Tầng Internet: Toàn bộ segment TCP được đóng gói vào một gói tin IP với một IP header. o IP header chứa địa chỉ IP của máy nguồn và máy đích. – Tầng Truy cập mạng: Bổ sung frame header và frame trailer để đóng gói IP packet thành frame. o Frame header chứa địa chỉ vật lý của máy nguồn và máy đích. o Frame trailer chứa thông tin kiểm tra lỗi. o Các bit được card mạng mã hóa và đưa lên đường truyền. Chương 2 CÁC TẦNG HƯỚNG ỨNG DỤNG 2.1. Tầng phiên và tầng trình diễn 2.1.1. Tầng phiên Tầng phiên khởi tạo và duy trì các đối thoại giữa ứng dụng nguồn và đích. Tầng phiên quản lý vấn đề trao đổi thông tin để bắt đầu các đối thoại, giữ cho chúng hoạt động và khởi tạo các phiên bị gián đoạn hay không được sử dụng trong thời gian dài. Trong hầu hết các ứng dụng, như là web browsers hay các email client, có sự kết hợp chặt chẽ của các tầng 5, 6 và 7 của mô hình OSI 2.1.2. Tầng trình diễn Tầng trình diễn có 3 chức năng chính: Mã hóa và biến đổi dữ liệu của tầng ứng dụng để đảm bảo rằng dữ liệu ở thiết bị nguồn có thể được hiểu bởi ứng dụng phù hợp trên các thiết bị đích. Nén dữ liệu theo cùng một cách để các thiết bị đích có thể giải nén. Mã hóa dữ liệu truyền và giải mã dữ liệu khi dữ liệu được nhận ở thiết bị đích. Các ví dụ: QuickTime, Motion Picture Experts Group (MPEG), Các định dạng GIF, JPEG, TIFF. 2.2. Tầng ứng dụng Tầng ứng dụng là tầng thứ 7 của mô hình OSI, tầng này cung cấp về giao diện giữa các ứng dụng người dùng với các tầng phía dưới mà qua đó các thông điệp được truyền đi. Các giao thức của tầng ứng dụng thường được dùng để trao đổi dữ liệu giữa các chương trình chạy trên máy nguồn và máy đích. Tầng này đóng vai trò như cửa sổ dành cho hoạt động xử lý các trình ứng dụng nhằm truy nhập các dịch vụ mạng. Nó biểu diễn những dịch vụ hỗ trợ trực tiếp các ứng dụng người dùng, chẳng hạn như phần mềm chuyển tin, truy nhập cơ sở dữ liệu và email … Hình 2.1. Mô hình OSI và TCPIP 2.2.1. Các khái niệm cơ bản a) Giao thức Giao thức là các luật mà các thiết bị mạng sử dụng để truyền thông với nhau. Các bộ giao thức mạng mô tả các quá trình như: Khuôn dạng và cấu trúc của thông điệp. Phương pháp mà các thiết bị mạng chia sẻ thông tin về các đường đi với các mạng khác nhau. Các thông báo lỗi và thông báo của hệ thống được gửi giữa các thiết bị như thế nào và tại thời điểm nào. Thiết lập và kết thúc các phiên truyền dữ liệu b) Các dịch vụ trên tầng ứng dụng Các dịch vụ trên tầng ứng dụng là các chương trình giao tiếp mạng và chuẩn bị dữ liệu để truyền. Các chương trình khác có thể cần sự hỗ trợ của các dịch vụ này để sử dụng các tài nguyên mạng, như là truyền tập tin hoặc lưu giữ tạm thời khi in qua mạng. c) Phần mềm ứng dụng Các phần mềm ứng dụng là các chương trình máy tính được sử dụng bởi con người để giao tiếp qua mạng. Email clients và web browsers là các ví dụ về các loại phần mềm ứng dụng này. 2.2.2. Phân loại giao thức thuộc tầng Ứng dụng Giao thức tầng ứng dụng có thể chia làm hai loại: sử dụng dịch vụ của TCP và sử dụng dịch vụ của UDP. Một số giao thức tầng ứng dụng sử dụng dịch vụ của TCP: – Hypertext Transfer Protocol (HTTP) thường được sử dụng để truyền tải các trang Web. – Simple Mail Transfer Protocol (SMTP) giao thức chuyển thư điện tử đơn giản thường được sử dụng để truyền tải các thông điệp thư tín và các tập tin đính kèm. – Telnet, giao thức mô phỏng thiết bị đầu cuối, thường được dùng để cung cấp truy cập từ xa tới máy chủ và các thiết bị mạng. – File Transfer Protocol (FTP) thường được dùng để truyền các tập tin giữa các hệ thống. Một số giao thức tầng ứng dụng sử dụng dịch vụ của UDP – Domain Name Service Protocol (DNS) thường được sử dụng để chuyển đổi tên miền sang địa chỉ IP. – Post Office Protocol (POP) dùng để lấy thư điện tử từ server mail. Một số giao thức sử dụng cả hai dịch vụ của TCP và UDP: – Dynamic Host Configuration Protocol (DHCP) cho phép các thiết bị mạng nhận địa chỉ IP và các thông tin khác từ máy chủ DHCP. 2.2.3 Một số loại gao thức ứng dụng a. Giao thức và dịch vụ SMTP Công việc phát triển các hệ thống thư điện tử (Mail System) đòi hỏi phải hình thành các chuẩn chung về thư điện tử. Điều này giúp cho việc gửi, nhận các thông điệp được đảm bảo, làm cho những người ở các nơi khác nhau có thể trao đổi thông tin cho nhau. Có 2 chuẩn về thư điện tử quan trọng nhất và được sử dụng nhiều nhất từ trước đến nay là X.400 và SMTP (Simple Mail Transfer Protocol). SMTP thường đi kèm với chuẩn POP3. Mục đích chính của X.400 là cho phép các Email có thể được truyền nhận thông qua các loại mạng khác nhau bất chấp cấu hình phần cứng, hệ điều hành mạng, giao thức truyền dẫn được dùng. Còn chuẩn SMTP miêu tả cách điều khiển các thông điệp trên mạng Internet. Điều quan trọng của chuẩn SMTP là giả định máy nhận phải dùng giao thức SMTP gửi thư điện tử cho một máy chủ luôn luôn hoạt động. Sau đó, người nhận sẽ đến lấy thư từ máy chủ khi nào họ muốn dùng giao thức POP (Post Office Protocol), ngày nay POP được cải tiến thành POP3 (Post Officce Protocol version 3). Hình 2.2. Mô hình dịch vụ của giao thức SMTP và POP3 SMTP là giao thức ở mức ứng dụng trong mô hình 7 lớp OSI cho phép gửi các bức điện trên mạng TCPIP. SMTP được phát triển vào năm 1982 bởi tổ chức IETF (Internet Engineering Task Force) và được chuẩn hoá theo tiêu chuẩn RFCs 821 và 822. SMTP sử dụng cổng 25 của TCP. Mặc dù, SMTP là thủ tục gửi và nhận thư điện tử phổ biến nhất nhưng nó vẫn còn một số đặc điểm quan trọng có trong thủ tục X400. Phần thiết yếu nhất của SMTP là khả năng hỗ trợ cho các bức điện không phải dạng Text. Ngoài ra SMTP cũng có kết hợp thêm hai thủ tục khác hỗ trợ cho việc lấy thư là POP3 và IMAP4. b. Giao thức và dịch vụ FTP FTP (File Transfer Protocol) là giao thức truyền file giữa các máy tính. Giao thức này xuất hiện từ những năm 1971 (khi Internet vẫn chỉ là một dự án thử nghiệm) nhưng vẫn còn được sử dụng rộng rãi cho đến tận ngày nay. FTP được đặc tả trong RFC 959. Hình 2.3. FTP cho phép trao đổi file giữa hai máy tính Trong phiên làm việc của FTP, người dùng làm việc trên máy tính của mình và trao đổi file với một máy tính ở chỗ khác. Để truy cập tới máy tính khác, người dùng phải đăng nhập thông qua việc cung cấp định danh người dùng và mật khẩu. Sau khi những thông tin này được kiểm chứng thì công việc truyền file từ hệ thống file trên máy tính của mình đến hệ thống file ở đầu kia mới có thể được thực hiện. Như mô tả trên người dùng tương tác với FTP thông qua chương trình giao tiếp người dùng của FTP. Đầu tiên người dùng nhập tên máy tính cần truyền file. Tiến trình FTP ở client khởi tạo một kết nối TCP tới tiến trình FTP server sau đó người dùng đưa các thông tin về tên và mật khẩu để server kiểm chứng. Sau khi được server xác định, người đùng mới có thể thực hiện việc trao đổi file giữa hai hệ thống file. HTTP và FTP đều là giao thức truyền file và có rất nhiều đặc điểm chung như cả hai đều sử dụng các dịch vụ của TCP. Tuy vậy hai giao thức này có những điểm khác nhau cơ bản. Điểm khác nhau nổi bật nhất là FTP sử dụng hai kết nối TCP song song, một đường truyền thông tin điều khiển (control connection) và một đường truyền dữ liệu (data connection). Các thông tin điều khiển như thông tin định danh người dùng, mật khẩu truy nhập, lệnh thay đổi thư mục, lệnh PUT hoặc GET file giữa hai máy tính được trao đổi qua đường truyền thông tin điều khiển. Đường truyền dữ liệu để truyền file dữ liệu thực sự. Vì FTP phân biệt luồng thông tin điều khiển với luồng dữ liệu nên nó dược gọi là gửi thông tin điều khiển outofband. Hình 2.4. FTP gồm 2 kết nối điều khiển và dữ liệu Khi người dùng bắt đầu một phiên làm việc FTP, đầu tiên FTP sẽ thiết lập một đường kết nối thông tin điều khiển TCP qua cổng 21 . Phía client của giao thức FTP truyền thông tin về định danh người dùng và mật khẩu cũng như lệnh thay đổi thư mục qua kết nối này. Khi người dùng có một yêu cầu trao đổi file (truyền từđến máy người dùng), FTP mở một kết nối TCP để truyền dữ liệu qua cổng 21. FTP truyền đúng một file qua kết nối này và ngay sau khi truyền xong thì đóng kết nối lại. Nếu trong cùng phiên làm việc người dùng có yêu cầu truyền file thì FTP sẽ mở một kết nối khác. Như vậy với FTP, luồng thông tin điều khiển được mở và tồn tại trong suốt phiên làm việc của người dùng, nhưng mỗi kết nối dữ liệu được tạo ra cho mỗi một yêu cầu truyền file (kết nối dữ liệu là không liên tục). Trong suốt phiên làm việc, FTP server phải giữ lại các thông tin về trạng thái của người dùng, đặc biệt nó phải kết hợp các thông tin điều khiển với tài khoản của người dùng. Server cũng lưu giữ thư mục hiện thời mà người dùng truy cập cũng như cây thư mục của người dùng. Ghi lại các thông tin trạng thái của mỗi phiên làm việc hạn chế đáng kể tổng số phiên làm việc đồng thời. Chương 3 TẦNG CHUYỂN VẬN 3.1. Các khái niệm cơ bản 3.1.1. Các nhiệm vụ của Tầng chuyển vận Tầng vận chuyển cung cấp khả năng phân mảnh dữ liệu ở nguồn để có thể truyền các mảnh này qua các kênh truyền thông khác nhau. Nhiệm vụ chính của tầng này là: Duy trì các kết nối riêng biệt giữa các ứng dụng trên host nguồn và host đích. Thực hiện cơ chế phân mảnh dữ liệu ở nguồn và có cơ chế quản lý các mảnh dữ liệu này. o Các giao thức của lớp Transport mô tả các dịch vụ phân đoạn dữ liệu ở tầng ứng dụng. o Ở đầu mỗi mảnh dữ liệu sẽ được gắn thêm một header chứa thông tin của tầng chuyển vận. Ghép các mảnh dữ liệu tại đích để tạo thành luồng dữ liệu của mỗi ứng dụng trước khi đẩy lên tầng ứng dụng. Tại host đích, các mảnh dữ liệu sẽ được tái hợp lại thành một dòng dữ liệu hoàn chỉnh để đẩy lên tầng ứng dụng Có khả năng nhận diện các ứng dụng khác nhau nghĩa là có thể khởi tạo, duy trì, bảo dưỡng, kết thúc khác nhau trên cùng một thiết bị. o Để chuyển dữ liệu tới các ứng dụng phù hợp, tầng Transport phải nhận diện được ứng dụng đích. o Để làm việc này, tầng Transport gán cho mỗi ứng dụng một ký hiệu nhận dạng gọi là số cổng. o Mỗi một ứng dụng khi cần truy cập mạng thì được gán cho một cổng duy nhất. 3.1.2. Các giao thức thuộc Tần chuyển vận a. Phân loại Các giao thức thuộc tầng chuyển vận được chia làm hai dạng chính: Các giao thức hướng kết nối (connectionoriented) như TCP (Transmission Control Protocol), SCTP (Stream Control Transmission Protocol) và các giao thức không hướng kết nối (connectionless) như UDP (User Datagram Protocol). b. Đặc tính các nhóm giao thức thuộc tầng chuyển vận Các nhóm giao thức hướng kết nối cung cấp các phương thức linh hoạt và hiệu quả để thực hiện các hoạt động truyền dữ liệu tin cậy, hiệu suất cao và ít lỗi, đảm bảo tính đồng bộ và kết nối song công. Ví dụ như các hoạt động truyền mail, instant messenger…Các giao thức hướng kết nối thuộc tầng vận chuyển là TCP (Transmission Control Protocol), SCTP (Stream Control Transmission Protocol). Các nhóm giao thức không hướng kết nối được sử dụng cho những ứng dụng không đòi hỏi độ tin cậy cao, cung cấp dịch vụ truyền nhận dữ liệu theo kiểu không liên kết. Ví dụ như game online, VoIP…Giao thức không hướng kết nối thuộc tầng vận chuyển là UDP (User Datagram Protocol). 3.2. Giao thức TCP và UDP 3.2.1. Cấu trúc gói của giao thức TCP TCP (tranmission Control Protcol) là giao thức hoạt động ở tầng 3 trong mô hình OSI. Tương ứng là giao thức ở tầng chuyển vận trong mô hinh TCPIP. Trong tầng chuyển vận thì giao thức TCP là giao thức có thể điều khiển được quá trình truyền dữ liệu. Nó làm được điều này là nhờ có header được đính kèm vào segment. Một gói tin TCP bao gồm 2 phần: – Header – Dữ liệu Phần header có 11 trường trong đó 10 trường bắt buộc. Trường thứ 11 là tùy chọn. Hình 3.1. Cấu trúc của gói tin TCP Các ứng dụng khác nhau khi được truyền trên mạng sẽ được phân biệt bởi giao thức lớp transport là UDP hay TCP, mỗi ứng dụng sẽ có chỉ số port nguồn và port đích. Port nguồn, port đích gồm 16 bit nên có thể tạo ra 65536 port khác nhau, từ 0 >65535. Ở đây port là một số nguyên dùng để xác định các ứng dụng, mỗi ứng dụng làm việc ở một số port riêng. Sequence number có chiều dài 32bit, đây là chỉ số nhằm đồng bộ dữ liệu truyền giữa nguồn và đích được sử dụng để sắp xếp dữ liệu chính xác tại đích. Sequence number là số thứ tự của gói đựoc gửi đi nếu như cờ SYN được bật. Số này bằng số thứ tự byte đầu tiên gửi đi cộng thêm 1. Acknowledgement Number có chiều dài 32 bit, chỉ số này được gửi cho host nguồn, nhằm thông báo cho host nguồn biết đã nhận tốt dữ liệu đến mảnh thứ n và mong muốn nhận mảnh thứ n+1 trong lần gửi tiếp theo. TCP Header length cho biết chiều dài của header của TCP. Reserved là các bit chưa được sử dụng và được gán bằng 0. Flags (Code bits) có chiều dài 6 bit và bao gồm: 1. URG Cho phép trường urgent pointer 2. ACK Cờ cho trường Acknowledgement 3. PSH Hàm Push 4. RST Thiết lập lại đường truyền 5. SYN Đồng bộ lại số thứ tự 6. FIN Không gửi thêm số liệu Window gồm 16 bit quy định số byte có thể nhận bắt đầu tính từ khi có gói tin báo nhận. Trường này dùng trong kỹ thuật điều khiển luồng. Trường cuối cùng không thuộc về header. Giá trị của trường này là thông tin dành cho các tầng trên (trong mô hình 7 tầng OSI). Thông tin về giao thức của tầng trên không được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn. 3.2.2. Cấu trúc gói của giao thức UDP Mỗi gói thông tin UDP gọi là một Datagram được phân làm 2 phần header và data trong đó header chứa thông tin về địa chỉ cổng nguồn, địa chỉ cổng đích, độ dài của gói và checksum. Hình 3.2. Cấu trúc gói của giao thức UDP Source port xác định chỉ số port nguồn Destination port xác định chỉ số port đích Length có độ dài 16 bit xác định chiều dài của toàn bộ datagram bao gồm cả phần header và dữ liệu. Chiều dài tối thiểu là 8 byte khi gói tin không có dữ liệu, chỉ có header. Checksum bao gồm 16 bit dùng cho việc kiểm tra lỗi của phần header và dữ liệu. Phương pháp tính checksum được định nghĩa trong RFC 768. 3.2.3. Khái niệm cổng (port) Các dịch vụ dựa trên TCP và UDP theo dõi tất cả các ứng dụng đang truyền thông. Cả TCP và UDP đều có trường header để nhận diện ứng dụng. Những dấu hiệu nhận diện duy nhất này gọi là “cổng”. Trong header của từng segment hoặc datagram chứa cổng nguồn và cổng đích. – Số cổng nguồn là số tương ứng với truyền thông của ứng dụng nguồn trên máy cục bộ. – Số cổng đích là số tương ứng với truyền thông của ứng dụng đích trên máy ở xa. Số cổng được gán theo nhiều cách, phụ thuộc vào việc thông điệp gửi đi là “yêu cầu” hay là “phản hồi”. Trong khi các tiến trình xử lý của máy chủ được gán số cổng tĩnh thì các máy khách chọn động một số cổng cho mỗi cuộc hội thoại. Khi ứng dụng máy khách gửi yêu cầu cho ứng dụng máy chủ, cổng đích lưu trong header chính là số cổng gán cho dịch vụ daemon chạy trên máy chủ. Ứng dụng máy khách phải biết cổng nào gán với process nào trên server. Ví dụ, khi trình duyệt gửi request cho server, nó dùng TCP và cổng 80. Cổng nguồn trong TCP header hoặc UDP header của request từ máy khách được tính ngẫu nhiên. – Client có thể chọn bất kỳ cổng nào không xung đột với cổng khác trên hệ thống và giá trị lớn hơn 1024. – Số cổng này có tác dụng làm địa chỉ trả về cho ứng dụng gửi yêu cầu. – Tầng vận chuyển theo dõi cổng này và ứng dụng khởi tạo yêu cầu. Khi nhận được phản hồi, nó sẽ chuyển tiếp tới đúng ứng dụng đang chờ. 3.3. Giới thiệu phần mềm phân tích mạng Wireshark WireShark có một bề dầy lịch sử. Gerald Combs là người đầu tiên phát triển phần mềm này. Phiên bản đầu tiên được gọi là Ethereal được phát hành năm 1998. Tám năm sau kể từ khi phiên bản đầu tiên ra đời, Combs từ bỏ công việc hiện tại để theo đuổi một cơ hội nghề nghiệp khác. Thật không may, tại thời điểm đó, ông không thể đạt được thoả thuận với công ty đã thuê ông về việc bản quyền của thương hiệu Ethereal. Thay vào đó, Combs và phần còn lại của đội phát triển đã xây dựng một thương hiệu mới cho sản phẩm “Ethereal” vào năm 2006, dự án tên là WireShark. WireShark đã phát triển mạnh mẽ và đến nay, nhóm phát triển cho đến nay đã lên tới 500 cộng tác viên. Sản phẩm đã tồn tại dưới cái tên Ethereal không được phát triển thêm. Lợi ích Wireshark đem lại đã giúp cho nó trở nên phổ biến như hiện nay. Nó có thể đáp ứng nhu cầu của cả các nhà phân tích chuyên nghiệp và nghiệp dư và nó đưa ra nhiều tính năng để thu hút mỗi đối tượng khác nhau. Các giao thực được hỗ trợ bởi WireShark: WireShark vượt trội về khả năng hỗ trợ các giao thức (khoảng 850 loại), từ những loại phổ biến như TCP, IP đến những loại đặc biệt như là AppleTalk và Bit Torrent. Và cũng bởi Wireshark được phát triển trên mô hình mã nguồn mở, những giao thức mới sẽ được thêm vào. Và có thể nói rằng không có giao thức nào mà Wireshark không thể hỗ trợ. Thân thiện với người dùng: Giao diện của Wireshark là một trong những giao diện phần mềm phân tích gói dễ dùng nhất. Wireshark là ứng dụng đồ hoạ với hệ thống menu rât rõ ràng và được bố trí dễ hiểu. Không như một số sản phẩm sử dụng dòng lệnh phức tạp như TCPdump, giao diện đồ hoạ của Wireshark thật tuyệt vời cho những ai đã từng nghiên cứu thế giới của phân tích giao thức. Giá rẻ: Wireshark là một sản phẩm miễn phí GPL. Bạn có thể tải về và sử dụng Wireshark cho bất kỳ mục đích nào, kể cả với mục đích thương mại. Hỗ trợ: Cộng đồng của Wireshark là một trong những cộng đồng tốt và năng động nhất của các dự án mã nguồn mở. Hệ điều hành hỗ trợ Wireshark: Wireshark hỗ trợ hầu hết các loại hệ điều hành hiện nay. 3.4. Giới thiệu phần mềm thiết kế và cấu hình mạng Cisco Packet Tracer Packet Tracer là một phần mềm giả lập mạng dùng trong học tập sử dụng các thiết bị mạng (routerswitch) của Cisco. Nó được hãng Cisco cung cấp miễn phí cho các trường lớp, sinh viên đang giảng dạy theo học chương trình mạng của Cisco. Sản phẩm cung cấp một công cụ để nghiên cứu các nguyên tắc cơ bản của mạng và các kỹ năng làm việc với hệ thống Cisco. Phiên bản hiện nay của Packet Tracer hỗ trợ giả lập một loạt các phương thức tầng ứng dụng và các phương thức định tuyến cơ bản như RIP, OSPF, và EIGRP trong yêu cầu của chương trình CCNA. Trong khi phần mềm nhắm đến cung cấp một môi trường giả lập mạng, nó chỉ sử dụng một ít chức năng được cung cấp trên Cisco IOS. Vì vậy, Packet Tracer không thích hợp làm mô hình mạng lưới sản xuất. Với sự ra mắt của phiên bản 5.3, nhiều tính năng mới được thêm vào, bao gồm BGP. BGP không nằm trong chương trình giảng dạy CCNA, nhưng nằm trong chương trình CCNP. Chương 4 TẦNG MẠNG 4.1. Chức năng và nhiệm vụ của tầng mạng Tầng Mạng, là tầng 3 của mô hình OSI, cung cấp dịch vụ trao đổi từng mảnh dữ liệu qua mạng giữa các thiết bị đầu cuối đã xác định từ trước. Để thực hiện được việc truyền thông giữa các thiết bị đầu cuối, tầng 3 của mô hình OSI cần bốn quá trình xử lý cơ bản: Hình 4.1. Chức năng của tầng Network a. Đánh địa chỉ Để xác định được các thiết bị đầu cuối trong truyền thông, tầng Mạng cần cung cấp cơ chế đánh địa chỉ cho các thiết bị. Mỗi mảnh dữ liệu muốn đến được chính xác thiết bị đầu cuối thì địa chỉ của thiết bị đầu cuối phải là duy nhất Trong mạng, khi một thiết bị đầu cuối được gán một địa chỉ thì thiết bị đầu cuối đó được gọi là host. b. Đóng gói dữ liệu Để mảnh dữ liệu có thể truyền chính xác tới một thiết bị đầu cuối thì ngoài việc gán địa chỉ cho thiết bị đầu cuối đó, gói tin cũng cần chứa địa chỉ này. Khi tầng Mạng nhận được các PDU của tầng trên (Transport chuyển vận) nó thực hiện quá trình đóng gói dữ liệu. Quá trình đóng gói dữ liệu là quá trình thêm vào các PDU tầng trên phần header. Phần header mới thêm vào chứa đựng nhiều thông tin khác nhau, trong đó có thông tin về địa chỉ của thiết bị đầu cuối đang truyền thông. Địa chỉ của thiết bị gửi tin gọi là Địa chỉ nguồn, địa chỉ của thiết bị nhận tin gọi là Địa chỉ đích. c. Định tuyến Để một packet có thể truyền đi từ một host nguồn tới một host đích, tầng Mạng cung cấp dịch vụ chỉ đường cho gói tin có thể truyền đến được đích. Host nguồn và host đích không phải lúc nào cũng nằm trên cùng một mạng. Trên thực tế, để gói tin có thể đến được đích, nó phải truyền qua rất nhiều mạng khác nhau. Trong quá trình truyền gói tin đó, gói tin cần được chỉ dẫn để có thể đến được đích cuối cùng chính là host đích. Việc giúp các gói tin có thể truyền qua nhiều mạng khác nhau và có thể đến được đích được thực hiện bởi một thiết bị có tên là Router. Vai trò của Router là chọn đường đi và chuyển tiếp gói tin đến đích. Quá trình chọn đường đi và chuyển tiếp gói tin như vậy gọi là quá trình định tuyến. Trong quá trình gói tin đi từ host nguồn đến host đích, nó có thể phải đi qua nhiều thiết bị trung gian. Mỗi thiết bị trung gian là router mà gói tin cần đi qua để đến thiết bị trung gian tiếp theo được gọi là hop. d. Mở gói dữ liệu Khi gói tin đến được đích, nó sẽ được xử lý ở tầng 3 của mô hình OSI. Thiết bị thực hiện việc kiểm tra Địa chỉ đích để chắc chắn rằng gói tin được gửi cho mình. Nếu địa chỉ đích trùng với địa chỉ của thiết bị, nó thực hiện mở gói dữ liệu và loại bỏ header tầng 3, chuyển nội dung dữ liệu lên dịch vụ phù hợp ở tầng 4. 4.2. Kết nối các mạng ở tầng mạng và giao thức IP 4.2.1. Các giao thức Các giao thức ở tầng mạng cho phép mang dữ liệu người dùng từ host này tới host khác trên mạng, như: IPv4 (Internet Protocol phiên bản 4) IPv6 (Internet Protocol phiên bản 6) IPX (Novell Internetwork Packet Exchange) AppleTalk CLNSDECNet (Connectionless Network Service) Chú ý: Các host muốn làm việc được với nhau phải chạy cùng giao thức trên cả host nguồn và host đích. IPv4 là phiên bản thông dụng nhất hiện nay của giao thức IP. Nó là giao thức duy nhất ở tầng 3 được sử dụng để vận chuyển dữ liệu người dùng qua Internet. IPv6 được phát triển và áp dụng trong một số lĩnh vực. IPv6 đang hoạt động song song với IPv4 và có thể sẽ thay thế nó trong tương lai. Các đặc điểm cơ bản của IPv4: Phi kết nối– không thiết lập liên phiên trước khi truyền packet. “Best effort” (cơ chế truyền không tin cậy) – không có cơ chế truyền gói tin tin cậy từ nguồn tới đích. Độc lập với đường truyền – hoạt động độc lập với môi trường truyền dữ liệu. 4.2.2. Địa chỉ IPv4 a. Cấu trúc địa chỉ IPv4 Địa chỉ IPv4 có kích thước 32bit được chia làm 4 nhóm. Mỗi nhóm khi được biểu diễn sẽ được phân tách nhau bởi 1 dấu chấm. Ví dụ: 192.168.1.1, 172.16.1.200 Mỗi nhóm gồm 8 bits=1octet. Đối với máy tính địa chỉ IPv4 được biểu diễn dưới dạng nhị phân trong khi đối với chúng ta lại quen với dạng thập phân. Do vậy khi biểu diện địa chỉ IPv4 sẽ được viết dưới dạng thập phân gồm hai phần định danh mạng và định danh máy. Định danh mạng mô tả mạng mà một host nào đó thuộc vào. Định danh máy mô tả địa chỉ IP gán cho 1 host cụ thể. Hình 4.2. Cấu trúc của địa chỉ IPv4 Phần mạng: Trong địa chỉ IPv4, một số bit ở đầu được dùng để biểu diễn địa chỉ mạng. Ở tầng 3, mạng được định nghĩa là một nhóm các host có cùng mẫu bit ở phần network của địa chỉ. Phần host: Số bit dùng ở phần host xác định số lượng host có thể có trong mạng. Ví dụ: Nếu cần có ít nhất 200 host trong mạng, chúng ta cần dùng số bit trong phần host sao cho đủ để biểu diễn ít nhất 200 mẫu bit khác nhau. Để gán địa chỉ duy nhất cho từng host, chúng ta phải dùng toàn bộ octet cuối cùng. Với 8 bit có thể xây dựng được tổng cộng 256 tổ hợp bit khác nhau. Khi đó số bit còn lại trong 3 octet đầu sẽ biểu diễn phần network. b. Subnet mask Subnet mask có kích thước 32 bit, chia làm 4 phần mỗi phần cách nhau bằng một dấu chấm (.). Subnet mask dùng để xác định phần nào của địa chỉ IP thuộc về phần định danh mạng và phần nào thuộc về phần định danh máy. Ví dụ: địa chi IP 172.16.1.1 có subnet mask là 255.255.0.0 nghĩa là 16 bit đầu của địa chỉ IP đó thuộc về phần định danh mạng, còn lại 16 bit cuối thuộc về phần định danh máy. Có thể thấy một subnet mask có đặc điểm có các bit 1 liên tiếp từ trái qua phải rồi mới đến các bit 0 liên tiếp. Prefix là số bit trong địa chỉ dùng để biểu diễn phần mạng, như vậy có thể hiểu prefix là cách biểu diễn khác của subnet mask. Ví dụ: địa chỉ ip 192.168.1.1 với subnet mask 255.255.255.0 có thể viết tương đương thành 192.168.1.124 trong đó 24 là prefix. c. Các nguyên tắc kết hợp giữa IPv4 và subnet mask Xác định phần mạng và phần host Subnet mask có chiều dài 32bit được chia thành 4 nhóm, mỗi nhóm gồm 8 bit và được biểu diễn cách nhau bởi một dấu chấm Subnet mask được xây dựng bằng cách gán giá trị 1 cho tất cả các bit tương ứng của phần mạng. Các bit tương ứng của phần host nhận giá trị 0. Ví dụ: cho một địa chỉ IP: 172.16.4.1 chúng ta không thể biết bit nào thuộc về định danh mạng, bit nào thuộc về định danh máy. Tuy nhiên nếu như có Subnet mask là 255.255.255.0 chúng ta sẽ biết 3 byte đầu thuộc về định danh mạng và byte cuối cùng thuộc về định danh máy. Ví dụ: xem xét địa chỉ host sau 172.16.4.3527: Địa chỉ IP 172.16.20.35 10101100.00010000.00010100.00100011 Subnet mask: 255.255.255.224 11111111.11111111.11111111.11100000 Địa chỉ mạng 172.16.20.32 10101100.00010000.00010100.00100000 Như vậy từ một địa chỉ IP muốn xác định địa chỉ IP đó thuộc về mạng nào thi ta thực hiện phép AND nhị phân giữa địa chỉ IP đó và subnet mask tương ứng. Xác định địa chỉ Mạng, địa chỉ Host và địa chỉ Broadcast Địa chỉ IPv4 có thể chia ra làm 3 loại: địa chỉ mạng, địa chỉ broadcast, địa chỉ host. Địa chỉ mạng: đây là địa chỉ đại diện cho một mạng nào đó. Tất cả các host trong 1 mạng sẽ có phần định danh mạng giống nhau. Ví dụ: Địa chỉ 10.0.024 là địa chỉ mạng đại diện cho các host từ 10.0.0.1 > 10.0.0.254. Tất cả các thiết bị trong mạng này sẽ có chung phần định danh mạng 10.0.0.0. Địa chỉ quảng bá: đây là một địa chỉ đặc biệt được sử dụng để gửi dữ liệu tới tất cả các host trong mạng mà có phần định danh mạng giống nhau. Đối với địa chỉ Broadcast có 2 loại: Local broadcast là địa chỉ khi các bit trong phần định danh mạng và định danh máy đều là 1. Directed broadcast là địa chỉ khi các bit trong phần định danh máy là 1 Ví dụ: Đối với mạng 10.0.0.024 thì địa chỉ quảng bá là 10.0.0.255. Địa chỉ host: Đây là địa chỉ được gán cho các thiết bị đầu cuối trong mạng. Các địa chỉ nằm trong dải giữa địa chỉ mạng và địa chỉ quảng bá được gán cho các thiết bị trên mạng. Với việc sử dụng các subnet mask khác nhau chúng ta có thể chia một mạng ra thành nhiều mạng con. Với kết quả này các giá trị Broadcast cũng có giá trị khác nhau. Ví dụ: như địa chỉ: 172.16.20.0 25. (32 – 25 = 7 bits) Cho biết: 25 bit đầu tiên thuộc về định danh mạng, 7 bit sau thuộc về định danh máy Địa chỉ mạng là địa chỉ các bit trong phần định danh máy là 0. Địa chỉ Directed Broadcast là địa chỉ khi các bit trong phần định danh máy là 1. Căn cứ vào quy tắc trên chúng ta thấy rằng dải địa chỉ 172.16.20.025 sẽ có các địa chỉ IP hợp lệ có thể gán được cho host là từ: 172.16.20.1 > 172.16.20.126 và địa chỉ Directed broadcast sẽ là: 172.16.20.127 tương ứng với trường hợp 7 bit trong phần định danh máy là 1. Chia mạng con Chia mạng (subnetting) cho phép tạo ra nhiều mạng logic từ một khối địa chỉ duy nhất. Xây dựng mạng con bằng cách đưa thêm 1 hoặc vài bit của phần host vào phần mạng. Cần mở rộng mặt nạ để mượn thêm các bit từ phần host đưa vào phần mạng. Càng mượn thêm nhiều bit số lượng mạng con xây dựng được càng lớn. Mỗi bit mượn thêm sẽ làm tăng gấp đôi số mạng con. Ví dụ: nếu mượn 1 bit có thể tạo ra 2 mạng con, nếu mượn 2 bit có thể tạo ra 4 mạng con. Chú ý: nếu bit vay mượn càng nhiều thì số máy trong từng mạng càng giảm. Công thức tính mạng con: số mạng con = 2n trong đó n là số bit mượn. Số host: số các host trong một mạng con = 2n 2 trong đó n là số bit còn lại của phần host. Ví dụ: Giả sử địa chỉ là 192.168.1.024, chúng ta sẽ tạo ra hai mạng con. Mượn 1 bit từ phần host bằng cách dùng subnet mask 255.255.255.128 thay cho subnet mask mặc định (255.255.255.0) Các giá trị của bit vay mượn này sẽ phân biệt hai mạng con với nhau, một mạng có bit = 0, mạng còn lại có bit = 1. 4.2.3. Một số vấn đề về địa chỉ IPv4 a. Khái niệm IP phân lớp, IP không phân lớp Địa chỉ IP phân lớp là một kiến trúc đánh địa chỉ mạng trên Internet từ năm 1981 cho đến khi VLSM ra đời năm 1993. Phương pháp chia không gian địa chỉ IPv4 thành 5 lớp địa chỉ A, B, C, D và E. Mỗi lớp được phân biệt bằng 5 bit đầu tiên của octet đầu tiên trong địa chỉ IPv4. Mỗi lớp khác nhau có quy định khác nhau về kích thước mạng. Ví dụ: số lượng host cho mạng unicast (lớp A, B, C) hay một mạng multicast (lớp D). Lớp cuối cùng trong các lớp là lớp E được quy định dành để dự phòng hoặc dùng trong phòng thí nghiệm. Ví dụ: Địa chỉ IP: 10.0.0.1 là một địa chỉ thuộc lớp A Địa chỉ IP: 172.16.1.1 là một địa chỉ thuộc lớp B. Địa chỉ IP không phân lớp là một kiến trúc đánh địa chỉ mạng sử dụng công nghệ VLSM. Với hệ thống IP không phân lớp, các khối địa chỉ phù hợp với số host được gán cho các công ty hoặc tổ chức mà không cần quan tâm tới chúng thuộc lớp nào. Ví dụ: địa chỉ mạng 172.16.1.12828 có khả năng được dùng để gán địa chỉ cho 14 host. b. Các lớp địa chỉ IPv4 Địa chỉ IPv4 có thể chia làm 5 lớp từ lớp A tới lớp E: Lớp A,B,C được dùng cho unicast Lớp D dùng cho Multicast Lớp E dùng cho nghiên cứu Hình 4.3. Các lớp địa chỉ IP v4 Lớp A: Có 8 bit trong phần định danh mạng và 24bit trong phần định danh máy được dùng cho những mạng có số lượng Host rất lớn Lớp B: có 16 bit trong phần định danh mạng và 16 bit trong phần định danh máy được sử dụng cho các mạng có số lượng IP trung bình. Lớp C có 24 bit trong phần định danh mạng và 8 bit trong phần định danh máy được sử dụng cho các mạng có địa chỉ IP nhỏ. Số lượng địa chỉ IP hợp lệ có thể được gán cho host sẽ là 2(số bit định danh máy)2. Ở đây bỏ đi 2 địa chỉ. Đc khi các bit định danh mạng toàn 0 gọi là địa chỉ mạng. Địa chỉ khi các định danh máy toàn là 1 được gọi Directed broadcast. 2 địa chỉ này không được dùng để gán cho các PC trên mạng. Cách phân biệt địa chỉ IP của các lớp: Class Bit bắt đầu Số lượng bit biểu diễn phần mạng Số lượn g bit biểu diễn phần host Số lượng mạng biểu diễn Số lượng địa chỉ host tương ứng Địa chỉ bắt đầu Địa chỉ kết thúc Class A 0 8 24 128 (27) 16,777,216 (224) 0.0.0.0 127.255.255. 255 Class B 10 16 16 16,384 (214) 65,536 (216) 128.0.0 .0 191.255.255. 255 Class C 110 24 8 2,097,152 (221) 256 (28) 192.0.0.0 223.255.255.255 Class D (multi cast) 1110 Không định nghĩa Khôn g định nghĩa Không định nghĩa Không định nghĩa 224.0.0 .0 239.255.255. 255 Class E (reser ved) 1111 Không định nghĩa Khôn g định nghĩa Không định nghĩa Không định nghĩa 240.0.0 .0 255.255.255. 255 c. Địa chỉ IP public và địa chỉ IP private Trên mạng có thể chia ra làm 2 loại địa chỉ: địa chỉ public và địa chỉ private. Hình 4.4. Mô hình chuyển đổi Private IP sang Public IP Địa chỉ private là địa chỉ được gán cho các miền mạng nội bộ và không có khẳ năng định tuyến trong môi trường của ISP. Các router biên của ISP sẽ được thiết lập để lọc các địa chỉ Private này. Địa chi public là địa chỉ có thể định tuyến được trong môi trường mạng của ISP. Do vậy khi host nằm trang miền mạng Private muốn truy cập được Internet thì Router biên phải làm nhiệm vụ chuyển đổi địa chỉ. Có ngĩa là ánh xạ từ một địa chỉ Private sang một địa chỉ public và có thể định tuyến được trong môi trường của ISP. Cơ chế đó được gọi là NAT (Network Address Translation). Ban đầu địa chỉ IPv4 được thiết kế là 32bit do vậy số lượng địa chỉ IPv4 có thể tồn tại trên mạng là 232, hơn 1 tỉ địa chỉ IP Các thiết bị trên mạng yêu cầu địa chỉ IP rất nhanh, do đó thiếu hụt địa chỉ IPv4. Chính vì thế người ta đưa ra giải pháp địa chỉ IP private nhằm gắn cho các host nằm trong các miền mạng nội bộ. Khi mà các host này không có nhu cầu kết nối thường xuyên tới Internet. Địa chỉ Private được gán cho 3 lớp. Trong mỗi lớp unicast đều có dải địa chỉ Private. Như trong lớp A sẻ có dải địa chỉ 1.0.0.08. Trong lớp B sẽ là 172.16.012. Trong lớp C sẽ là 192.168.0.016. Địa chỉ public được sử dụng để gán cho các host. Khi các host này có nhu cầu truy cập mạng Internet. Như vậy các host trong dải Private sẽ không có địa chỉ public. Chính vì thế nó không thể truy cập được Internet. Như vậy các host nằm trong miền mạng Private cần phải có cơ chế để chuyển đổi địa chỉ từ Private sang Public khi nó có nhu cầu truy cập Internet. Do vậy cơ chế chuyển dịch địa chỉ mạng NAT được sử dụng để chuyển đổi một địa chỉ Private sang một địa chỉ Public. Thông thường cơ chế NAT được thực hiện trên các router biên của mạng Private. d. Kỹ thuật NAT Nói về NAT chúng ta phải biết rằng có 2 kĩ thuật là tĩnh và động. Trong trường hợp đầu thì sự phân chia IP là rõ ràng còn trường hợp sau thì ngược lại. Với NAT tĩnh thì một IP nguồn luôn được chuyển thành chỉ một IP đích trong bất kỳ thời gian nào.Trong khi đó NAT động thì IP này là thay đổi trong các thời gian và trong các kết nối khác nhau. Hình 4.5. Kỹ thuật NAT e. Kỹ thuật gán địa chỉ IP trong mạng Khi phân hoạch địa chỉ IP có thể chia ra làm 2 loại: Classful và Classless Dải địa chỉ Classful đó là khi chúng ta gán các Class A, class B, class C cho một công ty hay một doanh nghiệp nào đó. Với cơ chế gán Classful số lượng địa chỉ IP được gán cho một doanh nghiệp sẽ rất lớn do đó sẽ dư thừa địa chỉ IPv4. Trong khi đó với cách gán Classless ta sẽ căn cứ vào số lượng host cần thiết trên mỗi mạng để từ đó đưa ra được chiều dài Subnet hợp lý mà không cần phải sử dụng các class chuẩn(class A, B, C). Khi thiết kế mạng, phần quan trọng nhất là IP Planning cho các thiết bị nằm bên trong hệ thống mạng của mình. Dải địa chỉ cấp phát nên lưu lại thành file văn bản để: Ngăn việc cấp phát địa chỉ trùng nhau: mỗi host trong một liên mạng phải có một địa chi IP riêng. Cung cấp và điều khiển truy cập: một vài host cung cấp tài nguyên cho các mạng bên ngoài và bên trong. Nếu địa chỉ của tài nguyên không được lên kế hoạch và được lưu lại thì vấn đề về bảo mật và truy cập tới các thiết bị đó sẽ rất phức tạp. Giám sát bảo mật và hiệu năng: nhằm kiểm soát được lưu lượng mạng dựa vào địa chỉ gửi hay nhận của gói tin. Trong một mạng thông thường gồm có 4 loại thiết bị khác nhau: các thiết bị đầu cuối cho user, các server và thiết bị ngoại vi, các host có thể truy cập tới Internet và các thiết bị trung gian. Mỗi một thiết bị cần được cấp phát một địa chỉ thích hợp trong khối địa chỉ hợp lệ. Một phần quan trọng của IP Planning là quyết định xem, khi nào và điểm nào có thể sử dụng địa chỉ Private. Chúng ta có thể sử dụng 3 khuyến nghị dưới đây: Số thiết bị được kết nối tới mạng nhiều hơn số địa chỉ IP public được cấp phát bởi ISP? Thiết bị nào cần được truy cập từ bên ngoài mạng nội bộ? Mạng có hỗ trợ dịch vụ NAT để thiết bị được gán địa chị private có thể truyền thông ra ngoài mạng khi cần? f. Gán IP tĩnh Với cơ chế cấp phát tĩnh, quản trị mạng phải cấu hình bằng tay trên tất cả các host. Khi cấu hình người quản trị phải cấp phát đc IP, Subnet mask, Default getway, DNS, . . . Nhược điểm của phương pháp này là tính phức tạp trong quản lý cũng như khả năng mở rộng kém. Khi gán địa chỉ tĩnh, quản trị viên phải tự cấu hình cho từng host. Hình 4.6. Gán địa chỉ IP tĩnh cho host Tối thiểu việc gán địa chỉ tĩnh đòi hỏi địa chỉ IP, mặt nạ mạng con và default gateway. Địa chỉ tĩnh có một số ưu điểm so với địa chỉ động: Dùng cho máy in, máy chủ và một số thiết bị mà máy khách cần truy cập. Nếu địa chỉ máy chủ thay đổi, các máy khác có thể gặp vấn đề khi truy cập tới. Gán địa chỉ tĩnh giúp tăng cường kiểm soát tài nguyên mạng. Nhược điểm: Sẽ tốn nhiều thời gian để cấu hình cho từng host. Khi sử dụng địa chỉ IP tĩnh, cần duy trì và giữ chính xác danh sách địa chỉ gán cho thiết bị. g. Thiết lập IP động và giao thức DHCP Với cơ chế cấp phát động, DHCP cho phép cấp phát địa IP, Subnet mask, Getway và các thông tin khác tự động cho các thiết bị đầu cuối. Phương pháp này đơn giản, hiệu quả và khả năng mở rộng tốt. DHCP thường được sử dụng nhiều hơn khi gán địa chỉ host trong mạng lớn do nó giảm thiểu công việc cho đội ngũ quản trị và tránh lỗi nhập thông tin. DHCP cho phép tự động cấp phát địa chỉ và thông tin liên quan (địa chỉ IP, subnet mask, default gateway…). Trong cấu hình của DHCP server cần xác định một khối địa chỉ (address pool) sẽ gán cho các host. Trong pool này không được chứa các địa chỉ dùng cho các loại thiết bị khác (chỉ dùng cho host). Ưu thế của DHCP là địa chỉ không gán vĩnh viễn cho host mà chỉ “cho thuê” địa chỉ trong một khoảng thời gian. Nếu host bị tắt hoặc ngắt khỏi mạng, địa chỉ này sẽ được trả về pool để tái sử dụng. Đây là đặc điểm quan trọng đối với người dùng di động, không thường xuyên kết nối vào mạng. Mô tả hoạt động của DHCP: Khi thiết bị khởi động: Hình 4.7. Hoạt động của DHCP Nó sẽ phát quảng bá gói tin “DHCP DISCOVER” để xác định các máy chủ DHCP đang hoạt động. Máy chủ DHCP hồi âm bằng gói tin “DHCP OFFER”, chứa địa chỉ IP, subnet mask, DNS server, gateway mặc định. Máy khách có thể nhận được nhiều DHCP OFFER khác nhau nếu có nhiều máy chủ DHCP cùng hoạt động trên mạng. Khi đó nó phải chọn lựa server bằng cách phát quảng bá một “DHCP REQUEST” để xác định rõ máy chủ sẽ “thuê” IP. Nếu địa chỉ IP do máy khách yêu cầu (hoặc do máy chủ đề nghị) vẫn còn tự do, máy chủ sẽ xác nhận bằng một gói tin “DHCP ACK” để khẳng định và thông báo cho máy khách biết, “hợp đồng” đã ký kết xong. h. Giao thức ARP ARP (Address Resolution Protocol): xá