Mạng máy tính - 1



Chương 1. Mạng và Internet


Hiện nay, Internet đang được xem là một hệ thống lớn nhất do con người tạo ra. Hệ thống này bao gồm hàng trăm triệu các kết nối giữa máy tính, thiết bị truyền thông và thiết bị chuyển mạch; với hàng tỉ người dùng đang kết nối vào hệ thống thông qua máy tính xách tay, máy tính bảng, điện thoại; với rất nhiều các thiết bị có hỗ trợ kết nối Internet khác như các bộ cảm biến, webcam, máy chơi game, khung ảnh, thậm chí cả máy giặt.


Với một hệ thống lớn như thế, với rất nhiều các thành phần, thiết bị và người dùng đang kết nối, chúng ta có thể hiểu được cách thức vận hành của nó hay không? Có tài liệu nào cung cấp các kiến thức nền tảng giúp hiểu được hệ thống này không? Nếu có, tài liệu đó có thú vị và dễ đọc không? 
Thật may mắn, câu trả lời chung cho các câu hỏi trên là có. Cuốn sách này sẽ giới thiệu với bạn những kiến thức cập nhật thuộc lĩnh vực mạng máy tính, giới thiệu các nguyên lý và các kiến thức nền tảng giúp bạn không những hiểu về hệ thống mạng hiện tại, mà còn có thể hiểu được hệ thống mạng trong tương lai.

Chương đầu tiên sẽ đề cập tới các nội dung tổng quan về mạng và Internet. Bao gồm các khái niệm, thuật ngữ, các phần mềm và phần cứng liên quan đến hệ thống mạng.

 

1.1  Internet là gì?


Để hiểu Internet là gì? Chúng ta cùng tìm hiểu về hạ tầng phần cứng, phần mềm và dịch vụ của nó.

 

1.1.1 Hạ tầng phần cứng và phần mềm của Internet


Internet là một hệ thống mạng bao gồm hàng trăm triệu các thiết bị kết nối với nhau. Ban đầu, các thiết bị chủ yếu là máy tính cá nhân, máy chủ. Sau đó, rất nhiều các thiết bị số khác cũng có thể kết nối vào hệ thống mạng này, như máy tính xách tay, điện thoại, máy tính bảng, tivi, máy chơi game, webcam, xe hơi, các thiết bị cảm biến, khung ảnh, hệ thống an ninh và hệ thống điện trong các hộ gia đình.

Rõ ràng, thuật ngữ mạng máy tính (computer network) đã có vẻ lỗi thời. Bởi thực tế, các thiết bị kết nối vào hệ thồng mạng hiện nay bao gồm rất nhiều các thiết bị khác, chứ không phải chỉ có máy tính. Trong lĩnh vực Internet, người ta gọi các thiết bị kết nối (có tính chất cố định) vào hệ thống mạng là hosts hoặc end systems (tạm gọi là thiết bị cuối).

Hình sau minh họa các thiết bị phần cứng của Internet.



Tới tháng 7/2011, theo thống kê của ISC (Internet System Consortium) đã có khoảng 850 triệu thiết bị cuối kết nối vào hệ thống Internet, con số này chưa tính tới số lượng các thiết di động, máy tính xách tay, và các thiết bị khác cũng có kết nối vào hệ thống nhưng không thường xuyên. Tổng cộng số người dùng Internet năm 2011 là khoảng 2 tỉ.

Các thiết bị cuối được kết nối với nhau bằng đường truyền và thiết bị chuyển mạch gói. Có nhiều loại đường truyền khác nhau như: cáp đồng trục, cáp xoắn, cáp quang, dài tần sóng vô tuyến (sóng radio). Mỗi loại đường truyền có tốc độ truyền dữ liệu khác nhau. Tốc độ đường truyền được đo bằng đơn vị bit/giây. Khi một thiết bị cuối muốn truyền dữ liệu tới một thiết bị khác, dữ liệu sẽ được chia nhỏ và gắn thêm các thông tin bổ sung (header), kết quả là tạo ra các gói dữ liệu (packet), các gói này được hệ thống mạng truyền tới thiết bị đích. Tại thiết bị đích các gói được phân tách để bỏ đi các thông tin bổ sung, kết quả là có được dữ liệu gốc ban đầu.

Tại các thiết bị chuyển mạch gói, khi nhận được gói tin đến ở đầu vào, thiết bị chuyển mạch sẽ chuyển tiếp gói tin đó đến thiết bị kế tiếp. Các thiết bị chuyển mạch gói có nhiều kiểu dáng và đặc tính khác nhau, tuy nhiên có hai loại phổ biến nhất trong hệ thống Internet ngày nay là router và switch tầng liên kết (link-layer swiches). Router thường được sử dụng trong các hệ thống mạng lõi (core), trong khi switch tầng liên kết thường được sử dụng trong hệ thống mạng truy cập (mạng bao gồm các thiết bị cuối - access network). Đường đi của gói tin từ thiết bị nguồn tới thiết bị đích được gọi là route hoặc path.

Hệ thống mạng chuyển mạch gói rất giống với mạng lưới vận chuyển hàng hóa của một công ty vận tải. Trong đó, đường truyền mạng giống như các đường quốc lộ và tỉnh lộ; các ngã ba, ngã tư chính là các thiết bị chuyển mạch gói, các thiết bị cuối là các kho hàng và mỗi gói tin trong hệ thống mạng chính là một xe tải. Giả sử công ty vận tải cần chuyển một lượng lớn hàng hóa từ nhà máy tới các kho hàng ở nhiều địa phương khác nhau. Tại nhà máy, kho hàng sẽ được chia thành từng khối theo từng địa phương, sau đó, các xe tải sẽ vận chuyển khối hàng này tới từng địa phương. Mỗi xe tải sẽ di chuyển độc lập qua các quốc lộ, tỉnh lộ, ngã ba, ngã tư để tới các kho hàng địa phương. Tại kho hàng địa phương, người ta sẽ tập kết hàng của từng xe tải, chờ cho tới khi nào tập kết được đủ số lượng hàng hóa thì thôi.

Các thiết bị cuối sẽ kết nối vào hệ thống Internet thông qua các nhà cung cấp dịch vụ gọi là các ISP (Internet service provider). Có nhiều loại ISP như các công ty truyền thông; các công ty truyền hình cáp; các trường đại học; các tập đoàn; dịch vụ kết nối không dây tại sân bay, khách sạn, quán cà phê, cửa hàng, và các nơi công cộng khác. Mỗi ISP có một hạ tầng mạng của riêng nó với hệ thống đường truyền và các thiết bị chuyển mạch. Các ISP cung cấp nhiều hình thức để thiết bị cuối có thể kết nối vào Internet như thông qua hệ thống cáp truyền hình (cable), đường thuê bao số (DSL), mạng cáp quang, mạng không dây, mạng quay số. Các ISP cũng cung cấp kết nối Internet cho các nhà cung cấp nội dung, nhằm kết nối trực tiếp website của nhà cung câp nội dung vào hệ thống Internet.

Các thiết bị cuối kết nối vào ISP địa phương (lower-tier ISP), các ISP địa phương lại được kết nối vào các ISP quốc gia hoặc quốc tế. Các ISP quốc tế gồm: Level 3 Communication, AT&T, Sprint, và NTT. Các ISP quốc tế sử dụng các router và đường truyền cáp quang có tốc độ cao. Mỗi ISP, dù là địa phương hay quốc tế thì đều được vận hành một cách độc lập, đều đang sử dụng giao thức IP, và tuân theo một số quy ước về đặt tên, địa chỉ.

Các thiết bị cuối, thiết bị chuyển mạch gói, và các thành phần khác trên Internet sử dụng các giao thức (protocol) để kiểm soát việc gửi và nhận thông tin. TCP (transmision control protocol) và IP (internet protocol) là hai giao thức quan trọng nhất trong Internet. Internet đang hoạt động dựa trên bộ giao thức TCP/IP.

Giao thức, hiểu nôm na là cách thức để giao tiếp, hay đó là các quy định để thực hiện truyền tin giữa các đối tượng, thiết bị trên hệ thống. Các đối tượng muốn làm việc được với nhau thì phải tuân thủ các quy định trong mỗi giao thức hay còn gọi là các chuẩn. Từ đây xuất hiện khái niệm chuẩn Internet (Internet standard). Chuẩn Internet được tổ chức IETF (Internet Engineering Task Force) đưa ra. Các chuẩn này được mô tả trong các tài liệu gọi là RFC (requests for comments – đề nghị duyệt thảo và bình luận). Theo wiki, RFC là một chuỗi các bản ghi nhớ chứa đựng những nghiên cứu mới, những đổi mới, và những phương pháp luận ứng dụng cho công nghệ Internet. Chính các RFC đã tạo ra các giao thức TCP, IP, HTTP (cho web), SMTP (cho email). Hiện tại có hơn 6 000 RFC. Một tổ chức khác cũng định ra các chuẩn cho Internet là IEEE 802 LAN/MAN Standards Committee, ví dụ họ đã tạo ra các chuẩn Ethernet và WiFi.

 

1.1.2 Chức năng cung cấp dịch vụ của Internet


Ở phần trên đã đề cập tới các thành phần cấu tạo nên Internet, bao gồm phần cứng (đường truyền, các thiết bị), và phần mềm (các giao thức).

Tuy nhiên, chúng ta cũng có thể mô tả hệ thống mạng Internet ở một góc nhìn khác. Đó là xem Internet chính là hạ tầng của các ứng dụng, Internet sẽ cung cấp các dịch vụ cho ứng dụng. Các ứng dụng có thể là thư điện tử (email), duyệt web, mạng xã hội, nhắn tin, VoIP, truyền hình trực tuyến, trò chơi trực tuyến, chia sẻ tập tin (P2P), truyền hình Internet, truy cập từ xa, và nhiều ứng dụng khác. Các ứng dụng này được gọi chung là các ứng dụng phân tán (distributed application), vì chúng hoạt động và trao đối thông tin giữa nhiều thiết bị cuối khác nhau.

Nếu để ý sẽ thấy, các ứng dụng mạng đang tồn tại và hoạt động trên các thiết bị cuối, chứ không phải trên đường truyền hay trên các thiết bị chuyển mạch gói. Hạ tầng Internet chỉ có nhiệm vụ truyền các gói tin.

Ví dụ sau sẽ cho bạn thấy Internet chính là hạ tầng của các ứng dụng. Giả sử bạn muốn phát triển một ứng dụng trên Internet. Tất nhiên, ứng dụng thì phải chạy trên các thiết bị cuối, vì vậy bạn sẽ phát triển ứng dụng này trên thiết bị cuối bằng một ngôn ngữ lập trình nào đó (Java, C hay Python). Khi chạy, chương trình trên các thiết bị cuối sẽ phải trao đổi thông tin qua lại với nhau. Để trao đổi thông tin với nhau, chương trình sẽ phải sử dụng bộ thư viện được xây dựng sẵn trên các thiết bị cuối, đó là API (application programming interface). Bộ thư viện Internet API là tập các quy tắc cho phép gửi và nhận dữ liệu trên hạ tầng Internet. Để dễ hiểu, bạn hãy hình dung lại quá trình gửi thư bằng đường bưu điện. A muốn gửi thư tới B, A sẽ phải viết nội dung của bức thư, sau đó A không thể mang thả bức thư ra ngoài cửa sổ được, mà A phải bỏ thư vào phong bì, ghi thông tin người gửi, ngưởi nhận, dán tem và bỏ vào hộp thư đi của bưu điện. Nghĩa là A phải tuân thủ các quy tắc, quy định của bưu điện. Tương tự như vậy, Internet API chính là các quy tắc, quy định mà các thiết bị cuối cần tuân thủ nếu muốn gửi dữ liệu tới thiết bị cuối khác qua môi trường Internet.

 

1.1.3 Giao thức


Như đã nói ở phần trên, hiểu nôm na, giao thức là cách thức để giao tiếp. Để dễ hiểu hãy hình dung cách thức mà con người đã thực hiện để giao tiếp hàng ngày. Xem hình minh họa bên dưới. Giả sử cần hỏi giờ, họ sẽ làm như thế nào? Người đầu tiên sẽ nói “Chào anh” để bắt đầu pha giao tiếp. Người thứ hai sẽ nói “Chào anh” để đáp lại. Sự đáp lại của người thứ hai là dấu chỉ cho biết anh ta đã sẵn sàng và người thứ nhất có thể hỏi anh ta là “Mấy giờ rồi?”. Tuy nhiên, có thể có tình huống khác, người đầu tiên nói “Chào anh”, người thứ hai có thể trả lời “Tôi không rảnh!”, hoặc có những dấu chỉ cho biết người thứ hai không sẵn sàng để tiếp tục pha giao tiếp. Khi đó pha giao tiếp sẽ kết thúc, và người thứ nhất sẽ không biết được mấy giờ rồi.

Như vậy, trong quá trình con người giao tiếp, phải có quá trình gửi và nhận thông điệp, sau khi nhận được thông điệp thì sẽ có hành động đáp trả, hoặc có một dấu chỉ nào đó. Và pha giao tiếp sẽ thất bại nếu hai người không hiểu nhau, hoặc người được hỏi không có thiện chí.




Xem xét một ví dụ khác, trong giờ học, sau khi giảng xong một vấn đề, giáo viên hỏi cả lớp “có ai có câu hỏi nào không?” (thông điệp đã được gửi). Cả lớp sẽ nhận được thông điệp này. Một sinh viên giơ tay lên (đã ngầm gửi một thông điệp tới giáo viên). Giáo viên đáp lại bằng một nụ cười và nói “mời em” (giáo viên đã báo cho sinh viên biết là em hãy hỏi đi). Sinh viên sẽ đưa ra câu hỏi (chuyển thông điệp cho giáo viên). Giáo viên sẽ nghe câu hỏi (nhận thông điệp), sau đó trả lời cho sinh viên (gửi thông điệp).

Như vậy, các yếu tố quan trọng nhất của giao thức chính là việc gửi và nhận thông điệp, bên cạnh đó là một tập các quy tắc cần phải thực hiện khi gửi và nhận thông điệp.
-------------

lược dịch
James F. Kurose, Keith W. Ross, Computer Networking – A Top-Down Approach, Pearson, 2013
------------
Cập nhật 2016/6/5
------------