Giao thức TCP/IP làm việc như thế nào ?

Giới thiệu   TCP/IP là giao thức hầu hết được sử dụng ngày nay . Trong bài này chúng tôi sẽ giải thích cho các bạn nó làm việc như thế nào theo ngôn ngữ dễ hiểu nhất .

 

Vậy giao thức ( Protocol ) mạng là gì ? Giao thức cũng như là ngôn ngữ được dùng để hai máy tính có thể nói chuyện được với nhau . Cũng như trong cuộc sống hàng ngày nếu chúng ta không nói cùng một ngôn ngữ thì không thể trao đổi thông tin cho nhau được .

Trước khi đọc bài này , các bạn nên đọc bài  “ Mô hình OSI cho những giao thức mạng ” mà chúng tôi đã đưa lên để hiểu xem giao thức mạng là như thế nào và bài này là tiếp theo của bài đó .

TCP/IP không phải là một giao thức mà là một tập hợp giao thức – “ Cụm giao thức “ - , những hầu hết chúng ta vẫn chỉ gọi là Giao thức TCP/IP . Đúng như cái tên của nó chúng ta hiểu nó là hai giao thức khác nhau : TCP (Transmission Control Protocol – Giao thức điều khiển truyền ) và IP (Internet Protocol – Giao thức Internet) . Có một vài giao thức khác liên quan tới TCP/IP như : FTP , HTTP , SMTP và UDP – và còn một vài tên nữa .

 

 

Hình 1 : Cấu trúc của TCP/IP

 

Như bạn đã thấy , TCP/IP có bốn lớp . Những chương trình nói chuyện với lớp Application . Trong lớp Application bạn sẽ tìm thấy những giao thức Application như : SMTP ( cho Email ) , FTP ( để truyền file ) và HTTP ( cho duyệt Web ) . Mỗi loại chương trình nói chuyện tới những giao thức Application khác nhau vì nó sẽ phụ thuộc vào mục đích của chương trình .

Sau khi chương trình xử lí yêu cầu , giao thức trong lớp Application sẽ nói chuyện tới giao thức khác từ lớp Transfer , thông thường là TCP . Lớp này có nhiệm vụ nhận dữ liệu từ lớp trên gửi xuống , chia chúng thành những gói ( Packet ) và gửi tiếp những gói này xuống lớp phía dưới , Internet . Ngoài ra , trong lúc nhận dữ liệu , lớp này có nhiệm vụ đặt gói dữ liệu được nhận từ mạng theo thứ tự và kiểm tra nội dung của gói dữ liệu xem có bị hỏng hay không .

Trong lớp Internet chúng ta có giao thức IP ( Internet Protocol ) , mà lấy những gói được nhận từ lớp Transport và thêm thông tin địa chỉ ảo , có nghĩa là thêm địa chỉ của máy tính mà đang gửi dữ liệu và địa chỉ của máy tính sẽ nhận dữ liệu này . Những địa chỉ ảo này được gọi là địa chỉ IP . Sau đó gói được gửi tới lớp thấp hơn , Network Interface . Trong lớp này dữ liệu được gọi là Datagram .

Network Interface sẽ lấy những gói được lớp Internet gửi đến và gửi chúng lên mạng ( hoặc nhận chúng từ mạng , nếu máy tính đang nhận dữ liệu ) . Những gì xảy ra bên trong lớp này sẽ phụ thuộc vào kiểu mạng máy tính của bạn dùng . Ngày nay hầu hết mọi máy tính đều dùng kiểu mạng mà gọi là Ethernet ( có sẵn vài kiểu tốc độ khác nhau , mạng Wireless cũng là mạng Ethernet ) và như vậy bên trong lớp Network Interface là có lớp Ethernet gồm có LLC (Logic Link Control ) , MAC (Media Access Control ) và Physical , liệt kê từ trên xuống dưới . Những gói truyền trên mạng được gọi là những Frame .

 

        2. Lớp Application

 

Lớp này làm nhiệm vụ truyền đạt giữa những chương trình và những giao thức Transport . Có một vài kiểu Giao thức khác nhau làm việc trong lớp Application . Hầu hết mọi người đã biết các Giao thức như : HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), FTP (File Transfer Protocol), SNMP (Simple Network Management Protocol), DNS (Domain Name System) và Telnet. Bạn cũng có thể đã từng nghe hoặc nhìn thấy những tên này trước đó .

Khi bạn yêu cầu chương trình E-mail của bạn ( gọi là Email Client ) để tải Email đã được lưu trữ trên máy chủ về máy tính của bạn , nó sẽ yêu cầu nhiệm vụ này tới lớp Application của TCP/IP và yêu cầu giao thức SMTP phục vụ . Khi bạn gõ địa chỉ WWW vào chương trình duyệt Web để mở trang Web , chương trình duyệt Web sẽ yêu cầu lớp nhiệm vụ này tới lớp Application của TCP/IP , và sẽ được giao thức HTTP phục vụ ( và đó cũng chính là nguyên nhân tại sao bắt đầu một trang Web phải có http:// ) . Và cứ như thế .

Lớp Application nói chuyện tới lớp Transport qua cổng ( Port ) . Những cổng được đánh bằng số và những ứng dụng chuẩn thường dùng cùng cổng . Ví dụ : giao thức SMTP thường dùng cổng 25 , giao thức HTTP thường dùng cổng 80 và giao thức FTP thường dùng cổng 20 ( để truyền dữ liệu ) và cổng 21 ( để điều khiển ) .

Việc dùng cổng bằng số cho phép giao thức Transport ( thông thường TCP ) để biết loại nội dung nào chứa bên trong gói ( Packet ) - Ví dụ : để biết rằng dữ liệu đang được truyền là Email - . Do đó khi nhận gói tới cổng 25 , giao thức TCP sẽ biết rằng nó phải giao dữ liệu với giao thức nối tới cổng này , thông thường là SMTP , và nó sẽ quay lại giao dữ liệu tới chương trình yêu cầu ( chương trình Email ) .

Hình dưới minh hoạ xem lớp Application làm việc như thế nào

 

 

 

Hình 2

 

         3.      Lớp Transport

 

Khi truyền dữ liệu , lớp Transport lấy dữ liệu từ lớp Application và chia chúng ra thành nhiều gói ( Packet ) dữ liệu . TCP (Transmission Control Protocol ) là giao thức hầu như được dùng trong lớp Transport . Khi dữ liệu nhận , giao thức TCP lấy những gói được gửi từ lớp Internet và đặt chúng theo thứ tự của nó , bởi vì những gói có thể đến vị trí đích theo phương thức Out-of-Order không theo một thứ tự , và kiểm tra nếu nội dung của gói nhận có nguyên vẹn hay không và gửi tín hiệu Acknowledge - chấp nhận - tới máy truyền , cho biết gói dữ liệu đã đến đích được an toàn . Nếu không có tín hiệu Acknowledge của bên nhận ( có nghĩa là dữ liệu chưa đến đích hoặc dữ liệu bị lỗi ) , bên truyền sẽ truyền lại gói dữ liệu bị mất .

Trong khi TCP sắp xếp lại những gói và cũng dùng hệ thống Acknowledge mà chúng ta đã đề cập , khi sử dụng để truyền dữ liệu ,  nhưng lại là một giao thức khác mà làm việc trong lớp này mà không có hai đặc điểm đó . Giao thức đó gọi là UDP (User Datagram Protocol )

Như vậy , TCP được coi như là một giao thức tin cậy , trong khi UDP được coi như là một giao thức không đáng tin cậy . Thông thường UDP được dùng khi không có dữ liệu quan trong được truyền , thông thường do DNS (Domain Name System - Hệ thống tên Domain  ) yêu cầu  . Bởi vì nó không thực hiện việc sắp xếp lại dữ liệu cũng như hệ thống Acknowledge , UDP nhanh hơn TCP .

Khi UDP được dùng , ứng dụng mà yêu cầu truyền sẽ có nhiệm vụ kiểm tra dữ liệu đến xem nó có còn đầy đủ hay không và cũng sắp xếp lại những gói đến , điều đó có nghĩa là ứng dụng có nhiệm vụ của TCP.

Cả hai UDP và TCP sẽ lấy dữ liệu từ lớp Application và thêm Header vào nó khi truyền dữ liệu . Khi nhận dữ liệu , Header sẽ bị gỡ trước khi gửi dữ liệu tới cổng thích hợp . Trong Header này có một vài thông tin điều khiển . liên quan tới số cổng nguồn , số cổng tới đích , chuỗi số ( để hệ thống sắp xếp lại dữ liệu và hệ thống Acknowledge sử dụng trong TCP ) và Checksum ( dùng để tính toán xem dữ liệu đến đích có bị lỗi hay không ) .

 

Header của UDP có 8 Byte trong khi Header của TCP/IP có 20 hoặc 24 byte ( tuỳ theo kiểu File lựa chọn ) .

 

Trong hình dưới , chúng ta minh hoạ gói dữ liệu phát ra từ lớp Transport . Dữ liệu này sẽ được gửi tới lớp Internet ( nếu chúng ta truyền dữ liệu ) hoặc được gửi từ lớp Internet tới ( nếu chúng ta nhận dữ liệu )

 

 

Hình 3 : Gói dữ liệu trong lớp Transport

 

          4.    Lớp Internet

 

Trong mạng sử dụng cụm giao thức TCP/IP mỗi một máy tính được nhận biết bằng một địa chỉ ảo duy nhất , được gọi là địa chỉ IP . Lớp Internet có nhiệm vụ thêm Header tới gói dữ liệu được nhận từ lớp Transport , là một loại dữ liệu điều khiển khác , nó sẽ thêm địa chỉ IP nguồn và địa chỉ IP đích – có nghĩa là địa chỉ IP của máy tính đang gửi dữ liệu và địa chỉ IP của máy tính mà sẽ nhận dữ liệu .

Card mạng của mỗi máy tính được gán bằng một địa chỉ vật lí . Địa chỉ này được ghi trong ROM của Card mạng và nó được gọi là địa chỉ MAC . Do đó trong mạng cục bộ ( LAN ) bất kì khi nào máy tính A muốn gửi dữ liệu tới máy tính B , nó sẽ phải biết địa chỉ MAC của máy tính B . Trong khi đối với một mạng cục bộ nhỏ có thể dễ dàng tìm ra mỗi địa chỉ MAC khác , điều này thực không dễ dàng đối với mạng toàn cầu như Internet

Nếu không sử dụng có địa chỉ ảo , bạn sẽ phải biết địa chỉ MAC của máy tính đích , đó không những là một việc khó khăn mà còn không trợ giúp dẫn đường cho gói dữ liệu , bởi vì nó không sử dụng cấu trúc cây .

Lộ trình là con đường mà gói dữ liệu phải dùng để đến đích . Ví dụ : Khi dữ liệu yêu cầu từ máy chủ Internet , thì dữ liệu này sẽ đi qua vài vị trí khác nhau ( gọi là những Router ) trước khi đến máy tính của bạn .

 

Nếu bạn muốn xem cụ thể hãy bấm Start , chọn Run , gõ CMD rồi bấm Enter . Trong màn hình mô phỏng DOS bạn gõ lệnh

 

tracert www.tuvantinhoc1088.com

 

 

 

 

Bạn sẽ thấy những con đường giữa máy tính của bạn và máy chủ Web của tuantinhoc1088 . Những gói dữ liệu sẽ đi qua một vài Router khác nhau trước khi tới đích . Mỗi Router nằm trung gian trên đường đi được gọi là Hop.

Trong mọi mạng nối với Internet có một thiết bị gọi là Router , nó làm cầu nối giữa máy tính trong mạng cục bộ ( LAN ) với Internet . Mọi Router có bảng để nó biết những mạng khác và cũng được thiết lập cấu hình ngầm định cổng ra vào ( Gateway ) chỉ tới Router khác trên mạng Internet . Khi máy tính của bạn gửi gói dữ liệu lên mạng Internet , Router kết nối tới mạng của bạn  , nó phải xác định địa chỉ của máy tính đích –  máy tính đích có thể nằm vị trí trên cùng một mạng hoặc trên mạng mà nó biết đường đi , nếu không biết đường đi thì nó sẽ gửi gói dữ liệu tới Gateway ngầm định , có nghĩa là tới một Router khác . Sau đó quá trình được lặp lại cứ như vậy cho tới khi gói dữ liệu đến được địa chỉ đích .

Có một vài giao thức mà làm việc ở lớp Internet : IP (Internet Protocol), ICMP (Internet Control Message Protocol), ARP (Address Resolution Protocol) và RARP (Reverse Address Resolution Protocol) . Gói dữ liệu được gửi dùng giao thức IP , do đó chúng tôi sẽ giải thích giao thức này .

Giao thức IP lấy gói dữ liệu nhận từ lớp Transport ( từ giao thức TCP nếu bạn đang truyền dữ liệu thực như Email hoặc File ) và chia chúng thành những Datagram . Datagram là gói không có bất kì hệ thống Acknowledge , có nghĩa là IP không thực hiện bất kì hệ thống Acknowledge và như vậy nó là giao thức không tin cậy .

Bạn phải lưu ý rằng khi truyền dữ liệu theo giao thức TCP thì bản thân nó đã thực hiện hệ thống Acknowledge . Như vậy qua giao thức IP không kiểm tra Datagram có bị lỗi hay không tới vị trí đích thì giao thức TCP sẽ làm điều này . Như vậy việc kết nối là hoàn toàn tin cậy , thậm trí dữ liệu qua giao thức IP là không được tin cậy .

Mỗi Datagram của IP có kích thước lớn nhất là 65.535 Byte , bao gồm cả Header mà có thể dùng 20 hoặc 24 byte , phụ thuộc vào sự lựa chọn trong chương trình sử dụng . Như vậy Datagram của IP có thể mang 65.515 Byte hoặc 65.511 Byte . Nếu gói dữ liệu nhận từ lớp Transport lớn hơn 65.515 Byte hoặc 65.511 Byte , giao thức IP sẽ cắt gói xuống thành nhiều Datagram nếu thấy cần thiết .

Trong hình dưới , chúng ta minh hoạ Datagram được tạo ra từ lớp Internet bằng giao thức IP .  Như chúng ta đã đề cập Header được giao thức IP thêm vào bao gồm địa chỉ IP nguồn , địa chỉ IP đích và một vài thông tin điều khiển .

 

 

Hình 4 : Datagram trong lớp Internet

 

Nếu bạn chú ý , chúng tôi không nói rằng Datagram của IP có dung lượng 65.535 Byte , nhưng nó có thể lên tới dung lượng 65.535 Byte . Điều đó có nghĩa là trường dữ liệu của Datagram không có kích thước cố định . Những Datagram sẽ được gửi lên mạng bên trong những Frame được tạo ra từ lớp Network Interface , thông thường hệ điều hành sẽ cấu hình kích thước Datagram của IP để có kích thước lớn nhất của vùng dữ liệu của những Frame dữ liệu trên mạng của bạn . Kích thước lớn nhất trường dữ liệu của Frame mà sẽ được gửi lên mạng được gọi là MTU (Maximum Transfer Unit ) .

Những mạng Ethernet - được dùng hầu hết các kiểu mạng , bao gồm cả hệ thống mạng không dây – có thể lên tới 1500 Byte dữ liệu , có nghĩa MTU có giá trị 1500 Byte . Như vậy hệ điều hành tự đọng cấu hình giao thức IP để tạo ra Datagram của IP có chiều dài 1500 Byte mà không phải là 65.535 ( sẽ không vừa trong một Frame ) . Trong phần tiếp theo sẽ biết kích thước thật là 1497 hoặc 1492 – do lớp LLC dùng 3 hoặc 5 Byte cho Header của nó .

Bạn có thể bị lẫn lộn về việc mạng có thể phân loại TCP/IP và Ethernet như thế nào . TCP/IP là một tập hợp của giao thức có nhiệm vụ thực hiện những công việc từ lớp 3 tới lớp 7 , Ethernet cũng là tập hợp giao thức có nhiệm vụ thực hiện công việc từ lớp 1 tới lớp 2 trong mô hình OSI .Ethernet với công việc thuộc khía cạnh vật lí của truyền dữ liệu . Như vậy chúng ta vẫn cần mô hình OSI 7 lớp ( hoặc một kiểu gì đó tương đương ) để thiết lập kết nối mạng . Chúng ta sẽ giải thích mối liên quan này trong trang sau .

Một đặc tính khác mà giao thức IP cho phép đó là sự phân mảnh ( Fragmentation ) . Như chúng ta đã đề cập trước đó , để tới đích , Datagram của IP sẽ có thể qua một vài mạng khác nhau ở giữa của đường đi . Nếu tất cả những mạng trong đường đi giữa máy tính truyền và máy tính nhận là một , thì mọi thứ đều tốt đẹp , bởi vì tất cả Router sẽ làm việc với cùng một cấu trúc ( có nghĩa là có cùng kích thước MTU ) .

Tuy nhiên , nếu những mạng khác không phải là mạng Ethernet , chúng có thể sẽ dùng kích thước MTU khác nhau  . Nếu điều đó xảy ra thì Router mà nhận những Frame có MTU là 1500 Byte sẽ cắt Datagram IP bên trong mỗi Frame thành nhiều mẩu để truyền trên mạng khác có kích thước MTU nhỏ hơn . Nhờ vào việc đến Router mà có đầu ra nối với mạng Ethernet thì Router này sẽ lắp ráp lại Datagram gốc ban đầu .

Trong hình 5 bên dưới , bạn có thể xem ví dụ này . Frame ban đầu dùng MTU có kích thước 1500 Byte . Khi tới mạng khác với MTU có kích thước 620 Byte thì mỗi Frame ban đầu được phân chia thành 03 Frame ( hai có kích thước 600 Byte và một có kích thước 300 Byte ) . Sau đó Router mà là đầu ra của mạng này ( Router 2 ) sẽ lắp ráp lại thành Datagram ban đầu .

 

Hiển nhiên Header IP có trường để điều khiển sự phân mảnh này

 

 

 

Hình 5 : Sự phân mảnh của Datagram

 

          5.    Lớp Network Interface

 

Datagram được tạo từ lớp Internet sẽ được gửi xuống tới lớp Network Interface , nếu chúng ta đang truyền dữ liệu , hoặc lớp Network Interface sẽ lấy dữ liệu từ mạng và gửi nó tới lớp Internet , nếu chúng ta đang nhận dữ liệu .

Lớp này vạch rõ mạng vật lí kiểu nào mà máy tính của bạn kết nối tới . Hiện nay hầu hết máy tính của chúng ta dùng kết nối mạng Ethernet ( mạng không dây cũng là mạng Ethernet ) .

Như chúng ta đã nói trong phần trước , TCP/IP là một tập hợp giao thức có nhiệm vụ thực hiện công việc từ lớp thứ 3 tới lớp thứ 7  , Ethernet cũng là tập hợp giao thức sử dụng công việc từ lớp thứ nhất tới lớp thứ 2 trong mô hình OSI .

Ethernet có ba lớp Logic Link Control (LLC), Media Access Control (MAC) và Physical . Lớp LLC và MAC tương ứng với lớp thứ hai trong mô hình OSI . Bạn có thể xem cấu trúc Ethernet trong hình 6.

 

 

 

Hình 6 : Cấu trúc Ethernet

 

Lớp LLC ( Điều khiển liên kết Logic ) có nhiệm vụ thêm thông tin của giao thức nào ở lớp Internet phát ra dữ liệu được truyền đi . Do đó khi nhận một Frame từ mạng , lớp này trong máy tính nhận sẽ biết giao thức nào từ lớp Internet sẽ phát ra dữ liệu . Lớp này được xác định bới giao thức IEEE 802.2 .

Lớp MAC ( Điều khiển truy nhập phương tiện truyền thông ) có nhiệm vụ lắp ráp Frame mà sẽ được gửi lên mạng . Lớp này có nhiệm vụ thêm địa chỉ MAC nguồn và địa chỉ MAC đích – chúng ta đã giải thích trước đó . Địa chỉ MAC là địa chỉ vật lí ( Physical Address ) của Card mạng . Những Frame mà là đích tới mạng khác sẽ dùng địa chỉ MAC của Router như là địa chỉ đích . Lớp này được xác định bới giao thức IEEE 802.3 nếu bạn dùng hệ thống Cable , và là giao thức IEEE 802.11 nếu bạn dùng mạng không dây .

Lớp Physical có nhiệm vụ chuyển đổi Frame do lớp MAC tạo ra thành tín hiệu điện ( nếu dùng hệ thống dây dẫn mạng bằng Cable ) hoặc thành sóng từ trường ( nếu sử dụng hệ thống mạng không dây ) .Lớp này được xác định bới giao thức IEEE 802.3 nếu bạn dùng hệ thống Cable , và là giao thức IEEE 802.11 nếu bạn dùng mạng không dây .

Những lớp LLC và MAC thêm những Header của chúng tới Datagram mà nhận được từ lớp Internet . Do đó cấu trúc đầy đủ của những Frame được tạo ra từ hai lớp đó được thể hiện trong hình 7 .

Lớp LLC thêm từ 3 Byte tới 5 Byte của Header và Datagram của nó có kích thước 1500 Byte do đó dữ liệu lớn nhất có kích thước là 1497 hoặc 1495 Byte . Lớp MAC thêm 22 Byte cho Header của nó , và 4 Byte CRC ( Data Correction ) vào điểm kết thúc của Datagram được nhận từ lớp LLC . Như vậy kích thước lớn nhất của Frame trong mạng Ethernet là 1526 Byte

 

 

Hình 7: Frame trong lớp Network Interface

Bây giờ chúng tôi sẽ đi sâu hơn một chút để giải thích những giao thức khác và những chức năng khác của TCP/IP không được đề cập trước đó như Telnet, SSH, TFTP, DHCP, DNS, ICMP, RIP, OSPF, BGP, ARP ..

Một điều quan trọng nên nhớ rằng có một vài giao thức liên quan tới cụm TCP/IP và chúng tôi chỉ giải thích những gì được gọi là quan trọng nhất .

 

Terminal Services ( TS )

 

TS cho phép bạn vào máy chủ và truy cập tới nhân của nó ( có nghĩa là tới tận dấu nhắc hệ thống ) từ xa thông qua bàn phím và màn hình của bạn . Có ba giao thức Terminal hay được sử dụng nhất đó là : Telnet , Rlogin và SSH ( Secure Shell ) . Tất cả làm cùng một việc nhưng nếu sử dụng SSH thì kết nối được mã hoá và an toàn hơn . Nếu bạn muốn quả lí máy chủ từ xa an toàn hơn thì nên dùng SSH để thay thế cho Telnet hoặc Rlogin , bởi vì kết nối Telnet và Rlogin không được mã hoá , một vài người dùng chương trình “ Sniffer “ – là một loại chương trình cho phép Hacker đọc được gói dữ liệu mà đang được truyền trên mạng – có thể đọc mọi thứ bạn gõ kể cả Password.

Telnet , Rlogin và SSH là những giao thức lớp Application và dùng giao thức TCP trên lớp Transport , Telnet dùng cổng 23 , Rlogin dùng cổng 513 và SSH dùng cổng 22 .

Một trong những chương trình Terminal trên máy trạm hay được sử dụng trong Windows mà cho phép những kết nối Telnet , Rlogin và SSH có tên là PuTTY . Trong Windows chỉ có sẵn tiện ích cho Telnet - bấm Start , chọn Run , gõ Telnet - , những không có sẵn cho SSH .

 

TFTP (Trivial File Transfer Protocol )

 

TFTP là giao thức truyền File ít quan trọng . Trong phần 1 , chúng tôi đã giải thích về FTP , nó là giao thức lớp Application cho truyền những File dùng giao thức TCP trên lớp Transport .

TFTP là giao thức có cùng ứng dụng – truyền những File – nhưng dựa trên giao thức UDP trên lớp Transport .

Các bạn có thể nhớ rằng , sự khác nhau giữa TCP và UDP ở chỗ trong khi TCP kiểm tra mọi gói dữ liệu có đến đúng đích cần đến hay không , thì UDP lại không làm việc đó . Sự khác nhau nữa là TCP sắp xếp lại những gói mà có thể chúng đã được đến không theo trật tự , thì UDP lại cũng không làm điều đó .

Nói một cách khác , bởi vì nó không có hệ thống xác nhận ( Acknowledge ) và cũng không có bất kì hệ thống sắp xếp lại nào , những gói UDP nhỏ hơn ( Header của UDP cũng nhỏ hơn Header của TCP ) , và cũng yêu cầu công suất tính toán ít hơn để xử lí – như sắp xếp lại và Acknowledge là không cần thiết - . Nó sẽ là ứng dụng – không cần giao thức – mà sẽ có nhiệm vụ của chức năng này .

Đối với công việc hàng ngày , giao thức TFTP không được dùng nhiều như FTP vì có độ tin cậy ít hơn .Tuy nhiên cũng có ứng dụng dựa trên TFTP và bạn có thể đã được nghe nói đến đó là : Khởi động từ xa không cần đĩa ( RIPL , Remote Initial Program Loading ).

Bạn có thể có máy tính không có ổ đĩa cứng hoặc bất kì thiết bị lưu trữ nào khác và cấu hình nó khởi động từ trên mạng , có nghĩa là tải hệ điều hành và những chương trình từ máy chủ . Chương trình để tải hệ điều hành từ xa cần được lưu trữ trong bộ nhớ ROM nhỏ nằm trên Card mạng của máy tính không có ổ đĩa . Như vậy nó sẽ cần giao thức để truyền những File , và dùng TFTP tốt hơn FTP , những máy trạm dùng TFTP này có tiện ích nhỏ hơn so với FTP nên chứa vừa trong ROM có kích thước 64KB trên Card mạng .

 

Tóm lại TFTP và giao thức lớp Application dùng với giao thức UDP ( cổng 69 ) trong lớp Transport .

 

DHCP (Dynamic Host Configuration Protocol )

 

DHCP – Giao thức cấu hình Host động . Tất cả các máy tính kết nối tới mạn TCP/IP cần được cấu hình bằng những địa chỉ IP . Không có địa chỉ IP máy tính không thể “ nói chuyện” được những máy tính khác trên mạng .

Có một cảnh tượng trong một mạng lớn với hàng trăm máy tính . Nếu đặt cấu hình cho từng máy thì là một điều khủng khiếp . Cũng tương tự như vậy với những nhà cung cấp dịch vụ Internet ( ISP ) : họ không thể dạy cho từng khách hàng cấu hình địa chỉ IP như thế nào trên máy tính của họ và đưa cho họ địa chỉ IP bằng điện thoại , sau đó lại theo dõi những địa chỉ này , bởi vì hai máy tính không thể có cùng địa chỉ IP .

Có một cách khác để thiết lập cấu hình một cách dễ dàng , giao thức đó gọi là DHCP . Nó cho phép những máy tính nhận cấu hình của mình thông qua máy chủ DHCP . Hiện nay đó là cấu hình ngầm định sẵn có trong tất cả các máy tính . Do đó khi bạn bất máy tính , nó sẽ yêu cầu máy chủ DHCP của mạng của bạn ( nằm ở nhà cung cấp dịch vụ Internet của bạn nếu máy tính tại nhà nối tới mạng Internet ) kiểu như “ này đưa cho tôi địa chỉ IP của tôi” và lúc đó máy tính của bạn được thiết lập cấu hình . Nếu máy tính của bạn có mạng nhỏ sử dụng Router , Router cũng sẽ kết hợp bên trong máy chủ DHCP , do đó nó có nhiệm vụ gán địa chỉ IP cho máy tính của bạn nối vào nó .

Bên cạnh địa chỉ IP , máy chủ DHCP cũng gửi thông tin cấu hình khác như địa chỉ IP của máy chủ DNS máy tính của bạn sẽ sử dụng ( chúng tôi sẽ giải thích sau ) , cổng Ra/Vào ngầm định (Default Gateway - địa chỉ IP của Router của mạng của bạn , có nghĩa là nếu máy tính của bạn không tìm thấy địa chỉ đích đến trong mạng cục bộ thì sẽ gửi gói đi tiếp tới ra bên ngoài mạng qua địa chỉ IP của Router ) và Subnet Mask .

Bằng việc sử dụng máy chủ DHCP , nhà quản trị mạng có thể cấu hình tất cả các máy tính của mạng từ một vị trí trung tâm một cách dễ dàng .

DHCP là giao thức ở lớp Application , dùng giao thức UDP trên lớp Transport . Nó dùng cổng 67 và 68 . DHCP thay thế giao thức cũ có tên gọi BOOTP và trong những sách cũ bạn có thể tìm thấy phần tham khảo BOOTP thay thế bằng DHCP . Mọi điều nói về BOOTP đều hợp lệ cho DHCP , DHCP tương thích 100% với BOOTP .

 

DNS ( Domain Name System )

 

DNS - Hệ thống tên miền . Như chúng ta đã biết , trên mạng TCP/IP mỗi máy tính có địa chỉ ảo duy nhất , được gọi là địa chỉ IP . Cũng như vậy đối với con người , tên dễ nhớ hơn số .

DNS cho phép dùng tên bí danh thay thế cho địa chỉ IP . Ví dụ , thật là dễ để nhớ tên của trang Web chúng tôi là www.tuvantinhoc1088.com hơn là địa chỉ IP mà máy chủ Web chúng tôi đang sử dụng đó là 202.134.18.28 .

Khi bạn gõ http://www.tuvantinhoc1088.com vào ô địa chỉ trong chương trình duyệt Web ( Internet Explorer , FireFox ... ) , lúc này giao thức DNS đi vào trong hành động này , tiếp xúc với máy chủ DNS và hỏi nó địa chỉ IP liên quan tới www.tuvantinhoc1088.com . Máy chủ DNS sẽ trả lời 202.134.18.28 và sau đó chương trình duyệt Web sẽ biết địa chỉ IP được dùng trong kết nối này .

Tất cả những máy tính được nối tới Internet có trường để cấu hình địa chỉ IP ở ít nhất một máy chủ DNS . Thông thường cấu hình này được tự động thiết lập bằng DHCP .

Nếu máy chủ DNS không biết tên bạn hỏi , nó sẽ tiếp xúc tới máy chủ DNS khác ở hệ thống cao hơn theo thứ tự liên quan tới tên địa chỉ IP .

Tất cả danh mục trong những máy chủ DNS có trường TTL ( Time To Live ) , mà nói cho máy chủ biết thông tin này hợp lệ trong thời gian bao lâu . Khi thông tin hết hiệu lực , nó sẽ được cập nhật bằng cách tiếp xúc với máy chủ DNS ở hệ thống cao hơn .

DNS là giao thức lớp Application , và những tham vấn DNS được làm dùng giao thức UDP cổng 53 trên lớp Transport . Như đã giải thích , UDP không kiểm tra gói đến có đến đích được hay không , nhưng nó nhanh hơn , nó có Header nhỏ hơn nên yêu cầu tính toán ít hơn và không sử dụng hệ thống Acknowledge .

Thật dễ dàng để chạy với tham vấn DNS qua lệnh NSLOOKUP . DNS cho phép nhiều hơn một tên để kết hợp với một địa chỉ IP . Điều đó cho phép bạn Host hơn một trang Web trên một máy chủ . Khi bạn truy cập tới Website mà có nhiều Website được Host , chương trình duyệt Web của bạn sẽ tìm tới nó quá địa chỉ IP , trong khi máy chủ sẽ kiểm tra tên bạn bạn đang dùng để cấp phát đúng Website bạn cần .

 

ICMP (Internet Control Message Protocol )

 

ICMP được dùng để gửi ra những thông điệp điều khiểm tới Router . Nó là giao thức lớp Internet , làm việc cùng với giao thức IP . Nó có thể được dùng trong một vài tình huống mà có thể cần thiết để một Router chỉ dẫn cho Router khác về một điều gì đó – thông thường khi một Router lấy Datagram mà nó không thể giao được , nó phản hồi lại tới Router mà gửi Datagram với thông điệp ICMP giải thích tại sao nó không thể giao được Datagram .

Một vài thông điệp điều khiển mà có thể được gửi dùng ICMP là :

 

  • Echo : Dùng để kiểm tra xem đường giữa bên nhận và bên phát có tốt không . Hầu hết mọi người đều biết nó qua lệnh Ping . Nếu bạn gõ lệnh Ping www.tuvantinhoc1088.com , máy chủ của chúng tôi sẽ phản hồi cho thông điệp Echo , và Ping sẽ nói cho bạn biết có tìm được máy chủ hay không và mất thời gian bao lâu để máy chủ gửi thông điệp Echo quay trở lại máy của bạn , thông thường thời gian cỡ ms.
  • Không thấy Host : Bên trong thông điệp này Router có thể nói chính xác lỗi đi như thế nào như : không tới mạng , không tới máy tính , không tới giao thức , không tới cổng , không biết mạng đích , không biết máy tính đích , quản trị mạng đã ngăn chặn mạng đích hoặc máy tính , đường đi có vấn đề ....
  • Giảm tốc độ : Thông điệp này được gửi nếu Router bị quá tải , có nghĩa là nó đã nhận nhiều Datagram hơn khả năng xử lí của nó – nó yêu cầu Router gửi Datagram giảm tốc độ xuống trên Router bị quá tải .
  • Yêu cầu định hướng lại : Thông điệp này thường được dùng khi Router tìm ra đường đi tốt hơn để tới đích . Đặc điểm này chỉ làm việc với mạng cục bộ , không làm việc với mạng lớn mà có những mạng liên kết , như Internet .
  • Phạm vi TTL ( Time To Live ) : Tất cả IP Datagram có trường TTL , mà nói cho biết có bao nhiêu Hop ( Router ) mà Datagram có thể đi qua từ máy tính phát tới máy tính nhận . Nếu Datagram có TTL là 20 , điều đó có nghĩa là nó không đến đích mà Hop trong khoảng 20 . Điều này được làm để ngăn chặn những Datagram  truyền theo một vòng tròn trên mạng mà không bao giờ đến được đích .
  • Thời gian : Những Router ( và những máy tính ) có thể hỏi thời gian Router khác hoặc máy tính có quyền trong thời gian thực . Nó được dùng để đồng bộ thời gian giữa hai máy tính , thậm trí việc đồng bộ này là không hoàn hảo bởi vì có thời gian nhỏ bị trễ trên mạng ( khoảng vài ms ) . Thông điệp này có thể được dùng để đo thời gian trễ trên mạng giữa hai máy tính nếu đồng hồ của nó được đồng bộ .

 

Những giao thức về lộ trình : RIP , OSPF và BGP

 

Lộ trình có thể là tĩnh hoặc động . Trong những mạng nhỏ lộ trình tĩnh được dùng – có nghĩa là Datagram thường được di chuyển theo cùng đường đi chính xác để tới đích của nó – trên Internet hoặc những mạng lớn lộ trình động là cần thiết .

Với lộ trình là động , những Router có thể thay đổi trên đường đi , nếu chúng cảm thấy có những đường tốt hơn để đi tới đích . Ví dụ , nếu có nhiều đường đi tới một đích và đường hiện tại lại dài hơn một đường nào khác , những Router có thể cấu hình lại để dùng đường đi ngắn hơn . Ở đây “ dài “ và “ngắn” được hiểu là số Hop ( Router ) trên đường đi . Những đường ngắn hơn chưa chắc đã là nhanh hơn .

Truyền thông tin giữa những Router theo mệnh lệnh để lập trình lại bảng lộ trình được thực hiện bằng giao thức lộ trình . Có ba kiểu giao thức lộ trình động hay được sử dụng đó là RIP (Routing Information Protocol), OSPF (Open Shortest Path First) và BGP (Border Gateway Protocol) .

Nếu những Router đang được dùng giao thức RIP , chúng sẽ gửi ra bảng lộ trình của mình tới tất cả Router chúng phải truy cập cứ 30 giây một lần . Bảng lộ trình là bảng bao gồm tất cả những mạng mà Router biết làm thế nào để tới đó và khoảng cách ( số Hop ) để tới đó .

Khi nhận Bảng lộ trình mới từ Router khác , mỗi Router có thể xem nếu có bất kì mạng nào trong sanh sách đó mà có đường đi ngắn hơn danh sách hiện thời thì lộ trình này sẽ được ghi lại để sử dụng thành lộ trình mới .

Một vấn đề xảy ra là những con đường ngắn hơn chưa chắc đã là tốt nhất , bởi vì giao thức RIP không thực hiện bất kì quá trình kiểm tra hiệu suất của đường truyền . Nó cũng không kiểm tra xem con đường đó có bị tắc nghẽn hay không hoặc con đường đó có sẵn sàng làm việc không . Do đó tuyến đường dài hơn có khi lại nhanh hơn .

 

RIP dùng UDP trong cổng 520 .

 

Không quan tâm đúng cái tên của nó , giao thức OSPF lại không tìm kiếm con đường đi ngắn nhất , nhưng lại tìm đường đi nhanh nhất . Khi những Router dùng giao thức OSPF , chúng kiểm tra trạng thái của những Router khác , chúng phải truy cập thường xuyên và gửi thông điệp “Hello” . Từ thông điệp này , chúng biết Router đó có làm việc không và trạng thái hoạt động như thế nào . Một điều khác mà sử dụng những Router dùng giao thức OSPF là biết tất cả những con đường mà có thể dùng để tới đích cần đến , trong khi những Router dùng giao thức RIP chỉ biết con đường ngắn nhất . Điều khác thứ ba là những Router dùng giao thức RIP sẽ gửi những Bảng lộ trình cứ 30 giây một lần sẽ làm tăng lưu lượng giao thông trên mạng .

Một điều khác trong những Router dùng giao thức OSPF chính là chúng cho phép cân bằng tải , nếu có nhiều đường để đi tới đích , Router có thể chia những Datagram gửi theo nhiều đường khác nhau để cùng tới một đích .

OSPF làm việc trực tiếp trong lớp Internet bằng giao thức IP mà không sử dụng những giao thức TCP hoặc UDP .

BGP là giao thức cho những mạng lớn , như Internet . Nó là giao thức cổng Vào/Ra ( Gateway ) bên ngoài , trong khi RIP và OSPF là những giao thức cho Gateway bên trong – chúng được sử dụng trong mạng dưới sự quản lí của cùng nhà quản trị .

Những nhóm Router dùng giao thức BGP mà đặt dưới sự quản lí của cùng nhà quản trị gọi là hệ thống tự trị AS (Autonomous System ) . Ví dụ , tất cả Router và những máy tính phụ thuộc hoặc được kết nối với cùng nhà cung cấp dịch vụ Internet ( ISP ) là một phần của AS . Trong khi chạy bên trong cùng hệ thống tự trị BGP được gọi là IBGP ( Internal BGP ) , trong khi chạy giữa hai hệ thống tự trị BGP khác thì được gọi là EBGP ( Exterrnal BGP ) .

BGP phức tạp hơn nhiều so với RIP và OSPF , nó sẽ dùng một vài chuẩn ( gọi là thuộc tính – Attribute ) để xác định xem đường đi nào là tốt nhất để sử dụng như : Weight, Local preference, Multi-exit discriminator, Origin, AS_path, Next hop và Community .

Không như RIP , những Router dựa trên BGP chỉ gửi ra những gì là mới trong Bảng lộ trình thay thế cho việc gửi tất cả Bảng lộ trình đều đặn vì việc gửi đều đặn như thế sẽ tăng lưu lượng truyền thông trên mạng . Một điều khác nhau giữa BGP và RIP ở chỗ BGP kiểm tra đều đặn những đường đi mà nó có có được Online hay không .

 

BGP dùng TCP trong cổng 179 .

 

ARP (Address Resolution Protocol ) và RARP (Reverse Address Resolution Protocol)

 

ARP có nhiệm vụ lấy địa chỉ MAC ( địa chỉ vật lí ) của máy tính và đưa ra địa chỉ IP .

RARP làm nhiệm vụ ngược lại là tìm ra địa chỉ IP của máy tính bằng địa chỉ MAC .

Trong khi Datagram được truyền trên mạng Internet , địa chỉ MAC của máy tính đích chưa cần thiết - những Router nằm giữa đường đi và chỉ quan tâm đến việc chuyển Datagram tới mạng đích . Nhưng ngay khi gói đến mạng đích , Router nối trong mạng đích lúc này mới cần biết địa chỉ MAC của máy tính đích để nó bàn giao Datagram cục bộ ( hay dùng giao thức Ethernet ) .

Ví dụ : nếu địa chỉ đích là 69.69.69.69 , khi Datagram đến Router của mạng 69.69.69.0 , nó sẽ hỏi tới tất cả các máy tính ( thông điệp được gửi tới tất cả các máy tính gọi là thông điệp quảng bá - Broadcast Message ) dùng giao thức ARP : “ này , máy tính nào là 69.69.69.69” . Sau đó máy tính mà dùng địa chỉ IP này sẽ trả lời “ là tôi đây “

Tất nhiên việc gửi Broadcast Message tất cả máy tính một lúc sẽ làm tắc nghẽn trên mạng , do đó Router sẽ giữ bảng những địa chỉ IP đã biết và những địa chỉ MAC tương ứng , do đó nó sẽ không cần hỏi cùng một câu hỏi một lần nữa khi nó nhận Datagram mới mà có đích tới 69.69.69.69 .

RARP được dùng trong những máy tính không có ổ cứng và được khởi động bằng khởi động từ xa , có nghĩa là hệ điều hành và những chương trình nằm trên máy chủ . Lúc đó máy tính không có hệ điều hành được cài đặt , chúng không biết địa chỉ IP nào đang được dùng . Ngày nay do dùng DHCP nên RARP đã trở nên lỗi thời .

ARP và RARP làm việc trên lớp Network Interface .

 

Những giao thức khác .

 

Dưới đây là danh sách những giao thức khác liên quan tới giao thức TCP/IP và bạn cũng có thể đã nghe về nó :

 

  • NAT (Network Address Translation ) : Về lí thuyết mỗi máy tính nối với Internet sẽ yêu cầu địa chỉ IP “Public “ hợp lệ và là duy nhất . NAT cho phép mạng cục bộ dùng một địa chỉ IP “Public” . Ví dụ , khi bạn nối mạng tại nhà hoặc văn phòng tới Internet qua Router , Router sẽ dùng địa chỉ IP duy nhất do nhà cung cấp dịch vụ Internet ( ISP ) cấp, khi đó những máy tính của bạn sẽ dùng những địa chỉ IP hợp lệ bên trong mạng của bạn ( thông thường như 192.168.x.x , hoặc 10.0.x.x ... ) . Trên Internet , tất cả những máy tính từ mạng của bạn đang dùng cùng một địa chỉ IP . Do đó để gửi dữ liệu tới một máy tính của bạn , máy tính nguồn sẽ dùng Router địa chỉ IP và khi Datagram này đến Router , nó sẽ thay thế địa chỉ IP của nó bằng địa chỉ IP của máy tính đích đang dùng , mà chỉ hợp lệ bên trong mạng của bạn . Kỹ thuật này gọi là NAT ( chúng tôi cũng đã giới thiệu cho các bạn phần này trước đó ) .
  • IGMP (Internet Group Management Protocol ) : Gửi cùng Datagram tới tất cả những máy tính trên mạng gọi là Broadcasing , gửi cùng Datagram cho nhóm của những máy tính được gọi là Multicasting . Multicasting TCP/IP có thể thực hiện cho những máy tính nằm trên những mạng khác nhau . Những nhóm này được quản lí bằng thông điệp điều khiển IGMP . IGMP dùng giao thức IP , làm việc ở lớp Internet .
  • SNMP ( Simple Network Management Protocol) : Giao thức được dùng để theo dõi thiết bị phần cứng gắn trên những mạng TCP/IP mà thực hiện giao thức này . SNMP là giao thức lớp Application dùng UDP trong cổng 161 và 162 .
  • Finger : Đây là trợ giúp cho lớp Application dùng TCP trên cổng 79  , được dùng để nhận ra thông tin về thói quen người dùng trên máy chủ . Việc truy cập những thông tin cá nhân của tất cả người dùng thực là một quan điểm không tốt vì thế dịch vụ này thường xuyên không được kích hoạt .

 

Cách thức sửa một số lỗi liên quan tới giao thức TCP/IP

 

Trong quá trình tư vấn chúng tôi nhận thấy rằng máy tính người sử dụng rất hay bị lỗi giao thức TCP/IP như , chọn Run , gõ tên máy thì truy cập được , nhưng gõ địa chỉ IP thì không được , hoặc ngược lại ...

Trong Windows XP không thể cài đặt lại TCP/IP nhưng bạn có thể thiết lập lại cách thức như sau :

 

  • Bấm Start , chọn Run , gõ CMD , bấm Enter
  • Trong cửa sổ màn hình Command Prompt , bạn bấm

 

netsh int ip reset C:\esetip.txt

 

            file có tên là resetip.txt được netsh tạo ra cho biết nó đã thực hiện những việc gì

 

Đôi khi máy tính bị lỗi Winsock thì bạn gõ lệnh sau ( dùng với Windows XP SP2 )

 

  • netsh winsock reset

 

Sau khi chạy xong bạn phải khởi động lại máy tính thì mới có tác dụng

 

\"\"