Kiến trúc mạng: Yếu tố quan trọng của mạng máy tính là tập hợp các máy tính được nối với nhau bởi các đường truyền và theo kiến trúc của một mạng máy tính, chúng có thể kết nối các máy
Trang 11 Kiến trúc mạng:
Yếu tố quan trọng của mạng máy tính là tập hợp các máy tính được nối với nhau bởi các đường truyền và theo kiến trúc của một mạng máy tính, chúng có thể kết nối các máy tính với nhau ra sao, tập hợp các quy tắc, quy ước, cách truyền thông trên mạng phải tuân theo như thế nào để cho mạng hoạt động tốt Cách nối các máy tính được gọi là hình trạng(Topology)của mạng Còn tập hợp tất cả những qui tắc, qui ước truyền thông thì được gọi là giao thức(protocol)của mạng Topology và Protocol là hai khái niệm cơ bản nhất của mạng máy tính.
- Topology có hai kiểu mạng chủ yếu là:
Trang 2+Kiểu điểm-điểm: các đường truyền nối từng cặp nút với nhau và mỗi nút đều có trách nhiệm lưu trữ tạm thời sau đó chuyển dữ liệu đi cho tới đích.
+Kiểu truyền bá: Tất cả các nút phân chia chung một đường truyền vật lý Nghĩa là dữ liệu được gởi đi từ một nút nào đó sẽ có thể được tiếp nhận bởi tất cả các nút còn lại
- Giao thức mạng: thông dụng nhất hiện nay là giao thức TCP/IP sẽ đuợc trình bày chi tiết ở phần sau.
Mô hình mạng máy tính thì nhiều nhưng ở đây em chỉ trình bày mô hình mạng ISO.
Các giai đoạn này rất phức tạp, đòi hỏi người lập trình ứng dụng phải hiểu
rõ tất cả các cơ chế hoạt động bên dưới của hệ thống.Vì vậy người ta đưa ra ý tưởng phân tầng,mỗi tầng phải chịu trách nhiệm cung cấp dịch vụ cho tầng bên trên và đồng thời nó cũng sử dụng dịch vụ của tầng bên dưới cung cấp cho nó.Như thế một người làm việc ở tầng nào họ chỉ quan tâm đến các tầng có quan hệ trực tiếp với mình.
Mô hình ISO gồm 7 tầng được coi là mô hình chuẩn vì các mô hình khác cũng dựa theo mô hình này để tạo ra một mô hình phù hợp cho riêng mình, mà ngày nay thông dụng nhất là mô hình TCP/IP.
SESSION LAYERPresentation Layer Application LayerTRANSPORT LAYERNETWORK LAYER
Trang 3DATALINK LAYERPHYSICAL LAYERApplication Layer Presentation LayerSESSION LAYERTRANSPORT LAYERNETWORK LAYERDATALINK LAYERPHYSICAL LAYER
Sending Application Receiver Application
Hình1: Mô hình ISO gồm 7 tầng.
Trang 4
Ý nghĩa các tầng như sau:
- Physical: liên quan đến nhiệm vụ truyền dòng bit không có cấu trúc qua đường truyền vật lý, truy nhập đường truyền vật lý như các phương tiện cơ, điện, hàm, thủ tục.
- Datalink:cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy: gởi các khối dữ liệu(frame) với các cơ chế đồng bộ hóa, kiểm soát lỗi
và kiểm soát luồng dữ liệu cần thiết.
- Network: 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 kiểm soát luồng dữ liệu và cắt/hợp dữ liệu nếu cần.
- Transport: Thực hiện việc truyền dữ liệu giữa hai đầu mút(end-to-end), thực hiện việc kiểm soát luồng dữ liệu giữa hai đầu mút.
- Session: Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng, thiết lập duy trì đồng bộ hóa và hủy bỏ các phiên truyền thông giữa các ứng dụng.
- Presentation: Chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các ứng dụng qua môi trường ISO.
- Application: Cung cấp các phương tiện để người sử dụng có thể truy nhập được vào môi trường OSI, đồng thời cung cấp các dịch vụ thông tin phân tán.
II- Tổng quan về Internet:
Internet là công nghệ thông tin liên lạc mới, và hiện đại, nó tác động sâu sắc vào xã hội cuộc sống chúng ta, là một phương tiện cần thiết như điện thoại hay tivi, nhưng ở mức
độ bao quát hơn Internet đưa chúng ta vào thế giới có tầm nhìn rộng hơn và bạn có thể làm mọi thứ: viết thư, đọc báo, xem bản tin, giải trí, tra cứu và thậm chí còn thực hiện những phi vụ làm ăn, ….Vì Internet là mạng của các mạng, tức là bao gồm nhiều mạng máy tính kết nối lại với nhau, số lượng máy tính nối mạng và số lượng người truy cập vào mạng Internet trên toàn thế giới đang ngày càng tăng lên nhanh chóng Đặc biệt từ năm 1993 trở
đi, mạng Internet không chỉ cho phép chuyển tải thông tin nhanh chóng mà còn giúp cung cấp thông tin, nó cũng là diễn đàn và là thư viện toàn cầu đầu tiên Các thông tin được đặt rải rác trên toàn cầu,có thể truyền thông được với nhau như một thiết bị Modem và đường dây điện thoại
Hệ điều hành UNIX là hệ phát triển mạnh với rất nhiều công cụ hỗ trợ và đảm bảo các phần mềm ứng dụng có thể chuyển qua lại trên các họ máy khác nhau (máy mini, máy tính lớn và hiện nay là máy vi tính) Bên cạnh là hệ điều hành UNIX BSD còn cung cấp nhiều thủ tục Internet cơ bản, đưa ra khái niệm Socket và cho phép chương trình ứng dụng thâm nhập vào Internet một cách dễ dàng
Internet có thể tạm hiểu là liên mạng gồm các máy tính nối với nhau theo một nghi thức và một số thủ tục chung gọi là TCP/IP (Transmission Control Protocol/Internet Protocol).Thủ tục và nghi thức này trước kia đã được thiết lập và phát triển là cho một đề
án nghiên cứu của Bộ Quốc Phòng Mỹ với mục đích liên lạc giữa các máy tính nối đơn lẻ
Trang 5và các mạng máy tính với nhau mà không phụ thuộc vào các hãng cung cấp máy tính Sự liên lạc này vẫn được bảo đảm liên tục ngay cả trong trường hợp có nút trong mạng không hoạt động.
Ngày nay, Internet là một mạng máy tính có phạm vi toàn cầu bao gồm nhiều mạng nhỏ cũng như các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc và trao đổi thông tin Trên quan điểm Client / Server thì có thể xem Internet như là mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client
IP cắt nhỏ và đóng gói thông tin chuyển qua mạng, khi đến máy nhận, thì thông tin
đó sẽ được ráp nối lại TCP bảo đảm cho sự chính xác của thông tin được truyền đi cũng như của thông tin được ráp nối lại đồng thời TCP cũng sẽ yêu cầu truyền lại tin thất lạc hay hư hỏng Tùy theo thông tin lưu trữ và mục đích phục vụ mà các server trên Internet sẽ được phân chia thành các loại khác nhau như Web Server, email Server hay FTP Server Mỗi loại server sẽ được tối ưu hóa theo mục đích sử dụng
Hầu hết người sử dụng truy cập Internet thực hiện công việc đơn giản là chạy các chương trình ứng dụng trên một máy tính nào đó gọi là máy client mà không cần hiểu loại máy tính(Server) đang được truy xuất, kỹ thuật TCP/IP, cấu trúc hạ tầng mạng hay Internet ngay cả con đường truyền dữ liệu đi qua để đến được đích của nó.Chỉ có những người lập trình mạng cần xem TCP/IP như là một mạng và cần hiểu một vài chi tiết kỹ thuật
Hình 1.4 : Liên lạc trên Internet
1 Internet bắt nguồn từ đâu?
Internet bắt đầu từ đầu năm 1969 dưới cái tên là ARPANET(Advanced Research Projects Agency) còn gọi là ARPA Nó thuộc bộ quốc phòng Mỹ (DoD) Đầu tiên nó chỉ có
4 máy được thiết kế để minh hoạ khả năng xây dựng mạng bằng cách dùng máy tính nằm
Trang 6rải rác trong một vùng rộng Vào năm 1972, khi ARPANET được trình bày công khai, đã được 50 trường đại học và các viện nghiên cứu nối kết vào Mục tiêu của ARPANET là nghiên cứu hệ thống máy tính cho các mục đích quân sự, chính phủ và quân đội tìm kiếm những phương cách để làm cho mạng tránh được các lỗi, mạng này thiết kế chỉ cho phép các văn thư lưu hành từ máy tính này đến máy tính khác, đối với chính phủ và quân đội, máy tính đã có những công dụng rõ ràng và sâu rộng Tuy nhiên, một trong những mối bận tâm chính yếu là tính đáng tin cậy vì nó có liên quan đến vấn đề sinh tử Kế hoạch ARPANET đã đưa ra nhiều đường nối giữa các máy tính Điều quan trọng nhất là bạn có thể gởi các văn thư bởi bất kỳ con đường khả dụng nào, thay vì chỉ qua một con đường cố định Đây chính là nơi mà vấn đề về giao thức đã xuất hiện.
2 Giao thức là gì?
- Giao thức hay còn gọi là nghi thức là các phương tiện để làm cho sự thông tin trở nên khả hữu Một quyết định phải được thực hiện khi hai hay nhiều máy tính muốn gởi và nhận dữ liệu
Đầu tiên ARPANET đã đưa ra giao thức Host-to-Host Protocol, nhưng giao thức này không đáng tin cậy và nó chỉ giới hạn trong một số các máy Vào cuối năm 1970 các mạng khác cũng bung ra trong thực tế, mạng UUCP gồm một nhóm rồi cũng đã nối được hàng trăm máy rồi hàng ngàn máy Vào cuối năm 1980 mạng NSFNET mạng của National Science Foundation được phát triển để nối 5 trung tâm siêu máy tính của nó, nó là mạng hấp dẫn cho tất cả các nhà nghiên cứu và các viện đại học cũng như các viện nghiên cứu Năm 1972, bắt đầu thế hệ thứ hai của giao thức mạng, đã làm phát sinh ra một nhóm giao thức được gọi là Transmission Control Protocol/ Internet Protocol viết tắt là TCP/IP Năm
1983, TCP/IP là bộ giao thức cho ARPANET, TCP/IP đã trở thành một trong những giao thức mạng được dùng rộng rãi nhất Sau cùng tất cả các mạng được tài trợ bởi cá nhân hay
xã hội -mạng ARPANET, MILNET, UUCP, BITNET, CSNET và NASA Science Internet
đã liên kết trong một mạng khu vực NSFNET và ARPANET giải tán và ngày càng có nhiều mạng khác thêm vào
- Ngày nay để thực hiện việc truyền thông qua mạng thông qua trình duyệt Web, và
ta cũng cần một giao thức để thực hiện công việc này Mặc dù hiện nay cũng đang có rất nhiều giao thức để truyền thông tin nhưng nhìn chung có hai giao thức thường được các lập trình viên sử dụng đó là: TCP/IP(IP: là giao thức Internet, TCP: giao thức truyền tải) và giao thức UDP(giao thức gói dữ liệu người dùng) Vì chương trình của em sử dụng giao thức TCP/IP nên sau đây em sẽ trình bày chi tiết giao thức này
Trang 7Network Layer IPReceiving Data
Sending Data
Hình 1.2 :Mô hình mạng ISO.
- TCP/IP là một giao thức hướng kết nối(connection) thiết lập một kết nối truyền thông giữa địa chỉ cổng IP Liên kết này đảm bảo việc truyền dữ liệu trên mạng là không mất thông tin từ máy nguồn đến máy đích, các gói dữ liệu đến đích phải tuân theo đúng thứ tự đã được gởi và các máy tính chạy trên mạng Internet truyền thông với nhau dùng các Protocol TCP, UDP Do đó ta sử dụng mô hình mạng TCP/IP gồm bốn lớp được mô tả bằng hình 1.2.
♦ Application layer: chứa các ứng dụng mạng Lớp này tương ứng với hai lớp trên cùng(application và presentation layer)của mô hình OSI.
♦ Transport layer: cung cấp các dịch vụ truyền nhận dữ liệu giữa các quá trình với nhau Các quá trình này có thể trao đổi thông tin với nhau thông qua địa chỉ của máy tính gửi/nhận và cổng thông tin Cấp này tương ứng với hai cấp kế tiếp(session và transport layer)của mô hình OSI.
♦ Network layer: đảm nhận việc xác định, tìm đường và phân phối các gói thông tin với địa chỉ đích Network layer trong mô hình TCP/IP tương ứng với hai lớp network và datalink của mô hình OSI
♦ Physical layer: sử dụng các giao tiếp chuẩn hiện có như Enthernet, Tokenring, để phục vụ cho việc gởi và nhận dữ liệu.
Trang 8- Để gởi gói dữ liệu từ máy nguồn tới máy đích, nó phải có một số cách nhận diện những máy này Trên mạng được nhận dạng bằng cách dùng một hay nhiều địa chỉ IP Một máy tính có thể có nhiều hơn một địa chỉ IP nếu nó có nhiều hơn một Card mạng Các địa chỉ IP là một số 32 bit rất khó nhớ để giải quyết việc này các nhà quản lý mạng đã chọn một hệ thống tên vùng (DNS) để quản lý Các địa chỉ IP được duy trì bởi một hệ thống máy phục vụ tên vùng Các máy phục vụ này
có khả năng tìm kiếm địa chỉ IP tương ứng với tên vùng Tuy nhiên liên lạc qua lại giữa các máy tính chỉ là một vấn đề truyền thông tin trên mạng Để một chương trình ứng dụng như Mail, Chat, E-mail liên lạc với một ứng dụng khác như máy Server phục vụ, máy Server này phải có cách gởi dữ liệu đến các chương trình riêng bên trong một máy tính Địa chỉ cổng là địa chỉ 16 bit nằm bên trong một máy tính thường kết hợp với một giao thức đặc biệt như TCP/IP, UDP Một máy Server (máy phục vụ) phải cài đặt chương trình ứng dụng phục vụ lắng nghe các yêu cầu đến Trong việc truyền nhận thông tin dựa trên TCP/IP, một ứng dụng thiết lập một connection với một ứng dụng khác bằng cách gắn một socket cho mỗi port number Do đó sẽ không thể có hai ứng dụng dùng chung một port.
Bộ giao thức TCP/IP bao gồm:
♦ TCP(Transmission Control Protocol): đây là loại protocol có cầu nối (connection oriented) cung cấp khả năng truyền dòng dữ liệu không lỗi, 2 chiều (full duplex)cho các quá trình cho người sử dụng
♦ UDP(User Datagram Protocol): loại protocol không thiết lập cầu nối (connectionless) cho các quá trình của user Không giống như TCP, nó không đảm bảo dữ liệu khi truyền đi có đến nơi chính xác hay không
♦ICMP (Internet Control Message Protocol): protocol xử lý lỗi và điều khiển thông tin giữa các gateway và các host
♦IP(Internet Protocol): IP là protocol cung cấp dịch vụ phân phối các package cho TCP, UDP và ICMP
♦ARP (Address Resolution Protocol): Protocol ánh xạ 1 địa chỉ internet thành địa chỉ phần cứng(MAC address)
♦RAPR(Address Resolution Protocol): Protocol ánh xạ một địa chỉ phần cứng thành địa chỉ IP
- Mạng Internet sử dụng giao thức TCP/IP: TCP/IP được thiết kế để có thể kết nối các thiết bị máy tính khác nhau, là ngôn ngữ chung để các hệ máy tính khác nhau có thể trao đổi, liên lạc, chuẩn này được sử dụng rộng rãi trong hầu hết các hệ thống máy tính bởi những đặc điểm ưu việt của nó và chức năng phụ trợ có thể cài đặt thêm vào Mạng Internet bao gồm rất nhiều kênh kết nối khác nhau mà các gói dữ liệu sẽ được lưu chuyển trên đó, các kênh được giao tiếp với nhau bằng chuẩn TCP/IP Nhờ đó tất cả các máy tính trên mạng Internet có thể kết nối với nhau Ngoài ra TCP cung cấp khả năng truyền không lỗi từng gói dữ liệu gởi đi đến máy nhận, giao thức này phải có trách nhiệm thông báo và kiểm tra xem dữ liệu có đến đủ hay chưa, có lỗi hay không có lỗi Trước khi chuyển dữ liệu bao giờ cũng có việc thiết lập kênh truyền giữa hai máy Do phải duy trì mối kết nối và
Trang 9kiểm tra dữ liệu nên sử dụng TCP phải đòi hỏi chiếm thêm một số tài nguyên và cách lập trình cho giao thức này hơi khó (phải thực hiện các bước kiểm tra dữ liệu theo yêu cầu của TCP) Truyền dữ liệu theo giao thức TCP thường áp dụng cho các dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi có độ chính xác cao.
Start App Server
Client
Create the socketCreate the server socketAccept New Connection
Acquire Stream and Conduct ConversationAcquire Stream and Conduct ConversationClose Stream and Socket
Close Stream and Socket
Trang 10- Địa chỉ IP: Để có thể thực hiện truyền tin giữa các máy tính trên mạng, mỗi máy trên mạng Internet đều có một tên riêng và một địa chỉ dạng số tương ứng gọi là địa chỉ IP Tên được thiết kế để giúp cho việc truy cập được dễ dàng cho người sử dụng Địa chỉ IP dùng cho các máy tính và các thiết bị mạng liên lạc với nhau.
Tất cả các máy trong hệ thống mạng(LAN, WAN, Internet) đều có ít nhất 2 địa chỉ: địa chỉ vật lý và địa chỉ Internet Ðịa chỉ vật lý còn được gọi là Ethernet address là một dãy bit gồm 48 bit được gán bởi các nhà sản xuất, địa chỉ này được biểu diễn dưới dạng số thập lục phân (hecxa)
Như thế mỗi card mạng (interface card) có một địa chỉ duy nhất địa chỉ này được quy định từ nhà sản xuất card mạng, tuy nhiên địa chỉ vật lý không thể hiện khả năng xác định vị trí của hệ thống trên mạng Ðể giải quyết vấn đề đó người ta đưa ra địa chỉ IP(IP Address)
Ðịa chỉ IP phải là duy nhất trên mạng và có một dạng thống nhất, mỗi địa chỉ IP gồm có 4 byte và có 2 thành phần: địa chỉ đường mạng (Network ID) và địa chỉ host(Host ID)
Network ID
Host ID
32 bits(4 byte)Địa chỉ IPClass ID
Nếu máy tính được nối mạng với Internet thì địa chỉ IP phải do NIC(Network Information Center) cấp
Phân loại địa chỉ IP
Có tất cả 5 lớp địa chỉ IP nhưng hiện nay có 3 lớp được sử dụng là lớp A, B, và C
♦ Lớp A:
Trang 11Dùng cho hệ thống mạng có số lượng địa chỉ host rất lớn, số lượng này có thể lên đến 16 triệu địa chỉ host Ðể có thể nhận biết địa chỉ thuộc lớp nào người ta căn cứ vào bit đầu tiên trong phần network ID, trong trường hợp lớp A: bit đầu tiên trong phần ID network bằng 0 8 bits đầu dùng cho phần Network ID còn lại 24 bits dành cho phần Host ID Như vậy có 126(27) địa chỉ đường mạng và 16.777.214 (224)địa chỉ Host ID.
♦ Lớp C:
Ðịa chỉ lớp C dùng cho mạng nhỏ có số lượng máy không vượt quá 254 máy
Có thể nhận biết địa chỉ lớp C thông qua 2 bit đầu tiên trong phần Network ID, hai bit này được bật lên 1 Phần NetWork ID có 2,097,150(221-2) địa chỉ đường mạng và phần Host ID có 254(28-2) địa chỉ host
Chúng ta có thể xem số địa chỉ Host ID và Network ID qua bảng sau:
Lớp Mạng
Số địa chỉ đường mạng
Số host trên một địa chỉ
mạng
Subnet Mask(mặt nạ con)
Subnet mask là một dãy 32 bit giống như địa chỉ IP được dùng kèm với địa chỉ IP
để xác định mạng con Khi có một địa chỉ IP và kèm theo là một subnet mask chúng ta có thể xác định địa chỉ đường mạng con của địa chỉ IP đó bằng cách thực hiện toán tử AND giữa IP và subnet đây là cách mà router xác định cho gói dữ liệu đi theo đường mạng nào
để đến máy nhận
Ví dụ : địa chỉ IP:192.125.125.3
Subnet mask :255.255.255.0
4 Các dịch vụ kết nối đến Internet: