Trong giao thức IP, việc nhận diện các máy được thơng qua các địa chỉ của máy.
Địa chỉ này nằm trong hệ thống đánh địa chỉđược dùng để quản lý các máy cũng như
việc truy xuất từng máy. Cĩ ba khái niệm địa chỉ:
• Địa chỉ logic (logical address): chính là IP address sử dụng 32 bit đểđánh địa chỉ các máy. Địa chỉ này do tổ chức IAB quản lý và mỗi địa chỉđược cấp duy nhất cho một máy.
• Địa chỉ cổng (port address): gán nhãn cho các dịch vụđồng thời.
• Địa chỉ vật lý (physical address): là địa chỉ phần cứng của một node nằm trong mạng (ví dụ Ethernet là 48 bit). Địa chỉ này là duy nhất trong một mạng LAN hay WAN.
Hệ thống đánh địa chỉ dùng để định danh duy nhất cho tất cả các máy. Mỗi máy
được gán một địa chỉ số nguyên 32 bit duy nhất và địa chỉ này cũng chỉ được dành riêng cho máy đĩ. Máy sử dụng địa chỉ này trong tất cả các mối liên lạc của nĩ.
32 bit địa chỉ này được phân thành các lớp như sau: Lớp A Lớp B Lớp C Lớp D Lớp E
Hình 3.1: Mơ hình phân lớp địa chỉ IP.
• Lớp A: cho phép định danh 27 – 2 mạng và tối đa 224 – 2 host trên mỗi mạng. Lớp này dùng cho các mạng cĩ số trạm cực lớn.
• Lớp B: cho phép định danh tới 16384 mạng với tối đa 65534 host trên mỗi mạng.
• Lớp C: cho phép định danh 221 – 2 mạng với tối đa 254 host trên mỗi mạng.
• Lớp D: WDM dùng để gửi datagram tới một nhĩm các host trên một mạng.
• Lớp E: dự phịng để dùng cho tương lai.
Mỗi địa chỉ IP là một cặp net ID và host ID với net ID xác định một mạng và host ID xác định một máy trên mạng đĩ. Một địa chỉ IP cĩ host ID = 0 dùng để hướng tới mạng định danh bởi vùng net ID. Ngược lại, một địa chỉ cĩ vùng host ID gồm tồn số 1 được dùng để hướng tới tất cả các host nối vào mạng được định danh net ID, và
Net ID Host ID
1 0 Net ID Host ID
1 1 0 Net ID Host ID
1 1 1 0 Địa chỉ Multicast
nếu vùng net ID cũng gồm tồn số 1 thì nĩ hướng tới tất cả các host trên tất cả các mạng.
Địa chỉ IP cĩ độ dài 32 bit thường được chia thành 4 vùng (mỗi vùng một byte) và biểu diễn dưới dạng ký hiệu thập phân cĩ dấu chấm ngăn cách giữa các vùng. Nhìn vào các giá trị thập phân cĩ thể biết được máy tính đĩ cĩ địa chỉ lớp nào (A, B, C, D hay E) như bảng 3.1.
Địa chỉ logic giúp đơn giản hố việc quản lý và cấp phát địa chỉ. Nhưng các máy chỉ cĩ thể liên lạc được với nhau khi biết địa chỉ phần cứng của nhau. Vì vậy, giao thức ARP được sử dụng để ánh xạ địa chỉ IP thành địa chỉ vật lý khi gửi các gĩi qua mạng. Đồng thời, máy cũng phải xác định được địa chỉ IP của nĩ ngay sau khi khởi
động nhờ giao thức RARP.
Bảng 3.1: Miền giá trị của từng lớp địa chỉ. 3.1.2. Các kiểu địa chỉ phân phối gĩi tin
Cĩ ba kiểu địa chỉđược dùng để phân phối gĩi tin:
♦ Unicast: datagram đến một máy xác định vì thế nĩ cĩ đầy đủ cả net ID và host ID ởđịa chỉđích.
♦Broadcast: cĩ hai dạng:
− Direct broadcast address: dùng để một router gửi datagram đến tất cả các máy thuộc mạng được xác định theo địa chỉ cĩ net ID và host ID bằng 1.
− Limited broadcast address: dùng để một máy trên mạng gửi datagram đến tất cả các máy thuộc mạng đĩ nên phần địa chỉđích cĩ host ID bằng 0.
♦ Multicast: dùng địa chỉ lớp D để phát datagram đến một nhĩm các máy tính xác định. Các máy này cĩ thể cùng một mạng hoặc thuộc các mạng khác nhau.
Lớp Địa chỉ chỏ nhất Địa chỉ lớn nhất Lớp A 0.0.0.0 127.255.255.255 Lớp B 128.0.0.0 191.255.255.255 Lớp C 192.0.0.0 223.255.255.255 Lớp D 224.0.0.0 239.255.255.255 Lớp E 240.0.0.0 255.255.255.255
3.1.3. Mobile IP
Một nhược điểm của địa chỉ IP là nĩ cịn mang thơng tin mạng (phần net ID) nên
địa chỉ tham chiếu đến các liên kết chứ khơng phải là các máy tính. Vì thế, khi máy tính di chuyển từ mạng này sang mạng khác thì địa chỉ IP của nĩ cũng thay đổi theo.
Để một máy xách tay cĩ thể kết nối Internet và cĩ thể di chuyển từ mạng này sang mạng khác mà khơng thay đổi địa chỉ IP người ta đưa ra khái niệm mobile IP. Trong đĩ, một máy tính được cung cấp đồng thời hai địa chỉ. Địa chỉđầu cĩ thể coi là
địa chỉ cơ bản của máy cĩ liên quan đến mạng gốc của máy, là cốđịnh và thường trực.
Địa chỉ thứ hai được xem như là địa chỉ phụ, là tạm thời – nĩ thay đổi khi máy tính di dời sang mạng khác và chỉ hợp lệ khi máy tính đang nối vào một mạng nào đĩ. Khi máy tính di chuyển tới một mạng mới thì nĩ phải lấy được địa chỉ tạm thời và gửi địa chỉ này về một “đại lý” đặt tại trạm gốc. Khi đĩ, hoạt động của máy tính trên mạng như sau: nĩ tạo các datagram gửi đến một máy tính thì địa chỉđích là địa chỉ của máy cần gửi và địa chỉ nguồn là địa chỉ gốc của nĩ. Khi cĩ máy khác cần gửi dữ liệu đến nĩ thì khơng thể gửi trực tiếp đến mà phải gửi đến bộ định tuyến cĩ chức năng “đại lý” gốc kết nối vào mạng gốc. Đại lý gốc sẽ kiểm tra bảng của nĩ về các máy tính động để
xác định xem máy tính động đang ở mạng gốc hay ở mạng nào rồi sẽ chuyển dữ liệu và ở nguyên một vị trí mới nào đĩ trong thời gian tương đối dài, đặc biệt khi đang truy nhập mạng và trao đổi dữ liệu (khác với điện thoại di động là cĩ thể di chuyển liên tục).
3.1.4. Địa chỉ mạng con (subnet)
Trong mơ hình phân lớp địa chỉ IP ở trên thì mỗi mạng vật lý được gán địa chỉ
mạng duy nhất, và mỗi máy tính trên mạng đĩ sẽ cĩ phần tiền tố địa chỉ chính là địa chỉ mạng đĩ.
Ưu điểm chính của việc chia địa chỉ IP thành hai phần là làm cho kích thước của bảng định tuyến giảm. Đĩ là nhờ thay vì lưu trữ tất cả đường đi đến từng máy, mỗi
đường một dịng, bảng định tuyến cĩ thể lưu trữ một dịng cho mỗi mạng và chỉ kiểm tra phần mạng của địa chỉ đích khi thực hiện các quyết định định tuyến. Phần địa chỉ
host chỉđược kiểm tra khi đã xác định được datagram này cĩ đích là mạng.
Với sự phát triển của mạng Internet trên tồn cầu, số lượng máy tính cũng tăng lên nhanh chĩng nên kích thước bảng định tuyến là rất lớn. Ngồi ra, mơ hình địa chỉ
ban đầu khơng dung nạp được tất cả các mạng hiện cĩ trên Internet. Đặc biệt là địa chỉ
lớp B. Yêu cầu đặt ra là phải mở rộng địa chỉ lớp B. Cĩ nhiều cách khác nhau như
rộng rãi trên mạng Internet hơn cả là kỹ thuật đánh địa chỉ mạng con. Lúc này, thay cho địa chỉ IP chỉ gồm cĩ hai phần net ID và host ID thì phần host ID lại được chia thành subnet ID và host ID. Ví dụ, địa chỉ lớp B cĩ 16 bit host ID được chia thành 8 bit subnet ID và 8 bit host ID.
0 15 16 23 24 31
1 0 Net ID Subnet ID Host ID
Hình 3.2: Địa chỉ mạng con của địa chỉ lớp B.
Khơng cĩ quy định nào về việc sử dụng bao nhiêu bit cho subnet ID. Vì thế, phần subnet ID thường cĩ độ dài biến đổi tuỳ thuộc vào yêu cầu sử dụng của từng tổ chức. Vì vậy, ngồi địa chỉ IP, một host cịn phải biết được cĩ bao nhiêu bit sử dụng cho subnet ID và bao nhiêu cho host ID. Để giải quyết vấn đề này người ta sử dụng mặt nạ
mạng con (subnet mask).
Subnet mask là một dãy 32 bit bao gồm các bit 1 chỉ phần net ID và subnet ID, các bit 0 chỉ phần host ID. Subnet mask thường được biểu diễn dưới dạng cơ số 16. Ví dụ, một máy cĩ địa chỉ lớp B cĩ subnet mask là 0xFFFFFFC0 = 1111 1111 1111 1111 1111 1111 1100 0000 0000 thì nĩ cĩ 16 bit net ID, 10 bit subnet ID và 6 bit host ID.
3.1.5. Cấu trúc tổng quan của một IP datagram trong IPv4
Hình 3.3 là cấu trúc của một datagram trong phiên bản IPv4. Việc xử lý datagram xảy ra trong phần mềm, nội dung và định dạng của nĩ khơng bị ràng buộc bởi bất kỳ
phần cứng nào. Vì vậy, nĩ đáp ứng được yêu cầu của mạng Internet là hồn tồn độc lập với các chi tiết cấp thấp.
Hình 3.3: Định dạng datagram của IPv4.
0 3 7 15 18 23 31
Ver HL TOS Total Length
Identification Flags Fragment Offset
TTL Protocol Header Checksum
Source IP Address Destination IP Address
Options (nếu cần) Padding (nếu cần) Data
Ý nghĩa của các trường như sau:
♠ Ver (4 bit): chứa giá trị của phiên bản giao thức IP đã dùng để tạo datagram. Nĩ đảm bảo cho máy gửi, máy nhận và các bộđịnh tuyến cùng thống nhất với nhau về định dạng gĩi datagram. Tất cả các phần mềm IP được yêu cầu kiểm tra vùng phiên bản trước khi xử lý datagram để đảm bảo nĩ phù hợp với định dạng mà phần mềm
đang sử dụng. Nếu chuẩn thay đổi, máy tính sẽ từ chối những datagram cĩ phiên bản khác để tránh hiểu sai nội dung của datagram.
Với IPv4 thì giá trị thường xảy ra là (0100).
♠ HL – Header Length (4 bit): cung cấp thơng tin về độ dài vùng tiêu đề của datagram, được tính theo các từ 32 bit. Ta nhận thấy, tất cả các trường trong tiêu đề cĩ
độ dài cố định trừ hai trường hợp Options và Padding tương ứng. Phần tiêu đề thơng thường nhất, khơng cĩ Options và Padding, dài 20 octet và giá trị trường độ dài sẽ
bằng 5.
♠ TOS – Type of Service (8 bit): xác định cách các datagram được xử lý nhờ
vùng Identification của datagram đĩ.
0 2 3 4 5 6 7 Precedence D T R 0 0
Hình 3.4: Trường TOS.
+ Precedence (3 bit): xác định độ ưu tiên của datagram, cho phép nơi gửi xác
định độ quan trọng của mỗi datagram. Nĩ cung cấp cơ chế cho phép điều khiển thơng tin, nghĩa là khi mạng cĩ hiện tượng tắc nghẽn hay quá tải xảy ra thì những datagram cĩ độ ưu tiên cao sẽ được ưu tiên phục vụ. 000 là độ ưu tiên thấp nhất, 111 là độ ưu tiên mức điều khiển mạng.
+ D – Delay (1 bit): D = 0 độ trễ thơng thường. D = 1 độ trễ thấp.
+ T – Throughput (1 bit): T = 0 lưu lượng thơng thường. T = 1 lưu lượng cao.
+ R – Reliability (1 bit): R = 0 độ tin cậy thơng thường. R = 1 độ tin cậy cao.
+ Hai bit cuối cùng dùng để dự trữ, chưa sử dụng.
Các phần mềm TCP/IP hiện nay thường khơng cung cấp tính năng TOS mà tính năng này lại được tạo bởi các hệ thống mới như 4.3BSD. Các giao thức định tuyến mới như OSPF và IS – IS sẽ đưa ra các quyết định định tuyến dựa trên cơ sở trường này.
♠ Total Length (16 bit): cho biết độ dài của IP datagram tính theo octet bao gồm cả phần tiêu đề và phần dữ liệu. Kích thước của trường dữ liệu được tính bằng cách lấy Total Length trừđi HL. Trường này cĩ 16 bit nên cho phép độ dài của datagram cĩ thể
lên đến 65535 octet. Tuy nhiên, các tầng liên kết sẽ phân mảnh chúng vì hầu hết các host chỉ cĩ thể làm việc với các datagram cĩ độ dài tối đa là 576 byte.
♠ Identification (16 bit): chứa một số nguyên duy nhất xác định datagram do máy gửi gán cho datagram đĩ. Giá trị này hỗ trợ trong việc ghép nối các fragment của một datagram. Khi một bộđịnh tuyến phân đoạn một datagram, nĩ sẽ sao chép hầu hết các vùng tiêu đề của datagram vào mỗi fragment trong đĩ cĩ cả Identification. Nhờ đĩ, máy đích sẽ biết được fragment đến thuộc vào datagram nào. Để thực hiện gán giá trị
trường Identification, một kỹ thuật được sử dụng trong phần mềm IP là lưu giữ một bộ đếm trong bộ nhớ, tăng nĩ lên mỗi khi cĩ một datagram mới được tạo ra và gán kết quả cho vùng Identification của datagram đĩ.
♠ Flags (3 bit): tạo các cờđiều khiển khác nhau.
Hình 3.5: Trường Flags.
Bit 0: dự trữ, được gán giá trị 0.
Bit 1: DF → DF = 0: cĩ thể phân mảnh. → DF = 1: khơng phân mảnh. Bit 2: MF → MF = 0: fragment cuối cùng. → MF = 1: vẫn cịn fragment.
DF là bit khơng phân mảnh vì khi DF = 1 thì khơng cĩ nghĩa rằng khơng nên phân mảnh datagram. Bất cứ khi nào một bộđịnh tuyến cần phân mảnh một datagram mà khơng cĩ bit phân mảnh độc lập, bộ định tuyến sẽ huỷ bỏ datagram và gửi thơng báo lỗi trở về nơi xuất phát.
MF gọi là bit vẫn cịn fragment. Để hiểu vì sao chúng ta cần đến bit này, xét phần mềm IP tại đích cuối cùng đang cố gắng kết hợp lại một datagram. Nĩ sẽ nhận các fragment (cĩ thể khơng theo thứ tự) và cần biết khi nào nhận được tất cả fragment của một datagram. Khi một fragment đến, trường Total Length trong tiêu đề là để chỉ độ
dài của fragment chứ khơng phải là độ dài của datagram ban đầu nên máy đích khơng thể dùng trường Total Length để biết nĩ đã nhận đủ các fragment hay chưa. Bit MF sẽ
phải giải quyết vấn đề này: khi máy đích nhận được fragment với MF = 0 nĩ biết rằng fragment chuyển tải dữ liệu thuộc phần cuối cùng của datagram ban đầu. Từ các
trường Fragment Offset và Total Length, nĩ cĩ thể tính độ dài của datagram ban đầu. Và bằng cách kiểm tra hai trường này của tất cả các fragment đến, máy nhận sẽ biết
được các fragment đã nhận được đủđể kết hợp lại thành datagram ban đầu hay chưa.
♠ Fragment Offset (13 bit): trường này chỉ vị trí fragment trong datagram. Nĩ tính theo đơn vị 8 octet một (64 bit). Như vậy, độ dài của các Fragment phải là bội số
của 8 octet trừ Fragment cuối cùng. Fragment đầu tiên cĩ trường này bằng 0.
♠ TTL - Time to Live (8 bit): trường này xác định thời gian tối đa mà datagram
được tồn tại trong mạng tính theo đơn vị thời gian là giây. Tại bất cứ một router nào nĩ
đều giảm 1 đơn vị khi xử lý tiêu đề datagram và cả thời gian mà datagram phải lưu lại trong router (đặc biệt khi router bị quá tải), ngồi ra tính cả thời gian router truyền trên mạng. Khi giá trị này bằng 0 thì datagram sẽ bị huỷ. Vì vậy, giá trị này phải đảm bảo
đủ lớn để datagram cĩ thể truyền được từ nguồn tới đích. Để thực hiện điều này trước khi truyền các datagram từ nguồn tới đích sẽ cĩ một loại bản tin ICMP được phát đi để
xác định thời gian tối thiểu. Và trong khi truyền các datagram nếu thiếu thời gian thì cũng cĩ một bản tin ICMP quay lại nguồn để thơng báo tăng thêm thời gian cho các datagram truyền sau đĩ. Đây là một trường quan trọng vì nĩ sẽ đảm bảo các IP datagram khơng bị quẩn trong mạng.
Cơng nghệ hiện nay gán giá trị cho trường Time to Live là số router lớn nhất mà các datagram phải truyền qua khi đi từ nguồn tới đích. Mỗi khi datagram đi qua một router thì giá trị của trường này sẽ giảm đi 1. Và khi giá trị của trường này bằng 0 thì datagram bị huỷ.
♠ Protocol (8 bit): giá trị trường này xác định giao thức cấp cao nào (TCP, UDP hay ICMP) được sử dụng để tạo thơng điệp để truyền tải trong phần data của IP datagram. Về thực chất, giá trị của trường này đặc tảđịnh dạng của trường Data.
♠ Header Checksum (16 bit): trường này chỉ dùng để kiểm sốt lỗi cho tiêu đề IP datagram. Trong quá trình truyền, tại các router sẽ xử lý tiêu đề nên cĩ một số trường bị thay đổi (như Time to Live) vì thế nĩ sẽ kiểm tra và tính tốn lại tại mỗi điểm này.
Thuật tốn tính tốn như sau: Đầu tiên, giá trị của trường này được gán bằng 0.