Chỉ mã số của 1 IP datagram , giúp bên nhận có thể ghép các mảnh của 1IP datagram lại với nhau vì IP datagram phân thành các mảnh và các mảnhthuộc cùng 1 IP datagram sẽ có cùng Identific
Trang 12. Không gian địa chỉ
Do IPv4 chỉ dùng 32 bits để đánh địa chỉ nên không gian địa chỉ IPv4 chỉ có khoảng
2-32 địa chỉ Với sự phát triển mạnh mẽ của Internet hiện nay, tài nguyên địa chỉ IPv4 đã gầncạn kiệt Địa chỉ IP được chia ra thành 5 lớp A, B, C, D, E Hiện tại đã dùng hết lớp A, B vàgần hết lớp C, còn lớp D và E tổ chức Internet thế giới đang để dành cho mục đích khác vàkhông được phân chia Vì vậy, chỉ 3 lớp đầu tiên là A, B, C sẽ được sử dụng để nghiên cứu
và sử dụng
Hình 1 Các lớp địa chỉ IPv4
3. Cấu trúc địa chỉ IPv4
Ipv4 gồm 32 bit nhị phân, chia thành 4 cụm 8 bit (gọi là các octet) Các octet được biểu diễn dưới dạng thập phân và được ngăn cách nhau bằng các dấu chấm Địa chỉ Ipv4 được chia thành hai phần: phần mạng (network) và phần host
Trang 2Hình 2: cấu trúc địa chỉ IPv4
4. Cấu trúc Header IPv4
Một header của IPv4 có độ dài 20 byte bao gồm các thành phần:
- Version(4 bit ): chỉ ra phiên bản của trình nghi thức IP đang được dùng là Ipv4 (0100)hoặc Ipv6 (0110) Nếu trường này khác với phiên bản IP của thiết bị nhận, thiết bị nhận
sẽ từ chối và loại bỏ các gói tin này
- IP Header Length (HLEN) (4 bit): – Chỉ ra chiều dài của header , mỗi đơn vị là 1 word ,mỗi word = 32 bit = 4 byte Ở đây trường Header Length có 4 bit => 2^4 = 16 word = 16
x 4byte = 64 byte è chiều dài header tối đa là 64 byte Bình thường Hearder dài 20 byte Đây là chiều dài của tất cảc các thông tin Header Trường này cũng giúp ta xác định byteđầu tiên của Data nằm ở đâu trong gói tin IP datagram
- Type Of Services (TOS)(8 bit) : Chỉ ra cách thức xử lý data như thế nào, có độ ưu tiênhay không, độ trễ cho phép xử lý gói dữ liệu Trường này thường được dùng cho QoS là
1 chức năng dành 1 lượng băng thông để cho để cho 1 dịch vụ nào đó hoạt động ví dụ nhưdịch vụ truyền thoại , video …
- Total Length : Chỉ ra chiều dài của toàn bộ gói tính theo byte, bao gồm dữ liệu vàheader,có 16 bit 16 bit à tối đa là 2^16 = 65536 bye = 64 Kb è chiều dài tối đa của 1 IPdatagram là 64 Kb
Trang 3Hình 3: cấu trúc header IPv4
- Identification :có 16 bit Chỉ mã số của 1 IP datagram , giúp bên nhận có thể ghép các
mảnh của 1IP datagram lại với nhau vì IP datagram phân thành các mảnh và các mảnhthuộc cùng 1 IP datagram sẽ có cùng Identification
- Flag :Một field có 3 bit, trong đó:
Bit 0 : không dùng
Bit 1 : cho biết gói có phân mảnh hay không
Bit 2 : Nếu gói IP datagram bị phân mảnh thì mảnh này cho biết mảnh này có phải làmảnh cuối không
- Fragment Offset - có 13 bit Báo bên nhận vị trí offset của các mảnh so với gói IPdatagram gốc để có thể ghép lại thành IP datagram gốc
- Time To Live (TTL) – Chỉ ra số bước nhảy (hop) mà một gói có thể đi qua.Con số này sẽgiảm đi 1 , khi gói tin đi qua 1 router Khi router nào nhận gói tin thấy TTL đạt tới 0 góinày sẽ bị loại Đây là giải pháp nhằm ngăn chặn tình trạng lặp vòng vô hạn của gói tin
Trang 4- Protocol( 8 bit) : Chỉ ra giao thức nào của tầng trên (tầng Transport) sẽ nhận phần data sau
khi công đoạn xử lí IP diagram ở tầng Network hoàn tất hoặc chỉ ra giao thức nào củatầng trên gởi segment xuống cho tầng Network đóng gói thành IP Diagram , mỗi giaothức có 1 mã
- Header CheckSum – có 16 bit Giúp bảo đảm sự toàn vẹn của IP Header,
- Source Address (32 bit) : Chỉ ra địa chỉ của thiết bị truyền IP diagram
- Destination Address(32 bit ) : Chỉ ra địa chỉ IP của thiệt bị sẽ nhận IP diagram
- IP Option : kích thước không cố định , chứa các thông tin tùy chọn như :
- Time stamp : thời điểm đã đi qua router.
- Security : cho phép router nhận gói dữ liệu không , nếu không thì gói sẽ bị hủy
- Record router : lưu danh sách địa chỉ IP của router mà gói phải đi qua,
- Source route : bắt buộc đi qua router nào đó Lúc này sẽ không cần dùng bảng định tuyến
ở mỗi Router nữa
- Padding – Các số 0 được bổ sung vào field này để đảm bảo IP Header luôn là bội số của
32 bit
- Data - Chứa thông tin lớp trên, chiều dài thay đổi đến 64Kb Là TCP hay UDP Segmentcủa tầng Transport gửi xuống cho tần Network , tầng Network sẽ thêm header vào à Góitin IP datagram
5. Các quy tắc đặt địa chỉ IPv4
Các bit phần mạng không được phép đồng thời bằng 0
VD: địa chỉ 0.0.0.1với phần mạng là 0.0.0 và phần host là 1 là không hợp lệ
Nếu các bit phần host đồng thời bằng 0, ta có một địa chỉ mạng
VD: địa chỉ 192.168.1.1 là một địa chỉ có thể gán cho host nhưng địa chỉ 192.168.1.0 là
một địa chỉ mạng, không thể gán cho host được
Nếu các bit phần host đồng thời bằng 1, ta có một địa chỉ quảng bá (broadcast)
VD: địa chỉ 192.168.1.255 là một địa chỉ broadcast cho mạng 192.168.1.0
6. Một số hạn chế của địa chỉ IPv4
Giao thức tầng mạng trong bộ giao thức TCP/IP hiện tại đang là IPv4 working protocol verision 4) IPv4 cung cấp truyền thông host-to-host giữa những hệthống trên Internet Mặc dù IPv4 được thiết kế khá tốt, sự thông đại thông tin đã tiếntriển từ lúc khởi đầu IPv4 vào những năm 1970, nhưng IPv4 có những sự thiếu hụt
Trang 5(Internet-khiến cho nó không đồng bộ cho sự phát triển nhanh của Internet, gồm những thứsau:
IPv4 có 2 level cấu trúc địa chỉ (netid và hostid) phân nhóm vào 5 lớp (A, B, C, D vàE) Sự sử dụng những ô địa chỉ là không hiệu quả Ví dụ như khi có một tổ chức đượccấp cho 1 địa chỉ lớp A, 16 triệu địa chỉ từ ô địa chỉ được phân phối duy nhất cho tổchức sử dụng Nếu 1 tổ chức được cấp cho 1 địa chỉ lớp C, mặt khác chỉ có 256 địachỉ được phân phối cho tổ chức, đây không phải là một số đủ Cũng vậy, nhiều triệuđịa chỉ bị lãng phí trong nhóm D và E Phương thức phân địa chỉ này đã dùng hếtnhững ô địa chỉ của IPv4, và mau chóng sẽ không còn địa chỉ nào còn để cấp cho bất
kỳ một hệ thống mới nào muốn kết nối vào Internet Mặc dù sách lược subnet vàsupernet đã giảm bớt những vấn đề về địa chỉ, nhưng subnet và suprnet đã làm chođường truyền trở lên khó khăn hơn
Internet phải thích nghi được với sự chuyển giao audio và video thời gian thực Loạichuyển giao này yêu cầu những sách lược trì hoãn ít nhất và sự đặt trước của tàinguyên không được cung cấp trong thiết kế
Internet phải thích nghi được với sự mã hoá và sự chứng nhận của dữ liệu cho một sốứng dụng Không một sự mã hoá và sự chứng nhận nào được cung cấp trong IPv4
Để khắc phục thiếu sót trên IPv6 được biết đến như là IPng (Internet workingProtocol, next generation), được đề xướng và nay là một chuẩn
II. Tổng quan về IPv6
1 Cấu trúc địa chỉ IPv6
Địa chỉ IPv6 gồm có 16 byte, tức 128 bit độ dài 128 bit được chia thành 8 phần, mỗi phần rộng 2 byte 2 byte trong hệ đếm thập lục phân yêu cầu phải gồm 4 kí tự trong hệ đếm
đó Vì thế cho nên địa chỉ có 32 chữ số trong hệ đếm 16 mỗi phần gồm 4 kí tự mã thập lục
phân được phân cách nhau bằng dấu “:”.
Trang 6Hình 4: cấu trúc địa chỉ IPv6
7. Không gian địa chỉ
Không gian địa chỉ có độ dài lớn hơn IPv4 ( 128 bit so với 32 bit) do đó cung cấpkhông gian địa chỉ lớn hơn rất nhiều Trong khi không gian địa chỉ 32 bit của IPv4 chỉ có
232 ~ 4,3 tỷ địa chỉ, thì IPv6 có tới 2128 ~ 3,4*1038 địa chỉ IP Gấp 296 lần so với địa chỉIPv4 Với số địa chỉ của IPv6 có khoảng 6.5*10 địa chỉ trên mỗi mét vuông bề mặt trái
đất Địa chỉ IPv6 128 bit được chia thành các miền phân cấp theo trật tự trên Internet Nótạo ra nhiều mức phân cấp và linh hoạt trong địa chỉ hoá và định tuyến hiện không cótrong IPv4
Không gian địa chỉ có nhiều mục đích khác nhau Người ta thiết kế địa chỉ IP đã chiakhông gian địa chỉ thành 2 phần, với phần đầu được gọi là kiểu tiền tố Phần giá trị tiền tốnày cho biết mục đích của địa chỉ Những mã số được thiết kế sao cho không có mã sốnào giống phần đầu của bất kỳ mã số nào khác Do đó không có sự nhập nhằng khi mộtđịa chỉ được trao kiểu tiền tố có thể dễ dàng xác định được Hình 5 cho chúng ta thấydạng của địa chỉ IPv6:
Trang 7Hình 5 : Cấu trúc địa chỉ ( Address Structure)
Không gian IPv6 được chia trên cơ sở các bit đầu trong địa chỉ Trường có độ dài thayđổi bao gồm các bit đầu tiên trong địa chỉ gọi là Tiền tố định dạng ( Format Prefix) FP Cơchế phân bổ địa chỉ như sau:
Phân bố Tiền tồ định dạng Tỷ lệ trong không
gian địa chỉ
Trang 88. Các quy tắc biểu diễn
128 bit của IPv6, được chia ra làm 8 octet, mỗi Octet chiếm 2 byte , gồm 4 số được viếtdưới hệ cơ số Hexa, và mỗi nhóm được ngăn cách nhau bằng dấu hai chấm
IPv6 là 1 địa chỉ mới nên chúng ta không xài hết 128 bit, vì vậy sẽ có nhiều số 0 ở các bitđầu nên ta có thể viết rút gọn để lược bỏ số 0 này
Ví dụ địa chỉ: 1088:0000:0000:0000:0008:0600:220C:400A
Ta có thể viết 0 thay vì phải viết là 0000, viết 8 thay vì phải viết 008, viết 600 thay vì phảiviết 0600
Địa chỉ đã được rút gọn: 1088:0:0:0:8:600:220C:400A
IPv6 còn có một nguyên tắc nữa là chúng ta có thể nhóm các số 0 lại thành 2 dấu chấm
“::”, địa chỉ ở trên chúng ta có thể viết lại như sau: 1088::8:600:220C:400A
Ví dụ : Giả sử chúng ta có địa chỉ 0:0:0:AB65:8952:0:0:0, bây giờ yêu cầu bạn đơn giản hóa địa chỉ này lại, có 3 đáp án cho bạn lựa chọn:
0:0:AB65:8952:0:0:0:0 hoặc 0:0:0:0:AB65:8952:0:0 , …
Qua các ví dụ trên, ta rút ra được 3 nguyên tắc:
Trong dãy địa chỉ IPv6, nếu có số 0 đứng đầu có thể loại bỏ Ví dụ 0600 sẽ được viếtthành 600, hoặc 0008 sẽ được viết thành 8
Trong dãy địa chỉ IPv6, nếu có các nhóm số 0 liên tiếp, có thể đơn giản các nhóm nàybằng 2 dấu :: (chỉ áp dụng khi dãy 0 liên tiếp nhau)
Trong IPv6, chúng ta chỉ có thể sử dụng 2 dấu hai chấm một lần với địa chỉ Khôngđược viết ::AB65:8952::, vì nếu viết như thế sẽ gây nhầm lẫn khi dịch ra đầy đủ
Trang 99. Header IPv6
4.1 Cấu trúc Header IPv6
Hình 6: cấu trúc header IPv6
Các trường có trong Header IPv6:
− Version : Trường chứa 4 bit 0110 ứng với số 6, tức tên phiên bản của IP(IPv6).
− Trafic class : Trường 8 bit tương ứng với trường Type of service(Tos) trong IPv4.
Trường này được sử dụng để biểu diễn mức ưu tiên của gói tin: truyền tốc độnhanh hay tốc độ bình thường, cho phép thiết bị có thể xử lý gói tin một cáchtương ứng
− Flow label: Trường hoàn toàn mới trong IPv6,có độ dài 20 bit Trường này dùng
biểu diễn luồng cho gói tin và được sử dụng trong các kỹ thuật chuyển đa lớp( multilayer switching ), nhờ đó các gói tin được chuyển mạch nhanh hơn trước.bằng cách sử dụng trường này, nơi gửi gói tin hoặc thiết bị hiện thời có thể xácđịnh một chuỗi các gói tin Trường Flow label trong IPv6 cố gắng đặt tất cả nhữngthông tin cần thiết cùng nhau và cung cấp chúng tại IP
− Payload Length : Gồm 16 bit Trường này sẽ xác định xem extension header có
tồn tại thông tin không, nếu có sẽ được theo sau bởi header của tầng cao hơn, tức làheader của TCP hoặc UDP, và trường Next Header chỉ tạo ra loại Header nào sẽtheo sau
− Hop Limit : 8 bit có chức năng chỉ ra số hop tối đa mà gói tin IP được đi qua Qua
mỗi hop hay router giá trị của trường giảm đi 1
− Source Address: trường gồm 16 octet/( hay 128 bit), định danh địa chỉ nguồn của
gói tin
− Destination Address : trường này gồm 16 octet(128 bit) dùng để định danh địa chỉ
đích của gói tin
Trang 104.2 Chức năng của Header mở rộng
Header mở rộng (extension header) là đặc tính mới trong thế hệ địa chỉ IPv6.TrongIPv4, thông tin liên quan đến những dịch vụ thêm vào được cung cấp tại tầng IP được hợpnhất trong trường Options của header Vì vậy, chiều dài header thay đổi tuỳ theo tìnhtrạng
Khác thế, địa chỉ IPv6 phân biệt rõ ràng giữa header mở rộng và header cơ bản, vàđặt phần header mở rộng sau phần header cơ bản Header cơ bản có chiều dài cố định 40byte, mọi gói tin IPv6 đều có header này Header mở rộng là tuỳ chọn Nó sẽ không đượcgắn thêm vào nếu các dịch vụ thêm vào không được sử dụng Các thiết bị xử lý gói tin (ví
dụ router), cần phải xử lý header cơ bản trước, song ngoại trừ một số trường hợp đặc biệt,chúng không phải xử lý header mở rộng Router có thể xử lý gói tin hiệu quả hơn vìchúng biết chỉ cần nhìn vào phần header cơ bản với chiều dài như nhau.Header mở rộngđược chia thành nhiều loại tuỳ thuộc vào dạng và chức năng chúng phục vụ Khi nhiềudịch vụ thêm vào được sử dụng, phần header mở rộng tương ứng với từng loại dịch vụkhác nhau được đặt tiếp nối theo nhau
Trong cấu trúc header IPv6, có thể thấy 8 bít của trường Next Header Trường này
sẽ xác định xem extension header có tồn tại hay không, khi mà header mở rộng khôngđược sử dụng, header cơ bản chứa mọi thông tin tầng IP Nó sẽ được theo sau bởi headercủa tầng cao hơn, tức hoặc là header của TCP hay UDP, và trường Next Header chỉ ra loạiheader sẽ theo sau
Hình 7: cấu trúc của header mở rộng
Mỗi header mở rộng (extension header) cũng chứa trường Next Header và xác địnhheader mở rộng nào sẽ theo sau nó Node đầu cuối khi nhận được gói tin chức extensionheader sẽ xử lý các extension header này theo thứ tự được sắp xếp của chúng
Dạng của extension header:Có 6 loại của extension header: Hop-by-Hop Option,
Destination Option, Routing, Fragment, Authentication, and ESP (Encapsulating Security Payload) Khi sử dụng cùng lúc nhiều extension header, thường có một khuyến nghị là đặtchúng theo thứ tự như thế này
- Hop-by-Hop Option:Phía trên có đề cập là thông thường, chỉ có những node đầu cuối xử
lý các extension header Chỉ có một ngoại lệ của quy tắc này là header Hop-by-HopOption Header này, như tên gọi của nó, xác định một chu trình mà cần được thực hiệnmỗi lần gói tin đi qua một router
- Destination Option:Destination Option header được sử dụng để xác định chu trình cần
thiết phải xử lý bởi node đích Có thể xác định tại đây bất cứ chu trình nào Chúng tôi đã
Trang 11đề cập là thông thường chỉ có những node đích xử lý header mở rộng của IPv6 Như vậythì các header mở rộng khác ví dụ Fragment header có thể cũng được gọi là DestinationOption header Tuy nhiên, Destination Option header khác với các header khác ở chỗ nó
có thể xác định nhiều dạng xử lý khác nhau
- Routing:Routing header được sử dụng để xác định đường dẫn định tuyến Ví dụ, có thể
xác định nhà cung cấp dịch vụ nào sẽ được sử dụng, và sự thi hành bảo mật cho nhữngmục đích cụ thể Node nguồn sử dụng Routing header để liệt kê địa chỉ của các router màgói tin phải đi qua Các địa chỉ trong liệt kê này được sử dụng như địa chỉ đích của gói tinIPv6 theo thứ tự được liệt kê và gói tin sẽ được gửi từ router này đến router khác tươngứng
- Fragment:Fragment header được sử dụng khi nguồn gửi gói tin IPv6 gửi đi gói tin lớn
hơn Path MTU, để chỉ xem làm thế nào khôi phục lại được gói tin từ các phân mảnh của
nó MTU (Maximum Transmission Unit) là kích thước của gói tin lớn nhất có thể gửi quamột đường dẫn cụ thể nào đó Trong môi trường mạng như Internet, băng thông hẹp giữanguồn và đích gây ra vấn đề nghiêm trọng Cố gắng gửi một gói tin lớn qua một đườngdẫn hẹp sẽ làm quá tải Trong địa chỉ IPv4, mối router trên đường dẫn có thể tiến hànhphân mảnh (chia) gói tin theo giá trị của MTU đặt cho mỗi giao diện Tuy nhiên, chu trìnhnày áp đặt một gánh nặng lên router Bởi vậy trong địa chỉ IPv6, router không thực hiệnphân mảnh gói tin (các trường liên quan đến phân mảnh trong header IPv4 đều được bỏđi)
- Node nguồn IPv6 sẽ thực hiện thuật toán tìm kiếm Path MTU, để tìm băng thông hẹp nhất
trên toàn bộ một đường dẫn nhất định, và điều chỉnh kích thước gói tin tuỳ theo đó trướckhi gửi chúng Nếu ứng dụng tại nguồn áp dụng phương thức này, nó sẽ gửi dữ liệu kíchthước tối ưu, và sẽ không cần thiết xử lý tại tầng IP Tuy nhiên, nếu ứng dụng không sửdụng phương thức này, nó phải chia nhỏ gói tin có kích thướng lớn hơn MTU tìm thấybằng thuật toán Path MTU Discovery Trong trường hợp đó, những gói tin này phải đượcchia tại tầng IP của node nguồn và Fragment header được sử dụng
- Authentication and ESP:Ipsec là phương thức bảo mật bắt buộc được sử dụng tại tầng
IP Mọi node IPv6 phải thực thi Ipsec Tuy nhiên, thực thi và tận dụng lại là khác nhau, vàIpsec có thực sự được sử dụng trong giao tiếp hay không phụ thuộc vào thời gian và từngtrường hợp Khi Ipsec được sử dụng, Authentication header sẽ được sử dụng cho xác thực
và bảo mật tính đồng nhất của dữ liệu, ESP header sử dụng để xác định những thông tinliên quan đến mã hoá dữ liệu, được tổ hợp lại thành extension header Trong IPv4, khi có
sử dụng đến Ipsec, thông tin được đặt trong trường Options
IPv6 ứng dụng một hệ thống tách biệt các dịch vụ gia tăng khỏi các dịch vụ cơ bản vàđặt chúng trong header mở rộng (extension header), cao hơn nữa phân loại các header mởrộng theo chức năng của chúng Làm như vậy, sẽ giảm tải nhiều cho router, và thiết lậpnên được một hệ thống cho phép bổ sung một cách linh động các chức năng, kể cả cácchức năng hiện nay chưa thấy rõ ràng
10. Phân loại địa chỉ
Địa chỉ IPv6 được chia làm 3 loại chính sau đây: