Tải bản đầy đủ (.doc) (21 trang)

NGHIÊN cứu nâng cao hệ thống security trong hệ điều hành mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (333.07 KB, 21 trang )

Học viện KTQS
Bộ môn CNM-BĐ
Khoa CNTT
đề cơng chi tiết
đề tài nghiên cứu khoa học

1.Tên đề tài :NGHIÊN CứU nâng cao hệ thống security
trong hệ điều hành mã nguồn mở
2.Mã số:
3.Cấp quản lí : Học viện KTQS
Lĩnh vực : Công nghệ thông tin
Cơ quan ch quản: bộ môn CNM-BĐ
Cơ quan chủ trì : Lớp Ôtô _ k42
Chủ nhiệm đề tài : Học viên Nguyễn Thành Đồng
4.Tính cấp thiết của đề tài :
Ngày nay mạng máy tính ngày nay trở thành một công cụ không thể
thiếu đợc trong mọi lĩnh vực đời sống xã hội từ kinh tế ,thơng mại ,khoa học
kỹ thuật ,đặc biệt trong lĩnh vực an ninh quốc phòng thời đại công nghiệp
hoá ,hiện đại hoá với các vũ khí hiện đại đợc điều khiển từ xa.Mạng máy tính
giúp mọi ngời trao đổi thông tin mọi lúc mọi nơI ở cách địa điểm cách xa
nhau. Mạng máy tính có vai trò rất quan trong trong cuộc sống hiện đại cũng
nh đối với nền quốc phòng toàn dân . Hệ điều hành và các giao thức mạng có
vai trò quan trọng trong hệ thống mạng cung nh độ an toàn của mạng. Trong
cuộc chiến tranh tơng lai ,thì cuộc chiến tranh trên mạng diễn ra vô cùng gay
go quyết liệt . Vì vậy chúng ta phải nghiên cứu và tiến tới làm chủ các hoạt
động của mạng cũng nh nghiên cứu làm sao để xây dựng đợc giao thức đảm
bảo an toàn để phục vụ cho nền quốc phòng . Đảm bảo mọi sự xâm phạm
đều bị chặn lại giữ gìn an ninh quốc gia.
Qua việc nghiên cứu các hệ điều hành ,các hoạt động của hệ điều hành đều
đợc điều khiển bởi các hệ nhân (Kernel) đợc hiển là thành phần phần mềm
điểu khiển trực tiếp tài nguyên phần cứng chạy các hoạt động của hệ thống.


Các hoạt động mạng cũng đợc xử lý bởi hệ nhân mà ngời sử dụng không biết
các hoạt động của hệ nhân. Trong hệ điều hành quen thuộc nh Windows thì
hệ nhân đã biên dịch thành các mã thực thi mà hệ điều hành do các công ty
của Mỹ viết . Vì vậy không thể dám chắc là không có các đoạn mã gián điệp
trong đó. Do vậy việc giữ gìn bí mật không tốt ,có thể bị lộ các thông tin
quan trong ,nhất là trong quốc phong và an ninh quốc gia. Vì vậy mục tiêu
đề ra chúng ta xây dựng hệ thống mạng đảm bảo tin cậy cho nền quốc phòng
,tránh mọi xâm nhập vào hệ thống mạng quân sự ,đảm bảo sự tin cậy.
Với sự ra đời của hệ điều hành mã nguồn mở cùng sự phát triển mạnh mẽ
cho đến thời điểm này nó có tính ổn định cao ,thích hợp nhiều phàn cứng ,hỗ
trợ tính năng mạng .. Đặc biệt tất cả mã nguồn của hệ điều hành đều dạng
mở cho phép ta hiểu biêt sâu sắc các quá trình xảy ra trong hệ thống.


Vì tính chất của an ninh quốc phòng nên hệ điều hành Linux đặc biết đợc
quan tâm . Nó cho phép ta có thể làm chủ mọi hoạt động có can thiệp vào hệ
thống . Trong điều kiện các hoạt động quân sự nớc ta hiện nay rất cần mạng
máy tính có độ ổn định cao tính bảo mật cao . Nó là yêu cầu rất cấp bách!
Với mục đích dựa trên các giao thức có sẵn ta tìm ra các u nhợc điểm của
chúng và phát triển một giao thức nào đó một cách hoàn chỉnh áp dụng cho
mạng an ninh quốc phòng của quân đội.
5.Mục tiêu của đề tài :
Giúp moi ngời có cáI nhìn tổng quan về hệ điều hành linux ,các cách thức
truy cập dữ liệu ,các phơng thức giao tiếp về mạng máy tính để từ đó moi ngời đặc biệt là các bạn sinh viên công nghệ thông tin có dịp củng cố kiến
thức ,đa ra cáI nhìn tổng quát về kỹ thuật bảo mật trong hệ diều hành linux
Thông thơng các tiết học trên lớp cha cung cấp đủ các kiến thức mà trên
thực tế làm việc đòi hỏi do vây đề tài nghiên cứu này căn cứ trên nhng dữ
liệu thực tế kết hợp với các lí thyết sẽ đáp ng thêm phần nào nhu cầu tìm tòi
của sinh viên ,đồng thời giúp cho tài liệu nghiên cứu về vấn đề này thêm
phong phú.

