Tầng Internet (Internet Layer)

Một phần của tài liệu Kiến trúc mạng căn bản potx (Trang 29 - 42)

Tầng Internet cung cấp một hệ thống chuyển giao không kết nối và đôi khi người ta còn gọi là không tin cậy. Không kết nối bởi mỗi gói tin được truyền đi trên mạng một cách độc lập, sự kết hợp dữ liệu của các gói tin được cung cấp bởi các dịch vụ lớp trên. Mỗi gói tin IP chứa địa chỉ nơi gửi và địa chỉ nơi nhận và dựa vào đó nó có thể được truyền trên mạng tới đích. Nhưng chính việc dữ liệu có thể đi tới đích trên nhiều đường khác nhau tạo nên sự mềm dẻo cho Internet khi một đường bị đứt hay một nút nào đó bị quá tải, các gói tin có thể được truyền đi theo những con đường khác, nếu một gói tin nào có lỗi thì chỉ phải truyền lại gói tin đó thay vào việc phải truyền lại toàn bộ thông báo. Không tin cậy bởi vì IP không có cơ chế kiểm tra tính đúng đắn của dữ liệu được truyền nhận, dịch vụ tin tưởng phải được cung cấp bởi các giao thức lớp trên.

Vấn đề chủ chốt trên tầng Internet là việc chọn lựa con đường tối ưu để truyền các gói tin từ trạm nguồn tới trạm đích. Chúng ta sẽ xem xét các kỹ thuật chọn đường và thuật toán dẫn đường sử dụng đối với tầng này sau đây.

IV.1. Gói tin IP

0 31

Vers Hlen Service type Total length

Identification Flag Fragment offset Time to live Protocol Header cheksum

Source IP address Destination IP address

IP options Padding

IP datagram data (Max 65535 bytes)

Destination Address Source Address Type field IP data CRC

Gói thông tin IP trong một frame Ethernet

Vers : Dài 4 bits, mô tả chính xác version của IP

Hlen : Dài 4 bits, mô tả độ dài của IP header (tính bằng từ 32 bit).

Service type: dài 8 bits mô tả thứ tự ưu tiên của data.

Total length: Dài 16 bits (2 bytes), đây là độ dài của datagram (in bytes-có nghĩa là độ dài vùng data của IP datagram có thể lên tới 65535 bytes).  Identification, flags, fragment offset: Không phải bất kỳ size nào của

datagram cũng được truyền trên mạng (ví dụ Ethernet LAN chỉ hỗ trợ cho size lớn nhất của datagram là 1518 bytes). Do vậy khi size của datagram vượt quá kích thước cho phép, nó sẽ bị chia nhỏ ra và các trường này sẽ

đảm bảo rằng các datagram đã bị phân chia này là từ một datagram ban đầu.

Time to live: Dùng để xác định xem datagram này có bị truyền lặp lại hay không (thông thường nó được gán là 1, nếu bị lặp lại nó sẽ bị gán là 0)  Protocol: Trường này cho biết lớp giao thức cao hơn nào sẽ được sử dụng

(UDP hay là TCP).

CRC: Trường này được dùng để kiểm tra sự toàn vẹn của header.

IP option: Chứa các thông tin như: "dò" đường, bảo mật, xác nhận thời gian.

Padding: Trường điền thêm các số 0 để đảm bảo header kết thúc tại một địa chỉ bội của 32

Source IP address, destination IP address: chứa địa chỉ của station gửi và địa chỉ của station đích.

Gói tin IP chứa một trường checksum để kiểm tra tính toàn vẹn của IP header, nếu IP header lỗi, gói tin IP bị loại bỏ và giao thức lớp trên sẽ truyền một gói tin khác.

Tầng IP làm công việc dẫn đường các gói tin qua mạng Internet từ máy tính này tới máy tính khác, qua các mạng khác nhau cho tới khi nó đến được trạm đích hoặc bị lỗi. Việc truyền gói tin qua các mạng được thực hiện thông qua một thiết bị kết nối giữa hai mạng gọi là gateway. Khi một thông tin truyền qua các mạng khác nhau, nó có thể bị chia ra thành nhiều gói nhỏ hơn. Thông tin truyền có thể quá lớn để có thể truyền trên một gói tin trên một mạng khác. Vấn đề này chỉ gặp phải khi gateway được nối giữa các mạng vật lý khác nhau. Mỗi kiểu mạng có một độ dài tối đa gói tin có thể truyền (Maximum Transmission Unit-MTU) nếu thông tin nhận được từ mạng này dài hơn MTU của mạng kia, nó cần phải được chia nhỏ ra thành nhiều mảnh để truyền.

Việc xử lý như vậy được gọi là sự phân mảnh. Để trực quan, ta so sánh với việc chuyên chở hàng bằng tàu hoả, mỗi toa tàu có thể chở nhiều hàng hơn một chiếc xe tải sẽ trở hàng trên đường, hàng hoá sẽ được chia vào nhiều xe tải. Ta có thể so sánh việc đường ray khác về vật lý với đường ôtô, Ethernet khác X.25 về vật lý, IP phải cắt gói tin Ethernet thành những gói thông tin nhỏ hơn để truyền qua mạng X.25. Định dạng của mỗi gói tin chia cắt giống như với từng bản tin. Từ thứ hai của header chứa thông tin sử dụng cho quá trình tập hợp lại bản tin bao gồm: gói tin thuộc bản tin nào, vị trí của nó trong toàn bộ dòng dữ liệu truyền, gói tin đã được kết nối chưa.

Khi những gói tin truyền đến một gateway quá nhanh, chúng có thể bị loại bỏ và IP trả lại một thông báo lỗi (ICMP).

Application Transport Internet NetworkInterface Internet Network Interface NetworkInterface Identical Datagram Identical Frame Identical Packet Identical Message Physical Net Host A Host B Application Transport Internet Physical Net Identical Datagram Identical Frame Gateway G

IV.2. Giao thức chuyển địa chỉ ARP (Address Resolution Protocol) và cơ giao thức chuyển ngược địa chỉ RARP (Reverse Address Resolution Protocol)

Mọi máy tính cùng nằm trên một mạng có cùng một net id và các máy tính cùng trên một mạng vật lý có thể gửi frame vật lý trực tiếp cho nhau nên việc truyền thông tin giữa hai máy tính trong cùng một mạng vật lý không cần sử dụng gateway. Việc dẫn đường trực tiếp chỉ sử dụng phần địa chỉ máy host id

trong địa chỉ IP. Trạm gửi chỉ việc kết khối dữ liệu vào frame, chuyển địa chỉ IP của trạm đích thành địa chỉ vật lý và gửi trực tiếp frame tới máy nhận. Một cơ chế sử dụng để chuyển địa chỉ IP thành địa chỉ vật lý là ARP (Address Resolusion Protocol). Khi hai máy tính cùng nối vào một mạng vật lý, chúng biết được địa chỉ IP của nhau nhưng để truyền thông giữa hai máy, chúng phải biết được địa chỉ vật lý của nhau. ARP giải quyết vấn đề chuyển từ địa chỉ IP 32 bit sang địa chỉ Ethernet 48 bit. Người ta sử dụng hai cơ chế chuyển địa chỉ là:

 Chuyển giao trực tiếp  Chuyển giao gián tiếp

IV.2.1. Chuyển giao trực tiếp

Địa chỉ vật lý là một hàm của địa chỉ IP ví dụ sử dụng trên mạng token ring proNET-10 là mạng cho phép đặt địa chỉ IP và địa chỉ vật lý thoải mái. Người ta có thể đặt địa chỉ IP là 192.5.48.3 và địa chỉ vật lý là 3, khi đó ta có PA=f(IA). Với PA là địa chỉ vật lý, IA là địa chỉ Internet và f là hàm chuyển đổi.

IV.2.2. Chuyển giao địa chỉ động

Chuyển giao địa chỉ động được thực hiện bằng cách máy tính gửi thông tin gửi một thông báo tới toàn bộ các máy tính trên mạng, trong thông báo đó có chứa địa chỉ IP của máy tính nó cần liên lạc, mọi máy sẽ nhận được thông báo

và máy nào thấy địa chỉ IP của mình thì trả lại một thông báo chứa địa chỉ vật lý, khi đó, hai máy tính có thể “nói chuyện” với nhau.

Ngoài ra, người ta còn sử dụng bảng chỉ đường để lưu trữ tạm thời các địa chỉ sử dụng mới nhất (Address Reslution Cache) để tăng tốc độ của việc chuyển giao địa chỉ.

IV.2.3. Gói tin ARP

Một gói thông tin ARP là một Ethernet Frame được truyền trực tiếp từ máy này tới máy khác. Vì không phải sử dụng IP, gói tin này không có địa chỉ IP cũng như không cần được dẫn đường, nó phải được gửi broadcasts tới tất cả các máy trên mạng Ethernet (với địa chỉ FF-FF-FF-FF-FF-FF).

Gói thông tin ARP được mô tả như sau:

Host A Host B Host C Host D

ARP Request

Host A Host B Host C Host D

0 31 Hardware Address Space

Protocol Address Space

Hardware Address Length Protocol Address Length Operation Code

Source Hardware Address (Ethernet Address)

(Internet Address)

Source Protocol Address

