Đồ án tốt nghiệp
đầu
Lời nói
LỜI NÓI ĐẦU
Ngày nay việc sử dụng mạng máy tính như một công cụ trong kinh doanh,
thông tin liên lạc, trao đổi dữ liệu, học tập cũng như vui chơi giải trí đã trở nên
rất thông dụng và ngày càng quan trọng đối với con người. Việc giao tiếp và
trao đổi dữ liệu giữa các máy tính trong mạng cục bộ cũng như trên mạng
thông tin toàn cầu Internet hiện nay chủ yếu sử dụng bộ giao thức truyền thông
TCP/IP, hoạt động trên cơ sở của mô hình OSI. Như đã biết, các phiên bản IP
hiện nay tuy đã quá quen thuộc và được dùng rộng rãi trên toàn thế giới nhưng
nó đang bộc lộ một số nhược điểm như không gian địa chỉ hạn hẹp, khả năng
bảo mật không cao và đặc biệt là không hỗ trợ cho các nút (hay các host) có
khả năng di động (hay còn gọi là nút di động). Nút di động có thể là các thiết
bị PDA, laptop, palmtop hay điện thoại di động,... đó là các thiết bị có khả
năng di chuyển từ nơi này đến nơi khác một cách dễ dàng. Mặt khác, nhu cầu
sử dụng các thiết bị này ngày càng tăng do khả năng di động cũng như tính ưu
việt về kích thước của chúng. Như vậy vấn đề đặt ra là cần có một bộ giao
thức thích hợp với sự di chuyển của các nút mạng từ nơi này đến nơi khác
trong khi vẫn duy trì liên lạc được với mạng gốc cũng như với bất kỳ nút nào
muốn liên lạc với chúng mà không phải định lại cấu hình hoặc thay đổi địa chỉ
IP của các nút di động này. IP không hỗ trợ khả năng này đối với nút mạng
thực hiện chức năng di động.
Giao thức Mobile IP được nghiên cứu dựa trên nền tảng của giao thức
TCP/IP kế thừa các ưu điểm khắc phục những nhược điểm cho phù hợp với
tình hình phát triển hiện tại là giao thức cho phép các nút di chuyển trên mạng
mà không thay đổi địa chỉ IP của nút, hay nói cách khác là các nút mạng này
có khả năng kết nối Internet tại bất cứ địa điểm nào trên thế giới. Giao thức
Mobile IP sẽ quy định rõ các thủ tục đăng ký của các nút di động với mạng
gốc, mạng khách cũng như các cơ chế khác có liên quan đến việc di chuyển
của nút trong thời gian kết nối Internet. Trong tương lai bé giao thức Mobile
IP cũng sẽ là một giao thức quan trọng và được sử dụng rộng rãi.
1
Đồ án tốt nghiệp
đầu
Với những lý do trên em đã chọn đề tài:
Mobile IP ” với
Lời nói
“Tổng quan về giao thức truyền thông
mục đích nghiên cứu về vai trò, chức năng và hoạt động của giao
thức Mobile IP trong thông tin liên lạc.
Chương 1 giới thiệu một cách khái quát về mô hình tham chiếu OSI. Đây
là một công cụ rất hữu Ých đối với việc phân tích và nắm vững các hệ truyền
thông dữ liệu. Mô hình OSI rất quan trọng vì tất cả các giao thức truyền thông
đang sử dụng hiện nay (IPX/SPX của NetWare, TCP/IP trên Internet và ngay
cả SNA của IBM) đều có thể được sắp đặt theo các chức năng trong mỗi lớp
của mô hình.
Ngoài ra, chương này còn giới thiệu đôi nét về họ giao thức TCP/IP và các
giao thức có liên ở lớp mạng và lớp giao vận - hai lớp chủ yếu và có liên quan
trực tiếp đến các giao thức được đề cập.
Chương 2 trình bày về giao thức TCP.
Chương 3 trình bày về giao thức TCP. Đây là nền tảng để xây dựng nên
Mobile IP.
Chương 4 giới thiệu đôi nét về giao thức Mobile IP: sù ra đời của một giao
thức mới, mục đích, các yêu cầu cũng như các thuật ngữ mới được sử dụng
trong Mobile IP.
Chương này sẽ cho ta thấy một cái nhìn tổng quát về hoạt động của
Mobile IP từ đó sẽ dẫn đến việc nghiên cứu chi tiết về các thủ tục, cấu trúc các
phần mở rộng trong các bản tin điều khiển và sự kết hợp hoạt động của Mobile
IP với các giao thức khác trong các chương sau.
Chương 5 trình bày về sự phát hiện trạm, sự phối hợp hoạt động của các
thực thể trên mạng gốc cũng như ở mạng ngoài để quá trình trao đổi tin giữa
nút di động và các nút khác được thực hiện một cách thông suốt.
Chương 6 trình bày tổng quan về sự đăng ký; cấu trúc của các bản tin đăng
ký, trả lời đăng ký cũng như hoạt động của các nút di động và các trạm có liên
quan.
Chương 7 nghiên cứu về vấn đề định tuyến các gói tin trên mạng. Việc
nhận gửi các gói tin của nút di động với các nút đang hoạt động trên mạng
hoặc với các nút trên một mạng khác.
Chương 8 nghiên cứu về vấn đề bảo mật trong Mobile IP.
2
Đồ án tốt nghiệp
đầu
Lời nói
Mobile IP là một giao thức khá phức tạp, nó liên quan đến một số giao thức
như TCP, IP, ICMP, DHCP và một số giao thức khác. Trong quá trình nghiên
cứu em đã cố gắng để luận văn tốt nghiệp được hoàn chỉnh song chắc chắn
không tránh khỏi thiếu sót. Vì vậy em rất mong được sự góp ý của Thầy giáo
hướng dẫn, Tiến sỹ Trần Trung Dũng, cũng như các thầy cô và bạn bè trong
bộ môn.
Em xin chân thành cảm ơn Thầy giáo hướng dẫn đã tận tình giúp đỡ em
trong suốt thời gian làm đồ án tốt nghiệp. Em xin bày tỏ sự biết ơn tới các
thầy cô giáo trong khoa và bè bạn đã có những đóng góp quý báu giúp em
hoàn thành tốt đề tài đã lựa chọn.
Hà Nội, tháng 5 năm 2003
Sinh viên Nguyễn Hồng Phong
3
Đồ án tốt nghiệp
dung
Nội
MỤC LỤC
Chương 1. Mở đầu..................................................................................8
1.1 Đặt vấn đề...........................................................................8
1.2 Giải pháp.............................................................................9
Chương 2. Giao thức điều khiển truyền dẫn (TCP).................................12
2.1 Khuôn dạng đoạn TCP (TCP segment)...............................12
2.2 Truyền dữ liệu.....................................................................14
2.3 Độ tin cậy............................................................................15
2.4 Độ ưu tiên và bảo mật.........................................................16
Chương 3. Giao thức Internet (IP)..........................................................17
3.1 Cấu trúc gói IP (IP Datagram)............................................18
3.2 Đơn vị truyền tối đa (MTU)................................................20
3.3 Địa chỉ IP............................................................................21
3.3.1 Các lớp địa chỉ IP ............................................................22
3.3.2 Địa chỉ mạng con ............................................................23
3.3.3 Địa chỉ quảng bá (broadcast) ...........................................24
3.4 Định tuyến cho IP................................................................25
3.4.1 Định tuyến trực tiếp và gián tiếp .....................................25
3.4.2 Bảng định tuyến (table-driven IP routing) .......................25
3.5 IP multicast ........................................................................27
3.5.1 Khái niệm về IP multicast ...............................................27
3.5.2 Địa chỉ IP multicast .........................................................28
3.5.3 Xử lý multicast ................................................................28
Chương 4. Tổng quan về giao thức Mobile IP........................................30
4.1 Các yêu cầu đối với giao thức mới .....................................30
4.2 Các giả định .......................................................................31
4.3 Các thực thể kiến trúc mới .................................................31
4.4 Các thuật ngữ .....................................................................32
4.5 Tổng quan về giao thức mới ...............................................33
4.6 Định dạng bản tin và khả năng mở rộng giao thức .............37
Chương 5. Sự phát hiện trạm .................................................................40
5.1 Sự quảng cáo trạm ..............................................................41
5.1.1 Phần mở rộng bản tin quảng cáo trạm di động ................42
4
Đồ án tốt nghiệp
dung
Nội
5.1.2 Phần mở rộng Prefix-Lengths ..........................................44
5.1.3 Phần mở rộng 1 byte đệm ................................................45
5.2 Sự chiếm trạm ....................................................................45
5.3 Xem xét về trạm ngoài và trạm gốc đối với sự quảng cáo trạm
..................................................................................................46
5.3.1 Các địa chỉ bộ định tuyến được quảng cáo (Advertised
Router Addresses) ....................................................................47
5.3.2 Các số tuần tự và quá trình quay vòng số ........................47
5.4 Xem xét về nút di động ......................................................47
5.4.1 Đăng ký theo yêu cầu ......................................................48
5.4 2 Sự phát hiện di chuyển ....................................................48
5.4.2.1 Thuật toán thứ nhất .......................................................49
5.4 2.2 Thuật toán thứ hai .........................................................49
5.4 3 Sự trở về mạng gốc .........................................................50
5.4.4 Các số tuần tự và quá trình quay vòng số ........................50
Chương 6. Sự đăng ký ...........................................................................51
6.1 Khái quát về sự đăng ký .....................................................51
6.2 Sự nhận thực ......................................................................53
6.3 Cấu trúc bản tin yêu cầu đăng ký .......................................53
6.4 Cấu trúc bản tin trả lời đăng ký ..........................................55
6.5 Các phần mở rộng việc đăng ký .........................................58
6.5.1 Các giá trị phần mở rộng nhận thực tính toán ..................58
6.5.2 Phần mở rộng nhận thực giữa nút di động và trạm gốc ...60
6.5.3 Phần mở rộng nhận thực giữa nút di động và trạm ngoài 60
6.5.4 Phần mở rộng nhận thực giữa trạm ngoài và trạm gốc ....61
6.6 Xem xét về nút di động ......................................................62
6.6.1 Gửi các yêu cầu đăng ký .................................................63
6.6.1.1 Các trường IP ...............................................................63
6.6.1.2 Các trường trong bản tin yêu cầu đăng ký ....................64
6.6.1.3 Các phần mở rộng ........................................................67
6.6.2 Nhận các trả lời đăng ký ..................................................67
6.6.2.1 Kiểm tra tính hợp lệ ......................................................68
6.6.2.2 Yêu cầu đăng ký được chấp nhận .................................69
5
Đồ án tốt nghiệp
dung
Nội
6.6.2.3 Yêu cầu đăng ký bị từ chối ...........................................69
6.6.3 Truyền lại bản tin yêu cầu đăng ký ..................................70
6.7 Xem xét về trạm ngoài .......................................................71
6.7.1 Bảng cấu hình và đăng ký ...............................................72
6.7.2 Nhận các yêu cầu đăng ký ...............................................72
6.7.2.1 Kiểm tra tính hợp lệ ......................................................73
6.7.2.2 Chuyển tiếp một yêu cầu đăng ký hợp lệ đến trạm gốc. 73
6.7.2.3 Từ chối các yêu cầu không hợp lệ ................................74
6.7.3 Nhận các bản tin trả lời đăng ký ......................................75
6.7.3.1 Kiểm tra tính hợp lệ ......................................................75
6.7.3.2 Chuyển tiếp các bản tin trả lời đến nút di động ............76
6.8 Xem xét về trạm gốc ..........................................................77
6.8.1 Các bảng cấu hình và đăng ký .........................................78
6.8.2 Nhận các yêu cầu đăng ký ...............................................78
6.8.2.1 Kiểm tra tính hợp lệ ......................................................78
6.8.2.2 Chấp nhận một yêu cầu hợp lệ .....................................80
6.8.2.3 Từ chối một yêu cầu đăng ký không hợp lệ ..................81
6.8.3 Gửi các bản tin trả lời đăng ký ........................................82
6.8.3.1 Các trường IP/UDP ......................................................82
6.8.3.2 Các trường trong bản tin trả lời đăng ký .......................84
6.8.3.3 Các phần mở rộng ........................................................84
Chương 7. Sự định tuyến .......................................................................86
7.1 Các kiểu đóng gói ...............................................................86
7.2 Định tuyến gói tin unicast ..................................................86
7.2.1 Xem xét về nút di động ...................................................86
7.2.2 Xem xét về trạm ngoài ....................................................88
7.2.3 Xem xét về trạm gốc .......................................................88
7.3 Các gói tin quảng bá ...........................................................90
7.4 Định tuyến gói tin multicast ...............................................90
7.5 Các bộ định tuyến di động ..................................................92
Chương 8. Bảo mật ................................................................................94
8.1 Các mã nhận thực bản tin ...................................................94
8.2 Quản lý khoá ......................................................................94
6
Đồ án tốt nghiệp
dung
Nội
8.3 Chọn lọc các số ngẫu nhiên ................................................95
8.4 Bảo vệ sự tấn công trở lại đối với các bản tin yêu cầu đăng ký
..................................................................................................95
8.4.1 Chống sự tấn công trở lại bằng Timestamps ....................96
8.4.2 Chống sự tấn công trở lại sử dụng các nonces .................97
7
Đồ án tốt nghiệp
đầu
Chương 1. Mở
Chương 1
MỞ ĐẦU
1.1 Đặt vấn đề
Khả năng mở rộng của Internet từ một con số khiêm tốn ban đầu cách đây
khoảng hơn hai mươi năm cho đến nay đã lên đến khoảng 30 triệu nút kết nối
chủ yếu là do sự mạnh mẽ, khả năng mở rộng và khả năng hoạt động liên kết
của giao thức IP phiên bản 4 (IPv4). Khả năng mở rộng phạm vi hoạt động
một cách đột ngột của mạng Internet mà không ảnh hưởng đến việc định tuyến
các gói tin một cách có hiệu quả của nó là một trong những thế mạnh to lớn
nhất của Internet. Điều này thực hiện được nhờ vào các chức năng của IP. Nói
chung một phần địa chỉ IP của nút mạng xác định vị trí vật lý của nó trên
mạng, nó tương tự như mã vùng điện thoại của nơi mà ta muốn quay số đến.
Trong IP, mét host đang hoạt động trên một mạng con (subnet) có thể được
xác định bởi địa chỉ IP của nó, do vậy việc định tuyến gồm có việc gửi các gói
tin theo một hướng chung của mạng con thay cho việc yêu cầu biết chi tiết về
vị trí tất cả các nút. Sự pha trộn giữa việc đánh địa chỉ và việc đinh tuyến làm
cho toàn bộ tỷ lệ mạng trở nên hợp lý nhưng điều này chỉ đúng dựa trên giả
thiết là các nút mạng không chuyển động. Tuy nhiên ngày càng có nhiều người
sử dụng máy tính xách tay, điện thoại di động, các thiết bị PDA (Personal
Digital Assistant) do đó nhu cầu duy trì kết nối với mạng gốc của các thiết bị
trên ngày càng trở nên cấp bách, việc sắp xếp các bit trong trường địa chỉ IP
cho một vị trí vật lý bộc lộ một vấn đề đối với sự truyền thông di động. Khi
một máy tính có khả năng di chuyển không được kết nối vật lý đến mạng gốc
của nó thì IP không đủ khả năng định tuyến các gói tin đến nó một cách chính
xác, điều này có nghĩa là điểm kết nối đến mạng của một nút mạng luôn không
đổi tại mọi thời điểm và một địa chỉ IP chỉ xác định duy nhất một mạng cụ thể.
Để hỗ trợ cho mét host có tính năng di động bằng các phiên bản IP hiện thời
thì mỗi khi một nút di động di chuyển lại phải định lại cấu hình một lần. Giải
pháp này là không khả thi vì nó tiêu tốn rất nhiều thời gian và dễ xảy ra lỗi.
8
Đồ án tốt nghiệp
đầu
Chương 1. Mở
1.2 Giải pháp
Hệ thống Mobile IP diện rộng được triển khai một cách rộng rãi sẽ cho
phép các thuê bao “nay đây mai đó” nối máy tính xách tay của họ vào mạng
trong một phòng hội thảo hoặc tại một quán café mà không cần định lại cấu
hình cho máy tính. Người sử dụng có thể thiết lập và duy trì một phiên hội
thảo video ngay cả khi có sự di chuyển giữa một mạng LAN vô tuyến nội bộ
trong một toà nhà và một mạng dữ liệu vô tuyến diện rộng bên ngoài. Khi đến
làm việc ở một công ty khác, thuê bao cũng có thể nối laptop của anh ta vào
một mạng LAN “khách” và sử dụng việc truy nhập qua mật mã đến công ty
của anh ta để trao đổi dữ liệu, gửi - nhận thư điện tử... một cách an toàn.
Từ những mô tả trước đây ta thấy yêu cầu cơ bản để phát triển Mobile IP
đó là khi mét nút kết nối Internet thay đổi điểm truy cập của nó. Do có sự thay
đổi vị trí vật lý của nút mạng nên cần thiết phải có một sự thay đổi trong địa
chỉ IP của nút mạng đó. Nếu trong một quá trình thông tin liên lạc nút di động
di chuyển đến một mạng con khác, chẳng hạn khi nã di chuyển giữa một mạng
hữu tuyến và một mạng vô tuyến, các nút khác sẽ không thể liên lạc được với
nó nữa. Các gói tin sẽ được chuyển đến mạng gốc của nút di động thông qua
địa chỉ IP gốc của nút đó nhưng chúng không thể đến được nút di động do hiện
tại nó đang kết nối ở một mạng con khác. IP được thiết kế mà không tính đến
khả năng này.
Mặc dù có thể liên lạc được với một nút di động mà nút này thay đổi địa
chỉ IP khi nã di chuyển nhưng rất tốn kém và gặp rất nhiều khó khăn. Chẳng
hạn, mỗi khi nót di động có được địa chỉ IP mới, tất cả các kết nối đã thiết lập
với địa chỉ IP trước đó đều bị hủy bỏ kèm theo đó là sự khởi tạo cho địa chỉ
mới. Trong một số hệ điều hành, chồng giao thức IP như là một bộ phận tích
hợp chủ yếu mà một sự khởi động máy đầy đủ được yêu cầu để thay đổi địa
chỉ IP. Nếu một nút di động di chuyển nhanh chóng trong một môi trường vô
tuyến có kích thước các tế bào bé, địa chỉ IP mạng con có thể thay đổi thường
xuyên như khi nót di động di chuyển giữa các trạm gốc hoặc giữa các nhà
cung cấp dịch vụ.
Mobile IP là một giao thức Internet mới được giới thiệu, được thiết kế để
hỗ trợ tính năng di chuyển của một người sử dụng (hoặc một host). Tính năng
di chuyển của host là rất quan trọng do khả năng của các máy tính xách tay
9
Đồ án tốt nghiệp
đầu
Chương 1. Mở
trong thời gian gần đây và ước mơ to lớn của con người là duy trì việc kết nối
mạng ở bất cứ nơi đâu họ đến. Mobile IP cung cấp khả năng cho mét host luôn
duy trì được kết nối Internet mà không cần quan tâm đến vị trí hiện thời của
host. Giao thức Mobile IP có khả năng theo dõi một host di động mà không
cần thiết phải thay đổi địa chỉ IP dài dòng của host đó.
Bảng dưới đây là cái nhìn đơn giản hoá về chồng giao thức của tổ chức tiêu
chuẩn quốc tế (ISO) khi nó được ứng dụng vào mạng Internet. Mobile IP xử lý
tính di chuyển tại lớp mạng và không bị ảnh hưởng khi ra vào các lớp cao hơn
trong khi vẫn tồn tại cơ sở hạ tầng định tuyến vốn có, vẫn tiếp tục sử dụng các
host cố định và các ứng dụng hiện thời vẫn không thay đổi.
Lớp ứng dụng
Lớp trình diễn
Lớp phiên
Líp giao vận
Lớp mạng
Networking Layers
HTTP, NFS, SNMP, DNS, Telnet, FTP,...
TCP, UDP, RTP
IP, ICMP, IGMP, IPSec, Mobile IP ...
(IPX, Appletalk)
Lớp liên kết dữ liệu IEEE 802.*, PPP
Lớp vật lý
Network adapter
Mobile IP cho phép một nút di động duy trì cùng một địa chỉ IP (địa chỉ
mạng gốc của thiết bị) bất cứ ở đâu mà nó nối đến mạng. (Rõ ràng là một nút
với một địa chỉ IP nối vào một mạng con khác thông thường sẽ không kết nối
được). Tuy nhiên, nút di động có một địa chỉ care-of (được giải thích trong
chương sau) mà địa chỉ này có liên quan đến mạng con, nơi mà nút di động
tạm thời cư trú. Địa chỉ care-of được quản lý bởi một trạm gốc, đó là một thiết
bị nằm trên mạng con của mạng gốc của nút di động. Bất kỳ một gói tin nào có
địa chỉ đến địa chỉ IP của nút di động đều bị chặn lại bởi trạm gốc và sau đó
được chuyển tiếp đến địa chỉ care-of bởi cơ chế đường hầm (tunnel). Mỗi khi
gãi tin chuyển đến phía cuối đường hầm, nó được phân phối đến nút di động.
Nút di động thường sử dụng địa chỉ mạng gốc của nó như là địa chỉ nguồn của
tất cả các gói tin mà nó gửi đi.
10
Đồ án tốt nghiệp
đầu
Chương 1. Mở
Mobile IP còn có thể giúp đỡ giải quyết các vấn đề thiếu địa chỉ và giảm
khối lượng công việc quản trị bởi vì mỗi một thiết bị cần nối mạng tại nhiều vị
trí khác nhau yêu cầu một địa chỉ IP duy nhất.
11
Đồ án tốt nghiệp
thức TCP
Chương 2. Giao
Chương 2
GIAO THỨC ĐIỀU KHIỂN TRUYỀN DẪN
(TRANSMISSION
CONTROL PROTOCOL)
TCP được dùng như là một giao thức có độ tin cậy cao nối kết theo kiểu
trạm-trạm (host-host) trong một mạng hoặc một hệ thống mạng máy tính
chuyển mạch gói (packet-switched). TCP là một giao thức hướng liên kết
(connection-oriented), và có độ tin cậy cao.
2.1 Khuôn dạng đoạn TCP (TCP segment)
Đơn vị dữ liệu sử dụng trong TCP được gọi là đoạn (segment) có khuôn
dạng được mô tả như sau:
0
1
2
3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Port
|
Destination Port
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Sequence Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Acknowledgment Number
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
|U|A|P|R|S|F|
|
| Offset| Reserved |R|C|S|S|Y|I|
Window
|
|
|
|G|K|H|T|N|N|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Checksum
|
Urgent Pointer
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Options
| Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
data
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Trong đó:
-
Source Port (16 bits): số hiệu cổng của trạm nguồn.
-
Destination Port (16 bits): số hiệu cổng của trạm đích.
-
Sequence number (32 bits): số hiệu tuần tự, số hiệu của byte đầu tiên
của segment trừ khi bit SYN được thiếp lập. Nếu bit SYN được thiết
12
Đồ án tốt nghiệp
thức TCP
Chương 2. Giao
lập thì Sequence number là số hiệu tuần tự khởi đầu (ISN) và byte dữ
liệu đầu tiên là ISN+1.
-
Acknowledgement number (32 bits): số hiệu của đoạn tiếp theo mà
trạm nguồn đang chờ để nhận. Ngầm ý báo nhận tốt các đoạn mà trạm
đích đã gửi cho trạm nguồn.
-
Data offset (4 bits): số lượng words trong TCP header (tham số này chỉ
ra vị trí bắt đầu của vùng dữ liệu).
-
Reserved (6 bits): dành để dùng trong tương lai.
-
Flags (6 bits): chứa các bits điều khiển, cụ thể là:
Cờ URG: vùng con trỏ khẩn có hiệu lực
Cờ ACK: vùng báo nhận có hiệu lực
Cờ PSH: chức năng PUSH
Cờ RST: khởi động lại liên kết
Cờ SYN: đồng bộ hoá các số hiệu tuần tự
Cờ FIN: không còn dữ liệu từ trạm nguồn
-
Window (16 bits): cấp phát credit để kiểm soát luồng sữ liệu (cơ chế
cửa sổ). Đây chính là số lượng các byte dữ liệu, bắt đầu từ byte được
chỉ ra trong vùng ACK number, mà trạm nguồn đã sẵn sàng để nhận.
-
Checksum (16 bits): mã kiểm soát lỗi (theo phương phá CRC) cho toàn
bộ segment.
-
Urgent Pointer (16 bits): là con trỏ trỏ tới số hiệu tuần tự của byte đi
theo sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu
khẩn. Vùng này chỉ có hiệu lực khi bit URG được thiết lập.
-
Options (có độ dài thay đổi): khai báo các options của TCP, trong đó có
độ dài tối đa của vùng TCP data trong mét segment.
-
Padding (có độ dài thay đổi): phần đệm thêm vào phần tiêu đề để bảo
đảm phần tiêu đề luôn kết thúc ở một mốc 32 bits. Phần bù này gồm
toàn số 0.
-
TCP data (có độ dài thay đổi): chứa dữ liệu của tầng trên, có độ dài tối
đa ngầm định là 536 bytes. Giá trị này có thể điều chỉnh bằng cách khai
báo trong vùng options
13
Đồ án tốt nghiệp
thức TCP
Chương 2. Giao
Một tiến trình ứng dụng trong mét host truy nhập vào các dịch vụ của TCP
cung cấp thông qua một cổng (port) như hình vẽ sau:
userprocess
userprocess
TCP
IP
NAP
TCP
IP
NAP
host
host
Internet
Một cổng kết hợp với một địa chỉ IP tạo thành một socket duy nhất trong
Internet. Dịch cụ TCP được cung cấp nhờ một liên kết lôgic giữa một cặp
socket. Mét socket có thể tham gia nhiều liên kết với các socket ở xa khác
nhau. Trước khi truyền dữ liệu giữa 2 trạm cần phải thiết lập một liên kết TCP
giữa chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết sẽ được giải
phóng.
2.2 Truyền dữ liệu
Quá trình truyền dữ liệu được thực hiện bởi gọi tiến trình TCP và chuyển
cho nó dữ liệu cần phải truyền đi. TCP sẽ gói các dữ liệu này thành nhiều đoạn
(segment) và gọi giao thức ở tầng mạng như là IP để truyền dữ liệu đi tới đích.
Tại bên nhận, các đoạn được đặt vào trong bộ nhớ của tiến trình nhận. Nhờ
vào các thông tin điều khiển bên trong các đoạn, mà bên nhận có thể xắp đúng
thứ tự của các đoạn. Trong mạng Internet, giao thức TCP kết hợp với giao
thức IP để truyền dữ liệu. Khi đó giao thức IP sẽ gói các đoạn của TCP thành
các gói tin và gửi các gói tin này tới trạm đích hoặc tới gateway. Tại gateway,
gãi tin được "bóc ra" để phân tích xem nó được gửi đến địa chỉ nào. Sau đó nó
lại được bọc lại thành các gói tin với những thông tin tương ứng với mạng mà
nó sẽ tiếp tục đi qua. Nó sẽ được gửi đi tới gateway mới hay tới trạm đích.
Gateway cho phép có thể chia nhỏ gói tin Internet thành các phân đoạn
14
Đồ án tốt nghiệp
thức TCP
Chương 2. Giao
(fragment) để nó có thể chuyển qua mạng tiếp theo có kích thước gói tin nhỏ
hơn. Các gói tin Internet có chứa các thông tin cần thiết để cho phép nối lại các
phân đoạn đó thành một gói tin Internet. Tại đích, giao thức trên tầng mạng sẽ
bóc các gói tin và chuyển nó lên trên tầng TCP.
TCP truyền dữ liệu đi theo một dòng (stream) các byte. Dữ liệu sẽ được đặt
trong một bộ đệm (buffer) và TCP sẽ truyền dữ liệu này đi khi thuận tiện. Có
một cơ chế cho phép người dùng có thể buộc TCP truyền dữ liệu đi ngay cả
khi bộ đệm chưa đầy, đó là dùng chức năng PUSH. Khi nhận được đoạn với
cờ PUSH, TCP sẽ phải gửi ngay đoạn này đi. Khi dữ liệu với cờ PUSH tới bộ
đệm của bên nhận, bộ đệm này sẽ được chuyển cho tiến trình trên ngay cả khi
nó chưa đầy.
TCP còng cung cấp một phương tiện để thông báo cho bên nhận biết khi có
dữ liệu khẩn. Khi đó bên nhận cần thiết phải thực hiện một số hành động xử lý
để dữ liệu khẩn một cách nhanh chóng.
2.3 Độ tin cậy
TCP là một giao thức có độ tin cậy cao. Nó có thể khôi phục được dữ liệu
bị mất, bị hỏng, bị trùng lặp hay không đúng thứ tự gây ra bởi các hoạt động
của tầng dưới. Để làm được điều này, TCP gán một số hiệu tuần tự (sequence
number) cho mỗi byte được truyền đi và yêu cầu một báo hiệu (ACK) đã nhận
được từ bên nhận. Số hiệu tuần tự của byte dữ liệu đầu tiên được gọi là số hiệu
tuần tự đoạn và được đặt vào trong phần tiêu đề của đoạn. Trong phần header
của đoạn cũng chứa một trường gọi là trường báo nhận (acknowledgement),
chính là số hiệu tuần tự của byte tiếp theo đang được đợi nhận (theo chiều
ngược lại).
Khi truyền một đoạn, TCP sẽ sao chép đoạn này và đặt nó vào trong một
hàng đợi và khởi tạo bộ đếm thời gian (timer). Nếu báo hiệu ACK không nhận
được sau một khoảng thời gian timeout nào đó, đoạn sẽ được truyền lại,
trường hợp ngược lại, nếu báo hiệu ACK nhận được đoạn sẽ được xóa đi từ
hàng đợi. Tại bên nhận, các số hiệu tuần tự được dùng để sắp xếp lại các đoạn
đã nhận được. Các đoạn này có thể bị trùng lặp hoặc không đúng thứ tự trong
quá trình truyền. Các đoạn hỏng sẽ được phát hiện bằng việc kiểm tra mã
checksum tại bên nhận TCP, các đoạn bị hỏng sẽ được xóa đi.
15
Đồ án tốt nghiệp
thức TCP
Chương 2. Giao
TCP cung cấp một phương tiện cho phép bên nhận có thể điều khiển số có
thể gửi từ bên gửi bằng cơ chế cửa sổ (window). Mọi báo hiệu ACK sẽ chỉ ra
khoảng số hiệu tuần tự chấp nhận được kể từ đoạn cuối cùng được nhận. Cửa
sổ chỉ ra sè byte cho phép mà bên gửi có thể truyền đi.
2.4 Độ ưu tiên và bảo mật
Người dùng có thể chỉ ra độ ưu tiên và bảo mật khi dùng TCP. Có một giá
trị ngầm định các giá trị này khi các giá trị này không được chỉ ra. TCP dùng
các trường kiểu dịch vụ và lựa chọn bảo mật để lưu các giá trị này. Tuy nhiên
không phải tất cả các cài đặt TCP trong thực tế đều xử lý hết các mức ưu tiên
và bảo mật.
Như vậy, ta thấy rằng giao thức IP rất hiệu quả ở chỗ nó không quan tâm
đến giao thức cụ thể của các mạng khác nhau mà nó đi qua (ví dụ X25, Frame
Relay), với IP các mạng chỉ đơn thuần là đường dẫn giữa các bộ định tuyến.
Còn giao thức TCP lại có độ tin cậy cao, vì vậy người sử dụng muốn truyền
các gói tin một cách chắc chắn và có thông váo lỗi phải dùng giao thức TCP
hỗ trợ cho IP.
Tóm lại, với sự kết hợp giữa hai giao thức TCP và IP, người dùng đã sử
dụng được các dịch vụ trao đổi trên Internet một cách hiệu quả.
16
Đồ án tốt nghiệp
Giao thức IP
Chương 3.
Chương 3
GIAO THỨC INTERNET (INTERNET
PROTOCOL)
Giao thức IP là giao thức chuyển tải các gói tin qua mạng chuyển mạch gói
và hoạt động tại tầng thứ 3 (tầng mạng) trong mô hình tham chiếu OSI. IP là
giao thức không liên kết (connectionless), nghĩa là không có sự đảm bảo rằng
các gói tin gửi đi sẽ đến được tới đích của nó. Giao thức IP là một giao thức rất
hiệu quả và được sử dụng nhiều trong các chương trình ứng dụng.
Giao thức IP được thiết kế để dùng trong các hệ thống các mạng máy tính
truyền thông chuyển mạch gói (packet-switched). Giao thức IP truyền các khối
dữ liệu từ một nguồn tới một đích trong đó nguồn và đích là các trạm máy tính
được nhận dạng thông qua các địa chỉ có độ dài cố định. Giao thức IP ngoài
chức năng định tuyến, chức năng quan trọng nhất trên tầng mạng, giao thức IP
còn có khả năng tìm lỗi, cho phép việc phân đoạn và lắp ráp lại các gói tin IP
có độ dài lớn để các gói tin này có thể được truyền qua các mạng máy tính có
đơn vị gói tin nhá.
Giao thức IP chỉ giới hạn trong việc cung cấp các chức năng cần thiết
nhằm truyền các gói tin từ nguồn tới đích trên một hệ thống mạng. Không có
cơ chế cho độ tin cậy, điều khiển luồng (flow control), đánh số thứ tự
(sequencing) hay cơ chế truyền lại dữ liệu. Không có cơ chế báo nhận, không
có kiểm tra dữ liệu mà chỉ có kiểm tra phần tiêu đề (header) thông qua mã
kiểm tra checksum. Các lỗi tìm được được thông báo thông qua giao thức
thông báo điều khiển liên mạng ICMP (Internet Control Message Protocol).
Giao thức IP gọi các giao thức ở tầng thứ hai, tầng liên kết dữ liệu (Data
Link Layer), để mang các gói tin IP tới gateway hoặc tới trạm đích. Đồng thời
nó cũng bị gọi bởi giao thức ở tầng bốn, tầng giao vận như giao thức TCP để
truyền các đoạn dữ liệu của giao thức đó tới trạm đích. Giao thức ở tầng trên
như TCP sẽ cung cấp các thông tin về địa chỉ cho giao thức IP thông qua các
tham số của lời gọi. Giao thức IP sau đó sẽ tạo ra các gói tin IP, ra quyết định
17
Đồ án tốt nghiệp
Giao thức IP
Chương 3.
định tuyến và gọi các giao thức mạng ở tầng dưới để mang các gói tin IP này
đi tới gateway hoặc tới trạm đích.
3.1 Cấu trúc của gói IP (IP Datagram)
Một đơn vị dữ liệu của giao thức IP gọi là một gói. Cấu trúc của một gói
gồm hai phần, phần tiêu đề (header) và phần dữ liệu (data).
0
1
2
3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service|
Total Length
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Identification
|Flags|
Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol |
Header Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Destination Address
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
TCP header, then your data ......
|
|
|
Trong đó:
- Trường Version (phiên bản): gồm 4 bit, chứa đựng phiên bản của giao
thức IP được dùng trong gãi tin. Trường này được dùng để kiểm tra
xem bên nhận, bên gửi, gateway trung gian có chấp nhận cấu trúc của
gói tin hay không.
- Trường Length (độ dài): gồm 4 bit chỉ ra độ dài của phần tiêu đề của gói
tin tính theo đơn vị số từ 32 bit. Thông thường độ dài của phần tiêu đề
là 20 bytes. Phần tiêu đề có độ dài tối thiểu là 5 từ 32 bit.
- Trường Total Length (tổng độ dài): gồm 16 bit, cho độ dài của một gói
tin tính bằng số byte, bao gồm cả độ dài của phần tiêu đề và phần dữ
liệu.
- Trường Type of Service (kiểu dịch vụ): gồm có 8 bit, đưa ra các thông số
chỉ định chất lượng dịch vụ mong muốn (chỉ ra cách thức mà một gói
tin được xử lý). Các thông số này đước sử dụng để hướng dẫn việc
chọn lựa các thông số dịch vụ thực tế khi truyền một gói tin qua một
mạng riêng biệt.
Các bit 0-2: mức ưu tiên.
18
Đồ án tốt nghiệp
Giao thức IP
Chương 3.
Bit 3: 0 = trễ thông thường, 1 = trễ chậm.
Bit 4: 0 = thông lượng thông thường, 1= thông lượng cao.
19
Đồ án tốt nghiệp
Giao thức IP
Chương 3.
Bit 5: 0 = mức tin cậy thông thường, 1 = mức tin cậy cao.
Bit 6-7: dự trữ để sử dụng trong tương lai.
- Trường Identification (nhận dạng): chứa tên duy nhất của gói tin được
sao chép vào trong phần tiêu đề của phân đoạn. Bên nhận sẽ dùng
trường này và địa chỉ nguồn để nhận biết được phân đoạn thuộc vÒ gãi
tin nào. Bên gửi dùng bộ đếm để đảm bảo một nhận dạng duy nhất cho
mỗi gói tin. Bộ đếm sẽ được tăng lên một sau mỗi lần tạo một gói tin và
gán vào trong trường Identification của gói tin.
- Trường Fragment Offset: chỉ ra vị trí của phần dữ liệu chứa trong phân
đoạn trong phần dữ liệu của gói tin. Khoảng cách được tính từ vị trí 0
và tính theo đơn vị 8 byte.
- Trường Flags (cờ): hai bit thấp trong trường Flags liên quan đến việc
phân đoạn. Bit thứ nhất chỉ ra liệu gói tin có thể được phân đoạn hay
không. Khi bit này được thiết lập thì gói tin không thể bị phân đoạn.
Gateway, nếu cần phải phân đoạn gói tin để gửi đi, khi gặp bit này sẽ
trả về một thông báo lỗi cho bên gửi. Bit tiếp theo chỉ ra phân đoạn
chứa dữ liệu thuộc về phần giữa trong gãi tin hay là phần cuối cùng
trong gãi tin. Khi bit này được thiết lập có nghĩa là dữ liệu chứa trong
nó thuộc về dữ liệu ở giữa gói tin, còn không thì là dữ liệu cuối cùng
trong gãi tin. Khi nhận được phân đoạn với bit này bằng không, bên
nhận có thể biết được là nó đã nhận được hết các phân đoạn của gói tin.
- Trường TTL (thời gian sống): chỉ ra số đơn vị tính bằng giây một gói tin
có thể tồn tại trong mạng. Khi gửi một gói tin đi, bên gửi sẽ gán giá trị
này trong mỗi gói tin. Gateway và các trạm xử lý gãi tin sẽ giảm trường
TTL (Time-to-Live) đi một số thời gian và sẽ loại bỏ gói tin khi giá trị
của trường này bằng 0. Để đơn giản, gateway sẽ giảm trường TTL đi 1
đơn vị mỗi khi nó xử lý một tiêu đề của gói tin. Ngoài ra để xử lý
trường hợp có trễ tại gateway, khi nhận một gói tin nó sẽ ghi lại thời
điểm nhận và khi chuyển gói tin đi nó sẽ ghi lại thời điểm gửi. Gateway
sẽ trừ trường TTL đi một giá trị bằng thời gian mà gói tin này ở lại
trong gateway.
Khi trường TTL bằng không, gateway sẽ loại bỏ gói tin và gửi thông
báo lỗi về cho bên gửi. Việc dùng TTL cho phép loại trừ khả năng một
20
- Xem thêm -