Nhiệm vụ nghiên cứu :
-Nghiên cứu chọn lọc ,tiếp thu các thành tựu của khoa học và công
nghệ cũng nh các thành tựu của các nghiên cứu trớc đó trong quá trình thực
hiện đề tài
- Khảo sát cấu trúc vè hệ điều hành mã nguồn mở,tiêu biểu nh
LINUX
- Các cách liên kết mạng máy tính
6.Căn cứ lí luận và thc tiễn :
Dự vào các tài liệu nghiên cứu có liên quan và yêu cầu thực tiễn đặt ra
Phơng pháp nghiên cứu của đề tài :
-Đề tài áp dụng nhiều phớng pháp nghiên cứu lí thuyết và thực tiễn
-Nghiên cứu các tài liệu đI trớc từ đó rút ra nhng hạnh chế
-Xin y kiến của giáo viên bộ môn và các đồng nghiệp để đạt kết
quả cao nhất tcho đề tài
7. ý nghĩa của đề tài :
-Góp phần nâng cao kiến thức về bảo mật thông tin trong hệ điều hành linũ
cho moi ngời . Đồng thời góp phần đáp ứng đợc yêu cầu thực tiễn là đòi hỏi
nhng biện pháp bảo mật thông tin ngày một cao
Chơng I : Tổng quan về hệ điều hành mã nguồn mở
I.giới thiệu về hệ điều hành linux
Vo nm 1991, Linus Torvald, chng sinh viờn nm 2 trng i hc
Helsinki, Phn Lan, thot u ch vi ý ngh l vui ựa ó cú ý tng
l phỏt trin 1 h iu hnh cho phộp mi ngi cú th cựng tham
gia phỏt trin chung vi mỡnh (Tụi ngh anh chng ny ban u cú
ý mun lt Microsoft, nhng sc mỡnh thỡ khụng ni nờn ó rt
thụng minh ngh n vic cng tỏc cựng vi cng ng th gii v
lm c iu ú, anh ó cụng b mó ngun ca mỡnh cho mi
ngi v mong mun mi ngi cú th úng gúp ý kin, phỏt hin li



và phát triển nó ngày càng tốt hơn). Công việc đơn giản nhưng đã
làm nên điều kì diệu, vào năm đó cộng động lập trình viên trên thế
giới trên hệ thống mạng thông tin newsnet đã nhận được 1 thông
điệp từ Linus Torvald như sau :”Hiện nay tui đang phát triển 1 hệ điều
hành mô phỏng nền Unix cho phép mọi người có thể sửa đổi riêng
theo ý mình, chỉ với ý thích cá nhân, chứ không vì mục đích sinh lợi,
tôi sẽ rất biết ơn cho mọi sự đóng góp và góp ý của mọi người”.
Ngày nay, sau khi trải qua 1 thời gian rất dài phát triển và hoàn thiện
bởi cộng đồng thế giới, Linux ngày càng trở nên mạnh mẽ, ổn định
và độ tin cậy cao, và được chọn để sử dụng trong các cơ quan chính
phủ các nước, các nước như Trung Quốc, Nhật Bản đều cũng đã có
kế họach phát triển riêng Linux cho đất nước của họ. Qua đọan văn
trên chúng ta có chút ý niệm về quá trình phát triển của Linux, nhưng
tôi vẫn chưa nói đến Linux là gì ?
Linux là gì ?
Linux là phần nhân, phần lõi (kernel) của hệ điều hành -> Hệ điều
hành là gì ? thì các bạn có thể lấy Windows 98, 2000 của Microsoft
làm 1 ví dụ. Hệ điều hành về bản chất cũng là 1 phần mềm trên máy
tính, nhưng ở cấp độ hệ thống, quản lý bộ nhớ và việc thực hiện các
chương trình, quản lý các thiết bị của máy tính và cung cấp 1 số dịch
vụ và phần mềm cơ bản cho máy tính, các bạn có thể hình dung rằng
là nếu không có 1 hệ điều hành thì bạn chẳng thể làm được gì với
máy tính, không thể viết chương trình được, chẳng thể chạy được
nốt các phần mềm ứng dụng như Word, Photoshop .v.v... và tức
nhiên là các game nữa ... và phần nhân phần lõi của hệ điều hành là
phần chính yếu để:
v.v...Thế nhưng phần nhân thiếu đi các dịch vụ căn bản và các phần
mềm ứng dụng.
II.CÊu tróc cña hÖ ®iÒu hµnh linux
A. Hệ điều hành Linux gồm 4 hệ thống con chính sau :



User Application
O/S Services
Linux Kernel
Harware Controllers

User Application : Tập các trình ứng dụng của hệ điều hành
O/S Services : Các dịch vụ đặc trng cơ bản của hệ điều hành ,nó tạo ra
giao tiếp giữa các chơng trình và hệ nhân(Kernel).
Linux Kernel : Đây là nhân của hệ điều hành là những thành phần
phần mềm mà có khả năng điều khiển trực tiếp phần cứng và toàn bộ
hoạt động của hệ thống.
Hardware Controllers : Bao gồm tất cả các thiết bị vật lý của hệ thống
máy tính : CPU,bộ nhớ ,đĩa cứng ,thiết bị mạng..
Các lớp chỉ giao tiếp với lớp cận kề với nó các lớp bên trên phụ thuộc vào
lớp bên dới . Các chơng trình không thể nhập trực tiếp phần cứng mà phảI
thông qua sự điều khiển của Kernel . Tất cả các hoạt động của hệ điều
hành đều đợc điều khiển bởi Kernel . Vì vậy ta nghiên cứu hệ nhân chính
là nghiên cứu hệ điều hành.
B. Linux Kernel bao gồm 5 hệ thống con chính sau :
1.
2.
3.
4.
5.

Bộ phân thời cho tiến trình (Process Scheduler - SCHED)
Bộ quản lý bộ nhớ (Memory Manager - MM)
Hệ thống File ảo (Virtual File System - VFS)

Giao diện mạng (Network Interface - NET)
Bộ truyền thông nội bộ (Inter Process Communication - IPC)

C. Cấu trúc dữ liệu dùng trong hệ điều hành Linux :
H iu hnh Linux hot ng nh vo cỏc d liu ny
1. Task list (Danh sỏch tỏc v)
SCHED lu 1 b d liu cho mi tin trỡnh ang hot ng. Cỏc b d liu


ny lm thnh 1 danh sỏch liờn kt gi l danh sỏch tỏc v. SCHED cũn cú 1
con tr current ch tỏc v no ang active. Theo tụi ngh thỡ cỏc d liu
ny phi cú cỏc giỏ tr ca cỏc thanh ghi ca process ú ngay lỳc nú b
switch. Khi mt tin trỡnh c active tr phi SCHED s khụi phc cỏc giỏ
tr ny.
2. Memory map(nh x b nh)
Nh gii thớch trờn MM cn 1 ỏnh x t b nh vt lý cho b nh o 4G
ca mi tin trỡnh. Ngoi ra cũn cỏc thụng tin ch cỏch ly v thay cho
tng trang c th. Tt c cỏc thụng tin ny cha trong memory map v
memory map c cha trong trong task list.
3. I-nodes
VFS dựng i-nodes nh v cỏc file. Cu trỳc d liu i-nodes dựng ỏnh
x cỏc file block thnh cỏc a ch vt lý trng hp a cng v a mm
l cỏc sector, cyclinder v head.
4. Data connection
Mụ t network connection ang m
Tt c cỏc cu trỳc d liu ny u bt ngun t task list. Mi 1 process cú
mt con tr ch ti cu trỳc memory map, 1 con tr ch ti danh sỏch cỏc inode ca cỏc file ang m cho riờng process ú, v 1 con tr ch ti danh
sỏch cỏc data connection cho tt c cỏc network connection ang m.
III. Xử lý truy cập đồng thời của hệ điều hành Linux
Xử lý truy cập đồng thời là rất quan trọng nhất là trên máy có nhiều bộ vi xử

lý . Bởi vì nhiều lúc là trong Kernel sẽ gặp nhiều tình huống khi mà các đoạn
mã có thể ghi đè dữ liệu lên nhau và gây ra những lỗi nghiêm trọng. Ví dụ
giả sử có hai softirq A và B chạy trên hai CPU cùng đọc một giá trị x là biến
toàn cục của Kernel . A tăng x lên 1 , B giảm x đi 2 thì vấn đề gì sẽ xảy ra ?
Thời điểm
T1
T2
T3
T4

A
A đọc x(3)
Tăng x lên 1

B
Đọc x(3)
Giảm x đi 2

Kết quả
X=3
X=3
X=4
X=1

Trong xử lý mạng là mỗi thiết bị Ethernet đều có một vùng nhớ tx_ring , đó
là vùng nhớ bị giới hạn chứa các gói để đẩy ra đờng truyền vật lý ,nếu không
dùng một biện pháp khoá thì khi một CPU gọi hàm hard_start_xmit() của
một thiết bị mà cha đợc trả về thì CPU khác đã gọi hàm hard_start_xmit()



của một thiết bị cha đợc trả về thì CPU khác đã gọi hàm này. Nếu tx_ring đã
đầy gây ra hiên tợng ghi đè dữ liệu và gây lên lỗi nghiêm trọng.
Để giảI quyết vấn đề này Kernel đã sử dụng khoá để giảI quyết vấn đè này :
Khoá vòng spinlock : là khóa đơn chỉ có một tiến trình duy nhất
giữa một spinlock. Tiến trình giành spinlock đến khi có thể.
Khoá bằng cờ hiệu Semaphore : có thể có nhiều tiến trình . Nếu
tiến trình không nhận Semaphore tự động đặt lên hàng đợi và đợc đánh thức khi Semaphore đợc giảI phóng và CPU có thể làm
một số công việc khác trong tiến trình .
Vấn đề xử lý truy cập đồng thời rất phức tạp khi gặp các hiện tợng khoá chết
(dead lock ) và Linux kernel đã có giảI thuật tối u để xử lý hiện tợng này :
a. Hồi phục bằng cách chiếm tiên cơ.
b. Hồi phục bằng cách quay lại (RollBack)
c. Hồi phục bằng cách xóa (Killing) các tiến trình
IV. giao diện System Call
Các tiến trình không thể truy cập trực tiếp vào các thiết bị phần cứng mà
phảI thông qua Kernel . Việc truy cập của tiến trình với Kernel là thông qua
giao diện hàm hệ thống system call . Ngoài ra các tiến trình trên User Space
không thể truy cập trực tiếp đến cấu trúc dữ liệu của Kernel mà cũng phảI
thông qua giao diện system call .
Với việc sử dụng giao diện gọi các hàm hệ thống system call , tiến trình
không cần biết chi tiết các đặc tả phần cứng cũng nh các đặc tả về module
,các giao thức và các phần khác của Kernel đã trừu tợng chung bằng cách
cung cấp các mã đặc tả .
Giao diện system call còn làm tăng tính an toàn hệ thống bởi vì Kernel
kiểm tra các dich vụ thông qua System Call . Nó cung cấp tính linh hoạt cho
hệ thống , cho phép thay đổi chức năng trong khi vẫn duy trì giao diện.
V. Tóm tắt chơng:
Chơng này đã giới thiệu tổng quan về kiến trúc Kernel của hệ điều hành
Linux. Kernel chính là sức mạnh của hệ điều hành. Đó cũng là mã điều
khiển giao diện giữa tiến trình và các thiết bị phần cứng, lập lịch trình để

thực hiện đa nhiệm và nhiều chức năng khác nh quản lý bộ nhớ, hệ thống tệp
ảo, giao diện mạng và truyền thông liên tiến trình. Để phục vụ đa nhiệm và
hỗ trợ xử lý thời gian thực Linux sử dụng cơ chế xử lý bottom half. Truyền
thông mạng cũng liên quan chặt chẽ với kiến trúc và cơ chế xử lý của Kernel.
Quá trình xử lý mạng đợc thực hiện chủ yếu trong Kernel và đợc thông qua
các cấu trúc dữ liệu và cơ chế xử lý của Kernel, các ứng dụng truyền thông
trên User Space giao tiếp với Kernel thông qua giao diện hàm gọi hệ thống
system call. Và bản thân chúng cũng đợc Kernel lịch trình, cấp phát tàI
nguyên bộ nhớ, CPU. Do vậy nghiên cứu về kiến trúc Kernel có một ý nghĩa
quan trọng để chúng ta có thể phân tích đợc cơ chế xử lý mạng của Linux
Kernel trong chơng sau.


Chơng II: Tổng quan về mạng máy tính
I. Mạng máy tính.
I.1. Lịch sử phát triển mạng máy tính
a- Từ những năm 60 đã xuất hiện các mạng xử lý, trong đó các trạm
cuối thụ động đợc nối vào máy xử lý trung tâm. Máy xử lý trung tâm làm tất
cả mọi việc từ quản lý các thủ tục truyền dữ liệu, quản lý sự đồng bộ các
trạm cuối, .đến việc theo dõi ngắt của các trạm cuối.
b- Trong những năm 70, các máy tính đợc nối với nhau trực tiếp thành
mạng, đồng thời tại thời điểm này xuất hiện kháI niệm Mạng truyền thông
(communication network), trong đó các thành phần chính của nó là các nút
mạng, đ ác máy tính đợc kết nối thành mạng máy tính nhằm đạt tới các mục
tiêu
.
I.2. KháI niệm về mạng máy tính
Mạng máy tính là hệ thống các máy tính đợc kết nối với nhau theo một kiểu
kiến trúc (Topology) và tơng tác với nhau theo một tập hợp các giao thức
(Protocol) nhằm mục đích:

a)
Làm cho các tài nguyên có giá trị cao trở nên khả dụng đối với
bất kỳ ngời sử dụng nào trên mạng mà không cần quan tâm đến vị
trí địa lý của tài nguyên và ngời sử dụng.
b)
Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra
sự cố đối với một máy tính nào đó (đặc biệt quan trọng đối với các
ứng dụng thời gian thực).
I.3 Phân loại mạng máy tính
Có thể dựa trên nhiều tiêu chí để phân loại mạng máy tính, theo không gian
có các phân loại tơng đối nh sau:
a) Mạng cục bộ (Local Area Network - LAN).
b) Mạng đô thị (Metropolitan Area Network - MAN).
c) Mạng diện rộng (Wide Area Network - WAN).
d) Mạng toàn cầu (Global Area Network - GAN).
I.4 Các thành phần cơ bản của mạng máy tính
1. Máy chủ (Server)
2. Máy trạm (Workstation)
3. Card mạng (NIC


4. Thiết bị kết nối (Hub, Repeater, Switch, ....)
5. Dây cable mạng
6. Các phụ kiện

May chu

May khach
Card mang


HUB

ub

II. Các khái niệm cơ bản
Tập hợp các quy tắc, quy ớc mà tất cả các thực thể tham gia truyền thông
trên mạng phải tuân theo để bảo đảm cho mạng hoạt động đồng bộ.
Nh vậy, để bảo đảm có một hệ thống giao thức thống nhất, ngời ta
cần xây dựng theo những tiêu chuẩn chung.
III.

Kiến trúc phân tầng và mô hình OSI.

Trong thời gian đầu, nhiều nhà sản xuất đã thiết kế nhiều mạng máy tính
khác nhau, tình trạng không tơng thích giữa các mạng về phần cứng, về phơng pháp truy cập kênh truyền, về giao thức... những vấn đề đó đã làm trở
ngại cho sự tơng tác của ngời sử dụng các mạng khác nhau.
Vì lý do đó, tổ chức tiêu chuẩn hoá quốc tế đã phát triển một khung chuẩn
vào năm 1984 đợc gọi là Mô hình tham chiếu cho việc nối kết các hệ thống
mở (OSI Reference Model). Mô hình này đợc dùng làm cơ sở để nối kết các
hệ thống mở phục vụ cho các ứng dụng phân tán.
IV Bộ giao thức mạng tcp/ip.
TCP/IP là bộ giao thức cho internet và cả cho Intranet, Extarnet nên để xây
dựng một hệ thống đảm bảo an ninh cho mạng internet, Intranet chúng ta
phải nghiên cứu kỹ bộ giao thức TCP/IP, tìm ra các u điểm và hạn chế của
nó.
Hơn thế nữa, trong mô hình 4 tầng của TCP/IP, phải nghiên cứu cách để xây
dựng và thực hiện một phần mềm an ninh cho mạng, phần mềm an ninh đó
sẽ đợc thực hiện tơng đơng với tầng nào trong mô hình TCP/IP và cách thức
để can thiệp vào các tầng dới của mô hình.
IV.1 Quy chiếu mô hình TCP/IP về mô hình OSI.

Trong các mô hình mạng khác, thì TCP/IP là mô hình phát triển mạnh nhất,
nó là giao thức cho internet và có thể đợc quy chiếu đầy đủ về mô hình OSI
nh sau:
TCP/IP có 4 tầng gồm: Tầng số 1 (Network Interface) tơng đơng các tầng 1
và 2 của mô hình OSI, tầng 2 (Internet) tơng đơng tầng 3 của OSI, tầng 3


(Transport) tơng đơng các tầng 4 và 5 của OSI, tầng 4 (Application) tơng đơng các tầng 5, 6 và 7 của OSI.
TCP/IP cung cấp các tiêu chuẩn để các máy tính và các mạng máy tính có
IV.2 Trao đổi tin giữa các trạm hoặc liên mạng trong mô hình TCP/IP.
a) Bộ đệm (buffer).
Sau khi truyền đi một đơn vị dữ liệu, IP không quan tâm tới đơn vị đó có tới
đích an toàn hay không, vùng bộ nhớ đệm dùng để xử lý đơn vị dữ liệu này
đợc giải phóng cho lần sử dụng sau. Module IP tại máy nhận dùng một vùng
bộ nhớ đệm để tái tạo lại các đơn vị dữ liệu đã bị phân đoạn. Vấn đề tắc
nghẽn có thể xảy ra khi bộ định tuyến làm công việc chuyển tiếp giữa mạng
tốc độ nhanh với mạng tốc độ chậm. Các đơn vị dữ liệu từ mạng có tốc độ
nhanh làm đầy vùng bộ nhớ đệm của bộ định tuyến. Điều này thờng xuyên
xảy ra khi liên mạng làm việc với nhau.
b) Các vấn đề khác đối với IP.
Không có cơ chế xác thực đúng địa chỉ IP đích (nhận) hoặc địa chỉ IP nguồn
(truyền). Dữ liệu trong mỗi đơn vị dữ liệu đều không đợc bảo mật [17].
Khi kết nối liên mạng, có thể một đơn vị dữ liệu bị phân mảnh và chỉ một
trong số các mảnh bị lỗi thì cả đơn vị dữ liệu bị hủy. Đôi khi các mảnh bị
một lỗi đặc biệt có thể treo hệ thống (với SP1 WIN-NT 3.5). Bộ đệm hoặc tài
nguyên không đồng đều, băng thông hẹp cũng có thể làm treo hệ thống...
IV.4 Giao thức tầng vận tải TCP - TCP Header.
TCP là một giao thức kiểu liên kết (connection - oriented), một phiên
(session) phải đợc tạo ra trớc khi hai đầu trao đổi dữ liệu. Đơn vị dữ liệu sử
dụng trong TCP đợc gọi là segment (đoạn dữ liệu). TCP cung cấp dịch vụ

song công (full duplex), nó bảo đảm sự đúng đắn của dữ liệu [2][4][21][37],
chi tiết nh sau:
TCP đảm bảo độ tin cậy end-to-end. Dòng số liệu có chiều dài đợc phân
thành những đoạn không vợt quá 64K, đợc gửi đi ở bên truyền và đợc gộp lại
thành bản tin ban đầu ở phía đích.
Nếu mạng bị trục trặc hoặc mất mát các gói thông tin trên đờng truyền, TCP
sẽ truyền lại các gói bị mất hoặc lỗi. Do đó TCP trở thành giao thức cho
truyền dữ liệu theo phiên (session)...
IV.5 Giao thức tầng vận tải UDP - UDP Header.
UDP (User Datagram Protocol) là giao thức không liên kết, tầng trên
IP, có thể đợc sử dụng thay thế cho TCP theo nhu cầu của ứng dụng. Khác
với TCP, UDP không có các chức năng thiết lập, giải phóng liên kết, không
có cơ chế báo nhận ACK, không sắp xếp tuần tự các đơn vị dữ liệu đến và có
thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà không hề có thông báo lỗi
cho ngời sử dụng. Tóm lại nó cung cấp các dịch vụ giao vận không tin cậy
bằng TCP, nhng hiệu suất cao hơn.


Cũng nh TCP, UDP gán và quản lý các số hiệu cổng (port number) để định
danh duy nhất cho các ứng dụng chạy trên một trạm của mạng. Do hiệu suất
cao và độ an toàn thấp, nó thờng đợc dùng cho các ứng dụng không đòi hỏi
độ tin cậy cao trong giao vận. .
Chơng III
Khảo sát cơ chế xử lý mạng của Linux Kernel
Chơng này sẽ mô tả về các thành phần , các cấu trúc dữ liệu và các quá trình
xử lý mạng của Linux Kernel. Tầng thiết bị mạng đợc đề cập trong đề tài này
là thiết bị ethernet, giao thức mạng dùng để xử lý qua các tầng là TCP/IP bởi
vì đó là những thiết bị và giao thức mạng đợc sử dụng phổ biến nhất hiện
nay.
Quá trình xử lý mạng TCP/IP của Linux dựa trên việc tích hợp của giao diện

socket BSD và làm việc theo mô hình 4 tầng nh sau (hình 2.1)Tầng ứng dụng
tơng đơng với 3 tầng: ứng dụng, trình diễn và phiên trong mô hình OSI. Tầng
giao vận tơng đơng với tầng giao vận. Tầng mạng IP tơng đơng với tầng
mạng và tầng thiết bị mạng tơng đơng với 2 tầng là liên kết và vật lý trong
mô hình OSI.
Dữ liệu truyền thông mạng đợc đóng gói theo mô hình OSI, khi dữ liệu qua
mỗi tầng thì nó đợc chắp thêm header và phần phụ thêm của giao thức đó và
ở đầu nhận sẽ theo trình tự ngợc lại. chúng ta hãy khảo sát quá trình truyền
thông đó dựa trên các cấu trúc dữ liệu và các hàm thao tác chủ yếu trên từng
tầng.
I. Giao tiếp với thiết bị mạng - cấu trúc net_Device
đợc hình thành ở tầng dới cùng của ngăn xếp các giao thức. Thiết bị mạng là
thực thể chuyển và nhận gói dữ liệu với môI trờng mạng. nó có thể là thiết bị
vật lý hoặc module phần mềm (thiết bị LoopBack) và đợc đặc trng bởi cấu
trúc dữ liệu net_device. Cấu trúc này chứa các thông tin về thiết bị và địa chỉ
các hàm thao tác với thiết bị. Các hàm này còn đợc các tầng giao thức sử
dụng để thao tác mạng, chủ yếu là phục vụ cho việc truyền dữ liệu và giao
tiếp với các tầng giao thức.
-IFF_AUTOMEDIA: Thiết bị có khả năng chuyển giữa nhiều loại môI trờng
truyền tin ví dụ cáp đồng trục hay cáp xoắn. Nừu trờng này đợc đặt thì thiết
bị sẽ tự động lựa chọn môI trờng phù hợp.
-IFF_RUNNING: giao diện đang bật và đang chạy.
Một số hàm chính thao tác với thiết bị:
+int(*open)(struct net_device *dev); mở một giao diện, giao diện đợc mỏ bất
cứ khi nào có lệnh ifconfig kích hoạt nó. Hàm open sẽ đăng ký mọi tàI
nguyên hệ thống mà nó cần bao gồm cổng I/O, IRQ,DMAvà đặt thiết bị ở
trạng tháI sẵn sàng.
Chuyển
gói


Các hàm từ
3com driver

Dev_base

1o

Eth0, 3Com

Các hàm từ HP
driver

Eth1, HP card


Hình 2.2 Danh sách dev_base
Khi một tầng giao thức nào đó sử dụng một thiết bị mạng để phục vụ các
thao tác mạng thì nó sẽ sử dụng các hàm trong cấu trúc dữ liệu device tơng
ứng. Vào thời điểm ban đầu mỗi cấu trúc dữ liệu device chỉ chứa địa chỉ của
một hàm khởi tạo hoặc hàm thăm dò.
Cấu trúc dữ liệu trong thao tác mạng của Linux
Kernel Linux sử dụng 2 cấu trúc dữ liệu chính trong thao tác mạng. Cấu trúc
sock để lu giữ trạng tháI của kết nối và cấu trúc sk_buff để lu giữ trạng tháI
của mỗi gói dữ liệu trong truyền thông mạng.
2.2.1 Cấu trúc sock:
Bởi vì phảI hỗ trợ nhiều loại giao thức mạng khác nhau nh
TCP/IP,Appletalk, AX25 Nên tầng giao diện socket BSD đã trừu tợng hoá
các chi tiết truyền thông hay nói một cách khác nó là một giao diện ảo. Trên
hình 2.3 tầng giao diện socket BSD không chỉ hỗ trợ cho họ giao thức INET
mà còn cho cả Appetalk, IPX


INET socket
TCP/IP
IP

BSD socket
Apple Talk

IPX

(Link)
Physical
Hình 2.3 Mô hình giao diện socket
Nh đã phân tích socket BSD đợc gán kết nh một file. Mọi thao tác
truyền thông mạng có thể đợc đặc tả nh những hàm thao tác tệp ảo của
Kernel lên file. Khi một tiến trình cần phảI truyền thông thì chúng tạo ra một
cấu trúc socket BSD và đợc gắn với một file nằm trong danh sách liên kết các
file đang mở bởi tiến trình đó mà đợc đặc tả bởi một inode với một số hiệu
fd[i] xác định trong cấu trúc file_struct. Căn cứ vào họ giao thức trong truyền
thông là IP để tích hợp cấu trúc sock của tầng socket INET để quản lý truyền
thông trong Kernel.
2.2.2 Cấu trúc sk_buff:
TCP có trách nhiệm cung cấp một cơ chế truyền dữ liệu tin cậy và đúng
thứ tự .Để làm điều này TCP header phải bao gồm 1 trờng chỉ thứ tự gói , trờng checksum đảm bảo dữ liệu nhận là đáng tin cậy , và trờng sác nhận chỉ
số hiệu gói bị lỗi . Trờng Window chỉ kích thớc cửa sổ trợt .
Source port (16 bit)
Destination
Port(16 bit)
Sequence Number (32 bit)



Checksum (16 bit )
Opions and Padding

FIN

SYN

RST

PSH

URG

Data Reserved
Offset (6 bit)
(4 bit)

ACK

Acknowledgement Number (32 bit)
Window (16
bit )
Urgent
Pointer(16 bit)

UDP là 1 giao thức phi kết nối trên tầng giao vận , thông qua UDP ứng
dụng có thể truyền dữ liệu mà không phải thiết lập 1 kết nối tới đích mà đơn
giản nó chỉ cung cấp môth phơng thức để địa chỉ hoá các gói tin đến các
cổng trong máy tính và do vậy header UDP đơn giản hơn rất nhiều

0
16
31
Source port
Destination Port
Length
Checksum
Hình 2.7 Cấu trúc của UDP header
Trờng nh là header tầng mạng trỏ đến một cấu trúc dữ liệu tơng ứng (IPv4,
Ipv6, IPX, ARP ). Và đợc tiếp đầu vào header của tầng giao vận khi gói tin đợc chuyển từ tầng giao vận xuống tầng mạng , đợc trích ra khi gói tin từ tầng
mạng chuyển đến tầng giao vận . Cụ thể header của IPv4 nh sau
0
4
8
16
32
Vers
Hlen Service Type
Total Length
Identification
Flags
Time to live

Protocol

Fragment Offset
Header Checksum

Source IP Address
Destination IP Address

Option + Padding
Hình 2.8 Cấu trúc của IP header
Trờng Identification cho phép mỗi gói datagram hoặc những phân mảnh của
datagram xác định duy nhất , nếu 1 gói dữ liệu đợc phân mảnh thì trờng
Fragmen Offset trong datagram gốc đợc truyền . Vì vậy trờng này chỉ định vị
trí của 1 gói phân mảnh trong thông điệp .
Trờng Ver :chỉ định version của giao thức IP (hiện thời là 4)
Trờng hlen và Total length :độ dài của header IP (theo số các từ 32 bit)và
đọ dài của IP diagram gồm cadr header của tầng cao hơn (Theo số các octet)
Trờng Service Type: chỉ rõ diagram đợc sử lý nh thế nào . 3 trong 8 bit này
đợc sử dụng để chỉ rõ quyền u tiên hoặc mức quan trọng đợc gán bởi ngời
gửi. Trờng này chứng thực một cơ chế u tiên cho việc chọn đờng trong gói IP


