Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
ch ơng 1: giới thiệu về giao thức TCP/IP
1.1. Lịch sử phát triển củaTCP/IP và mạng Internet
Mạng Internet là một mạng máy tính toàn cầu, bao gồm hàng chục triệu ng-
ời sử dụng, đợc hình thành từ cuối thập kỷ 60 từ một thí nghiệm của Bộ quốc
phòng Mỹ. Tại thời điểm ban đầu đó là mạng ARPAnet của Ban quản lý dự án
nghiên cứu Quốc phòng. ARPAnet là một mạng thử nghiệm phục vụ các nghiên
cứu quốc phòng, một trong những mục đích của nó là xây dựng một mạng máy
tính có khả năng chịu đựng các sự cố (ví dụ một số nút mạng bị tấn côngvà phá
huỷ nhng mạng vẫn tiếp tục hoạt động). Mạng cho phép một máy tính bất kỳ
trên mạng liên lạc với mọi máy tính khác.
Khả năng kết nối các hệ thống máy tính khác nhau đã hấp dẫn mọi ngời, vả
lại đây cũng là phơng pháp thực tế duy nhất để kết nối các máy tính của các
hãng khác nhau. Kết quả là các nhà phát triển phần mềm ở Mỹ, Anh và Châu
Âu bắt đầu phát triển các phần mềm trên bộ giao thức TCP/IP (giao thức đợc sử
dụng trong việc truyền thông trên Internet) cho tất cả các loại máy. Điều này
cũng hấp dẫn các trờng đại học, các trung tâm nghiên cứu lớn và các cơ quan
chính phủ, những nơi mong muốn mua máy tính từ các nhà sản xuất, không bị
phụ thuộc vào một hãng cố định nào.
Bên cạnh đó các hệ thống cục bộ LAN bắt đầu phát triển cùng với sự xuất
hiện các máy để bàn (Desktop Workstations) vào năm 1983. Phần lớn các máy
để bàn sử dụng Berkeley UNIX, phần mềm cho kết nối TCP/IP đã đợc coi là
một phần của hệ điều hành này. Một điều rõ ràng là các mạng này có thể kết nối
với nhau dễ dàng.
Trong quá trình hình thành mạng Internet, NSFNET (đợc sự tài trợ của Hội
khoa học Quốc gia Mỹ) đóng một vai trò tơng đối quan trọng. Vào cuối những
năm 80, NFS thiết lập 5 trung tâm siêu máy tính. Trớc đó, những máy tính
nhanh nhất thế giới đợc sử dụng cho công việc phát triển vũ khí mới và một vài
hãng lớn. Với các trung tâm mới này, NFS đã cho phép mọi ngời hoạt động
trong lĩnh vực khoa học đợc sử dụng. Ban đầu, NFS định sử dụng ARPAnet để
nối 5 trung tâm máy tính này, nhng ý đồ này đã bị thói quan liêu và bộ máy
dùng để chỉ một nhóm các giao thức có liên quan đến TCP và IP nh UDP (User
Datagram Protocol), FTP (File Transfer Protocol), TELNET (Terminal
Emulation Protocol) và v.v...
Để giảm độ phức tạp của việc thiết kế và cài đặt mạng hầu hết các mạng
máy tính hiện có đều đợc phân tích thiết kế theo quan điểm phân tầng . Mỗi hệ
thống thành phần của mạng đợc xem nh là một cấu trúc đa tầng, trong đó mỗi
tầng đợc xây dựng trên cơ sở tầng trớc đó. Số lợng các tầng cùng nh tên và chức
năng của mỗi tầng là tuỳ thuộc vào nhà thiết kế. Họ giao thức của ISO (tổ chức
tiêu chuẩn hoá quốc tế) dựa trên mô hình tham chiếu 7 lớp cho việc kết nối các
Vũ Khoa ĐTTT4 K40 2
Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
hệ thống mở là họ giao thức đợc dùng làm chuẩn để các họ giao thức khác so
sánh với nó do vậy trớc khi đi vào nghiên cứu giao thức TCP/IP ta cần xem xét
mô hình 7 lớp OSI.
Trong mô hình OSI mục đích của mỗi tầng là cung cấp các dịch vụ cho
tầng cao hơn tiếp theo, mô tả chi tiết cách thức cài đặt các dịch vụ này. Các tầng
đợc trừu tợng hoá theo cách là mỗi tầng chỉ biết rằng nó liên lạc với tầng tơng
ứng trên máy khác. Trong thực tế thì mỗi tầng chỉ liên lạc với các tầng kề trên
và kề dới nó trên mỗi hệ thống mà thôi.
Trừ tầng thấp nhất trong mô hình mạng không tầng nào có thể chuyển
thông tin một cách trực tiếp với tầng tơng ứng trong mạng máy tính khác. Thông
tin trên máy cần gửi phải đợc chuyển đi qua tất cả các tầng thấp hơn. Thông tin
sau đó lại đợc truyền qua Card mạng tới máy nhận và lại đợc truyền lên qua các
tầng cho đến khi nó đến tầng đã gửi thông tin đi.
1.2.1. Mô hình 7 lớp OSI
Mô hình này bao gồm 7 tầng. Tên gọi và chức năng các tầng đợc trình bày
trong hình 1.1.
Hệ thống mở A
Hệ thống mở B
luồng dữ liệu giữa hai đầu mút. Cũng có thể thực hiện việc ghép kênh, cắt
/ hợp dữ liệu nếu cần.
5. Tầng phiên (Session): Cung cấp phơng tiện quản lý truyền thông
giữa các ứng dụng, thiết lập, duy trì, đồng bộ hoá và huỷ bỏ các phiên
truyền thông giữa các ứng dụng.
6. Tầng trình diễn (Presentation): Chuyển đổi cú pháp dữ liệu để đáp
ứng yêu cầu truyền dữ liệu của các tầng ứng dụng qua mô hình OSI.
7. Tầng ứng dụng (Application): Cung cấp các phơng tiện để ngời sử
dụng có thể truy cập đợc vào môi trờng OSI, đồng thời cung cấp các dịch
vụ thông tin phân tán.
1.2.2. Giao thức TCP/IP và mô hình 7 lớp OSI
Mạng Internet với họ giao thức TCP/IP đợc minh hoạ tổng quát nh hình 1.2
với các dịch vụ mà nó cung cấp và các chuẩn đợc sử dụng có so sánh với kiến
trúc hệ thống mở OSI để chúng ta có một cách nhìn tổng quát về họ giao thức
này.
Hình 1.2: Giao thức TCP/IP khi so sánh với mô hình OSI
Vũ Khoa ĐTTT4 K40 4
O S I M o d e l T C P / I P A r c h i t e c t u a l M o d e l
A p p l i c a t i o n
P r e s e n t a t i o n
S e s s i o n
T r a n s p o r t
N e t w o r k
D a t a l i n k
P h y s i c a l
T e l n e t
F T P
S M T P
D N S
S N M P
ARP: (Address Resolution Protocol) Là giao thức ở tầng liên kết dữ liệu.
Chức năng của nó là tìm địa chỉ vật lý ứng với một địa chỉ IP nào đó. Muốn vậy
nó thực hiện Broadcasting trên mạng, và máy trạm nào có địa chỉ IP trùng với
địa chỉ IP đang đợc hỏi sẽ trả lời thông tin về địa chỉ vật lý của nó.
DSN: (Domain name System) Xác định các địa chỉ theo số từ các tên của
máy tính kết nối trên mạng.
FTP: (File Transfer Protocol) Giao thức truyền tệp để truyền tệp từ một
máy này đến một máy tính khác. Dịch vụ này là một trong những dịch vụ cơ
bản của Internet.
Telnet: (Terminal Emulation Protocol) Đăng ký sử dụng máy chủ từ xa
với Telnet ngời sử dụng có thể từ một máy tính của mình ở xa máy chủ, đăng ký
Vũ Khoa ĐTTT4 K40 5
F T P F i l e T r a n s f e r P r o t o c o l
S M T P - S i m p l e M a i l T r a n s f e r P r o t o c o l
D N S D o m a i n N a m e S y s t e m
S N M P S i m p l e N e t w o r k M a n a g e P r o t o c o l
I C M P - I n t e r n e t C o n t r o l M e s s a g e P r o t o c o l
A R P - A d d r e s s R e s o l u t i o n P r o t o c o l
F D D I - - F i b e r D i s t r i b u t e d D a t a I n t e r f a c e
R P I - - R o u t i n g I n f o r m a t i o n P r o t o c o l
Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
truy nhập vào máy chủ để xử dụng các tài nguyên của máy chủ nh là mình đang
ngồi tại máy chủ.
SMTP: (Simple Mail Transfer Protocol) Giao thức truyền th đơn giản: là
một giao thức trực tiếp bảo đảm truyền th điện tử giữa các máy tính trên mạng
Internet.
SNMP: (Simple Network Management Protocol) Giao thức quản trị mạng
đơn giản: là dịch vụ quản trị mạng để gửi các thông báo trạng thái về mạng và
các thiết bị kết nối mạng.
1.2.3. Giao thức liên mạng IP
IHL (4 bits) Chỉ thị độ dài phần đầu (Internet Header Length) của
Datagram tính theo đơn vị từ ( 32 bits).
Type of service (8 bits), đặc tả các tham số về dịch vụ. Khuôn dạng của
nó đợc chỉ ra nh sau.
0 1 2 3 4 5 6 7
Precedence D T R Reserved
8 Bits của trờng Service đợc chia ra làm 5 phần cụ thể nh sau :
Precedence (3 bits) chỉ thị quyền u tiên gửi Datagram, các mức u
tiên từ 0 (bình thờng) đến mức cao nhất là 7 (điều khiển mạng) cho
phép ngời sử dụng chỉ ra tầm quan trọng của Datagram.
Ba bit D, T, R nói nên khiểu truyền Datagram, cụ thể nh sau:
Bit D (Delay)chỉ độ trễ yêu cầu.
Bit T (Throughput) chỉ thông lợng yêu cầu.
Bit R (Reliability) chỉ độ tin cậy yêu cầu.
Reserved (2 bits) cha sử dụng.
Total Length (16 bits) : Chỉ độ dài toàn bộ Datagram kể cả phần
Header. Đơn vị tính là Byte.
Identification (16 bits) Trờng này đợc sử dụng để giúp các Host
đích lắp lại một gói đã bị phân mảnh, nó cùng các trờng khác nh Source
Address, Destination Address để định danh duy nhất một Datagram khi
nó còn ở trên liên mạng.
Flags( 3 bits) liên quan đến sự phân đoạn các Datagrams cụ thể nh sau:
0 1 2
0 DF MF
Trong đó các thành phần:
Bit 0 Cha sử dụng lấy giá trị 0.
Bit 1 (DF) DF=0: Thực hiện phân đoạn.
DF=1: Không thực hiện phân đoạn.
Bit 2 (MF) MF=0: Phân đoạn lần cuối.
Vũ Khoa ĐTTT4 K40 7
mà kích thớc của nó lớn hơn MTU của mạng khác thì nó cần đợc phân mảnh ra
thành gói nhỏ hơn gọi là Fragment để truyền đi, quá trình này gọi là quá trình
phân mảnh. Dạng của một Fragment cũng giống nh dạng của một gói dữ liệu
thông thờng. Từ thứ hai trong phần Header chứa các thông tin để xác định mỗi
Fragment và cung cấp các thông tin để hợp nhất các Fragments này lại thành
các gói nh ban đầu. Trờng định danh (Indentification) dùng để xác định
Fragment này thuộc vào gói dữ liệu nào. Trờng định danh có một giá trị duy
Vũ Khoa ĐTTT4 K40 8
Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
nhất cho mỗi gói dữ liệu đợc vận chuyển. Mỗi thành phần của gói dữ liệu bị
phân mảnh sẽ có cùng giá trị trờng định danh. Điều đó cho phép IP lắp ráp lại
các gói dữ liệu bị phân mảnh một cách phù hợp.
Hậu quả của việc phân mảnh dữ liệu là các gói bị phân mảnh sẽ đến đích
chậm hơn so với một gói không bị phân mảnh. Vì vậy phần lớn các ứng dụng
đều tránh không sử dụng kỹ thuật này nếu có thể. Vì sự phân mảnh tạo ra các
gói dữ liệu phụ nên cần quá trình sử lý phụ làm giảm tính năng của mạng. Hơn
nữa vì IP là một giao thức không tin cậy nên khi bất kỳ một gói dữ liệu bị phân
mảnh nào bị mất thì tất cả các mảnh sẽ phải truyền lại. Chính vì lý do này nên
phải gửi các gói dữ liệu lớn nhất mà không bị phân mảnh, giá trị này là Path
MTU.
1.2.3.3. Ph ơng pháp đánh địa chỉ trong TCP/IP
Để có thể thực hiện truyền tin giữa các máy trên mạng, mỗi máy tính trên
mạng TCP/IP cần phải có một địa chỉ xác định gọi là địa chỉ IP. Hiện nay mỗi
địa chỉ IP đợc tạo bởi một số 32 bits (IPv4)và đợc tách thành 4 vùng, mỗi vùng
có một Byte có thể biểu thị dới dạng thập phân, nhị phân, thập lục phân hoặc bát
phân. Cách viết phổ biến nhất hay dùng là cách viết dùng ký tự thập phân. Một
địa chỉ IP khi đó sẽ đợc biểu diễn bởi 4 số thập phân có giá trị từ 0 đến 255 và đ-
ợc phân cách nhau bởi dấu chấm (.). Mỗi giá trị thập phân biểu diễn 8 bits trong
địa chỉ IP. Mục đích của địa chỉ IP là để định danh duy nhất cho một host ở trên
mạng .
0 3 1
0 N e t w o r k I D H o s t I D
3 180 1 7
K h u ô n d ạ n g đ ị a c h ỉ I P l ớ p A
K h u ô n d ạ n g đ ị a c h ỉ I P l ớ p B
K h u ô n d ạ n g đ ị a c h ỉ I P l ớ p C
K h u ô n d ạ n g đ ị a c h ỉ I P l ớ p D
K h u ô n d ạ n g đ ị a c h ỉ I P l ớ p E
0
0 N e t w o r k I D H o s t I D
3 11 61 2 1 5
1
0 N e t w o r k I D H o s t I D
3 1
2 22 3 2 1
1
1
1
0
1 0 M u l t i c a s t a d d r e s s
3 1
2 3 4
1
1
1
0
1 1 R e s e r v e d f o r f u t u r e u s e
3 1
2 3 4
1
của bảng định tuyến trong Router/ Gateway, nghĩa là tiết kiệm dung lợng nhớ và
thời gian xử lý.
Sự phân chia một mạng thành nhiều mạng con phát sinh vấn đề là số lợng
bit dành để đánh địa chỉ mạng con có thể khác nhau và tuỳ thuộc vào nhà quản
trị mạng. Do đó ngời ta đa vào khái niệm Subnet Mask. Subnet Mask cũng
giống nh địa chỉ IP bao gồm 32 bits. Mục đích của điạ chỉ Subnet Mask là để
chia nhỏ một địa chỉ IP thành các mạng nhỏ hơn và theo dõi vùng nào trên địa
chỉ IP đợc dùng để làm địa chỉ cho mạng con (còn đợc gọi là các Subnet) đó
vùng nào dùng làm địa chỉ cho các máy trạm.
Nội dung của một Subnet Mask đợc quy định nh sau :
Vũ Khoa ĐTTT4 K40 11
Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
Các bit 1 : dùng để chỉ định địa chỉ mạng trên địa chỉ IP.
Các bit 0 : dùng để chỉ định địa chỉ máy trạm trên địa chỉ IP.
Ví dụ đối với mạng A có địa chỉ là 25.0.0.0, nếu dành 8 bits cho Subnet thì
mặt nạ có giá trị là 255.255.0.0 , nếu dành 16 bits cho Subnet thì mặt nạ có giá
trị là 255.255.255.0.
Từ địa chỉ IP ta thực hiện phép toán logic AND với địa chỉ Subnet Mask kết
quả sẽ tạo ra đợc địa chỉ mạng nơi đến. Kết quả này đợc sử dụng để tìm bớc tiếp
theo trong thuật toán tìm đờng trên mạng. Nếu kết quả này trùng với địa chỉ
mạng tại trạm đang làm việc thì sẽ xét tiếp địa chỉ máy trạm để truyền đi. Theo
cấu trúc của Subnet Mask thì ta thấy tất cả các trạm làm việc trong cùng một
mạng con có cùng giá trị Subnet Mask.
Với phơng pháp này số bits dùng để đánh địa chỉ host có thể nhỏ hơn 8 bits
(đối với lớp C) tức là một địa chỉ lớp C có thể phân nhỏ hơn nữa và khi đó các
mạng con này thờng đợc xác định bởi các địa chỉ có thêm phần chú thích số bits
dành cho địa chỉ mạng, ví dụ 203.160.0.0/25 mô tả Subnet 203.160.0.0 (thuộc
lớp C) nhng có 25 bits dùng cho địa chỉ mạng và 7 bits dùng cho địa chỉ Hosts
tức là Subnet này chỉ có tối đa là 128 Hosts chứ không phải là 256 Hosts.
Trong tất cả các lớp địa chỉ mạng cũng nh các Subnets, các điạ chỉ đầu và
tốt, và nó vẫn cùng hoạt động với IPv4.
IPv6 có một số đặc điểm chính sau đây:
128 bits địa chỉ thay cho 32 bits địa chỉ.
Thiết lập và cấu hình đơn giản : IPv6 có thể tự động đặt cấu hình
các địa chỉ cục bộ.
Định dạng Header đơn giản một vài trờng đã đợc bỏ đi hoặc trở
thành không bắt buộc. Sự định dạng Header mới này cải thiện tính năng
của bộ định tuyến và dễ dàng thêm các loại Header mới.
Cải tiến sự trợ giúp đối với các tuỳ chọn và các mở rộng.
Sự trợ giúp đối với việc xác nhận đúng và sự mã hoá dữ liệu. Sự
trợ giúp đối với việc xác nhận đúng, tính chân thật của dữ liệu, tính bí
mật của dữ liệu là một phần của kiến trúc IPv6.
Không giống nh IPv4 các gói dữ liệu trong IPv6 nói chung không
bị phân mảnh. Nếu sự phân mảnh đợc yêu cầu nó sẽ đợc thực hiện không
phải bằng các bộ định tuyến mà bằng nguồn của các gói dữ liệu. Đối với
một gói dữ liệu bị phân mảnh, Host nguồn sẽ sinh ra một giá trị tự nhận
diện duy nhất.
IPv6 có 128 bits địa chỉ dài hơn bốn lần so với IPv4 nên khả năng theo lý
thuyết có thể cung cấp một không gian địa chỉ lớn hơn nhiều. Đây là không gian
địa chỉ cực lớn với mục đích không chỉ cho Internet mà còn cho tất cả các mạng
máy tính, các hệ thống viễn thông, hệ thống điều khiển và thậm chí còn cả các
vật dụng trong gia đình. Địa chỉ IPv6 đợc phân ra là 3 loại chính nh sau :
1. Unicast Address: Địa chỉ đơn hớng là địa chỉ dùng để nhận dạng
từng nút một (điểm nút là tập các thiết bị chuyển mạch nằm ở trung tâm
Vũ Khoa ĐTTT4 K40 13
Đồ án tốt nghiệp Chơng 1: Giao thức TCP/IP
nh Router chẳng hạn) cụ thể là một gói dữ liệu đợc gửi tới một địa chỉ
đơn hớng sẽ đợc chuyển tới nút mang địa chỉ đơn hớng đó.
2. Anycast Address: Địa chỉ bất kỳ hớng nào. Là địa chỉ dùng để nhận
dạng một tập hợp nút bao gồm nhiều nút khác nhau hợp thành, cụ thể là