Target Hardware Address (Ethernet Address) Destination Address Source Address Type or Length (ARP) Data CRC

Không giống phần lớn các giao thức khác, dữ liệu trong ARP không có một định dạng chuẩn cho header. Để ARP có thể làm việc với nhiều công nghệ khác nhau, người ta dùng một trường để chứa độ dài của những trường đi sau nó.

Trong trường hợp máy trạm không có thiết bị nhớ phụ, và vì vậy nó không biết địa chỉ IP của chính mình khi khởi động, người ta sử dụng cơ chế chuyển ngược địa chỉ (Reverse Address Resolution Protocol - RARP) hoạt động

tương tự ARP để giải quyết vấn đề này. Theo cơ chế đó, có một máy chủ chứa bảng địa chỉ IP của các máy trạm, khi máy trạm khởi động, nó gửi một request tới tất cả các máy và máy chủ gửi trả lại một gói tin chứa địa chỉ IP của máy trạm yêu cầu.

IV.3. Giao thức điều khiển truyền tin (Internet Control Message Protocol - ICMP)

Việc dẫn đường qua các mạng sử dụng giao thức điều khiển truyền tin (Internet Control Message Protocol - ICMP) được định nghĩa trong RFC 792. ICMP sử dụng gói tin IP để chuyển thông báo của nó. ICMP gửi các thông báo làm các công việc: Điều khiển, thông báo lỗi và chức năng thông tin cho TCP/IP.. Thông thường ICMP được gửi khi một gói tin không thể đi tới đích, một gateway không còn đủ chỗ nhớ để nhận thêm gói tin hay một gateway hướng dẫn máy tính sử dụng gateway khác để truyền thông tin theo một con đường tối ưu hơn..

IV.3.1. Gói tin ICMP

Mặc dầu mỗi thông báo ICMP có một kiểu định dạng riêng của nó, song các thông báo đều chứa 3 trường đầu tiên giống nhau:

TYPE: Định nghĩa thông báo đi sau.

CODE: Cung cấp thông tin thêm về thông báo.  CHECKSUM: Chứa checksum của thông báo.

Type Field ICMP Message Type

0 Echo Reply

3 Destination Unreachable

4 Source Quench

5 Redirect (Change a router)

11 Time Exceeded for a Datagram

12 Parameter Problem on a Datagram

13 Timestamp Request

14 Timestamp Reply

15 Information Request

16 Information Reply

17 Address Mask Request

18 Address Mask Reply

IV.3.2. Điều khiển dòng dữ liệu

Khi trạm nguồn gửi dữ liệu tới quá nhanh, trạm đích không kịp xử lý, trạm đích - hay một thiết bị dẫn đường gửi trả trạm nguồn một thông báo để nó tạm ngừng việc truyền thông tin.

IV.3.3. Thông báo lỗi

Khi không tìm thấy trạm đích, một thông báo lỗi Destination Unreachable được gateway gửi trả lại trạm nguồn. Nếu một số hiệu cổng không phù hợp, trạm đích gửi thông báo lỗi lại cho trạm nguồn (cổng sẽ được trình bày trong phần giao thức tầng giao vận).

IV.3.4. Định hướng lại

Một gateway gửi thông báo định hướng lại để trạm gửi sử dụng một gateway khác bởi vì gateway đó là một lựa chọn thích hợp hơn. Trường hợp này chỉ xảy ra khi trạm gửi nối vào mạng có trên 2 gateway.

Ví dụ máy tính B muốn gửi thông tin đến máy C, nếu thông báo đó đến gateway 1, thì gateway 1 phải gửi thông báo redirect máy tính đó qua gateway 2. Ngược lại, mỗi máy tính trên mạng X.25 muốn gửi thông báo tới máy tính nằm trên mạng Token Ring thì việc này không cần thiết vì gateway 1 được nối trực tiếp với mạng Token Ring.

IV.3.5. Kiểm tra trạm làm việc

Khi một máy tính muốn kiểm tra một máy khác có tồn tại và đang hoạt động hay không, nó gửi một thông báo Echo Request. Khi trạm đích nhận được thông báo đó, nó gửi lại một Echo Reply. Lệnh ping của UNIX sử dụng các thông báo này.

IV.4. Thuật toán dẫn đường

Internet là một mạng chuyển mạch gói và để chuyển các gói tin IP trên mạng, người ta sử dụng thuật toán dẫn đường. Thuật toán dẫn đường được thực hiện bởi tiến trình lựa chọn một đường để truyền gói tin và việc dẫn đường cho các gói tin được thực hiện bởi mọi máy tính trên đường đi của nó.