2.3 Kết nối:
2.4.3 Tần mạng IP
Hai giao thức trên tầng giao vận TCP và UDP sẽ có những yêu cầu về chất lợng của dịch vụ truyền khác nhau. TCP cung cấp một dịch vụ đối tợng tin
cậy, nó phải copy mọi thứ vào phân đoạn của TCP do đó bớc copy dữ liệu từ
User Space vào Kernel Space phải đợc thực hiện trên tầng TCP. Trong khi đó
đối với giao thức UDP thì bớc copy dữ liệu đợc thực hiện trên tầng IP. Do vậy
sơ đồ các hàm gọi trên tầng Ip khi các gói dữ liệu từ tầng TCP chuyển xuống
sẽ có một số điểm khác so với trờng hợp của UDP.
Phần khác nhau:
Trong trờng hợp gói đợc chuyển xuống tầng Ip từ tầng TCp thì hàm
ip_queue_xmit() đợc gọi nó sẽ kiểm tra gói đã đợc chọn đờng hay cha bằng
cách kiểm tra trờng skb->dst trong gói. Nếu gói cha đợc chọn đờng (kết nối
giữa hai socket cha đợc thiết lập) thì sẽ gọi hàm ip_route_output(). Tầng IP
sẽ chọn đờng dựa trên thông tin chủ yếu từ hai cơ sở dữ liệu là bảng định
tuyến nhanh rounting cache, khối cơ sở thông tin chuyển tiếp FIB.
Sau khi gói đã đợc chọn đờng hàm này sẽ khởi tạo cấu trúc IP header từ cấu

trúc sock và tiếp đầu vào gói bao gồm địa chỉ nguồn, địa chỉ đích, trờng
TTL, giao thức mức cao (trờng protocol) và các thông tin option nh hop tiếp
theo v.v...
Bắt đầu từ khi hàm ip_output() đợc gọi thì qúa trình xử lý tiếp theo đối
với các trờng hợp UDP và TCP đều giống nhau.
2.4.4 Tầng thiết bị mạng
Bây giờ ta hãy khảo sát quá trình xử lý trên tầng thiết bị mạng từ khi hàm
dev_queue_xmit() đợc gọi. Quá trình có thể mô tả bằng sơ đồ
Mỗi thiết bị mạng sẽ có một hàng đợi Qdisc, mà đợc đăng ký khi khởi tạo
cấu trúc net_device. Khi hàm dev_queue_xmit() đợc gọi căn cứ vào thiết bị
ding để chuyển gói (trờng sbk->dev), hàm này sẽ đẩy gói vào hàng đợi Qdisc
tơng ứng với thiết bị mạng. Nếu hàng đợi này đã đầy thì gói bị bỏ qua và
Kernel sẽ xoá bỏ nó. Sau đó sẽ gọi hàm Qdisc_run() mà đợc lịch trình bởi
hàm qdisc_restart() để giải phóng hàng đợi gói tin. Cơ chế giải phóng hàng
đợi gói tin là cơ chế FIFO (vào trớc - ra trớc).Mã xử lý khi hàm
qdisc_restart() đợc lịch trình chạy độc lập với mã xử lý mạng của Kernel trên
các tầng cao hơn.
Sơ đồ thứ tự các hàm gọi để xử lý dữ liệu trên các tầng giao thức từ khi
system call sys_write() đợc gọi đến khi gói dữ liệu đợc đa lên đờng truyền dới dạng các frame có thể mô tả bằng sơ đồ .
Trên sơ đồ này tôi chỉ phân tích các hàm chính, các hàm đó có thể gọi nhiều
hàm khác nhau. Để cụ thể hơn ngời đọc có thể tham khảo trong mã nguồn
của Linux Kernel
2.5 Nhận thông điệp
Quá trình nhận thông điệp có thể diễn ra bằng sơ đồ chức năng sau:(Sơ đồ
này nêu rõ cụ thể nhiệm vụ xử lý trên từng tầng cụ thể nhiệm vụ xử lý trên
mng .
Các tầng mạng làm việc tơng tự nh nhận truyền thông điệp.
Trong quá trình nhận thông điệp thì thứ tự phân tích của chúng ta bắt đầu từ
tầng thiết bị mạng,ngợc lại với quá trình truyền thông điệp.
2.5.1 Tầng thiết bị mạng



Khi một gói tin từ trạm gửi qua một đờng truyền đến thiết bị mạng trên trạm
nhận và nếu thiết bị phần cứng thiết bị đích trong header của gói tin trùng với
điạ chỉ phần cứng của thiết bị mạng thì gói tin đợc đặt vào rx_ring. rx_ring là
một vòng trong bộ nhớ của Kernel nơi mà thiết bị sẽ truy cập trực tiếp đến
cho những goi vào phân biệt với tx_ring là vòng của gói ra (đó là kênh thâm
nhập trực tiếp DMA). Kích thớc của vòng ring là phụ thuộc vào thiết bị

Hình 2.16 Giao diện nhận gói tin trên tầng thiết bị
Hàm netif_rx() sẽ chuyển gói vào hàm đợi backlog trên CPU.Đồng thời
đánh dấu ngắt mềm net_rx_actionn() để lịch trình thực hiện sau (thủ tục tơng
ứng với ngắt mềm này là net_rx_action()) và kết thúc quá trình sử lý ngắt.
Lịch tiến trình sẽ gọi hàm schedule() để lịch trình lại hệ thống
2.5.2Tâng mạng IP
2.5.3 Tầng giao vận TCP/UDP
Khi hàm udp_rcv() đợc gọi, sẽ kiểm tra checksum và trích UDP header
bởi việc gọi hàm pskb_may_pull(). Sau đó nó sẽ gọi hàm udp_v4_lôkup() để
xác định cặp socket/sock cho gói này dựa trên địa chỉ nguồn đích, số hiệu
cổng nguồn, đích và thiết bị mạng gắn vào gói này.Nếu tìm thấy thì gọi hàm
udp_queue_rcv_skb() và sock_put() sẽ đặt gọi vào trong hàng đợi của cấu
trúc sock tơng ứng.
2.6Chuyển tiếp thông điệp
Đối với gói tin IP trong quá trình chuyển tiếp thông điệp chỉ diễn ra trên
hai tầng thiết bị mạng và tầng mạng Ip và co thể diễn tả bằng sơ đồ
Khi tầng IP xác định rằng gói tin không phải là cho host và cần phải đợc
chuyển tiếp thì ip_rcv_finish() sẽ gọi hàm io_route_input() để tìm đờng đến
đích cho gói tin. Dựa vào hai cơ sở tìm kiếm là bảng định tuyến nhanh
rounting cache và khối cơ sở thông tin chuyển tiếp FIB (Foward Infomation
Base). Chúng ta sẽ không đề cập nhiều đến cấu trúc của các cơ sở dữ liệu

này.
Chơng iV : Mạng cục bộ (Lan)
I. Phng thc truyn tớn hiu


Thông thường có hai phương thức truyền tín hiệu trong mạng cục bộ là dùng
băng tần cơ sở (baseband) và băng tần rộng (broadband). Sự khác nhau chủ
yếu giữa hai phương thức truyền tín hiệu này là băng tầng cơ sở chỉ chấp
nhận một kênh dữ liệu duy nhất trong khi băng rộng có thể chấp nhận đồng
thời hai hoặc nhiều kênh truyền thông cùng phân chia giải thông của đường
truyền.
tín hiệu số thành tín hiệu tương tự có tần số vô tuyến (RF) bằng kỹ thuật
ghép kênh.
II. Các giao thức truy cập đường truyền trên mạng LAN
1. Giao thức chuyển mạch (yêu cầu và chấp nhận)
Giao thức chuyển mạch là loại giao thức hoạt động theo cách thức sau: một
máy tính của mạng khi cần có thể phát tín hiệu thâm nhập vào mạng, nếu
vào lúc này đường cáp không bận thì mạch điều khiển sẽ cho trạm này thâm
nhập vào đường cáp còn nếu đường cáp đang bận, nghĩa là đang có giao lưu
giữa các trạm khác, thì việc thâm nhập sẽ bị từ chối.

2. Giao thức đường dây đa truy cập với cảm nhận va chạm
(Carrier Sense Multiple Access with Collision Detection hay
CSMA/CD )
Giao thức đường dây đa truy cập cho phép nhiều trạm thâm nhập cùng một
lúc vào mạng, giao thức này thường dùng trong sơ đồ mạng dạng đường
thẳng. Mọi trạm đều có thể được truy nhập vào đường dây chung một cách
ngẫu nhiên và do vậy có thể dẫn đến xung đột (hai hoặc nhiều trạm đồng
thời cùng truyền dữ liệu). Các trạm phải kiểm tra đường truyền gói dữ liệu đi
qua có phải của nó hay không..

Khi đường cáp đang bận trạm phải chờ đợi theo một trong ba phương thức
sau:
Trạm tạm chờ đợi một thời gian ngẫu nhiên nào đó rồi lại bắt đầu
kiểm tra đường truyền.
Trạm tiếp tục kiểm tra đường truyền đến khi đường truyền rảnh thì
truyền dữ liệu đi.


Trạm tiếp tục kiểm tra đường truyềnđến khi đường truyền rảnh thì
truyền dữ liệu đi với xác suất p xác định trước (0 < p < 1).
3. Giao thức dùng thẻ bài vòng (Token ring)
Đây là giao thức truy nhập có điều khiển chủ yếu dùng kỹ thuật chuyển thẻ
bài (token) để cấp phát quyền truy nhập đường truyền tức là quyền được
truyền dữ liệu đi. Thẻ bài ở đay là một đơn vị dữ liệu đặc biệt, có kích thưóc
và nội dung (gồm các thông tin điều khiển) được quy định riêng cho mỗi
giao thức. Theo giao thức dùng thẻ bài vòng trong đường cáp liên tục có một
thẻ bài chạy quanh trong mạng Thẻ bài là một đơn vị dữ liệu đặc biệt trong
đó có một bit biểu diễn trạng thái sử dụng của nó (bận hoặc rỗi). Một trạm
muốn truyền dữ liệu thì phải đợi đến khi nhận được một thẻ bài rảnh. Khi đó
trạm sẽ đổi bit trạng thái của thẻ bài thành bận, nép gói dữ liệu có kèm theo
địa chỉ nơi nhận vào thẻ bài và truyền đi theo chiều của vòng.
4. Giao thức dung thẻ bài cho dạng đường thẳng (Token bus)
Đây là giao thức truy nhập có điều khiển trong để cấp phát quyền truy nhập
đường truyền cho các trạm đang có nhu cầu truyền dữ liệu, một thẻ bài được
lưu chuyển trên một vòng logic thiết lập bởi các trạm đó. Khi một trạm có
thẻ bài thì nó có quyền sử dụng đường truyền trong một thời gian xác định
trước. Khi đã hết dữ liệu hoặc hết thời đoạn cho phép, trạm chuyển thẻ bài
đến trạm tiếp theo trong vòng logic.
Giao thøc TCP
I. Giao thức IP

1. Tổng quát
Nhiệm vụ chính 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 kết mạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức
tầng mạng trong mô hình OSI. Giao thức IP là một giao thức kiểu không liên
kết (connectionlees) có nghĩa là không cần có giai đoạn thiết lập liên kết
trước khi truyền dữ liệu.
Do tổ chức và độ lớn của các mạng con (subnet) của liên mạng có thể khác
nhau, người ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D và E.
Trong lớp A, B, C chứa địa chỉ có thể gán được. Lớp D dành riêng cho lớp
kỹ thuật multicasting. Lớp E được dành những ứng dụng trong tương lai.


Ơû đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, lớp B,
lớp C
Cấu trúc của các địa chỉ IP như sau:
Mạng lớp A: địa chỉ mạng (netid) là 1 Byte và địa chỉ host (hostid) là
3 byte.
Mạng lớp B: địa chỉ mạng (netid) là 2 Byte và địa chỉ host (hostid) là
2 byte.
Mạng lớp C: địa chỉ mạng (netid) là 3 Byte và địa chỉ host (hostid) là
1 byte.
Lớp A cho phép định danh tới 126 mạng, với tối đa 16 triệu host trên mỗi
mạng. Lớp này được dùng cho các mạng có số trạm cực lớn.
Lớp B cho phép định danh tới 16384 mạng, với tối đa 65534 host trên mỗi
mạng.
Lớp C cho phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗi
mạng. Lớp này được dùng cho các mạng có ít trạm.

2. Các giao thức trong mạng IP
Để mạng với giao thức IP hoạt động được tốt người ta cần một số giao thức

bổ sung, các giao thức này đều không phải là bộ phận của giao thức IP và
giao thức IP sẽ dùng đến chúng khi cần.
Giao thức ARP (Address Resolution Protocol): Ở đây cần lưu ý rằng
các địa chỉ IP được dùng để định danh các host và mạng ở tầng mạng
của mô hình OSI, và chúng không phải là các địa chỉ vật lý (hay địa
chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, Token
Ring.). Trên một mạng cục bộ hai trạm chỉ có thể liên lạc với nhau
nếu chúng biết địa chỉ vật lý của nhau. Như vậy vấn đề đặt ra là phải
tìm được ánh xạ giữa địa chỉ IP (32 bits) và địa chỉ vật lý của một
trạm. Giao thức ARP đã được xây dựng để tìm địa chỉ vật lý từ địa chỉ
IP khi cần thiết.


Giao thức RARP (Reverse Address Resolution Protocol): Là giao
thức ngược với giao thức ARP. Giao thức RARP được dùng để tìm
địa chỉ IP từ địa chỉ vật lý.
Giao thức ICMP (Internet Control Message Protocol): Giao thức
này thực hiện truyền các thông báo điều khiển (báo cáo về các tình
trạng các lỗi trên mạng.) giữa các gateway hoặc một nút của liên
mạng. Tình trạng lỗi có thể là: một gói tin IP không thể tới đích của
nó, hoặc một router không đủ bộ nhớ đệm để lưu và chuyển một gói
tin IP, Một thông báo ICMP được tạo và chuyển cho IP. IP sẽ "bọc"
(encapsulate) thông báo đó với một IP header và truyền đến cho router
hoặc trạm đích.

3. Các bước hoạt động của giao thức IP
Khi giao thức IP được khởi động nó trở thành một thực thể tồn tại trong máy
tính và bắt đầu thực hiện những chức năng của mình, lúc đó thực thể IP là
cấu thành của tầng mạng, nhận yêu cầu từ các tầng trên nó và gửi yêu cầu
xuống các tầng dưới nó.

Đối với thực thể IP ở máy nguồn, khi nhận được một yêu cầu gửi từ tầng
trên, nó thực hiện các bước sau đây:
Tạo một IP datagram dựa trên tham số nhận được.
Tính checksum và ghép vào header của gói tin.
Ra quyết định chọn đường: hoặc là trạm đích nằm trên cùng mạng
hoặc một gateway sẽ được chọn cho chặng tiếp theo.
Chuyển gói tin xuống tầng dưới để truyền qua mạng.
5) Kiến tạo lại IP header, bao gồm giá trị mới của các vùng Time - to
-Live, Fragmentation và Checksum.
6) Chuyển datagram xuống tầng dưới để chuyển qua mạng.
Cuối cùng khi một datagram nhận bởi một thực thể IP ở trạm đích, nó sẽ
thực hiện bởi các công việc sau:


1) Tính checksum. Nếu sai thì loại bỏ gói tin.
2) Tập hợp các đoạn của gói tin (nếu có phân đoạn)
3) Chuyển dữ liệu và các tham số điều khiển lên tầng trên
II. Giao thức điều khiển truyền dữ liệu TCP
TCP là một giao thức "có liên kết" (connection - oriented), nghĩa là cần phải
thiết lập liên kết giữa hai thực thể TCP trước khi chúng trao đổi dữ liệu với
nhau. Một tiến trình ứng dụng trong một máy tính truy nhập vào các dịch vụ
của giao thức TCP thông qua một cổng (port) của TCP. Số hiệu cổng TCP
được thể hiện bởi 2 bytes.
Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket)
duy nhất trong liên mạng. Dịch vụ TCP được cung cấp nhờ một liên kết
logic giữa một cặp đầu nối TCP/IP. Một đầu nối TCP/IP có thể tham gia
nhiều liên kết với các đầu nối TCP/IP ở 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.
Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi

(function calls) trong đó có các hàm yêu cầu để yêu cầu, để trả lời. Trong
mỗi hàm còn có các tham số dành cho việc trao đổi dữ liệu.
Các bước thực hiện để thiết lập một liên kết TCP/IP: Thiết lập một
liên kết mới có thể được mở theo một trong 2 phương thức: chủ động
(active) hoặc bị động (passive).
Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một
yêu cầu liên kết gửi đến từ xa thông qua một đầu nối TCP/IP
(tại chỗ). Người sử dụng dùng hàm passive Open có khai báo
cổng TCP và các thông số khác (mức ưu tiên, mức an toàn)
Với phương thức chủ động, người sử dụng yêu cầu TCP mở
một liên kết với một một đầu nối TCP/IP ở xa. Liên kết sẽ được
xác lập nếu có một hàm Passive Open tương ứng đã được thực
hiện tại đầu nối TCP/IP ở xa đó.


III. Giao thc UDP (User Datagram Protocol)

UDP (User Datagram Protocol) l giao thc theo phng thc khụng liờn
kt c s dng thay th cho TCP trờn IP theo yờu cu ca tng ng
dng. Khỏc vi TCP, UDP khụng cú cỏc chc nng thit lp v kt thỳc liờn
kt. Tng t nh IP, nú cng khụng cung cp c ch bỏo nhn
(acknowledgment), khụng sp xp tun t cỏc gúi tin (datagram) n v cú
th dn n tỡnh trng mt hoc trựng d liu m khụng cú c ch thụng bỏo
li cho ngi gi. Qua ú ta thy UDP cung cp cỏc dch v vn chuyn
khụng tin cy nh trong TCP.
Khuụn dng UDP datagram c mụ t vi cỏc vựng tham s n gin hn
nhiu so vi TCP segment.

Hỡnh 7.7: Dng thc ca gúi tin UDP
UDP cng cung cp c ch gỏn v qun lý cỏc s hiu cng (port number)

nh danh duy nht cho cỏc ng dng chy trờn mt trm ca mng. Do ớt
chc nng phc tp nờn UDP thng cú xu th hot ng nhanh hn so vi
TCP. Nú thng c dựng cho cỏc ng khụng ũi hi tin cy cao trong
giao vn.
Kết luận
Qua thời gian nghiên cứu và đợc sự giúp đỡ nhiệt tình của thầy giáo
Thạc Sĩ Trần Hồng Quang đến nay tôI đã hoàn thành đề tài : Nâng
cao tính bảo mật trong hệ diều hành linux .
Do khả năng của bản thân cũng nh khó khăn về tài liệu ,chủ yếu là
đọc các thông tin từ internet và các lọai sác điện tử . Phân tích và
nghiên cứu khối lợng khổng lồ mã nguồn mở của hệ điều hành Linux.
Vì nó là lĩnh vực tơng đối mới ở Việt Nam nên mặc dù đợc sự giúp đỡ
nhiết tình của các thầy nhng đề tài không tránh khỏi những thiếu sót


về cả bố cục và nội dung rất mong sự đóng góp ,sửa đổi và bổ xung
để hoàn thiện hơn.

Hà nội ,Ngày 30 tháng 09 năm 2006
Ngời thực hiện
V c chớnh
Tài liệu tham khảo
[1]
[2]
[3]
[4]
[5]

Nguyễn Quốc Cờng và Hoàng Đức Hải (2001), Internetworking
với TCP/IP.

Nguyễn Phơng Lan và Hoàng Đức Hải (2001), Lập trình LINUX,
NXBGD.
David A Rusling (1996, 1997, 1998, 1999), The Linux Kernel.





×