TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
ĐỒ ÁN LẬP TRÌNH MẠNG
Đề tài:Xây dựng chương trình trao đổi thông tin
mạng dựa trên giao thức IPv6
Lớp
: 09T4
Cán bộ hướng dẫn : T.S Nguyễn Tấn Khôi
Đà Nẵng 2013
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Mục Lục
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT......................................................................8
1.1. GIỚI THIỆU ............................................................................................ 8
1.2. KHÁI QUÁT VỀ GIAO THỨC INTERNET.....................................................9
1.2.1. Giao thức TCP/IP.............................................................................9
1.2.2. Giao thức Internet(IP)....................................................................11
1.3. TỔNG QUAN VỀ GIAO THỨC MẠNG IPV6 VÀ MÔ HÌNH CLIENT -SEVER ......12
1.3.1. Giới thiệu về giao thức mạng IPv6.................................................12
1.3.2. Đặc tính của IPv6...........................................................................14
1.3.3. Cấu trúc địa chỉ của IPv6...............................................................14
1.3.4. Các loại IPv6..................................................................................15
1.3.5. Mô hình client-server.....................................................................19
1.Khái niệm:.......................................................................................19
2.Quá trình trao đổi dữ liệu của mô hình client-sever..........................19
CHƯƠNG 2. THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH ........................21
2.1. PHÂN TÍCH YÊU CẦU............................................................................21
2.2. PHÂN TÍCH CÁC CHỨC NĂNG................................................................21
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ .................................24
3.1. MÔI TRƯỜNG TRIỂN KHAI.....................................................................24
3.2. KẾT QUẢ CÁC CHỨC NĂNG CỦA CHƯƠNG TRÌNH ....................................24
3.3. ĐÁNH GIÁ VÀ NHẬN XÉT......................................................................24
2
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
DANH MỤC TỪ VIẾT TẮT
Từ
Viết tắt
Ý nghĩa
IPv6
Internet Protocol Version 6
Phiên bản giao thức internet
ATM
Asynchromous Transfer Mode
Chế độ trruyền không đồng bộ
CIDR
Classless Inter Domain Routing
Định tuyến liên vùng không phân lớp
DHCM
Dinamic Host Configuration
Protocol
Giao thức cấu hình hoạt đông
FR
Frame Replay
Chuyển tiếp khung
FTP
File Tranfer Protocol
Giao thức truyền tập tin
GSM
Global System for Mobie
Hệ thống truyền thông dịch vụ toàn
cầu
HTTP
Hypertext Transfer Protocol
Giao thức truyền siêu văn bản
ICMP
Internet Control Message Protocol
Giao thức thông tin điều khiển Internet
IETF
Internet Engineering Task Force
Nhóm đặc trách kỹ thuật Internet
IP
Internet Protocol
Giao thức mạng
ISDN
Intergrated Services Digital
Network
Mạng số đa dịch vụ tích hợp
ISP
Internet service Providers
Nhà cung cấp dịch vụ Internet
LAN
Local Area Network
Mạng cục bộ
MAC
Medium Access Control
Kiểm soát truy nhập môi trườmg
truyền thông
3
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
PPP
Point to Point Protocol
Giao thức liên kết điểm điểm
QOS
Quality Of Service
Chất lượng dịch vụ
RIP
Routing Information Protocol
Giao thức thông tin định tuyến
SNMP
Simple Network Management
Protocol
Giao thức quản lý mạng đơn giản
TCP
TransmisstionControl Protocol
Giao thức điều khiển truyền dẫn
TFTP
Trivial File Tranfer Protocol
Giao thức truyền tập tin
UDP
User Datagram Protocol
Giao thức gói dữ liệu người dung
UMTS
Universal Mobi Telephony
Service
Dịch vụ điện thoại di động toàn cầu
WAN
Wide Area Network
Mạng diện rộng
4
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
DANH MỤC HÌNH VẼ
Hình 1 : Mô hình phân lớp TCP/IP
Hình 2: Khuôn dạnh datagram của IPv4
Hình 3: Hệ lục phân và nhị phân
Hình 4: Cấu trúc Global Unicast Address
Hình 5: Sơ đồ phân cấp của Global Unicast Address
Hình 6:Giá trị Linhk-LocalAddress
Hình 7: Cấu trúc của Unique Local Addres
Hình 8: Mô hình Client- Server
Hình 9:Kết quả demo chương trình
5
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
6
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
TỔNG QUAN VỀ ĐỀ TÀI
Đề tài: xây dựng chương trình trao đổi thông tin mạng qua giao
thức IPv6
1. Lý do thực hiện đề tài
Với sự phát triển mạnh mẽ của mạng Internet và các mạng sử dụng
giao thức IP cũng trở nên rất quan trọng trong cuộc sống xã hội.Ngay
từ khi ra đời, giao thức IP đã thể hiện được những ưu điểm nhằm đáp
ứng được nhu cầu kết nối và truyền tải thông tin của người sử dụng.Và
điều này làm cho số lượng thiết bị sử dụng giao thức IP ngày càng gia
tăng.Tuy nhiên, với tốc độ tăng quá nhanh đã làm cho giao thức IPv4
với không gian địa chỉ 32 bit không thể đáp ứng được và trong tương
lai không lâu thì số lượng địa chỉ IPv4 này cạn kiệt. Do đó đòi hỏi các
nhà nghiên cứu phải thiết kế một giao thức mới để đáp ứng được sự
phát triển của Internet.Vì vậy em chọn đề tài này để khắc phục những
hạn chế trên
2. Phương pháp triển khai đề tài
Tìm kiếm tài liệu liên quan.
Tìm hiểu về giao thức mạng IPV6.
Định hướng chương trình cần làm.
Xây dựng chương trình trao đổi thông tin mạng qua IPv6
Kết luận.
3. Kết cấu của báo cáo
Chương 1 : Trình bày cơ sở lý thuyết về giao thức IPv6,mô hình clientserver.
Chương 2 : Xây dựng chương trình trao đổi thông tin mạng qua IPv6
Chương 3 : Chạy Demo và kết luận về chương trình, đánh giá kết quả.
7
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Chương 1.
CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu
Giao thức Internet (IP) là một giao thức gói không định hướng đã giúp cho
hàng triệu máy tính được kết nối với nhau .Từ khi ra đời cách đây 30 năm , IP đã
trở thành ngôn ngữ chung cho truyền thông dữ liệu – một giao thức hỗ chợ cho tất
cả các ứng dụng . Mức độ liên mạng toàn cầu mà IP đem lại đã cho chúng ta biết
về giá trị của sự hợp tác.
Trong phạm vi của những mạng thế hệ mới , IP quan trọng bởi nhiều nguyên
nhân . Nó là giao thức hợp nhất giữa máy tính và viễn thông . Nó cung cấp một
giải pháp cho việc hợp nhất công nghệ mới trên nguyên tắc kế thừa hạ tầng cơ sở
cũ . Nó không mang tính chất độc quyền và luôn là giao thức mở . Nó đưa ra
những phương thức hiệu quả và tiết kiệm để hợp nhất thoại và số liệu trên một nền
chung , thậm chí nó còn cho phép tạo ra những ứng dụng mới như “ không gian
dùng chung ” . Mặc dù tồn tại nhiều giao thức khác nhưng không giao thức nào có
thể sánh được với IP về kinh tế hiệu quả và phạm vi hoạt động toàn cầu của nó .
Khi các ứng dụng mới xuất hiện qua nhiều năm mỗi ứng dụng yêu cầu sự cải
tiến tương ứng chất lượng mạng , những sự cải tiến đã tạo điều kiện cho IP thích
hợp với những đòi hỏi mới . Thậm chí khi các công nghệ và các giao thức khác
được phát triển để đáp ứng những nhu cầu khác nhau như LAN, ATM và chuyển
tiếp khung (FR)– những tiến bộ của IP có thể được giữ lại bằng cách chạy phía trên
chúng. Có thể nói thực sự về IP rằng nó là giao thức của quá khứ và tương lai .
Tuy nhiên với sự phát triển nhanh chóng của của các ứng dụng máy tính ,
phiên bản IP hiện giờ - phiên bản 4 (IPv4) đang tiến tới giới hạn của nó . Cụ thể
với nhu cầu địa chỉ IP tăng nhanh , không gian địa chỉ 32 bít trong phiên bản 4
đang bị cạn kiệt .Đây không phải là một vấn đề mới . Cuối những năm 1990, một
số tiến bộ kỹ thuật đã được đưa ra để giảm bớt sức ép về địa chỉ IP . Việc sử dụng
rộng dãi phương pháp cấp địa chỉ động (DHCP) , việc sử dụng có hiệu quả hơn các
dải địa chỉ (CIDR) và yêu cầu bảo vệ nghiêm ngặt hơn áp dụng bởi những cơ quan
đăng ký địa chỉ . Đồng thời cái gốc của vấn đề đã được giải quyết thông qua sự
phát triển của một phiên bản IP nâng cấp - phiên bản 6 (IPv6) .
IPv6 bây giờ đã là hiện thực . Đặc tính hiển nhiên nhất là sự mở rộng cực lớn
phương thức đánh địa chỉ của phiên bản 4 . Bên cạnh đó , nó cung cấp những
phương tiện xác thực và bảo vệ tính bí mật của truyền dẫn , cộng với nhiều tính
năng nâng cao khác mà một số tính năng đó hỗ trợ rất lớn cho dịch vụ dữ liệu di
động .
Vậy IPv6 là gì ? đặc tính và ứng dụng của nó ra sao ?. Chúng ta hãy cùng tìm
hiểu và nghiên cứu về nó .
8
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
1.2. Khái quát về giao thức internet
Thành công của mạng Internet và Intranet bắt kịp với sự phát triển của kiến
trúc mạng máy tính còn gọi là Internet Protocol Suite , được biết đến đó là TCP/IP.
Giao thức TCP/IP được sử dụng trong mạng Internet hơn 30 năm qua đã khẳng
định rõ ràng khả năng đứng trước những thách thức của truyền thông thế kỷ 21.
1.2.1. Giao thức TCP/IP
Cho đến nay TCP/IP là hệ thống giao thức ra đời sớm nhất . Cũng là hệ thống
Internet hoàn chỉnh nhất. Để đơn giản hoá việc thiết kế và thực hiện giao thức ,
thông tin mạng thường căn cứ vào thứ tự lớp khác nhau rồi phân chúng thành
những vấn đề con tương ứng .Toàn bộ giao thức cũng phân thành nhiều lớp giao
thức khác nhau. Theo ý tưởng này , TCP/IP đã hình thành mô hình phân lớp như
sau :
TELNET
HTTP
TCP
FTP
TFTP
NFS
UDP
PING
ICMP
IP ( Internet Protocol)
Physical Netwoks ( LAN , ATM ,FR ...)
Hình 1 : Mô hình phân lớp TCP/IP
Kiến trúc phân tầng TCP/IP cũng tuân theo mô hình tham chiếu OSI với 4
tầng tuơng ứng như sau :
9
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Application
Presentation
Session
Transport
Network
Datalink
Physical
Mô hình OSI
a.
Mô hình TCP/IP
Lớp giao truy cập mạng mạng (Network access layer) : Hay còn gọi là
lớp kết nối , nó tiếp nhận gói dữ liệu IP và phát gói dữ liệu đi theo mạng đã định .
b.
Lớp mạng (Internet layer) : Còn gọi là lớp IP nằm ở lớp thứ 3 trong mô
hình OSI , chủ yếu xử lý thông tin giữa các thiết bị . Đối tượng truyền dẫn giữa lớp
Internet và lớp giao diện mạng là gói dữ liệu IP ( IP Datagram)
c.
Lớp truyền dẫn (Transport layer) : Nhiệm vụ là cung cấp dịch vụ thông
tin giữa các chương trình ứng dụng , đảm bảo số liệu truyền đến đích không có lỗi .
Lớp truyền dẫn gói chia làm 2 loại TCP và UDP
d.
Lớp ứng dụng ( Application layer) : Là lớp cao nhất trong mô hình
phân lớp . Thuê bao dùng chương trình ứng dụng để truy nhập mạng Internet
TCP/IP và để sử dụng các loại dịch vụ do mạng cung cấp .
10
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
1.2.2. Giao thức Internet(IP)
IP là giao thức cơ bản để thiết lập mạng TCP/IP . Mục đích của giao thức IP
là cung cấp khả năng kết nối các mạng con thành liên mạng truyền dữ liệu . Tất cả
các hệ thống thành viên của liên mạng đòi hỏi phải cài đặt IP ở tầng mạng .
IP là giao thức truyền thông kiểu không kết nối (Connectionless) nghĩa là
không cần có giai đoạn thiết lập trước khi truyền dữ liệu . Mỗi gói tin truyền đi
trên mạng một cách độc lập , chính việc dữ liệu đi tới đích theo nhiều đường khác
nhau tạo nên tính mền dẻo cho mạng Internet .
IP là giao thức hoạt động trong lớp 3 của mô hình OSI
Đơn vị thông tin là gói ( Packet) , đơn vị dữ liệu truyền trong IP gọi là
Datagram
Khuôn dạng của IP (IPv4) như sau :
Ver
(4bits)
IHL
(4bits)
TOS
( 8bits)
Identification (16 bits)
TTL
(8bits)
Total Length (16bits)
Flags
(3bits)
Fragment offset
(13bit)
Protocol (8
Header Checksum (16 bits)
bits)
Source Address (32 bits)
Destination Address (32 bits)
Options
Data
Hình 2: Khuôn dạnh datagram của IPv4
Trong RFC 791 đã mô tả chi tiết IPv4 bao gồm các trường sau :
a.
Version ( Phiên bản ) : 4 bits mang giá trị là 4 , chỉ phiên bản của giao
thức IP.
b.
IHL ( Internet Header Length ) : 4 bits chỉ thị độ dài mào đầu của
Interet , được tính theo đơn vị từ bằng 32 bits .
c.
TOS ( Type Of Service – Loại hình dịch vụ ) : 8 bits thiết lập về mức
độ ưu tiên và loại hình dịch vụ .
11
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
d.
Total Length ( Tổng độ dài ) : 16 bits chứa giá trị độ dài tính theo byte
của gói IP bao gồm cả Header và Data .
e.
Indentification ( Nhận Dạng ) : 16 bits dùng để xác định gói IP hiện
thời , sắp xếp lại gói IP theo thứ tự khi gói IP trong chuỗi có gói gửi đi bị hỏng .
f.
Flags (cờ) : 3bits được dùng để kiểm soát sự phân đoạn
( fragments
g.
Fragment Offset ( Mã phân đoạn ) : 13 bits chỉ vị trí của đơn vị dữ liệu
)
gốc được truyền trong phân đoạn .
h.
TTL ( Time To Live - Thời gian sống) : 8 bits chỉ thời gian tồn tại của
đơn vị dữ liệu trong liên mạng trước khi bị coi là mất .
i.
Protocol ( Giao thức ) : 8 bits chỉ ra gói tin thuộc loại liên kết nào
( UDP sử dụng số 17 , TCP sử dụng số 6)
j.
Checksum ( Tổng kiểm tra ) : 16 bits mã kiểm soát lỗi phần tiêu đề IP.
Các gói bị sai ở giá trị này sẽ bị huỷ bỏ .
k.
Source Address ( Địa chỉ nguồn ) : 32 bits cung cấp cho phần mềm
giao thức IP địa chỉ đích , sử dụng khi phát trở lại .
l.
Destanation Address ( Địa chỉ đích ) : 32 bits dùng cho IP đích kiểm
tra số liệu truyền dẫn có chính xác không .
m.
Opption : Có thể có hoặc không , trường này dùng cho mào đầu lớn
hơn 5 từ .
n.
Data : Thông thường bao gồm các thông tin số liệu TCP , UDP ,
ICMP .
1.3. Tổng quan về giao thức mạng IPv6 và mô hình client-sever.
1.3.1. Giới thiệu về giao thức mạng IPv6
Một câu hỏi được đặt ra là tại sao lại phải phát triển IPv6?
Để trả lời được câu hỏi trên chúng ta cần phải hiểu về giao thức mạng IPv4 :
1. Như chúng ta biết địa chỉ IPv4 sử dụng kết cấu 32 bits , trên lý thuyết thì
địa chỉ 32 bit có thể cung cấp một không gian địa chỉ là 2^32= 4.294.967.296 địa
chỉ .Vậy nguyên nhân nào khiến cho giao thức mạng IPv4 không đạt yêu cầu .
Thực tế rằng , mỗi địa chỉ IPv4 không được uỷ nhiệm cho mỗi cá nhân mà cho
mạng “Network” . Gồm có 3 lớp :
12
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Class A: Gồm 128 mạng và mỗi mạng với 16 .777. 214 máy chủ .
Class B: Gồm 16.382 mạng và mỗi mạng với 65.534 máy chủ .
Class C :Gồm 2.097.150 mạng và mỗi mạng với 254 máy chủ .
Tình trạng thiếu hụt địa chỉ của IPv4 được nhận ra vào năm 1991.Trong năm
đó yêu cầu về cung cấp địa chỉ Internet tăng rất nhanh . Nó có tầm quan trọng đặc
biệt khi Internet trở thành mạng cho mọi người . Đầu tiên nó được sử dụng cho các
công ty công và tư , cho chính phủ . Tiếp theo là cho cơ quan , trường học , cho các
trung tâm nghiên cứu và hơn hết là cho mọi người dân . Nó có tính khả thi bởi các
nhà cung cấp dịch vụ Internet ( ISP- Internet service Provides) và vì được cung cấp
khả năng truy nhập Internet với giá rẻ qua đường điện thoại sử dụng Modem , hay
gần đây là qua mạng đa dịch vụ ISDN .( Intergrated Services Digital Network )
Cũng trong năm này đã có dự báo là vào năm 1994 địa chỉ lớp B sẽ được sử
dụng hết . Đối diện với thực tế này , tổ chức IETF ( Internet Enginneering Task
Force ) có quyết định lựa chọn kỹ thuật và cung cấp địa chỉ IP cho mạng Internet ,
quyết định không chỉ cung cấp địa chỉ cho không gian lớp B mà còn cho một khối
của lớp C
Ví dụ : Một tổ chức có 100 máy tính , dự báo là sẽ phát triển thêm 500 máy
tính nữa , thay vì được cấp một mạng thuộc lớp B sẽ cấp 4 mạng thuộc lớp C cho
1000 địa chỉ
Việc này sẽ duy trì việc cung cấp địa chỉ IPv4 cho đến khoảng 2005 .
2.
Ngoài ra , IPv4 không xây dựng khái niệm về chất lượng dịch vụ QoS
(Quality of Service) , với nỗ lực tốt nhất nó truyền phát các gói tin , nhưng nó
không đảm bảo gì từ các lớp trên , không giới hạn phần trăm các gói vận chuyển ,
không giới hạn thời gian thi hành vận chuyển . Trong khi đó , một số ứng dụng của
Internet mới như dịch vụ truyền tiếng nói , hình ảnh tức thời đòi hỏi giao thức đảm
bảo độ trễ nhất địmh , nếu không một số dịch vụ Internet mới không thể thực hiện
được . Do đó IP trong tương lai phải giải quyết một số vấn đề trên , đề ra một cơ
chế mới , làm cho một gói số liệu (datagram) và tài nguyên phân phối trước liên
quan mật thiết với nhau . Ngoài ra , do nhiều ứng dụng của Internet mới đòi hỏi
thông tin tin cậy , an toàn mà hệ thống TCP/IP không thể giải quyết vấn đề an
toàn được tốt.
Vậy việc cải cách IPv4 là tất yếu và nó được khắc phục bằng IPv6.
13
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
1.3.2. Đặc tính của IPv6
Giao thức mạng IPv6 bao gồm các tính năng sau:
1. Mở rộng không gian địa chỉ ,tăng đường truyền
2. Cấu hình địa chỉ tự động (Automatic Configuration )
3. Phát hiện láng giềng(Neighbor discovery)
4. Đơn giản hóa việc đặt địa chỉ Host
5. Kiểm soát an toàn
6. Chất lượng dịch vụ QoS ( Quality Of Service )
1.3.3. Cấu trúc địa chỉ của IPv6
IPv6 có tổng cộng là 128 bit được chia làm 2 phần: 64 bit đầu được gọi là
network, 64 bit còn lại được gọi là host. Phần network dùng để xác định subnet,
địa chỉ này được gán bởi các ISP hoặc những tổ chức lớn như IANA (Internet
Assigned Numbers Authority). Còn phần host là một địa chỉ ngẫu nhiên dựa trên
48
bit
của
MACAddress.
Địa chỉ IPv6 có 128 bit, do đó việc nhớ được địa chỉ này rất khó khăn. Cho
nên để viết địa chỉ IPv6, người ta đó chia 128 bit ra thành 8 nhóm, mỗi nhóm
chiếm 2 bytes, gồm 4 số được viết dưới hệ số 16, và mỗi nhóm được ngăn cách
nhau bằng dấu hai chấm
Hình 3: Hệ lục phân và nhị phân
Ví du:
FEDL:8435:7356:EADC:BA98:2010:3280:ABCD
14
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
1.3.4. Các loại IPv6
Địa chỉ IPv4 chia thành 3 lớp chính : A,B,C và hai lớp khác: D dùng cho
multicast và lớp E dùng cho mục đích nghiên cứu. Còn địa chỉ IPv6 lại chia thành
3 loại chính như sau:
Unicast Address: Còn được gọi là địa chỉ đơn hướng. Địa chỉ này được dùng
để
nhận dạng một Node. Một gói dữ liệu khi lưu thông trên mạng được gửi đến một
địa chỉ Unicast, sẽ được chuyển đến Node mang địa chỉ Unicast đó.
Anycast Address: Là địa chỉ dùng để nhận dạng một tập hợp Node. Một gói
tin
gửi đến địa chỉ Anycast sẽ được chuyển đến Node gần nhất trong tập hợp các Node
mang địa chỉ Anycast đó. Khái niệm “gần nhất” ở đây ám chỉ chi phí (cost) tối ưu
để đến một Node, thông tin này liên quan đến thông tin định tuyến.
Multicast Address: Địa chỉ này cũng dùng để nhận dang một tập hợp các
Node. Nhưng khác với địa chỉ Anycast, một gói tin khi chuyển đến địa chỉ
Multicast được chuyển đến tất cả các Node mang địa chỉ Multicast này. Loại địa
chỉ này cũng giống với địa chỉ Multicast trong IPv4 (lớp D).
1. Unicast Address:
Được chia thành 4 nhóm:
a/ Global Unicast Address:
Địa chỉ này được sử dụng để hỗ trợ cho các ISP. Nó giống như địa chỉ Public
của IPv4.
Hình 4: Cấu trúc Global Unicast Address
001: 3 bits đầu luôn luôn có giá trị = 001
TLA ID( Top Level Aggregation): Xác định nhà cung cấp cao nhất trong hệ
thống các nhà cung cấp dịch vụ
Res: chưa sử dụng
NLA ID (Next Level Aggregation): Xác định nhà cung cấp tiếp theo trong hệ
thống các nhà cung cấp dịch vụ
SLA ID (Site Level Aggregation): Xác định các site để tạo các subnet
Interface ID: Là địa chỉ của Interface trong subnet
15
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Hình 5: Sơ đồ phân cấp của Global Unicast Address
b/ Link-local Addresses:
Đây là loại địa chỉ dùng cho các host khi chúng muốn giao tiếp với các host
khác trong cùng mạng. Tất cả IPv6 của các interface đều có địa chỉ link local
Theo Hình dưới
10 bits đầu tiên luôn là: 1111 1110 10
54 bits kế tiếp cú giỏ trị bằng 0
-> Như vậy, trong Link Local Address: 64 bit đầu là giá trị cố định không thay
đổi (prefix : fe80::/64)
Bạn thử vào cmd, gừ lệnh ipconfig /all để xem thử giá trị Link-Local Address
16
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Hình 6:Giá trị Linhk-LocalAddress
+ 64 bits cuối cùng là địa chỉ của Interface
Lưu ý: Một router không thể chuyển bất kỳ gói tin nào của địa chỉ nguồn
hoặc địa chỉ đích là Link Local Address
c/ Site-Local Addresses:
Site-Local Addresses được sử dụng trong hệ thống nội bộ (Intranet) tương tự
các địa chỉ Private IPv4 (10.X.X.X, 172.16.X.X, 192.168.X.X). Phạm vi sử
dụng Site-Local Addresses là trong cựng Site.
17
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
10 bits đầu tiên luôn là: 1111 1110 11 (Prefix FEC0::/10)
54 bits kế tiếp : là giá trị Subnet ID
64 bits cuối cùng là địa chỉ của Interface
d/ Unique Local Address:
Unique Local Address là địa chỉ định tuyến giữa các subnet trên một private
network
Hình 7: Cấu trúc của Unique Local Address
1111 1101 : 8 bits đầu là giá trị cố định FD00:: /8
40 bits kế tiếp là Global ID : địa chỉ Site (Site ID). Có thể gán tùy ý
16 bits kế tiếp là Subnet ID : địa chỉ Subnet trong Site, có thể tạo ra 65.536
subnet trong một site
64 bits cuối cùng là địa chỉ của Interface
2. Anycast Address:
Anycast Address là địa chỉ đặc biệt có thể gán cho nhiều interface, gói tin
chuyển đến Anycast Address sẽ được vận chuyển bởi hệ thống Routing đến
Interface gần nhất. Hiện nay, địa chỉ Anycast được sử dụng rất hạn chế, rất ít
tài liệu nói về cách sử dụng loại địa chỉ này. Hầu như Anycast addresss chỉ
được dùng để đặt cho Router, không đặt cho Host, lý do là bởi vỡ hiện nay địa
chỉ này chỉ được sử dụng vào mục đích cân bằng tải.
Ví dụ : khi một nhà cung cấp dịch vụ mạng có rất nhiều khách hàng muốn
truy cập dịch vụ từ nhiều nơi khác nhau, nhà cung cấp muốn tiết kiệm nên chỉ
để một Server trung tâm phục vụ tất cả, họ xây dựng nhiều Router kết nối
khách hàng với Server trung tâm, khi đó mỗi khách hàng có thể có nhiều con
đường để truy cập dịch vụ. Nhà cung cấp dịch vụ đặt địa chỉ Anycast cho các
Interfaces là các Router kết nối đến Server trung tâm, bây giờ mỗi khách hàng
chỉ việc ghi nhớ và truy cập vào một địa chỉ Anycast thôi, tự động họ sẽ được
kết nối tới Server thông qua Router gần nhất. Đây thật sự là một cách xử lý đơn
giản và hiệu quả.
3. Multicast Address:
18
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Trong địa chỉ IPv6 không tồn tại khái niệm địa chỉ Broadcast. Mọi chức
năng của địa chỉ Broadcast trong IPv4 được đảm nhiệm thay thế bởi địa chỉ
IPv6 Multicast. Địa chỉ Multicast giống địa chỉ Broadcast ở chỗ điểm đích của
gói tin là một nhóm các máy trong một mạng, song không phải tất cả các máy.
Trong khi Broadcast gửi trực tiếp tới mọi host trong một subnet thì Multicast
chỉ gửi trực tiếp cho một nhánh xác định các host, các host này lại có thể thuộc
các subnet khác nhau. Host có thể lựa chọn có tham gia vào một nhóm
Multicast cụ thể nào đó hay không (thường được thực hiện với thủ tục quản lý
nhóm internet - Internet Group Management Protocol).
1.3.5. Mô hình client-server
1.Khái niệm:
Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình
này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ
(đóng vai trò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy
khách.
2.Quá trình trao đổi dữ liệu của mô hình client-sever.
Quá tình trao đổi dữ liệu gồm các bước:
a.Truyền một yêu cầu từ tiến trình client tới tiến trình server
b.Yêu cầu được server xử lý
c.Truyền đáp ứng cho client
Mô hình client/server thường được cài đặt dựa trên các thao tác cơ bản là gửi (send)
và nhận (receive).
19
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Hinh 8: Mô hình Client- Server
20
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Chương 2.
THIẾT KẾ VÀ XÂY DỰNG
CHƯƠNG TRÌNH
2.1. Phân tích yêu cầu
Yêu cầu đề tài tìm hiểu về giao thức mạng IPv6,quá trình trao đổi thông tin
qua IPv6 và kĩ năng lập trình c#, sử dụng visual studio.
Chương trình trao đổi thông tin mạng qua giao thức IPv6:Chương trình sử
dụng theo mô hình Client-sever và giao tiếp với nhau qua giao thức IPv6.
2.2. Phân tích các chức năng
Xây dựng chương trình client-sever sử dụng giao thức IPv6 trong C#
1. Chuẩn bị máy cài đặt IPv6
Sau khi máy tính đã được cài đặt IPv6 thì chúng ta có thể kiểm tra xem IPv6 đã
được kích hoạt hay chưa bằng cách gõ lệnh ipconfig/all:
Cửa sổ Cấu hình IP
Ethernet adapter Microsoft Loopback:
Connection-specific DNS Suffix. :
Địa chỉ IP. . . . . . . . . . . . : 192.168.1.10
Subnet Mask. . . . . . . . . . . : 255.255.255.0
Địa chỉ IP. . . . . . . . . . . . : Fe80 :: 4cff: fe4f: 4f50% 4
Default Gateway. . . . . . . . . :
Đường hầm bộ chuyển đổi Teredo Tunneling Pseudo-Giao diện:
kết nối cụ thể DNS Suffix. :
Địa chỉ IP. . . . . . . . . . . . : Fe80 :: 54ff: fe55: 4e01% 6
Default Gateway. . . . . . . . . :
Đường hầm bộ chuyển đổi tự động Tunneling Pseudo-Giao diện:
kết nối cụ thể DNS Suffix. :
Địa chỉ IP. . . . . . . . . . . . : Fe80 :: 5efe: 192.168.1.10% 2
Default Gateway. . . . . . . . . :
Địa chỉ fe80 :: 4cff: fe4f: 4f50 là địa chỉ link-local address của ipv6
2. Các yêu cầu chức năng chi tiết bên server:
Khởi tạo
IPv6Server:
Đầu tiên là phải nhập các namespace dưới đây:
using System.Net.Sockets;
using System. Net;
21
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
using System;
Kiểm tra xem hệ thống đã hỗ trợ IPv6 hay chưa, bằng cách sử dụng các giá trị
boolen Socket.SupportsIPv6.
const int PORT=1979;
if(!Socket.SupportsIPv6) {
Console.Error.WriteLine("Your system does not support IPv6\r\n" +
"Check you have IPv6 enabled and have changed machine.config");
return;
}
Sau đó ta tạo ra một listening socket.
Socket listener = new Socket(
AddressFamily.InterNetworkV6,
SocketType.Stream,
ProtocolType.Tcp);
Các AddressFamily được thiết lập như InterNetworkV6 (chứ không phải là liên
mạng cho IPv4).
listener.Bind(new IPEndPoint(IPAddress.IPv6Any, PORT));
listener.Listen(0);
Sau đó ta liên kết với các địa chỉ IP IPv6Any - điều này có nghĩa là các ứng dụng
sẽ lắng nghe trên tất cả các địa chỉ NIC trên hệ thống. Sau đó ta gọi listener.Listen (0)
trên socket. Điều này sẽ bị khóa cho đến khi một kết nối được thực hiện thành công
trên cổng 1979.
TCP
yourmachinename:1979
[::]:0
LISTENING
0
Tiếp theo hiển thị lên màn ảnh, và thoát khỏi ứng dụng .
Socket socket = listener.Accept();
listener.Close();
byte[] b = new byte[11];
int len;
while((len = socket.Receive(b)) != 0) {
System.Console.WriteLine("RX: " +
System.Text.ASCIIEncoding.ASCII.GetString(b, 0, len));
b = new byte[11];
}
socket.Close();
Socket chấp nhận 11 byte dữ liệu và sau đó đóng tất cả các socket khi client ngắt kết
nối.
22
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
3. Các yêu cầu chi tiết chứng năng bên client.
Tương tự ứng dụng Client Ipv4 ta xây dựng IPv6 client
IPv6 Client:
Đầu tiên nhập các namespace:
using
using
using
using
System;
System.Net;
System.Net.Sockets;
System.Threading;
System.Threading được đưa vào nhằm mục đích chỉ ra 1 sự trậm chễ trong việc gửi
thông tin tới máy chủ
const int PORT = 1979;
const string IPv6_ADDR = "fe80::4cff:fe4f:4f50";
if(!Socket.SupportsIPv6) {
Console.Error.WriteLine("Your system does not support IPv6\r\n" +
"Check you have IPv6 enabled and have changed machine.config");
return;
}
Ta thiết lập chuỗi IPv6_ADDR đến địa chỉ IPv6 đã được trả lại bởi lệnh ipconfig..
IPAddress ipa = IPAddress.Parse(IPv6_ADDR);
IPEndPoint ipeh = new IPEndPoint(ipa, PORT);
Socket connection = new Socket(
AddressFamily.InterNetworkV6,
SocketType.Stream,
ProtocolType.Tcp);
connection.Connect(ipeh);
byte[] b = System.Text.ASCIIEncoding.ASCII.GetBytes("hello world");
for(int x=0; x<10; x++) {
Console.WriteLine("TX: " + System.Text.ASCIIEncoding.ASCII.GetString(b));
connection.Send(b);
Thread.Sleep(1000);
}
connection.Close();
Ứng dụng này sau đó kết nối đến cổng 1979 tại IPv6_ADDR địa chỉ và gửi chuỗi
ký tự ASCII 'hello world” 10 lần mỗi giây.
23
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
Chương 3.
TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT
QUẢ
3.1. Môi trường triển khai
Chương trình được chạy trên Visual stadio,và chạy demo trên hệ điều hành
windows
3.2. Kết quả các chức năng của chương trình
Hình 9:Kết quả demo chương trình
3.3. Đánh giá và nhận xét
- Chương trình làm còn đơn giản,chưa đáp ứng được nhu cầu thiết thực.
- Em sẽ cố gắng hoàn thiện và phát triển chương trình ngày càng hoàn thiện hơn.
24
Báo cáo đồ án lập trình mạng -Bộ môn mạng và truyền thông
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Vấn đề đã được thông qua , giao thức IPv6 cuối cùng đã được chuẩn hoá và
bước đầu đưa vào sử dụng , nó sẽ giữ vai trò quan trọng trong tương lai .Với những
điều đã nghiên cứu và tìm hiểu về giao thức IPv6 . Em cảm thấy những vấn đề đã nêu
trên là chưa đủ , còn rất nhiều điều phải phân tích kỹ hơn , sâu hơn và tỉ mỉ hơn .Em hi
vọng với đề tài này sẽ giúp em hiểu rõ được mô hình client-sever và ứng dụng nó trong
giao thức IPv6.Qua đó là tích lũy kinh nghiệm cho em ra trường sau này.
Em xin chân thành cảm ơn thầy Nguyễn Tấn Khôi đã tận tình giúp đỡ em hoàn
thiện đề tài này trong suốt quá trình làm đồ án.
25