Người ta chia việc dẫn đường trên mạng Internet ra làm 2 kiểu:

 Dẫn đường trực tiếp (direct routing): Dẫn đường trực tiếp từ máy tính này sang máy tính kia chỉ thực hiện được khi cả hai máy tính đều kết nối vào một mạng vật lý. Dẫn đường trực tiếp chỉ sử dụng phần hostid của địa chỉ Internet và sử dụng 2 giao thức chuyển địa chỉ ARP và RARP.

X.25 Ethernet Gateway 1 Gateway 2 Host B Host C Host A Token Ring

Tới máy trên mạng Dẫn đường tới Thông qua cổng 10.0.0.0 Direct 2 11.0.0.0 Direct 1 12.0.0.0 11.0.0.2 1 13.0.0.0 Direct 3 14.0.0.0 13.0.0.2 3 15.0.0.0 10.0.0.2 2 16.0.0.0 10.0.0.2 2

Bảng dẫn đường trên gateway 8

 Dẫn đường gián tiếp (indirect routing): Khi trạm đích không cùng nằm trên một mạng với trạm gửi cần thông qua gateway để truyền đi. Trạm gửi Network 12.0.0.0 Network 15.0.0.0 15.0.0.1 Network 14.0.0.0 Gateway 5 Gateway 6 Gateway 7 Gateway 4 Gateway 8 Gateway 3 Gateway 2 Gateway 1 Network 13.0.0.0 Network 11.0.0.0 Network 10.0.0.0 Network 16.0.0.0 Port 3 23 Port1 Port 2 23 14.0.0.1 12.0.0.3 14.0.0.2 12.0.0.2 13.0.0.2 13.0.0.1 12.0.0.1 11.0.0.2 13.0.0.3 15.0.0.2 13.0.0.4 16.0.0.1 16.0.0.2 16.0.0.3 11.0.0.1 10.0.0.1 10.0.0.2

phải đóng gói thông tin và gửi tới một gateway để chuyển tới đích. Dẫn đường gián tiếp chỉ sử dụng net id trong địa chỉ IP.

Dữ liệu sẽ chuyển từ gateway này tới gateway khác đến khi nó có thể được truyền trực tiếp tới máy nhận. Thuật toán dẫn đường thường sử dụng bảng dẫn đường (Internet routing table - IP routing table) trên mỗi máy tính để chứa thông tin về các máy tính và cách đi đến chúng. Vì việc dẫn đường được thực hiện bởi cả host và gateway, mỗi thiết bị đều chứa một bảng dẫn đường. Bảng dẫn đường chứa thông tin về các mạng và gateway để kết nối đến đó.

Người ta sử dụng một kỹ thuật để che dấu thông tin và giảm thiểu kích thước của bảng dẫn đường là sử dụng kỹ thuật dùng gateway ngầm định (default gateway). Nếu máy tính không tìm thấy địa chỉ đích trong bảng dẫn đường của nó thì gói tin được chuyển tới một thiết bị là default gateway. Kỹ thuật này đặc biệt thích hợp với trường hợp mạng máy tính được nối vào Internet thông qua một máy tính duy nhất.

Thuật toán dẫn đường cụ thể cài đặt cho TCP/IP

Mỗi nút mạng có một cơ sở dữ liệu mô tả trạng thái tổng thể của mạng (topo, độ trễ truyền dẫn..) gọi là bảng dẫn đường. Các thông tin này dùng cho việc tính tính các con đường tối ưu để chuyển các gói tin đến đích. Chúng được cập nhật thường xuyên sau một khoảng thời gian nào đó hoặc cập nhật mỗi khi có một thay đổi xảy ra.

(Một số thuật toán sử dụng cho việc tìm đường đi tối ưu được trình bày trong phần phụ lục B)

Khi có một gói thông tin đến một máy tính hay gateway, thuật toán dẫn đường chạy trên máy tính đó sẽ phân tích địa chỉ đích của gói thông tin và quyết định truyền nó theo đường tốt nhất tới đích (dựa vào thông tin trong bảng dẫn đường). Việc này bao gồm cả cởi gói, chọn đường, cập nhật bảng dẫn đường, đóng gói ...

Tách địa chỉ mạng đích (IN) từ địa chỉ đích (ID) IN nối trực tiếp vào mạng ID là tên một máy tính trong bảng Có tồn tại default gateway IN là tên một mạng trong bảng - + - - - + + +

Chuyển trực tiếp qua mạng

Chuyển theo thông tin trong bảng

Gửi thông báo lỗi Cập nhật bảng dẫn

đường

Kết thúc thuật toán dẫn đường Chuyển tới

Một phần của tài liệu Kiến trúc mạng căn bản potx (Trang 29 - 42)

Tải bản đầy đủ (PDF)

(101 trang)