Đồ án tốt nghiệp Chọn đường và ứng dụng trong thiết kế mạng WANVới việc tăng nhanh các máy tính mini và các máy tính cá nhân làmtăng yêu cầu truyền số liệu giưã các máy tính, giữa các te
Trang 1Đồ án tốt nghiệp Chọn đường và ứng dụng trong thiết kế mạng WAN
Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làmtăng yêu cầu truyền số liệu giưã các máy tính, giữa các terminal, và giữacác terminal với máy tính là một trong những động lực thúc đẩy sự ra đời vàphát triển ngày càng mạnh mẽ các mạng máy tính.Quá trình hình thành mạngmáy tính có thể tóm tắt qua 4 giai đoạn sau:
Giai đoạn các terminal nối trực tiếp với máy tính: Đây là giai đoạn
đầu tiên của mạng máy tính, để tận dụng công suất của máytính người ta ghép nối các terminal vào một máy tính được gọi
là các máy tính trung tâm
Giai đoạn các bộ tiền xử lý (Prontal)
ở giai đoạn 1 máy tính trung tâm quản lý truyền tin tới các terminal, ởgiai đoạn 2 máy tính trung tâm quản lý truyền tin tới các bộ tập trung qua các
bộ ghép nối điều khiển đường truyền Ta có thể thay thế bộ ghép nối
đường truyền bằng các máy tính nini gọi là prontal, đó chính là bộ tiền xử lý
Giai đoạn mạng máy tính:
Vào những năm 1970 người ta bắt đầu xây dựng mạng truyềnthông trong đó các thành phần chính của nó là các nút mạng gọi là bộ chuyểnmạch dùng để hướng thông tin tới đích
Các mạng được nối với nhau bằng đường truyền còn các máy tính xử
lý thông tin của người dùng hoặc các trạm cuối được nối trực tiếp vào cácnút mạng để khi cần thì trao đổi thông tin qua mạng Các nút mạngthương là máy tính nên đồng thời đóng vai trò của người sử dụng
Chức năng của nút mạng:
+ Quản lý truyền tin, quản lý mạng
Như vậy các máy tính ghép nối với nhau hình thành mạng máy tính, ở
đây ta thấy mạng truyền thông cũng ghép nối các máy tính với nhau nên khái niệm mạng maý tính và mạng truyền thông có thể không phân biệt
Việc hình thành mạng máy tính nhằm đạt các mục đích
sau: 1.Tận dụng và làm tăng giá trị của tài nguyên 2.Chinh phục khoảng cách
3.Tăng chất lượng và hiệu quả khai thác và xử lý thông tin 4.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 đó
Như vậy: Mạng máy tính là tập hợp các máy tính được ghép vớinhau bởi các đường truyền vật lý theo một kiến trúc nào đó
Trang 21.1 Các yếu tố của mạng máy tính
1.1.1 Đ ờng ương truyền vật lý
Đường truyền vật lý là thành phần để chuyển các tín hiệu điện tửgiữa các máy tính Các tín hiệu điện tử đó biểu thị các dữ liệu dưới dạngxung nhị phân Tất cả các tín hiệu truyền giữa các máy tính đều ở dạng sóng
điện từ và có tần số trải từ cực ngắn cho tới tần số của tia hồng ngoại.Tuỳtheo tần số của sóng điện từ mà có thể dùng các đườngtruyền vật lý khácnhau để truyền
+ Các tần số Radio có thể truyền bằng cáp điện hoặc bằng cácphương tiện quảng bá (broadcast)
+Sóng cực ngắn được dùng để truyền các trạm mặt đất và vệ tinh.Hoặc là dùng để truyền từ một trạm phát tới các trạm thu
+Tia hồng ngoại là lý tưởng đối với truyền thông mạng Nó cóthể truyền từ điểm tới điểm hoặc quảng bá từ một điểm tới các máy thu Tiahồng ngoại hoặc các loại tia sáng tần số cao hơn có thể truyền được quacáp sợi quang
Những đặc trưng cơ bản của đường truyền vật lý là: giải thông, độsuy hao, độ nhiễu điện từ
Dải thông của đường truyền là độ đo phạm vi tần số mà đườngtruyền có thể đáp ứng được Giải thông phụ thuộc vào độ dài cáp, đườngkính sợi cáp, vật liệu dùng chế tạo cáp
Thông lượng của một đường truyền (throughput) chính là tốc độtruyền dữ liệu trên đường truyền đó trong một đơn vị thời gian.Thônglượng của đường truyền phản ánh hiệu quả sử dụng đường truyền đó
Độ suy hao là giá trị phản ánh mức độ suy yếu của tín hiệu
đường truyền sau khi truyền qua một đơn vị độ dài cáp
Độ nhiễu điện từ là khả năng làm nhiễu tín hiệu trên đường truyềnkhi cáp đi qua vùng có sóng điện từ Có hai loại đường truyền: hữutuyến, vô tuyến được sử dụng trong việc kết nối mạng máy tính Đườngtruyền hữu tuyến gồm cáp đồng trục, cáp xoắn đôi, cáp sợi quang; đườngtruyềnvô tuyến gồm sóng radio, sóng cực ngắn, tia hồng ngoại
Tuy nhiên khi thiết kế dây cho một mạng máy tính người ta cònphải chú ý tới nhiều tham số khác như: giá thành, khả năng chịu nhiệt, khảnăng chống chịu ẩm, khả năng uốn cong
và protocol là hai khái niệm cơ bản nhất của mạng máy tính
a) Topology:
Người ta phân biệt hai kiểu nối mạng vật lý cơ bản là kiểu
điểm-điểm và kiểu quảng bá (broadcasting hay point- to- multipoint)
Trang 3+ Kiểu điểm - điểm: Đường truyền nối từng cặp nút với nhau.Tín hiệu
đi từ nút nguồn đến nút trung gian rồi chuyển tiếp tới đích
Hình 1-1: Các topo mạng cơ bản
Hình 1-2: Dạng topo đầy đủ
radio Hình 1-3: Các topo mạng cơ bản+ Kiểu quảng bá:
Với kiểu quảng bá tất cả các nút chung một đường truyền vật lý Dữ liệu
được gửi đi từ một nút được tiếp nhận bởi các nút còn lại, và trong gói tin phải có vùng địa chỉ đích cho phép mỗi nút kiểm tra có phải tin của minh không
Cấu trúc dạng bus hay dạng vòng cần cơ chế trọng tài để giải quyết
đụng độ (collision) khi nhiều nút muốn truyền tin đồng thời Trong cấu trúc
dạng vệ tinh hoặc radio mỗi nút cần có anten thu và phát.
1.1.3 Giao thức mạng (network protocol)
Trang 4Việc trao đổi thông tin giữa các nút với nhau cần phải tuân theo một sốquy tắc, quy ước nhất định nào đó Chẳng hạn, khi hai người nói chuyệnvới nhau thì cũng phải tuân theo quy tắc: Khi một người nói thì người kiaphải nghe và ngược lại Việc truyền thông tin trên mạng cũng phải tuântheo các quy tắc quy ước nhiều mặt như: khuôn dạng dữ liệu gửi đi, cácthủtục gửi và nhận, kiểm soát dữ liệu, xử lí lỗi và xử lý sự cố Chẳng hạnmạng lưới giao thông công cộng càng phát triển thì số quy tắc đề ra càngphải nhiều, càng phải chặt chẽ và càng phức tạp hơn Tập hợp các quy tắc ,quy ước để đảm bảo trao đổi và xử lý thông tin trên mạng gọi là giaothức Các mạng được thiết kế khác nhau có thể tuân theo một số giao thứckhác nhau, tuy nhiên người ta đưa ra một số giao thức chuẩn đượcdùng trên nhiều mạng khác nhau.
1.2 Phân loại mạng máy tính
Người ta phân loại mạng máy tính khác nhau tuỳ theo các yếu tố chính
được chọn như: Khoảng cách địa lý, kỹ thuật chuyển mạch, kiến trúc mạng,cơ chế hoạt động của mạng
1.2.1 Phân loại theo khoảng cách địa lý
Nếu lấy khoảng cách địa lý làm yếu tố chính để phân loại mạng thìmạng được phân thành: mạng cục bộ mạng đô thị, mạng diện rộng, mạngtoàn cầu
+Mạng cục bộ (Local Area Network - LAN) là mạng được cài đặttrong một phạm vi tương đối nhỏ ( trong một toà nhà, trong một phòngban hoặc trong một công ty ) với đường kính giới hạn trong khoảng vàichục Km
+Mạng đô thị (Metropolitan Area Network - MAN) là mạng được cài
đặt trong phạm vi một thành phố, một trung tâm kinh tế phạm vi cài đặt mạng là hàng trăm Km
+ Mạng diện rộng (Wide Area Network - WAN) là mạng có phạm vihoạt động có thể là cả một vùng, một khu vực và có thể vượt qua biêngiới một quốc gia
+Mạng toàn cầu (Global Area Network - GAN) phạm vi của mạng trảirộng khắp lục địa của trái đất
1.2.2 Phân loại theo kĩ thuật chuyển mạch
Nếu lấy kĩ thuật chuyển mạch so sánh thì có thể phân chia mạnh thành:Mạng chuyển mạch kênh, mạng chuyển mạch gói, mạng chuyển mạch thôngbáo
a) Mạng chuyển mạch kênh (Circuit - switched - Network):đây là
mạng mà khi 2 thực thể muốn liên lạc với nhau thì chúng phải tạo và duy trìmột kênh liên tục cho đến khi kết thúc quá trình thông tin.Phươngpháp chuyển mạch có hai nhược điểm chính:
+ Hiệu suất sử dụng đường truyền không cao
+ Mất nhiều thời gian cho việc thiết lập kênh cố định khi thông tin giữa 2 thực thể
Trang 5b) Mạng chuyển mạch thông báo (Message - switched -Network)
Trong mạng chuyển mạch thông báo việc chọn đường đi cho cácthông báo tới đích được thực hiện tại các nút mạng Các nút căn cứ vào địachỉ đích của thông báo để ra quyết định chọn nút đến kế tiếp cho thông báotrên đường dẫn tới đích Như vậy các nút cần lưu trữ tạm thời các thôngbáo, đọc thông báovà quản lý việc chuyển tiếp các thông báo đi Phươngpháp chuyển mạch thông báo có những ưu điểm sau:
+ Hiệu suất sử dụng đường truyền cao vì không có các kênh thông tin
Nhược điểm chủ yếu của chuyển mạch thông báo là trong trườnghợp một thông báo dài bị lỗi, phải truyền lại thông báo này nên hiệu suấtkhông cao Phương pháp này thích hợp với các mạng truyền thư tín điện tử(Electronic mail)
c ) Mạng chuyển mạch gói (Packet - switched - Network)
Trong mạng chuyển mạcg gói thì một thông báo có thể được chia
ra nhiều gói nhỏ hơn (packet), độ dài khoảng 256 bytes, có khuôn dạng tuỳtheo chuẩn quy định Các gói tin có chứa thông tin điều khiển địa chỉnguồn, địa chỉ đích cho gói tin,số thứ tự gói tin, thông tin kiểm tra lỗi Dovậy các gói tin của cùng một thông báo có thể được gửi đi theo nhiều
đường khác nhau, tới đích tại các thời điểm khác nhau, nơi nhận sẽ căn cứvào thông tin trong các gói tin và sắp xếp lại chúng theo đúng thứ tự
Ưu điểm của chuyển mạch gói:
+ Mạng chuyển mạch gói có hiệu suất và hiệu quả cao hơn mạngchuyển mạch thông báo vì kích thước các gói tin nhỏ hơn nên các nútmạng có thể xử lý toàn bộ gói tin mà không cần phải lưu trữ trong đĩa
+ Mỗi đường truyền chiếm thời gian rất ngắn, vì chúng có thể dùngbất cứ đường có thể được để tới đích
+ Đối với các ứng dụng phụ thuộc thời gian thực thì việc các gói tin tới
đích không theo thứ tự là một nhược điểm quan trọng cần phải khắc phục
Trang 6Tuy vẫn còn những hạn chế nhưng do có ưu điểm về tính mềmdẻo, hiệu suất cao nên các mạng chuyển mạch gói đang được dùng phổ biếnhiện nay.
1.3.3 Phân loại mạng theo cơ chế hoạt động
Trong môi trường mạng máy tính có 2 cơ chế hoạt động chính là:peer- to-peer và client/ server Môi trường peer - to - peer không có máychuyên phục vụ cho một công việc nào, còn trong môi trường client/serverthì phải có những máy được dành riêng để phục vụ mục đích khác nhau
Mạng dựa trên máy phục vụ:
Trong mạng có những máy chuyên dụng phục vụ cho các mục đíchkhác nhau Máy phục vụ chuyên dụng hoạt động như một người phục vụ
và không kiêm vai trò của trạm làm việc hay máy khách
Các maý phục vụ chuyên dụng được tối ưu hoá để phục vụnhanh những yêu cầu của khách hàng trên mạng
Các loại máy phục vụ chuyên dụng thường thấy như:
+ Máy phục vụ tập tin / in ấn (file/print sever)
+ Máy phục vụ chương trình ứng dụng (application server)
+ Máy phục vụ thư tín (mail server)
+ Máy phục vụ fax(fax server)
+ Máy phục vụ truyền thông (communication server)
Một trong những ưu điểm quan trọng của mạng dựa trên máy phục
vụ là có tính an toàn và bảo mật cao hơn.Hầu hết các mạng trong thực tế (nhất
là mạng lớn )đều dựa trên máy phục vụ
Mạng ngang hàng:
Không tồn tại một cấu trúc phân cấp nào trong mạng Mọi máy tính
đều “bình đẳng” Thông thường, mỗi máy tính kiêm luôn cả hai vai tròmáy khách và máy phục vụ, vì vậy không máy nào được chỉ định chịu tráchnhiệm quản lý mạng Người dùng ở từng máy tự quyết định phần dữ liệunào trên máy của họ sẽ được dùng chung trên mạng Thông thường mạngngang hàng thích hợp cho các mạng có quy mô nhỏ (chẳng hạn như nhómlàm việc ) và không yêu cầu phải có tính bảo mật
1.3.4 Phân loại mạng theo kiến trúc
Người ta có thể phân loại mạng theo kiến trúc (topology vàprotocol) như các mạng SNA, mạng ISO, mạng TCP/IP
1.4 Kiến trúc phân tầng - chuẩn hoá mạng - mô hình ISO
1.4.1 Kiến trúc phân tầng
Để giảm độ phức tạp trong thiết kế và cài đặt mạng, các mạng máy tính
được tổ chức thiết kế theo kiểu phân tầng (layering) Trong hệ thốngthành phần của mạng được tổ chức thành một cấu trúc đa tầng, mỗi tầng
được xây dựng trên tầng trước đó ; mỗi tầng sẽ cung cấp một số dịch vụcho tầng cao hơn Số lượng các tầng cũng như chức năng của mỗi tầng làtuỳ thuộc vào nhà
Trang 7thiết kế Ví dụ cấu trúc phân tầng của mạng SNA của IBM, mạng DECnet củaDigital, mạng ARPANET Là có sự khác nhau.
Nguyên tắc cấu trúc của mạng phân tầng là: mỗi hệ thống trong một mạng
đều có cấu trúc phân tầng (Số l ợng ượng tầng, chức năng của mỗi tầng là nhượng nhau )
Tầng i của hệ thống A sẽ hội thoại với tầng i của hệ thống B, các quytắc và quy ước dùng trong hội thoại gọi là giao thức mức I
Giữa hai tầng kề nhau tồn tại một giao diện (interface) xác định cácthao tác nguyên thuỷ của tầng dưới cung cấp lên tầng trên
Trong thực tế dữ liệu không truyền trực tiếp từ tầng i của hệ thống nàysang tầng i của hệ thống khác ( trừ tầng thấp nhất trực tiếp sử dụng
đường truyền vật lý để truyền các xâu bít (0.1) từ hệ thống này sang hệthống khác
).Dữ liệu được truyền từ hệ thống gửi (sender) sang hệ thống nhận(receiver) bằng đường truyền vật lý và cứ như vậy dữ liệu lại đi ngược lêncác tầng trên Như vậy khi hai hệ thống liên kết với nhau, chỉ tầng thấp nhấtmới có liên kết vật lý còn ở tầng cao hơn chỉ có liên kết logic (liên kết ảo )
được đưa vào để hình thức hoá các hoạt động của mạng thuận tiện cho việcthiết kế và cài đặt các phần mềm truyền thông Như vậy để viết chươngtrình cho tầng N, phải biết tầng N+1 cần gì và tầng N+1 có thể làm được gì
Hệ thống A
Tầng NTầng N-1
Tầng 2
Giao thức tầng N Giao thức tầng N-1
Giao thức tầng 2Giao thức tầng 1
Hệ thống BTầng NTầng N-1
i/ ISO(international Standard Organization) thành lập dưới sự bảotrợ của liên hiệp quốc, các thành viên là các cơ quan tiêu chuẩn của các quốcgia ISO đã xây dựng hơn 5000 chuẩn ở tất cả các lĩnh vực ISO được chiathành
Trang 8các uỷ ban kỹ thuật ( Technical Committee -TC) TC97 đảm bảo chuẩn hoálĩnh vực xử lý tin Mỗi TC lại chia thành nhiều tiểu ban (Sub Committee -SC)
và mỗi SC lại chia thành nhiều nhóm làm việc khác nhau (Working Group )
đảm nhiệm các nhiệm vụ chuyên sâu khác
đ−ợc gọi là chuẩn mà đ−ợc gọi là các khuyến nghị (recommentdation).CCITT đã đ−a ra các khuyến nghị loại V liên quan đếntruyền dữ liệu, các khuyến nghị loại X liên quan đến mạng truyền dữ liệucông cộng và các khuyến nghị loại I dành cho các mạng ISDN
Ngoài ISO, CCITT trên thế giới còn có các tổ chức khác tham gia việcchuẩn hoá nh− ECMA(european Computer Manufacture ), ANSI(American National Standard institute ),IEEE (institute Electrical andElectronic Engineers)
X.288 RTSEX.229 ROSEX.227
88248825
Trang 9Do các nhà thiết kế tự do lựa chọn kiến trúc mạng riêng của mình Từ
đó dẫn đến tình trạng không tương thích giữa các mạng về: Phương pháptruy nhập đường truyền khác nhau, họ giao thức khác nhau sự khôngtương thích
đó làm trở ngại cho quá trình tương tác giữa người dùng ở các mạngkhác nhau Nhu cầu trao đổi thông tin càng lớn thì trở ngại đó càng không thểchấp nhận được với người sử dụng Với lý do đó tổ chức chuẩn hoá quốc tếISO đã thành lập một tiểu ban nhằm xây dựng một khung chuẩn về kiến trúcmạng để làm căn cứ cho các nhà thiết kế và chế tạo các sản phẩm mạng.Kết quả là năm 1984 ISO đã đưa ra mô hình tham chiếu cho việc kết nốicác hệ thống mở ( Reference Model for Open System Inter - connection)hay gọn hơn là OSI Reference model Mô hình này được dùng làm cơ sở
để kết nối các hệ thống mở
ISO sử dụng phương pháp phân tích các hệ thống mở theo kiếntrúc phân tầng và đã công bố mô hình OSI cho việc kết nối các hệ thống mởgồm 7 tầng
ApplicationPresentationSession Transport Network Data Link Physical
ApplicationPresentationSession Transport Network Data Link Physical
Hình 1-6: Mô hình OSI 7 tầng
Các nguyên lý đươngợc áp dụng cho 7 tầng nhương sau:
(1) Một lớp cần thiết phải tạo ở mức độ khác nhau của khái niệm trừu tượng
(2) Mỗi lớp phải thực hiện một chức năng xác định rõ ràng
(3) chức năng của mỗi lớp phải được chọn theo quan điểm hướng tới các giao thức chuẩn quốc tế đã được định nghĩa
(4) Ranh giới giữa các lớp phải được chọn để tối thiểu luồng thông tin
đi qua các giao diện
(5) Số các lớp phải đủ lớn để phân biệt các chức năng cần thiết nhưngkhông đưa vào cùng một lớp quá nhiều chức năng, và phải đủ nhỏ
để kiến trúc không rắc rối
Chức năng các tầng trong mô hình OSI
Trang 10Tầng Chức năng
1 Vật lý Cung cấp ph ơng− tiện truyền tin, thủ tục, khởi động duy
trì,huỷ bỏ các liên kết vật lý, cho phép truyền dữ liệu ở dạng bit.Truy nhập đ ờng− truyền vật lý nhờ các ph ơng− tiện: Cơ,
mạng .Thực hiện việc chọn đ ờng− và chuyển tiếp thông tin với công
nghệ chuyển mạch thích hợp Thực hiện việc kiểm soát luồngdữ liệu và cắt hợp dữ liệu nếu cần
4 Tầng
giao vận Thực hiện việc truyền dữ liệu giữa hai đầu nút (end- to- end),kiểm soát lỗi và kiểm tra việc truyền dữ liệu giữa hai đầu nút
Có thể thực hiện việc ghép kênh (Multiplxing), cắt hợp dữ liệu nếu cần
5 Tầng
phiên Thiết lập, duy trì và đông bộ hoá và huỷ bỏ các phiên truyềnthông
6 Trình
diễn Biểu diễn thông tin theo cú pháp ng ời− sử dụng để đảm bảo
truyền dữ liệu của các ứng dụng qua môi tr ờng− OSI
7 ỉng dụng Là giao diện giữa ng ời− sử dụng và môi tr ờng− OSI,đồng
thờicung cấp các dịch vụ thông tin phân tán.Hình 1-7 Chức năng các tầng trong mô hình OSI
b) Các giao thức chuẩn của mô hình
OSI
Vấn đề đặt ra ở đây là hai hệ thống máy tính khác nhau có thể giao tiếp
đ−ợc với nhau hay không? Ta thấy rằng mô hình OSI có thể tạo ragiải pháp để cho phép hai hệ thống dù khác nhau thế nào đi nữa đều cóthể truyền thông đ−ợc với nhau nếu chúng đảm bảo những điều kiệnsau
đây:
+ Chúng càI đặt cùng một tập các chức năng truyền thông
+ Các chức năng đó đ ợc− tổ chức thành một tầng Các tầng đồngmức phảI cung cấp các chức năng nh− nhau ( Ph ơng−ợng thức cung cấp không nhất thiết giống nhau )
+ Các tầng đồng mức phải sử dụng cùng một giao
thức
Để đảm bảo những điều trên cần phảI có các chuẩn Các chuẩn phảIxác định các chức năng và dịch vụ đ−ợc cung cấp bởi một tầng Cácchuẩn cũng phải xác định các giao thức giữa các tầng đồng mức Mô hìnhOSI 7 tầng chính là cơ sở để xây dựng các chuẩn đó
Thực thể hoạt động trong các tầng của
OSI
Theo quan niệm của OSI, trong mỗi tầng của một hệ thống có một hoặcnhiều thực thể (entity) hoạt động Một thực thể có thể là thực thể mềm(software entity), ví dụ nh− một tiến trình trong hệ thống đa xử lý, hoặclà
Trang 11một thực thể cứng (hardware entity) ví dụ như chíp I/O thông minh Thực thể tầng 7 được gọi là thực thể ứng dụng (Application entity); thực thể tầng 6
được gọi là thực thể trình diễn .v v
Một thực thể tầng N cài đặt dịch vụ cung cấp cho tầng N+1 Khi đótầng N gọi là người cung cấp dịch vụ, còn tầng N+1 gọi là người dùngdịch vụ Tầng N dùng dịch vụ của tầng N-1 để cung cấp dịch vụ của nó Tầng
N có thể đưa ra vài lớp dịch vụ, chẳng hạn như truyền thông nhanh mà
đắt và truyền thông chậm mà rẻ Các dịch vụ là có sẵn tại các nút truy cậpdịch vụ (SAP) Các SAP của tầng N tại các chỗ mà tại đó tầng N+1 có thểtruy nhập dịch vụ được đưa ra Mỗi SAP có một địa chỉ và tên duy nhất.Mỗi thực thể truyền thông với thực tế của tầng trên và tầng dưới nó quamột giao diện (interface) Giao diện này gồm một hoặc nhiều điểm truy cậpdịch vụ (Service Acess Poent – SAP) (N-1) Entity cung cấp dịch vụ chomột (N) entity thông qua việc gọi các hàm nguyên thuỷ (primitive) Hàmnguyên thuỷ chỉ rõ chức năng cần thực hiện và được dùng để chuyển dữliệu, thông tin điều khiển Có 4 hàm nguyên thuỷ được dùng để định nghĩatương tác giữa các tầng liền kề nhau, sơ hoạt động được mô tả như hìnhsau:
Request
SAP (N)Layer (N)Protocol (N)Layer SAP
Hình 1-8: Nguyên lý hoạt động của các hàm nguyên thuỷ
Request (yêu cầu ): là hàm nguyên thuỷ mà người sử dụng dịch
vụ (Service user) dùng để gọi các chức năng
Indication (chỉ báo): là hàm nguyên thuỷ mà người cung cấp dịch vụ (Service Provider ) dùng để:
+ Gọi báo một chức năng nào đó hoặc
+ Chỉ báo một chức năng đã được gọi ở một điểm truy cập dịch vụ
(SAP)
response (trả lời ): là hàm nguyên thuỷ mà Service user dùng để hoàn
tất một chức năng đã được gọi từ trước bởi một hàm nguyên thuỷ Indication ởSAP đó
confirm (xác nhận) là hàm nguyên thuỷ của Service Provider, dùng để
hoàn tất một chức năng đã được gọi từ trước bởi hàm nguyên thuỷ Requesttại SAP đó
Trang 12Theo sơ đồ này quy trình thực hiện một thao tác giữa hai hệ thống A và
+ Nhận được thông báo yêu cầu đó, tầng (N) của B gửi một lên
(Confirm) kết thúc một giao tác giữa hai hệ thống Các hàm nguyên thuỷ đều
được gọi đến ( hoặc gửi đi ) từ một điểm truy nhập dịch vụ (SAP) ở ranhgiới 2 tầng (N+1) và (N) Đơn vị dữ liệu sử dụng trong giao thức tầng (N) kýhiệu là PDU Giữa các tầng kề nhau các đơn vị dữ liệu có mối quan hệnhư sau: một thực thể ở tầng N không thể truyền trực tiếp đến một thực thểtầng N+1 của hệ thống khác, mà phải đi xuống tầng thấp nhất (tầng vật lý )trong kiến trúc phân tầng nào đó Khi xuống tầng đến (N) thì một đơn vị dữliệu của tầng
(N) được xem như một đơn vị dữ liệu (SDU) của tầng (N) Phần thông tincủa tầng (N), gọi là (N) SDU quá dài thì được cắt thành nhiều đoạn, mỗi
đoạn kết hợp với (N) PCI vào đầu để tạo thành nhiều (N) PDU Quá trìnhnhư vậy được chuyển xuống cho đến tầng vật lý, ở đó dữ liệu được truyềnqua đường vật lý ở hệ thống nhận, quá trình diễn ra ngược lại Qua mỗitầng các PCI của các
đơn vị dữ liệu sẽ được phân tích và cắt bỏ các header của các PDU trướckhi gửi lên tầng trên
c) Ph ươngơng thức hoạt động: có liên kết và không có liên kết
ở mỗi tầng mô hình trong tầng ISO, có hai phương thức hoạt
động chính được áp dụng đó là: phương thức hoạt động có liên kết
(connection- oriented) và không có liên kết (connectionless).
Với phương thức có liên kết, trước khi truyền dữ liệu cần thiếtphải thiết lập một liên kết logic giữa các thực thể cùng tầng Còn vớiphương thức
Trang 13không liên kết thì không cần lập liên kết logic và mỗi đơn vị dữ liệu trước hoặc sau nó.
Với phương thức có liên kết, quá trình truyền dữ liệu phải trải qua ba giai đoạn theo thứ tự thời gian
- Thiết lập liên kết: hai thực thể đồng mức ở hai hệ thống thương
lượng với nhau về tập các tham số sẽ được sử dụng trong giai đoạn sau
- Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và quảnlý
- Huỷ bỏ liên kết (logic): giải phóng các tài nguyên hệ thống đã cấpphát cho liên kết để dùng cho các liên kết khác
Tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sử
dụng, chẳng hạn đối với tầng N có: CONNECT ( thiết lập liên kết ), DATA(Truyền dữ liệu ), và N-DISCONNECT (Huỷ bỏ liên kết )
N-ngoài ra còn một số thủ tục phụ được sử dụng tuỳ theo đặc điểm, chức năng của mỗi tầng Ví dụ:
- Thủ tục N-RESTART được sử dụng để khởi động lại hệ thống ở tầng
3
- Thủ tục T-EXPEDITED DATA cho việc truyền dữ liệu nhanh ở tầng
4
- Thủ tục S-TOKEN GIVE để chuyển điều khiển ở tầng 5
Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication, Response, Confirm) để cấu thành các hàm cơ bản của giao thức ISO.
Còn đối với phương thức không liên kết thì chỉ có duy nhất một giai
đoạn đó là: truyền dữ liệu
So sánh hai phương thức hoạt động trên chúng ta thấy rằngphương thức hoạt động có liên kết cho phép truyền dữ liệu tin cậy, do đó
có cơ chế kiểm soát và quản lý chặt chẽ từng liên kết logic Nhưng mặtkhác nó phức tạp và khó cài đặt Ngược lại, phương thức không liên kếtcho phép các PDU
được truyền theo nhiều đường khác nhau để đi đến đích, thích nghi với
sự thay đổi trạng thái của mạng, song lại trả giá bởi sự khó khăn gặp phải khitập hợp các PDU để di chuyển tới người sử dụng
Hai tầng kề nhau có thể không nhất thiết phải sử dụng cùng mộtphương thức hoạt động mà có thể dùng hai phương thức khác nhau
1.4.4 Truyền dữ liệu trong mô hình OSI.
Tiến trình gửi gồm vài dữ liệu muốn gửi qua tiến trình nhận Dữ liệu
đưa xuống tầng ứng dụng, dữ liệu đó gắn thêm phần đầu áp dụng(AH- Application Header) vào phía trước dữ liệu và kết quả đưa xuốngcho tầng trình diễn Tầng trình diễn có thể biến đổi mục dữ liệu này theonhiều cách khác nhau, thêm phần header vào đầu và đi xuống tầng phiên.Quá trình này
được lặp đi lặp lại cho đến khi dữ liệu đi xuống tầng vật lý, ở đó chúngthực sự được truyền sang máy nhận ở máy nhận các phần header khác nhau
được loại bỏ từng cái một khi các thông báo truyền lên theo các lớp cho đếnkhi lên tới tiến trình nhận Như vậy, việc truyền dữ liệu thực hiện theo chiềudọc Khi
Trang 14tầng giao vận ở máy gửi nhận một thông báo từ tầng phiên, gán một TransportHeader và gửi nó qua tầng giao vận nhận.
Application
Presentation
Giao thức lớp ứng dụng Giao thức trình diễn
Data
AH Data
PH Data
ApplicationPresentationSession
Hình 1-10: Ví dụ quá trình truyền dữ liệu trong mô hình OSI
Hình 1-10 biểu diễn một mẫu sử dụng mô hình OSI có thể truyền dữliệu như thế nào
1.5 Kết nối các mạng máy tính:
1.5.1 Các tiếp cận: trong quá trình phát triển mạng máy tính, nhiều
công ty, nhiều vùng, nhiều quốc gia đã xây dựng các hệ thống mạng khácnhau về chủng loại, kiến trúc, khoảng cách Nhu cầu trao đổi thông tin củaxã hội ngày càng cao nên việc kết nối các mạng với nhau là vấn đề bức thiết.Làm cho những người sử dụng trên các mạng khác nhau có thể trao đổithông tin với nhau một cách dễ dàng, hiệu quả và an toàn mà không phải xâydựng lại hệ thống mạng đã có
để kết nối các mạng với nhau, người ta xuất phát từ một trong hai quan điểm sau:
(1) Xem mỗi nút của mạng con như một hệ thống mở, hoặc
(2) Xem mỗi mạng con như một hệ thống mở
theo quan điểm (1) thì mỗi nút của mạng con có thể truyền thông trực tiếp vớimột nút mạng con bất kỳ nào khác Như vậy, toàn bộ các nút của mộtmạng con cũng chính là nút của mạng lớn và phải tuân thủ theo một cấu trúcchung Theo quan điểm (2) thì hai nút bất kỳ thuộc hai mạng con khác nhaukhông thể truyền thông trực tiếp với nhau được mà phải thông qua một phần
tử trung gian gọi là giao diện kết nối (Interconnection Iterface) đặt giữa haimạng con
đó Điều đó cho phép tạo ra một mạng lớn gồm các giao diện kết nối và cácmáy chủ (host) được nối với nhau bởi các mạng con
Tương ứng với hai quan điểm này có hai chiến lược kết nối cácmạng với nhau Theo quan điểm (1) người ta tìm cách xây dựng các chuẩnchung cho các mạng (như các chuẩn của ISO, CCITT ) Theo quan điểm(2) người ta xây dựng các giao diện kết nối để tôn trọng tính độc lập giữacác mạng hiện có Việc xây dựng các chuẩn chung cho tất cả các mạng làmột điều rất khó thực hiện, bởi vì hiện nay có hàng ngàn mạng đang tồn tạikhông thể loại
Trang 15bỏ đi để xây dựng mới vì quá tốn kém Từ đó người ta đã tạo ra hàng loạtcác thiết bị giao diện cho phép kết nối các mạng với nhau.
1.5.2 Giao diện kết nối
Người ta có thể kết nối các mạng con với nhau nhờ các giao diệnkết nối Hình 1-12 minh hoạ cho việc kết nối các mạng con SN1, SN2,SN3 và SN4 là các mạng con ; G1, G2, G3, G4 là các giao diện kết nối
chức năng của một giao diện tuỳ thuộc vào sự khác biệt về kiến trúc của cácmạng con Sự khác biệt càng lớn thì chức năng của các giao diện càng phứctạp Các giao diện có thể nối đôi, nối ba, nối nhiều hơn tuỳ thuộc vàongười thiết kế mạng Dựa vào chức năng của giao diện mà chúng có nhữngtên gọi khác nhau như: bridge, Router, gateway
Gateway là tên chung của giao diện kết nối, nó được sử dụngtrong trường hợp chức năng của giao diện là phức tạp Bridge đượcdùng trong trường hợp đơn giản nhất, chẳng hạn như kết nối giữa cácmạng LAN cùng loại Còn Router hoạt động ở mức cao hơn bridge vì nó
đảm nhận chức năng chọn đường cho các gói dữ liệu để đi đến đích
Trang 16Ch ơng ương ii Giao thức TCP/IP
Trong chương này chúnh ta sẽ xem xét về chồng giao thức TCP/IP
Đây là giao thức được sử dụng rộng rãi nhất hiện nay trong kĩ thuật kết nốimạng máy tính Chúng ta sẽ tìm hiểu về kiến trúc phân tầng của TCP/IPcùng với chức năng chính của chúng Sau đó chúng ta sẽ tập trung xem xét
kĩ về các giao thức chính trong lớp 3 (Internet Layer) và trong lớp 4(Transport Layer) của mô hình phân cấp này
2.1 Sự thúc đẩy cho việc ra đời của TCP/IP
Giao tiếp thông tin đã trở thành nhu cầu không thể thiếu trong tất cảmọi lĩnh vực hoạt động Mạng máy tính tính ra đời phần nào đã đáp ứng
được nhu cầu đó Phạm vi lúc đầu của các mạng bị hạn chế trong mộtnhóm làm việc, một cơ quan, công ty trong một khu vực Tuy nhiên thực
tế của của những nhu cầu cần trao đổi thông tin trong nhiều lĩnh vựckhác nhau, về nhiều chủ đề khác nhau, giữa các tổ chức, các cơ quan làkhông có giới hạn Vì vậy nhu cầu cần kết nối các mạng khác nhau của các tổchức khác nhau để trao đổi thông tin là thực sự cần thiết Nhưng thật khôngmay là hầu hết các mạng của các công ty, các cơ quan đều là các thực thể
độc lập, được thiết lập để phục vụ nhu cầu trao đổi thông tin của bản thâncác tổ chức đó Các mạng này có thể được xây dựng từ những kĩ thuậtphần cứng khác nhau để phù hợp với những vấn đề giao tiếp thông tin củariêng họ Điều này chính là một cản trở cho việc xây dựng một mạngchung, bởi vì sẽ không có một kĩ thuật phần cứng riêng nào đủ đáp ứngcho việc xây dựng một mạng chung thoả mãn nhu cầu người sử dụng.Người sử dụng cần một mạng tốc độ cao để nối các máy, nhưng nhữngmạng như vậy không thể được mở rộng trên những khoảng cách lớn Nhucầu về một kỹ thuật mới mà có thể kết nối được nhiều mạng vật lý có cấutrúc khác hẳn nhau là thật sự cần thiết Nhận thức được
điều đó, trong quá trình phát triển mạng ARPANET của mình, tổ chức ARPA( Advanced Research Projects Agency) đã tập trung nghiên cứu nhằm đưa
ra một kỹ thuật thoả mãn những yêu cầu trên Kỹ thuật ARPA bao gồmmột thiết lập của các chuẩn mạng xác định rõ những chi tiết của việc làm thếnào
để các máy tính có thể truyền thông với nhau cũng như một sự thiết lậpcác quy ước cho kết nối mạng, lưu thông và chọn đường Kỹ thuật đó
được phát triển đầy đủ và được đưa ra với tên gọi chính xác là TCP/IPIternet Protocol Suit và thường được gọi tắt là TCP/IP Dùng TCT/IPngười ta có thể kết nối
được tất cả các mạng bên trong công ty của họ hoặc có thể kết nối giữacác mạng của các công ty, các tổ chức khác nhau, với nhau
TCP/IP có một số đặc tính quan trọng sau:
Là bộ giao thức chuẩn mở và sẵn có, vì: nó không thuộc sở hữu củabất cứ một tổ chức nào; các đặc tả thì sẵn có và rộng rãi Vì vậy bất kì ai cũng
có thể xây dựng phần mềm truyền thông qua mạng máy tính dựa trên nó
Trang 17 TCP/IP độc lập với phần cứng mạng vật lý, điều này cho phép TCP/IP
có thể được dùng để kết nối nhiều loại mạng có kiến trúc vật lý khácnhau như: Ethernet, Tokenring, FDDI, X25, ATM
TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra mộtmạng ảo thống nhất khi kết nối mạng
Các giao thức lớp cao được chuẩn hoá thích hợp và sẵn có với ngườidùng
2.2 Cấu trúc phân lớp của TCP/IP
Như ta đã nói ở phần trước, TCP/IP cũng là mô hình mở để kếtnối mạng Nó cũng được thiết kế theo mô hình kiến trúc phân tầng tương
tự như trong mô hình tham chiếu OSI ta đã trình bày ở chương trước Bộgiao thức TCP/IP được thiết kế gồm bốn lớp được mô tả như hình sau đây:Mô hình phân lớp
Đối tượng được chuyển giữa các lớp Message or Streams
Transport Protocol Packets IP DatagramsNetwork-Specific Frames
Hình 2-1: Mô hình phân lớp của TCP/IP
Lớp ứng dụng (Application): Đây là lớp cao nhất trong cấu trúc phânlớp của TCP/IP Lơp này bao gồm tất cả các chuơng trình ứng dụng sử dụngcác dịch vụ sẵn có thông qua một TCP/IP internet.Các chương trình ứngdụng tương tác với một trong các giao thức của lớp Transport để truyềnhoặc nhận dữ liệu Mỗi chương trình ứng dụng lựa chọn một kiểu giaothức thích hợp cho công việc của nó Chương trình ứng dụng chuyển dữ
liệu theo mẫu mà lớp Transport yêu cầu.
Lớp vận chuyển (Transport): Nhiệm vụ trước tiên của lớp Transport
là cung cấp sự giao tiếp thông tin giữa các chương trình ứng dụng Mỗi sựgiao tiếp được gọi là end-to-end Lớp Transport cũng có thể điều chỉnh lưulượng luồng thông tin Nó cũng cung cấp một sự vận chuyển tin cậy, đảmbảo rằng dữ liệu đến mà không bị lỗi Để làm như vậy, phần mềm giao thức
hỗ trợ để bên nhận có thể gửi lại các thông báo xác nhận về việc thu dữ liệu
và bên gửi có thể truyền lại các gói tin bị mất hoặc bị lỗi Phần mềm giaothức chia dòng dữ liệu ra thành những đơn vị dữ liệu nhỏ hơn (thường
được gọi là các Packets) và chuyển mỗi packet cùng với địa chỉ đích tớilớp tiếp theo để tiếp tục quá trình truyền dẫn
Trang 18Mặc dù hình 2-1 dùng một khối để biểu diễn cho lớp ứng dụng,nhưng nói chung máy tính có thể có nhiều chương trình ứng dụng truynhập vào internet tại cùng một thời điểm Lớp Transport phải chấp nhận dữliệu từ một số chương trình ứng dụng và gửi nó tới lớp tiếp theo thấp hơn.
Để làm như vậy nó thêm vào thông tin bổ sung cho mỗi packet, gồm cả cácmã định danh chương trình ứng dụng đã gửi nó và chương trình ứng dụng
sẽ nhận nó, cũng như một tổng kiểm tra Máy nhận sử dụng tổng kiểm tra đểthẩm tra gói tin đã
đến, và sử dụng mã đích để định danh chương trình ứng dụng nó được chuyển phát đến
Internet layer: Như chúng ta vừa thấy, lớp Internet xử lý giao tiếpthông tin từ một máy này tới một máy khác Nó chấp nhận một yêu cầu đểgửi một gói từ từ lớp Transport cùng với một định danh của máy đích mà góitin sẽ được gửi tới Nó sẽ bọc gói tin trong một IP Datagram, điền đầyvào trong phần header, sử dụng giải thuật chọn đường để quyết định là giaophát gói tin trực tiếp hay là gửi nó tới một Router, và chuyển datagram tớigiao diện phối ghép mạng thích hợp cho việc truyền dẫn Lớp Internet cũng
xử lý các Datagram đến, kiểm tra tính hợp lệ của chúng, và sử dụng giảithuật chọn đường đẻ quyết định là datagram sẽ được xử lý cục bộ hay là
sẽ được chuyển đi tiếp Đối với các datagrams có địa chỉ đích cục bộ, thìphần mềm lớp internet sẽ xoá phần header của các datagram đó, và chọntrong số các giao thức lớp Transport một giao thức thích hợp để xử lýpacket Trong lớp Internet còn gửi các ICMP (Information ControlMessage Protocol)và các messages điều khiển khi cần thiết và xử lý tất cảmọi ICMP Messages tới
Host A
Application
Transport
IdenticalmessageIdenticalpacketRouter R
Host B Application
Interface
Hình 2-2
Trang 19Network Interface Layer: lớp thấp nhất của mô hình phân lớp TCP/IP,chịu trách nhiệm về việc chấp nhận các IP datagrams và việc truyền phátchúng trên một mạng xác định Một giao diện phối ghép mạng có thể gồmmột bộ đièu khiển thiết bị (ví dụ như khi mạng là mạng cục bộ mà máy
được gắn nối trực tiếp tới) hoặc là một hệ thống con phức tápử dụnggiao thức Data Link của bản thân nó( ví dụ khi mạng bao gồm các chuyểnmạch gói giao tiếp với các host bằng giao thức HDLC)
Để hình dung sự hoạt động trong môi trường phân lớp của TCP/IP
ta hãy xét hình vẽ minh hoạ sau:
Như hình 2-2 minh họa, việc giao phát message sử dụng haimạng riêng biệt, một mạng cho việc truyền dẫn từ host A tới Router R, vàmạng kia truyền dẫn từ Router R tới Host B
Trong phần tiếp theo ta sẽ sâu tìm hiểu về lớp Internet và lớp Transport,
là hai lớp quan trong nhất trong mô hình phân lớp TCP/IP, thông các giaothức được sử dụng trong hai lớp đó là: giao thức TCP, UDP cho lớpTransport và giao thức IP, ICMP cho lớp Internet
2.3 Các giao thức lớp Internet (Internet Protocol - IP)
Internet protocol (IP), là tên gọi giao thức lớp Internet định nghĩa các
phương tiện giao phát unreliable, connectionless, và thường được biết
với cái tên tắt là IP Trước nhất, giao thức IP định nghĩa những đơn vị củaviệc truyền dữ liệu được dùng qua một mạng TCP/IP internet Vì vậy, nó xác
định chính xác khuôn dạng của tất cả dữ liệu khi nó được chuyển qua mộtmạng TCP/IP internet Thứ hai, phần mềm IP thực hiện chức năng chọn
đường để chọn ra con đường để gửi dữ liệu qua Thứ ba, để thêm vào tínhchính xác các
đặc tả kĩ thuật của khuôn dạng dữ liệu và chọn đường thông thường, IPgồm có cả một tập các luật biểu hiện cho ý tưởng của hệ thống giao phátgói tin unreliable Các luật chỉ rõ việc làm thế nào để các hosts và cácRouters xử lý các gói tin, làm thế nào và khi nào các thông báo lỗi sẽ đượcphát đi, và các
điều kiện cho việc huỷ gói tin IP là phần chủ yếu của thiết kế nên một mạngTCP/IP internet đôi khi còn được gọi là một mạng dựa trên kĩ thuật IP(IP- based technology) Chúng ta sẽ lần lượt xem xét các vấn đế được đề cậptrong IP
Như một khung mạng vật lý, một datagram được chia thành vùng header
và vùng dữ liệu Phần header cũng tươongtự frame, nó chứa địa chỉ nguồn
địa chỉ đích và một trường type dùng định danh nội dung của dtagram Sựkhác
Trang 20nhau là header của datagram chứa địa chỉ IP còn header của frame chứa địa chỉ vật lý Hình sau mô tả dạng tổng quát của một datagram.
Datagram Header Datagram Data
a) Khuôn dạng Datagram:
Source IP AddressDestination IP Address
DATA
.
Bởi vì qúa trình xử lý datagram là do phần mềm nên nội dung và khuôndạng không bị phụ thuộc bởi phần cứng Ví dụ bốn bit trường đầutiên (VERS) chứa VERSION của giao thức IP được sử dụng để tạodatagram Trường này được sử dụng để thẩm tra rằng bên gửi bên nhận vàbất kỳ Router nào trong số giữa chungs đồng ý về khuôn dạng củadatagram Tất cả mọi phần mềm IP được yêu cầu để kiểm tra trườngVERSION trước khi xử lý một datagram để đảm bảo nó phù hợp với khuôndạng mà các phần mềm trông
đợi Nếu chuẩn thay đổi, các máy sẽ loại bỏ các datagram cùng với cácVERSION giao thức khác với phiên bản của chúng, ngăn cản chúng hiểu sainội dung datagram theo các fomat quá cũ (Tới thời điểm 1995 VERSION của
IP là 4) trường độ dàI header (HLEN) cũng có bốn bits, đưa ra gia strị độdài header của datagram được biểu diễn bởi từ 32 bits Chúng ta se thấy tấtcả các trường trong header có một độ dàI cố định trừ trường IP OPTION
và cacs trường PADDING tương ứng Header thông thường nhất khôngchứa các lựa chọn (option ) và padding, giá trị 20 octets và có một trường
độ dàI header bằng 5
Trường TOTAL LENGTH đưa ra độ dài của IP datagram được đobởi octets, gồm cả các octets của phần header và dữ liệu Kích thước củavùng dữ liệu có thể tính toán bằng việc trừ đI chiều dàI của header (HLEN)
từ giá trị của TOTAL LENGTH Bởi vì trường TOTAL LENGTH là 16 bitsnên giá trị tối đa của gói tin IP là IP là 216 hay 65535 octets Trong hầu hếtcác ứng dụng,
đIũu này không phảI là một hạn chế nghiêm trọng Nó có thể trở nên quantrọng hơn trong tương lai nếu các mạng có tốc độ cao hơn có thể mangcác gói dữ liệu lớn hơn so với 65535 octets
b) Kiểu datagram của dịch vụ và quyền ươngu tiên trươngớc datagram.
Kiểu dịch vụ TOS (Type of service) được gọi một cách khôngchính thức là trường service type 8bits xác định làm thế nào datagram sẽ
được xử lý và được phân ra 5 trường nhỏ hơn (subfield) như hình sau:
Trang 210 1 2 3 4 5 6 7
Ba bits PRECEDENCE xác định quyền đi trước của datagram vớigiá trị từ 0-7, cho phép người gửi chỉ rõ mức độ quan trọng của mỗidatagram Mặc dù hầu hết các hosts và phần mềm Router bỏ qua kiểu dịch vụnhưng nó là một kháI niệm quan trọng bởi vì nó cung cấp một –phươngtiện có thể cho phép thông tin đIũu khiển có quyền ưutiên trên dữ liệu Ví
dụ nếu tất cả các host và các Router tôn trọng quyền đI trước thì nó có thểthi hành các giảI thuật đIũu khiển tắc nghẽn Các bits D,T và R xác địnhkiểu vận chuyển datagram yêu cầu Khi thiết lập bit D yêu cầu độ trễ thấp,bit T yêub cầu độ thông cao, và bit R nyêu cầu độ tin cậy cao Dĩ nhiên nó
có lẽ không thể cho một internet để đảm bảo kiểu vận chuyển được yêu cầu (chẳng hạn nó có thể là không có con đường tới đích có quyền được yêucầu Vì vậy chúng ta nghĩ về yêu cầu vận chuyển như một gợi ý cho cácgiảI thuật chọn đường, không phảI như một nhu cầu Nừu một Routerkhông biết nhiều hơn một khả dụng tới một đích cho trước thì nó có thể sửdụng trường type of transport để lựa chọn một kiểu với các đặc đIểm gầnvơí những mong muốn đó nhất Ví dụ, giảt sử một Router có thể chọn giữamột đường leased line dung lượng thấp hoặc một kết nối vệ tinh băngthông cao ( nhưng trễ cao) Các datagram mang Key Stroke từ một ngườidùng tới một máy ở xa có bit D thiết lập đòi hỏi rằng chúng chúng phảI
được giao phát càng nhanh cành tốt, trong khi các datagrams mang mộtfile khối lượng lớn hơn có thể 7 bit thiết lập yêu cầu rằng chúng đI quacon đường vệ tinh dung lượng cao
Nó cũng rất quan trọng để nhận ra rằng các giảI thuật chọn đườngphảI chọn từ giữa các kỹ thuật mạng vật lý bên dưới, vì mỗi kỹ thuật cónhững đặc tính trễ, đọ thông, và độ tin cậy riêng Thường một kỹ thuật chotrước tương ứng đặc tính cho một cái khác ( ví dụ: tốc độ thông cao thì trễlớn ) Vì vậy lý tưởng là để đưa ra cho giải thuật chọn đường một gợi ý
về những gì quan trọng nhất, nó hiếm khi có nghĩa xác định cả 3 kiểu dịchvụ
Chúng ta quan tâm đặc tả kiểu giao vận như là một gợi ý cho giảithuật chọn đường, cái giúp nó lựa chọn giữa nhiều con đường khác nhau đểtới một
đích dựa trên hiểu biết sủa nó về kỹ thuật phần cứng, sẵn có trên con đường
đó Một internet không đảm bảo kiểu vận chuyển đã yêu cầu
c) Đóng gói các datagram.
Trước khi chúng ta có thể hiểu các trường hợp tiếp theo trongmột datagram, sẽ là rất quan trọng để quyết dịnh làm thế nào các datagramliên quan tới các khung mạng vật lý Chúng ta bắt đầu với câu hỏi: “Datagram có thể lớn hơn mức nào “ Không giống như các frames mạng vật
lý, cái có thể phải được nhận ra bởi phần cứng, các datagrams được xử lýbằng phần mềm Chúng có thể có bất kỳ chiều dài nào mà người thiết
kế giao thức chọn Chúng ta đã thấy rằng khuôn dạng datagram hiện hiệnchỉ phân 16bits cho trường chiều dài tổng cộng nên giới hạn lớn nhất củachiều dài datagram là
Trang 2265535octets Dù sao, giới hạn đó có thể được thay đổi ở version của giao thứcsau này.
Những giới hạn cơ bản hơn về kích thước dfatagram nảy sinh từ thực
tế Chúng ta biết rằng, khi các datagram chuyển từ máy này tới máy khác,chúng phảI luôn được vận chuyển bằng mạng vật lý bên dưới Để thực hiệnviệc vận chuyển trong internet một cách hiệu quả, chúng ta phải bảo đảmrằng mỗi datagram qua mạng trong một frame vật lý phân biệt Đó làchúng ta muốn cái nhìn trìu tượng về một packet mạng vật lý của chúng ta
ánh xạ trực tiếp ra một packet thực nếu có thể
DatagramHeader Datagram Data Area
FRAME
Hình 2-2: Bọc gói tin trong IP một frame Mạng vật lý coi toàn bộ datagram gồm cả
header nh là ư dữ liệu.
ý tưởng về việc mang một datagram trong một frame mạng được gọi
là “encapsulation” Đối với mạng bên dưới, một datagram giống nhưbất kỳ messages nào khác được gửi từ một máy tới máy khác Phần cứngkhông nhận ra được khuôn dạng datagram, cũng không hiểu được địa chỉ IP
đích Vì vậy, hình sau mô tả khi một máy gửi một IP datagram tới một máykhác, toàn bộ datagram được đặt vào phần dữ liệu của frame mạng
d) Kích th ươngớc datagram, network MTU và sự phân mảnh.
Trong trường hợp lý tưởng, toàn bộ IP datagram vừa khít trongmột khung vật lý, việc thực hiện truyền dẫn qua mạng vật lý là hiệu quả
Để có
được những hiệu quả như vậy, những nhà thiết kế IP có thể đã lựa chọnmột kích thước datagram tối đa để một datagram sẽ luôn vừa trong mộtframe Nhưng kích thước nào của frame sẽ được lựa chọn ? Cuối cùng,một datagram có thể đi qua nhiều kiểu mạng vật lý khi nó chuyển quamột internet tới đích cuối cùng của nó
Để hiểu được vấn đề, chúng ta cần yếu tố về phần cứng mạng: Mỗi
kỹ thuật chuyển mạch gói đặt một giới hạn trên cố định trên một số lượng dữliệu có thể được truyền trên một khung vật lý Ví dụ Ethernet giới hạn việctruyền tối đa là 1500 octets dữ liệu, trong khi FDDI cho phép tới gần 4470octets dữ liệu / 1 frame Chúng ta gọi những giới hạn này là MTU củamạng (Maximumn Transfer Unit) Kích cỡ MTU có thể hơi nhỏ: một số kỹthuật phần cứng giới hạn truyền 128 octets hoặc ít hơn Việc giới hạn cácdatagram
để làm vừa vặn MTU nhỏ nhất trong Internet làm cho việc truyền có hiêụ quảkhi những datagram đó chuyển qua một mạng, cái có thể mang các frame cỡlớn hơn Dù sao thì việc cho phép các datagram lớn hơn so với MTU mạng
Trang 23nhỏ nhất trong một internet có nghĩa là một datagram có thể không phải lúc nào cũng vừa vặn trong một frame mạng.
Net 3 MTU=1500
Hình 2-3: Router R1 phân mảnh các datagrams lớn đ ợc ư gửi từ A tới B R2
phân mảnh các datagrams từ B tới A.
Sự lựa chọn có thể là hiển nhiên: quan điểm của thiết kế internet là để ẩn đicác kỹ thuật mạng bên dưới và làm cho việc giao tiếp thuận tiện vớingười dùng Vì vậy, thay vì việc thiết kế các datagram tôn trọng triệt đểnhững ràng buộc của mạng vật lý, thì phần mềm TCP/IP chọn một kíchthước datagram khởi đầu tiện lợi và giúp phân chia các datagram lớn racác phần nhỏ khi datagram cần đi qua một mạng có MTU nhỏ Các phầnnhỏ của datagram
được chia gọi là phân mảnh (fragment), và quá trình phân chia được gọi
là quá trình phân mảnh (fragmentation)
Hình 2-3 minh hoạ quá trình phân chia thường xảy ra tại mộtRouter nào đó dọc theo con đường datagram đi từ nguồn tới đích Routernhận một datagram từ mạng với một MTU lớn và phải gửi nó qua một mạng
có MTU nhỏ hơn kích thước của datagram Trong hình vẽ, cả Host gắn trựctiếp tới các Ethernets có MTU là 1500 octest Vì vậy cả 2 Hosts có thểphát và gửi tới kích thước 1500 octests Nhưng con đường giữa chúng làmột mạng với MTU bằng 620 Nếu Host A gửi cho Host B một datagramlớn hơn 620 octests, Router R1 sẽ phân mảnh datagram đó Tương tự, nếu
B gửi 1 datagram lớn hơn 620 tới A, R2 sẽ phân mảnh chúng
Trang 24Hình 2-4: (a) Một datagram 1400 ocsets và (b) 3 mảnh cho mạng có MTU bằng 620 Header 1 và 2 có thêm bit thiết lập phân mảnh Các offset là các số octet tính theo hệ 10 chúng phải đ ợc ư chia cho 8 để lấy giá trị đã cất giữ trong fragment header.
Kích cỡ mảnh được chọn sao cho mỗi mảnh có thể được chuyểnqua mạng bên dưới một frame đơn Hơn nữa, bởi IP đưa ra offset của dữliệu là bội số của 8 ocsets, nên kích thước của mảnh phân được chọn là bội
số của 8 Dĩ nhiên, việc chọn bội 8 là số gần với MTU của mạng nhấtthường không chia datagram thành các phần kích cỡ bằng nhau; phầncuối cùng thường ngắn hơn những phần khác Các mảnh phải được lắpráp lại để tạo ra 1 bản sao đầy đủ của datgram ban đầu trước khi nó có thể
được xử lý tại đích
Giao thức IP Protocol không giới hạn kích thước dưới chodatagram, hay là đảm bảo rằng các datagram lớn hơn sẽ được giao phát màkhông cần phân mảnh Nguồn có thể chọn bất kỳ kích thước datagram
mà nó cho là thích hợp; việc phân mảnh và ráop lại diễn ra 1 cách tự động,
mà không cần nguồn phải có một hành động gì Đặc tả kỹ thuật IP chỉ rõrằng các Routers phải chấp nhận các datagram phải có kích cỡ bằng cácMTU lớn nhấtcủa các mạng chúng gắn nối tới Hơn nữa, 1 Router phải luônluôn xử lý các datagram lên tới 576 ocsets (các hosts cũng được yêu cầuchấp nhận, và có thể tái lắp ghép khi cần, các datagrams với ít nhất là 576ocsets.)
Việc phân mảnh 1 datagram có nghĩa là phân chia nó thành một sốphần mảnh nhỏ hơn Có thể sẽ làm bạn ngạc nhiên, đó là mỗi phần có cùngmột khuôn dạng như datagram ban đầu Hình 2-4 đã minh hoạ điều này
Mỗi mảnh chứa một datagram header, nó lặp lại hầu hết thông tin củadatagram header ban đầu (trừ một bit trong trường FLAGS để chỉ ra rằng
nó là một mảnh) được theo sau bởi nhiều dữ liệu như nó có thể được mangtrong mảnh trong khi dữ tổng chiều dài nhỏ hơn MTU của mạng mà nó phải
đi qua
e) Tái lắp ghép các mảnh.
Một Datagram sẽ được lắp ghép sau khi đi qua một mạng, hay làcác mảnh sẽ được mang tới Host cuối cùng trước khi lắp ghép ?Trong một TCP/IP internet một khi một Datagram đã được phân mảnh thìcác mảnh sẽ
đi tới đích như thể những Datagram riêng biệt cùng tới một đích cuối lànơi chúng phải được lắp ghép lại Việc duy trì cho tất cả các mảnh cùng tớimột
đích cuối có hai bất lợi Thứ nhất bởi vì các Datagram không được lắpghép lại ngay lập tức khi chuyển qua một mạng có MTD nhỏ, nên cácmảnh nhỏ phải được mang từ nơi phân mảnh tới đích cuối cùng Việc lắpghép lại các Datagrams tại đích cuối cùng có thể dẫn tới sự không hiệu quả,
dù là một số trong các mạng vật lý đã gặp sau điểm phân mảnh có MTD lớnhơn, trong khi chỉ các phân mảnh nhỏ đi qua nó Thứ hai, nếu bất kỳmảnh nào bị mất, datagram không thể được lắp ghép lại được Máy nhậnkhởi tạo một bộ timer lắp ghép khi nó nhận được một mảnh khởi đầu Nếutimer hết hiệu lực trước khi tất cả các mảnh tới thì máy đang nhận sẽ huỷcác gói mà không xử lý Vì vậy khả năng mà các datagram bị mất sẽ tăng khiviệc phân mảnh xảy ra, bởi vì khi một mảnh bị mất thì coi như cả datagram
bị mất
Trang 25Bất chấp một số bất lợi phụ, việc thực hiện lắp ráp tại đích cuối cùngvẫn hoạt động tốt Nó cho phép mỗi phân mảnh được định tuyến độc lập,
và không đòi hỏi các Router trung gian lưu giữ chúng hoặc lắp ghép chúng
f) Điều khiển việc phân mảnh
Ba trường trong phần HEADER của datagram làIDENTIFICATION, FLAGS và FRAGMENT OFFSET điều khiển việcphân mảnh và lắp ráp datagram Trường IDENTIFICATION chứa một sốnguyên duy nhất định danh datagram Nhớ lại rằng khi một Router phânmảnh 1 datagram thì nó copy phần lớn các trường trong phần HEADERcủa datagram ban đầu vào mỗi mảnh Trường IDENTIFICATION cũngphải được copy Mục đích trước tiên là để cho đích biết là mảnh đến nào làcủa datagram nào Khi một mảnh
đến, đích dùng trường IDENTIFICATION để cùng với địa chỉ nguồn đểxác
định datagram Các máy tính gửi datagram phải tạo ra một giá trị duy nhấtcho mỗi datagram Một kỹ thuật được sử dụng bửi mọt phần mềm IP Giữmột bộ đếm toàn cục (global counter) trong bộ nhớ, tăng nó mỗi lần mộtdatagram mới được tạo ra, và gán kết quả như là trườngIDENTIFICATION của datagram
Nhớ lại rằng mỗi mảnh có có chính xác cùng khuôn dạng nhưkhuôn dạng của datagram lúc chưa phân mảnh.Đối với mỗi mảnh,trường FRAGMENT OFFSET xác định độ lệch trong (offset)datagram ban
đầu của dữ liệu đnag được mang bằng các mảnh, được đo bằng các khối 8octets bắt
đầu từ offset 0 Để lắp ráp lại các datagram, đích phải có được tất cả cácmảnh từ mảnh có offset 0 cho tới mảnh có offset cao nhất.các mảnh khôngcần phải
đến đúng trật tự và không có giao tiếp giữa Router đã phân mảnh datagram và
đích đang lắp ráp chúng
Hai bít thấp của trường FLAGS điều khiển việc phân mảnh.Thông thường phần mềm ứng dúngử dụng TCP/IP không cần quan tâm tớiviệc phân mảnh bởi vì cả việc phân mảnh và lắp ráp lại các mảnh đều là cácthủ tục tự
động hoạt động tại một mức thấp trong hệ điều hành mà người dùngkhông thể thấy được Dù sao thì để kiểm tra lại phần mềm internet hoặc gỡrối các vấn đề vận hành thì có thể kiểm tra kích thước của các datagram thìrất quan trọng cho việc phân mảnh xảy ra Bit điều khiển đầu tiên hỗ trợtrong những trường hợp kiểm tra như vậy bằng cách xác định rõ là datagram
có thể bị phân mảnh hay là không Nó được gọi là bit không phân mảnh bởivì việc thiết lập nó lên giá trị 1 xác định rằng datagram sẽ không bị phânmảnh Một ứng dụng có thể chọn để không cho phép phân mảnh trongtrường hợp chỉ khi toàn bộ datagram mới có tác dụng Ví dụ xét một qúatrình khởi động từ xa của một máy tính : nó bắt đầu thi hành mộtchương trình nhỏ từ ROM, chương này sử dụng internet để yêu cầu thủtục khởi tạo và máy kia gửi lại phần mềm mà nó yêu cầu Trường hợpnày máy cần hoặc là toàn bộ phần mềm hoặc là không, nên datagram của
nó sẽ phải có bit “ donot fragment”
được thiết lập 1 Bất cứ khi nào 1 Router cần phân mảnh một datagram cóbit “donot fragment” mang giá trị 1, thì Router đó sẽ huỷ Datagram và gửimột thông báo lỗi trở lại nguồn
Trang 26Bit thấp trong trường FLAGS xác định là mảnh chứa dữ liệu từ vịtrí giữa của gói tin ban đầu hay từ vị trí cuối Nó được gọi là bit “morefragment” Để biết tại sao một bit như vậy cần phải có, hãy xem xét việcphần mềm IP tại đích cố gắng lắp ráp lại một datagram Nó sẽ nhận được cácmảnh có thể không đúng trình tự và cần biết khi nào nó đã nhận được tấtcả các mảnh của datagram Khi một mảnh đến, trường TOTAL LENGTH
ở HEADER cho biết kích thước của mảnh nhưng không cho biết kíchthước của gói tin ban đầu, vì vậy đích không thẻ sử dụng trường TOTALLENGTH để biết là nó đã nhận được toàn bộ các mảnh hay chưa Bit “more fragment “ đã quyết định vấn đề này dễ dàng: Một khi đích nhận đượcmột fragment với bit “more fragment “ là 0, nó biết rằng mảnh này mang dữliệu từ phần cuối của datagram ban đầu Từ trường FRAGMENT OFFSET
và TOTAL LENGTH, nó có thể tính ra được chiều dài của datagram ban
đầu Bằng việc kiểm tra FRAGMENT OFFSET và TOTAL LENGTH củatất cả các mảnh nó nhận
được thì bên nhận có thể biết rằng các mảnh nó có chứa tất cả dữ liệu cần
để láp ráp lại toàn bộ datagram hay là không
g) Time to live (TTL).
Trưòng TIME TO LIVE xác định thời gian datagram được phép tồntại trong hệ thống internet, nó được tính bằng giây ý tưởng thì đơn giảnnhưng rất quan trọng: bất cứ khi nào một máy đưa vào trong mạng mộtdatagram thì nó đặt một thời gian tối đa để tồn tại trong mạng chodatagram đó Các Router và các host xử lý các datagram phải giảm giá trịcủa trươòng TIME TO LIVE mỗi lần gửi qua và xoá bỏ datagram khi thờigian của datagram hết hiệu lực
Việc ước lượng thời gian chính xác là khó khăn bởi vì cácRouter thường không biết thời gian quá độ của các mạng vật lý Một sốluật đơn giản hoá quá trình xử lý và làm cho việc xử lý các datagram dễdàng mà không cần đồng hồ đồng bộ Trước hết, mỗi Router dọc đường
từ nguồn tới
đích được yêu cầu giảm giá trị trường TIME TO LIVE đi một đơn vị khi
nó xử lý phần HEADER của datagram Thêm nữa, để xử lý các trường hợpcác Router quá tải, mỗi Router báo cáo thời gian cục bộ khi datagram
đến và giảm TIME TO LIVE đi một giá trị bằng số giây datagram ở trongRouter chờ dịch vụ xử lý
Bất cứ khi nào trường TIME TO LIVE đạt tới giá trị 0, thì Router
sẽ huỷ datagram đó và gửi thông báo lỗi về nguồn ý tưởng của việc duy trìmột bộ timer cho các datagram rất là hữu dụng bởi vì nó đảm bảo rằngcác datagram không thể quanh quẩn trong internet mãi mãi, ngay cả khi bạnchọn
đường bị lỗi và các Router định tuyến cho các datagram trong một vònglặp
h) Các tr ươngờng khác của Header trong datagram.
Trường PROTOCOL tưong ttự trường TYPE trong frame của mạngvật lý Giá trị trong trường PROTOCOL xác định giao thức mức cao nào
được sử dụng để tạo ra message đang được mang trong vùng DATAcủa một
Trang 27datagram Về bản chất, giá trị của PROTOCOL xác định khuôn dạng củavùng DATA Việc ánh xạ giữa một giao thức mức cao và một giá trị nguyêndương được dùng trong trường PROTOCOL phải được quản lý để đảm bảo
sự phù hợp trong toàn internet
Trường HEADER CHECKSUM đảm bảo cho tính nguyên vẹn củagiá trị HEADER IP checksum được tạo ra bằng việc coi HEADER như làmột số nguyên gồm các cụm 16 bit liên tục, bổ sung chúng cùng với việc sửdụng số bù một và rồi lấy phần bù kết quả Vì mục đích tính toánCHECKSUM, trường HEADER được giả sử là chứa giá trị 0
Điều quan trọng để nhớ là CHECKSUM chỉ áp dụng với các giá trịtrong IP header chứ không phải cho phần DATA Việc phân chia checksumcho các HEADER và DATA có một số thuận lợi nhưng cũng gây một sốbất lợi Bởi vì HEADER thường chiếm ít octet hơn phần DATA nên việc cómột tổng kiểm tra riêng làm giảm thời gian xử lý tại các Router Chúng chỉcần tính toán CHECKSUM của HEADER Sự tách biệt cũng cho phép cácgiao thức mức cao hơn chọn CHECKSUM cho bản thân chúng để tínhtoán với phần DATA Điểm bất lợi lớn nhất là việc các Giao thức lớp caohơn bị buộc phải bổ sung các CHECKSUM của chúng nếu không có thểphải chịu rủi ro có lỗi ở phần DATA mà không phát hiện được
Trường SOURCE IP ADDRESS và DESTINATION IP ADDRESS chứa
địa chỉ IP 32 bits của bên gửi và bên nhận Mặc dù datagram có thể được
định tuyến qua nhiều Router trung gian nhưng trường địa chỉ nguồn và địachỉ đích không bao giờ thay đổi
Trường DATA là vùng dữ liệu của datagram, độ dài của trườngphụ thuộc vào những gì đang được gửi trong datagram
Trường IP OPTIONS sẽ được thảo luận sau Trường PADDINGphụ thuộc vào tuỳ chọn nào được chọn Nó đại diện cho các bits chứa giá trị
0, cái có thể cần để đảm bảo cho HEADER của datagraam mở rộng tới giá trị
là bội số của 32 bits
2.3.2 Giao thức ICMP (Internet Control Message
có hệ thống nào làm việc tốt tại mọi lúc Bên cạnh những hỏng hóc về
đường dây thông tin và các bộ xử lý thì IP còn bị hư hỏng khi máy đíchkhông kết nối tạm thời hoặc thường xuyên tới mạng Khi TTL (time tolive) hết thời hạn, hoặc khi các Router trung gian trở lên quá tắc nghẽnkhông thể xử lý được luồng thông tin
đến Khác biệt quan trọng giữa việc có một mạng hoạt động với phần cứngriêng và một internet hoạt động với phần mềm là mạng có phần cứng riêng đónhà thiết kế có thể bổ sung phần cứng đặc biệt để báo tin cho cho các host
được gắn nối khi có vấn đề nảy sinh Trong một internet, không cónhững
Trang 28phương tiện phần cứng như vậy, người gửi không thể nói là giao phát bị lỗi
là do đâu Việc gỡ lỗi trở lên cực kỳ khó khăn Giao thức IP bản thân nókhông chứa bất cứ thứ gì giúp người gửi kiểm tra khả năng kết nối hoặc lànhận biết các lỗi như vậy
Để cho phép các Router trong một internet báo các lỗi hoặc cung cấpthông tin về tình huống không mong muốn ấy, các nhà thiết kế đã bổ sungmột phương tiện thông báo mục đích đặt biệt cho giao thức TCP/IP.Phương tiện đó là ICMP được xem là một phần của IP buộc phải có choviệc hoạt
động
Giống như tất cả l uư thông khác, các thông báo ICMP đi quaInternet trong phần dữ liệu của IP datagram Đích cuối cùng của một thôngbáo ICMP không phải là ch ơngư trình ứng dụng hoặc ng ờiư dùng trênmáy đích mà là phần mềm IP trên máy đó Dĩ nhiên, nếu ICMP nhận thấymột giao thức hoặc ch ơngư trình ứng dụng mức cao đã gây ra một lỗithì nó sẽ báo tin cho Module thích hợp Như vậy: ICMP cho phép các
Router gửi thông báo lỗi hoặc thông báo điều khiển tới các Router hoặc host khác: ICMP cung cấp thông tin giữa phần mềm IP trên 1 máy với một phần mềm IP trên một máy khác.
Ban đầu nó được thiết kế đề cho phép các Router báo cáo nguyênnhân của các lỗi giao phát tới các host ICMP không bị hạn chế với cácRouter Mặc dù về nguyên tắc là giới hạn sử dụng một số thông báo ICMP,nhưng 1 máy tuỳ ý có thể gửi 1 ICMP tới bất kỳ một máy nào khác Vì vậy,
1 host có thể sử dụng ICMP tương ứng cùng với một Router hoặc một hostkhác Thuận lợi chính của việc cho phép các host sử dụng ICMP là cungcấp 1 phương tiệnđơn được dùng cho tất cả các message thông tin điềukhiển
Các gói ICMP yêu cầu 2 mức bọc như hình vẽ sau:
ICMP HEADER ICMP DATA
đường xảy ra ở một số mức, ví dụ như trong mạng WAN (mạng có nhiềukết nối vật lí giữa các chuyển mạch gói), bản thân mạng phải chịu tráchnhiệm quyết định về việc chọn đường cho các gói tin từ lúc nó đến cho tớilúc nó rời đi Những chọn đường bên trong mạng nội bộ như vậy hoàntoàn tự chứa bên trong mạng WAN Máy ở bên ngoài không thể tham giavào những quyết định chọn
Trang 29đường, chúng đơn thuần chỉ xem mạng như một thực thể cần giao phátcác gói tin.
Phải nhớ rằng ưu điểm của IP là cung cấp một mạng ảo bao gồm nhiều
địa chỉ mạng vật lí và đưa ra một dịch vụ giao phát các khung dữ liệudạng không kết nối.Vì vậy chúng ta tập trung vào việc chọn đườngInternet hay chọn đường IP Tương tự việc chọn đường trong mạng vật lý,chọn đường IP là chọn một con đường để gửi các gói tin qua con đường
đó Thuật toán chọn
đường IP là phải chọn sao cho có thể gửi Datagram các mạng vật
lý
Việc chọn đường trong một mạng internet có thể rất khó đặc biệt
là giữa các máy tính có nhiều kết nối vật lý tới nhiều mạng Một cách lítưởng, phần mềm chọn đường sẽ xem xét việc đó như tải mạng, chiều dàidatagram hoặc kiểu dịch vụ được định rõ trong phần Header của cácdatagram khi lựa chọn con đường tốt nhất.Hầu hết các phần mềm chọn
đường internet thì không quá phức tạp
Để hiểu chọn đường IP một cách hoàn toàn, chúng ta phải trở lạixem xét kiến trúc internet với TCP/IP Trước tiên ta nhớ rằng mạng internet
được tạo ra trên nhiều mạng vật lý được kết nối bởi các máy tính gọi làRouter Mỗi Router có kết nối trực tiếp tới hai hoặc nhiều hơn các mạng vật
lí Trong khi
đó một Host thường kết nối trực tiếp tới một mạng vật lý Dĩ nhiên là cóthể có một Host được kết nối trực tiếp với nhiều mạng, khi đó nó đượcgọi là multi- homed Host
Cả Hosts và ROUTERs đều tham gia vào việc chọn đường cho một
IP datagram tới được đích của nó Khi một chương trình ứng dụng trên mộtHost cố gắng giao tiếp, các giao thức TCP/IP thậm chí phát một hoặcnhiều IP datagram Host phải thực hiện quyết định chọn đường khi nó lựachọn nơi gửi các datagrams.Dĩ nhiên các Router cũng thực hiện quyết địnhchọn đường (
đó là mục đích trước tiên của chúng, và là lý do để gọi chúng là ROUTER.)Thế còn các multi - hosted home ? Bất kỳ computer nào với nhiều kếtnối mạng có thể hoạt động như một ROUTER, và như chúng ta sẽ thấymulti
-host chạy ICP/IP có một phần mềm cần cho chọn đường Thêm nữa,những vị trí không đủ khả năng phân chia các Routers, lúc dùng với mục đíchchung chia xẻ thời gian máy như cả Hosts và ROUTERs Dù sao chuẩn TCP/
IP cũng chỉ ra sự riêng biệt rõ ràng giữa chức năng của Host và ROUTER
và định vị trí cố gắng trộn lẫn chức năng của Host và ROUTER trên một máytính đơn Khi thấy rằng các multi - homed Hosts của họ gắn vào các tươngtác không
được trông đợi Bây giờ chúng ta sẽ phân biệt các Hosts với các ROUTERs
và giả sử các Hosts không làm các chức năng của Router chuyển gói từmạng này tới mạng khác
Trên đây là những vấn đề chung nhất về chọn đường IP, những vấn
đề chi tiết hơn về chọn đường trong mạng máy tính nói chung và mạngTCP/IP nói riêng sẽ được chúng ta dành hẳn một chương để thảo luận sau
2.3.4 Các giao thức khác trong lớp
Internet
Trang 30IP đề ra khái niệm địa chỉ mạng Logic độc lập với địa chỉ mạng cơ sở.
IP dùng một giao thức gọi là giao thức phân giải địa chỉ -ARP (AddressResolution Protocol) để thiết lập giữa các địa chỉ Logic (còn gọi là địa chỉ IP)với địa chỉ của các nút Gói dữ liệu IP có thể phân đoạn thành nhiều phần nhỏ
để phù hợp với đơn vị truyền cực đại - MTU (Maximum Transmission Unit) của mạng cơ sở
Địa chỉ IP được biểu diến bằng số 32 bit, được tách thành bốn vùng
có thể được biểu diễn dưới dạng thập phân, bát phân, thập lục phân hoặcnhị phân có dấu chấm để tách các vùng Người ta chia địa chỉ IP thành 5 lớpdùng các bit đầu tiên để định danh lớp như hình sau:
Sở dĩ phải dùng các kiếu địa chỉ khác nhau là để đánh địa chỉ cần
thiết cho những mạng có kích thước khác nhau Bảng sau sẽ trình bày số lượng mạng và số node ứng với mỗi lớp địa chỉ:
Trang 31+ Giá trị 1 trong mặt nạ con tương ứng với vị trí của Netid và số mạng con trong địa chỉ IP.
+ Giá trị 0 trong mặt nạ con tương ứng với số máy chủ trong địa chỉ IP
b) Phân giải địa chỉ ARP(Address Resolution Protocol)
Để truyền thông điệp tới một máy chủ trên mạng, nơi gửi phải biết địachỉ phần cứng của máy chủ đích Địa chỉ phần cứng, còn gọi là địa chỉ MAC(Media Access Control) Địa chỉ IP không phải là đia chỉ vật lý, nó chỉ chứa
địa chỉ nhận dạng máy chủ (Host) và mạng (Net) là địa chỉ 32 bit, trong khi
đó địa chỉ MAC là 48 bit Vì thế có một cơ chế linh động để xác định địa chỉMAC khi biết địa chỉ IP của máy chủ, cơ chế này được thực hiện nhưmột giao thức riêng được gọi là ARP
Phần lớn các trạm mạng TCP đều duy trì một bảng chuyển từ địa chỉ LAN vật
lý sang địa chỉ IP Thực tế nó chỉ là một vùng RAM chứa tham chiếu(mapping) từ địa chỉ MAC sang địa chỉ IP mà nó học được trên mạng.Quá trình học này như sau:
Một trạm (Host A) gửi một khung truyền dưới dạng Broadcast gọi làkhung yêu cầu ARP trên mạng, khung này chứa địa IP của Host B (nơi cầnxác định
địa chỉ) và địa chỉ MAC và địa chỉ IP của máy gửi (Host A) Tất cả các nútnhận được khung truyền này sẽ so sánh địa chỉ của nó với địa chỉ IP trongyêu cầu ARP Chỉ có máy chủ có cùng địa chỉ IP với địa chỉ trong khung yêucầu ARP mới đáp lại Nếu Host B tồn tại trên mạng, nó sẽ phản ứng lại địa chỉ
IP mã hoá trong một khung trả lời ARP Host B khởi động bảng chứa ARP vànhớ lại địa chỉ này, các giá trị chứa trong bảng này sẽ hết hiệu lực sau mộtkhoảng thời gian nào đó (thời gian này có thể được cấu hình trong một sốứng dụng TCP/IP)
Một số chú ý về ARP:
ARP không phải là một phần của giao thức IP nên nó không chứa phần Header của IP
Các yêu cầu và trả lời của ARP đều là các địa chỉ vật lý
Trong vùng Ethertypes ARP được gán 0806h
ARP có khả năng xoá bỏ các địa chỉ đã lâu không dùng
Nếu một máy gửi yêu cầu cho chính nó, nó phải tự trả lời
c) Thủ tục phân giải ng ươngợc (RARP- Reverse Address Resolution)
Giao thức này được dùng trong trường hợp khi một trạm trên mạngchỉ biết địa chỉ phần cứng (MAC) mà không biết địa chỉ IP và có thể
được sử dụng trong các trạm làm việc không đĩa (ví dụ như SunMicrosystem)
Tương tự như ARP, máy yêu cầu sẽ gửi một gói RARP yêu cầu tớimáy chủ (Server) tại một vị trí nào đó mà dịch vụ RARP chạy trên đó MáyRARP server sẽ trả lời bằng địa chỉ IP một trạm nào đó
2.4 Các giao thức tầng giao vận.
Trong bộ giao thức TCP/IP có hai giao thức thông dụng nhất cho tầngTransport là UDP và TCP
Trang 322.4.1.Giao thức bó dữ liệu ng ươngời dùng-UDP (User Datagram Protocol).
UDP là một dịch vụ không kết nối không tin cậy, nghĩa là nó có thểtruyền dữ liệu mà không đòi hỏi thiết lập một mạch dữ liệu, nó cũng không cócơ chế báo nhận, không sắp xếp thứ tự các gói gửi tới Do vậy nó có thể làmmất hoặc trùng lặp dữ liệu mà không báo lỗi nào cho bên gửi (tương tựnhư IP)
Mỗi đơn vị UDP được cung cấp địa chỉ IP nguồn và đích cùng với
số cổng nhận dạng các tiến trình mức ứng dụng liên quan đến việc trao đổidữ liệu (tương tự dịch vụ bưu chính) Phần header của UDP rất đơn giản và
sẽ có dạng như sau:
DATAUDP có phần header nhỏ hơn TCP, độ tin cậy nhỏ hơn TCP do nó chỉ
có một Checksum để kiểm tra dữ liệu, các chức năng cũng ít phức tạp hơn do
đó nó hoạt động nhanh và linh hoạt hơn TCP Vì thế nó rất thích hợp cho cácứng dụng được truyền có tính chất quảng bá hay những ứng dụng trongcác mạng có độ tin cậy cao như mạng LAN
UDP thường được dùng cho các ứng dụng không đòi hỏi độ tin cậy cao
như NFS, DNS, SNMP, TFTP UDP cũng được sử dụng trong IP
Tunneling được dùng để truyền dữ liệu ứng dụng phi TCP/IP trên một
mạng TCP/IP Trong thực tế khi đi qua các mạng, 99% các bản tin UDP
đồng thời Kết nối được được duy trì trong thời gian truyền dữ liệu TCPdùng cơ chế báo nhận và các số tuần tự để duy trì phiên truyền dữ liệu Sốtuần tự
để xác định thứ tự của gói dữ liệu nhằm nhận ra gói bị thất lạc hay trùng lặp.TCP là giao thức tuần tự hướng byte, nghĩa là TCP truyền gói dữ liệu(nhiều byte) và gán cho mỗi gói một số tuần tự
TCP cung cấp cơ chế 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 Mộtcổng kết hợp với một địa chỉ IP tạo thành một Socket duy nhất trong liênmạng, các liên kết ảo chính là liên kết giữa các Socket
Trang 33Data
Offset Reserveed
URG
ACK
PSH
RST
SYN
FI
TCP dataCác tham số có ý nghĩa như sau:
Source Port (16 bits): Số hiệu cổng trạm nguồn
Destination Port (16 bits): Số hiệu cổng trạm đích
Sequence Number (32 bits): Số hiệu byte đầu tiên của segment trừ khi bit
SYN được thiết lập Nếu bit SYN được thiết 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 segment tiếp theo mà
trạm nguồn đang chờ để nhận và chỉ ra rằng đã nhận tốt các segment mà
trạm nguồn đã gửi Mồi khi kết nối được thiết lập trường này luôn
PSH (Push): Chức năng chuyển số liệu (push) mà không cần chờ đầy
RST (Reset): Thiết lập lại kết nối khi cần (thường do lỗi phần cứng
hay phần mềm)
SYN (Synchronous): Đồng bộ hoá các số hiệu tuần tự để thiết lập lại
kết nối
FIN: Không còn dữ liệu từ trạm nguồn - kết thúc kết nối
Windows (16 bits): Là số lượng các byte (octets) dữ liệu bắt đầu từ byte
được chỉ ra trong vùng ACK mà trạm nguồn đã sẵn sàng để nhận
CheckSum (16 bits): Mã kiểm soát lỗi (theo kiểu CRC) cho toàn bộ
Segment (bao gồm cả header và data)
Urgent Pointer (16 bits): Con trỏ này trỏ tới số hiệu tuần tự của byte đi 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
Trang 34 Options (độ dài thay đổi): Khai báo các tuỳ chọn của TCP, bao gồm:
Trang 35 Kết thúc danh sách tuỳ chọn (End of option list).
Không hoạt động (No operation)
Độ dài tối đa của Segment
Padding (độ dài thay đổi): Phần chèn thêm vào Header để đảm bảoHeader có độ dài là bội số của 32 bits Phần thêm này chứa toàn số 0
TCP Data: Chứa dữ liệu của tầng
trên
b
Các dịch vụ đ ợc −ợng TCP cung
cấp.
Thiết lập, duy trì và kết thúc kết nối
Chuyển các gói dữ liệu một cách tin cậy qua tiến trình có báo
cờ trạng thái
Thiết lập kết nối (Establishing a Connection)
Một kết nối có thể đ−ợc thiết lập giữa hai máy chỉ khi thoả mãn các điều kiện sau:
Kết nối giữa hai sockets là tồn tại
Cả hai máy đồng ý kết nối
Cả hai máy có các tài nguyên TCP thích hợp cho kết
động (active or passive open requests)
Thiết lập kết nối bằng thủ tục bắt tay ba lần (three-way handshake) Client gửibản tin với SYN=1 (yêu cầu kết nối) Server nhận đ−ợc, nó sẽ gửi bản tinvới SYN=1 và ACK=1 Client đáp lại với bản tin có ACK=1
Active
Trang 36Connetion Passive Connetion
Machine A TCP
SYS SEQ 50 ACK 51,SYS 200
ACK 201
Machine B TCP
Trang 37Nguyễn xuân trường - đtth2 - k40
Theo hình vẽ trên tiến trình bắt đầu TCP của máy A nhận yêu cầu kếtnối từ giao thức lớp trên (ULP-Upper Layer Protocol), nó trả lời bằng cáchgửi thông điệp mở chủ động tới máy B Cờ SYN được đặt (giá trị 1) và
được gán một giá trị tuần tự Khai báo "SYN SEQ 50," chỉ ra cờ SYN được
đặt và giá trị tuần tự - số gửi tuần tự khởi đầu (ISS-Initial Send Sequence) là
50 (có thể là bất cứ giá trị nào khác) ứng dụng ở máy B phát ra chỉ thị mởthụ động (passive open) tới TCP của nó Khi SYN SEQ 50 được nhận, TCPcủa máy B gửi thông điệp báo nhận về máy A với giá trị là 51 Máy B cũng
đặt giá trị ISS của riêng nó Thông điệp "ACK 51, SYN 200," chỉ ra thông
điệp được báo nhận bằng giá trị số tuần tự là 51, cờ SYN được thiết lập và
có giá trị ISS là 200
Máy A gửi trả lại thông điệp báo nhận với số tuần tự là 201 Đó là
"ACK 201" trong bó dữ liệu Sau khi kết nối được mở và báo nhận, máy
A máy B sẽ gửi các thông điệp kết nối mở (connection open) qua ULP tớiứng dụng yêu cầu
Send Data ReceiveData
SYS SEQ 100
Send Data
Receive Data
Machine A TCP
ACK 101 DATA SEQ 250 ACK 251
Machine B TCP
Truyền dữ liệu (Data Transfer)
Mỗi khối dữ liệu được nhận bởi TCP của máy A từ ULP, TCP đónggói và gửi tới máy B với các số tuần tự tăng dần Sau khi máy B nhận, nó sẽbáo nhận bằng một khung báo nhận chỉ ra nó đã nhận đầy đủ
Dịch vụ truyền dữ liệu của TCP bao gồm 6 dịch vụ con sau:
Song công: cho phép cả hai đầu kết nối có thể truyền bất cự thời điểm nào
Đúng lúc: dùng một đồng hổ để đảm bảo dữ liệu được truyền trong một khoảng thời gian vừa phải
Thứ tự: dữ liệu được truyền từ một đầu và sẽ được nhận đúng thứ tự tại
đầu còn lại cho dù nó có thể không qua lớp IP do TCP tổ chức lại chúng và chuyển lên lớp trên
Đánh dấu (Labeled): Tất cả các kết nối đều dựa trên các giá trị ưu tiên và giá trị bảo đảm (precedence, security value)
Điều khiển luồng: TCP có thể điều khiển luồng thông tin bằng dùng bộ
Trang 38Nguyễn xuân trường - đtth2 - k40 36
STATE ADDRESSLOCAL LOCALPORT ADDRESSREMOTE REMOTEPORTConnection 1
Connection 2
Connection 3
Connection 4
Connection Request Connection
Machine A TCP
FIN SEQ 100 SEQ 475, ACK 351 FIN SEQ 475, ACK 351 ACK 476
Machine B TCP
Kết thúc kết nối bằng thủ tục bắt tay hai lần (two-way handshake) TCPcủa một máy nhận hàm nguyên thuỷ đóng (close primitive) từ ULP và phát ramột thông điệp với cờ FIN được thiết lập Như hình vẽ, TCP của máy Agửi yêu cầu đóng kết nối tới máy B với một giá trị tuần tự Máy B gửi trả lạibáo nhận của yêu cầu với giá trị số tuần tự tiếp theo Máy B gửi thông điệp
đóng qua ULP tới ứng dụng và chờ ứng dụng báo nhận quá trình đóng Tuynhiên bước này không cần phải bắt buộc như vậy, TCP có thể đóng kếtnối mà không cần sự đồng ý của ứng dụng
Sau khi nhận được đồng ý đóng kết nối từ ứng dụng (hoặc sau khiyêu cầu đã quá hạn), TCP của máy B gửi lại máy A một gói với cờ FIN
được đặt Cuối cùng, máy A chấp nhận đóng và kết nối kết thúc
Một kết nối có thể bị kết thúc đột ngột khi socket ở một đầu bị ngắt (shutsdown) có thể là không có một thông báo nào với máy khác và cũng không cólưu ý gì đến dữ liệu được truyền giữa hai máy Ngoài sự ngắt đột ngột
do nhiều trục trặc hoặc nguồn, nó còn có thể do người sử dụng, do một tiếntrình ứng dụng hoặc điều khiển hệ thống Đầu còn lại của kết nối có thểkhông nhận ra ngắt đột ngột cho đến khi nó cố gắng gửi thông điệp và hếtthời gian
Để theo dõi các kết nối, TCP dùng bảng kết nối Mỗi kết nối ứng với một mụctrong bảng sẽ chứa thông tin về kết nối đầu- cuối (end-to-
Local port (cổng cục bộ): Số cổng cục bộ
Remote address (địa chỉ ở xa): Địa chỉ IP của máy ở xa
Trang 39 Remote port (cổng ở xa): Số cổng của kết nối ở xa.
2.5 Các ứng dụng cơ bản trên Internet
2.5.1 Thương điện tử (giao thức truyền thương đơn giản - SMTP).
Đây là giao thức được sử dụng rộng rãi nhất để gửi thông
điệp (Message) giữa hai người dùng Nó tương đối đơn giản Message sẽ
được tạo,
đánh địa chỉ và gửi từ ứng dụng cục bộ tới ứng dụng SMTP Server sẽ kiểm tra
định kỳ xem có thông điệp nào được chuyển, nếu không có nó sẽ thử lại Server cố gắng gửi thông điệp trong ít phút, nếu không được nó sẽ huỷ thông
điệp hoặc gửi trả về người gửi
Địa chỉ SMTP sẽ có dạng như sau: local-Part@.domain-name
Ví dụ: Nauglex@vax1.wellfleet.com
Trong đó:
Naulex: User Name
Vax1: Computer Name
Wellfleet: Entity
Com: Commercial
Địa chỉ SMTP tuân theo chuẩn được định nghĩa trong RFC822
Từ trạm làm việc đến SMTP server, người ta dùng giao thứcClient/Server như POP3 (Được định nghĩa trong RFC 1460)
Dùng trong thông điệp phi văn bản dùng UUencode hoặc MIME (RFC 1521,1522,1536)
SMTP sử dụng cổng TCP 25
Thường dùng các chương trình sendmail, mmdf (dùng cho cả Client
và Server, chạy ở chế độ nền như DAEMON) Dùng kiểu spool hoặc queue,khi message đến nó xếp vào hàng đợi và gắng phát Khi quá thời gian qui
định, message se bị gửi trả lại hoặc bị xoá
Khi kết nối được thiết lập, các SMTP trao đổi với nhau mã nhận thực (authentication code)
ServerSMTP
Internetwork
Trang 40Một hệ thống gửi lệnh mail và các thông tin về message SMTP nhậngửi thông tin báo nhận (acknowledment) Sau đó, SMTP gửi sẽ đưa lệnhRCPT, nếu có nhiều người nhận sẽ có nhiều RCPT, sau mỗi RCPT sẽ cómột acknowledgment Cuối cùng SMTP gửi lệnh DATA để phát dữ liệu Kếtthúc bằng lệnh QUIT.
Giao thức truyền tệp bằng
thương :
Trong các hệ thống ghép nối với mạng Internet, đây là việc sử dụng giao thứctruyền tệp để tiếp xúc với các hệ máy tình khác ở xa mà không cần quyềnthâm nhập, đi vào các thư mục công cộnhg của nó, hoặc chuyển các tệptin của nó vào vào vùng lưa trữ đĩa riêng của mình Để sử dụng FTP Mail tagửi một thông điệp tới FTP Server Trong nội dung thông điệp, mọi yêu cầu
được ghi lại trên một dòng lệnh Những yêu cầu này là những chỉ thị để điềukhiển phiên làm việc của Anonymous FTP, FTP Mail Server nhận đượcthông điệp, thực hiện các yêu cầu Kết quả phiên làm việc sẽ được chuyển
tự động tới người yêu cầu
Những lệnh FTP Mail quan trọng:
Reply address’s Địa chỉ phúc đáp
Connect host Kết nối tới Anonymous FTP
Get file Chuyển một tệp
Dir [directory] Chuyển một danh sách thư
2.5.2 Đăng nhập từ xa - Telnet(Terminal Network Emulation)
Tiền thân của Telnet là Terminal Login của ARPARNET
Lệnh của Telnet có dạng như sau: Telnet host [port]
\%SystemRoot%\system32\drive\etc\services
Nếu không có giá trị nào thì mặc định là 32
Telnet được sử dụng cho kết nối giả lập thiết bị đầu cuối đến một máy chủ [host] ở xa Giao thức này lợi dụng TCP như là một giao thức vận
chuyển để