gloom_king
New Member
LINK TẢI LUẬN VĂN MIỄN PHÍ CHO AE KET-NOI
CHƯƠNG 1.1
Tổng quan vềlập trình truyền thông.1
1.1. Cơchếgiao tiếp liên quá trình là gì ?.2
1.2. Phân loại cơchếgiao tiếp liên quá trình.2
1.3. Mô hình tham khảo OSI.3
1.4. Mạng TCP/IP.6
1.5. Dịch vụmạng.7
1.6. Mô hình Client – Server.7
1.6.1. Giới thiệu.7
1.6.2. Ví dụvềdịch vụWeb.8
1.6.3. Các chế độgiao tiếp.9
1.6.3.1. Chế độnghẽn :.9
1.6.3.2. Chế độkhông nghẽn:.9
1.7. Các kiểu kiến trúc chương trình.9
1.7.1. Kiến trúc đơn tầng (Single-tier Architecture).10
1.7.2. Kiến trúc hai tầng (Two - Tier Architecture).10
1.7.2.1. Loại Fat Client.11
1.7.2.2. Loại Fat Server.12
1.7.3. Kiến trúc đa tầng (N-Tier Architecture).12
1.8. Bài tập.13
1.8.1. Bài tập bắt buộc.13
1.8.2. Bài tập gợi ý.13
Tìm đọc và viết một báo cáo không quá 10 trang vềgiao thức POP3.13
CHƯƠNG 2.14
Sơlược vềngôn ngữJava.14
1.1. Giới thiệu vềngôn ngữJava.15
1.1.1. Lịch sửphát triển.15
1.1.2. Khảnăng của ngôn ngữJava.15
1.1.2. Những đặc điểm của ngôn ngữJava.15
1.1.3. Máy ảo Java (JMV - Java Virtual Machine).15
1.1.4. Hai kiểu ứng dụng dưới ngôn ngữjava.16
1.1.5. Bộphát triển ứng dụng Java (JDK- Java Development Kit).16
1.1.6. Kiểu dữliệu cơbản dưới Java.16
1.1.7. Các phép toán cơbản.17
1.1.8. Qui cách đặt tên trong Java.17
1.2. Chương trình ứng dụng kiểu Application.18
1.2.1. Chương trình HelloWorld.19
1.2.3. Biên soạn chương trình bằng phần mềm Notepad của Ms Windows.19
1.2.4. Cài đặt bộphát triển ứng dụng JDK.20
1.2.5. Biên dịch và thực thi chương trình.20
1.2.6. Một sốví dụ.21
1.2.6.1. Hiển thịthông tin ra màn hành.21
1.2.6.2. Đọc ký tựtừbàn phím.21
1.3. Các cấu trúc điều khiển trong Java.23
1.3.1. Lệnh if – else.23
1.3.2. Phép toán ?.24
1.3.3. Lệnh switch.25
1.3.4. Lệnh while.26
1.3.5. Lệnh do - while.27
1.3.6. Lệnh for.27
1.3.7. Lệnh break.28
1.3.8. Lệnh continue.29
1.3.9. Một sốvấn đềkhác.30
1.3.9.1. Đọc đối sốcủa chương trình.30
1.3.9.2. Đổi chuỗi thành số.31
1.4. Ngoại lệ(EXCEPTION).31
1.5. Một sốvấn đềliên quan đến lớp trong Java.33
1.5.1. Định nghĩa lớp mới.33
1.5.2. Phạm vi nhìn thấy của một lớp.34
1.5.3. Tính thừa kế.35
1.6. Vào / Ra với Stream.36
1.6.1. Lớp java.io.InputStream.37
1.6.2. Lớp java.iutputStream.39
1.6.3. Nhập chuỗi từmột InputStream.40
1.6.4. Xuất chuỗi ra một OutputStream.41
1.7. Luồng (Thread).42
1.7.1. Các mức cài đặt luồng.43
1.7.1.1. Tiếp cận luồng ởmức người dùng:.44
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 94
Khoa Công NghệThông Tin - Đại Học Cần Thơ- Giáo Trình Lập Trình Truyền Thông
1.7.1.2. Tiếp cận luồng ởmức hạt nhân hệ điều hành.44
1.7.2. Luồng trong java.44
1.7.2.1 Độ ưu tiên của luồng.47
1.7.3. Đồng bộhóa giữa các luồng.49
1.8. Bài tập áp dụng.49
Chủ đề1: Cơbản vềJava.49
Chủ đề2: Thiết kếlớp trong Java.49
Chủ đề3: Thread.50
CHƯƠNG 3.51
Ống dẫn (Pipe).51
1.1. Giới thiệu về ống dẫn.52
1.2. Ống dẫn trong Java.52
1.2.1. Giới thiệu.52
1.2.2. Các cách tạo ống dẫn.53
1.3. Dịch vụphản hồi thông tin (Echo Service).53
1.4. Giảlập dịch vụphản hồi thông tin bằng Pipe.54
1.4.1. Lớp PipedEchoServer.54
1.4.2. Lớp PipedEchoClient.55
1.4.3. Lớp PipedEcho.55
1.4.5. Biên dịch và thực thi chương trình.56
CHƯƠNG 4.57
Socket.57
1.1. Giới thiệu vềsocket.58
1.1.1. Giới thiệu.58
1.1.2. Sốhiệu cổng (Port Number) của socket.58
1.1.3. Các chế độgiao tiếp.60
1.2. Xây dựng ứng dụng Client-Server với Socket.61
1.2.1. Mô hình Client-Server sửdụng Socket ởchế độcó nối kết (TCP).61
1.2.2. Mô hình Client-Server sửdụng Socket ởchế độkhông nối kết (UDP).63
1.3. Socket dưới ngôn ngữJava.64
1.3.1. Xây dựng chương trình Client ởchế độcó nối kết.65
1.3.1.1. Lớp java.net.Socket.65
1.3.1.2. Chương trình TCPEchoClient.66
1.3.2. Xây dựng chương trình Server ởchế độcó nối kết.67
1.3.2.1. Lớp java.net.ServerSocket.67
1.3.2.2. Xây dựng chương trình Server phục vụtuần tự.67
1.3.2.3. Chương trình STCPEchoServer.68
1.3.2.4. Server phục vụsong song.69
1.3.2.5. Chương trình PTCPEchoServer.70
1.3.3. Xây dựng chương trình Client - Server ởchế độkhông nối kết.71
1.3.3.1. Lớp DatagramPacket.72
1.3.3.2. Lớp DatagramSocket.73
1.3.3.3. Chương trình UDPEchoServer.74
1.3.3.4. Chương trình UDPEchoClient.75
1.4. Bài tập áp dụng.77
CHƯƠNG 5.79
RPC và RMI.79
1.1. Lời gọi thủtục xa (RPC- Remote Procedure Call).80
1.1.1. Giới thiệu.80
1.1.2. Kiến trúc của chương trình Client-Server cài đặt theo cơchếlời gọi thủtục xa80
Hình 5.1 Kiến trúc chương trình kiểu RPC.80
1.2. Kích hoạt cách xa (RMI- Remote Method Invocation ).81
1.2.1. Giới thiệu.81
1.2.2. Kiến trúc của chương trình Client-Server theo cơchếRMI.82
1.2.3. Các cơchếliên quan trong một ứng dụng đối tượng phân tán.83
1.2.4. Cơchếvận hành của của một ứng dụng Client-Server theo kiểu RMI.84
1.2.5. Các lớp hỗtrợchương trình theo kiểu Client-Server trong Java.85
1.3. Xây dựng một ứng dụng phân tán với RMI.85
1.3.1. Thiết kếvà cài đặt các thành phần của ứng dụng.85
1.3.2. Biên dịch các tập tin nguồn và tạo Stubs và Skeleton.85
1.3.3. Tạo các lớp có thểtruy xuất từmạng.86
1.3.4. Thực thi ứng dụng.86
1.3.4. Ví dụminh họa.86
1.4. Bài tập áp dụng.92
Mục lục.92
CHƯƠNG 1
Tổng quan về lập trình truyền thông
Mục đích
Chương này nhằm cung cấp cho các bạn một cái nhìn tổng quan về các vấn đề có
liên quan trong lập trình truyền thông
Yêu cầu
Sau khi hoàn tất chương này, bạn có thể:
Giải thích được Cơ chế giao tiếp liên quá trình (Inter-Process
Communication ) là gì.
Mô tả chức năng, nhiệm vụ của các tầng trong mô hình OSI.
Định nghĩa về giao thức và biện luận được sự cần thiết của giao thức trong
truyền thông .
Mô tả về bộ giao thức TCP/IP.
Định nghĩa mô hình Client – Server.
Phân biệt được 2 chế độ giao tiếp: Nghẽn và Không nghẽn.
Phân biệt được các kiểu kiến trúc chương trình.
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 1
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
1.1. Cơ chế giao tiếp liên quá trình là gì ?
Truyền thông là một khái niệm dùng để chỉ sự giao tiếp, trao đổi thông tin giữa hai
hay nhiều thực thể trong một hệ thống nào đó. Nếu hệ thống mà chúng ta xem xét là xã hội
loài người, thì truyền thông có thể là quá trình trao đổi thông tin giữa người với người
trong cuộc sống thông qua các phương tiện truyền tải thông tin khác nhau như không khí
(trong trò chuyện trực tiếp), hệ thống điện thoại, sách, báo, các phương tiện nghe nhìn,
mạng máy tính...
Nếu hệ thống mà chúng ta xem xét là một hệ thống máy tính hay một hệ thống
mạng thì truyền thông có thể được phân thành hai mức:
Mức phần cứng: là sự giao tiếp, trao đổi thông tin giữa các bộ phận vật lý
cấu thành nên hệ thống máy tính như CPU, bộ nhớ, thiết bị vào ra, card giao
tiếp mạng, nhờ vào các phương tiện truyền thông như hệ thống BUS nội, hệ
thống BUS vào ra hay các dây cáp mạng . . .
Mức phần mềm: là sự giao tiếp, trao đổi thông tin giữa các thành phần bên
trong của một chương trình hay giữa các chương trình với nhau thông qua
các cơ chế truyền thông được hỗ trợ bởi các hệ điều hành, hệ điều hành
mạng.
Trong các hệ thống máy tính đơn nhiệm (monotasking) cổ điển, ví dụ MS-DOS, tại
một thời điểm chỉ cho phép tồn tại một quá trình. Việc giao tiếp, trao đổi thông tin chỉ diễn
ra trong phạm vi của một chương trình. Đó là sự giao tiếp giữa các thủ tục dưới hình thức
chia sẻ các biến toàn cục, hay bằng cách truyền các tham số khi gọi hàm, thủ tục hay bằng
giá trị trả về của một hàm . . . Ngược lại, trong các hệ thống đa nhiệm (multitasking) có
nhiều quá trình tồn tại song song nhau, mỗi quá trình được thực hiện trong một không gian
địa chỉ (Address space) riêng biệt. Việc giao tiếp giữa các quá trình muốn thực hiện được
đòi hỏi phải có những tiện ích hỗ trợ bởi hệ điều hành, hệ điều hành mạng. Các tiện ích
này thường được gọi với cái tên là Cơ chế giao tiếp liên quá trình (IPC - Inter-Process
Communication).
1.2. Phân loại cơ chế giao tiếp liên quá trình
Các cơ chế giao tiếp liên quá trình được hỗ trợ bởi các hệ điều hành đa nhiệm, hệ
điều hành mạng được chia ra làm hai loại:
Loại 1: Cơ chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình trên
cùng một máy tính. (Hình H1.1)
Hình 1.1 - Cơ chế giao tiếp liên quá trình loại 1
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 2
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
• Loại 2: Cơ chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình nằm
trên các máy tính khác nhau (Hình H1.2).
Hình 1.2 - Cơ chế giao tiếp liên quá trình loại 2
Trong cơ chế giao tiếp liên quá trình trên cùng một máy, dữ liệu trao đổi qua lại
giữa các quá trình phải đi xuyên qua hạt nhân (kernel) của hệ điều hành. Đó có thể là một
vùng nhớ dùng chung cho các quá trình đã được qui định trước bởi hệ điều hành, hay một
tập tin trên đĩa được quản lý bởi hệ điều hành trong đó một quá trình sẽ ghi dữ liệu vào,
quá trình khác đọc dữ liệu ra, . . .
Trong cơ chế giao tiếp liên quá trình trên các máy tính khác nhau, dữ liệu trao đổi
giữa các quá trình không những phải đi qua hạt nhân như cơ chế giao tiếp liên quá trình
trên một máy tính mà hơn thế các hạt nhân của các máy có liên quan phải hiểu nhau. Nói
cách khác các hạt nhân phải thoả thuận trước với nhau về các qui tắc trao đổi thông tin
giữa chúng. Thông thường ta gọi các qui tắc này là các giao thức (Protocol).
1.3. Mô hình tham khảo OSI
Để dễ dàng cho việc nối kết và trao đổi thông tin giữa các máy tính với nhau, vào
năm 1983, Tổ chức tiêu chuẩn thế giới ISO đã phát triển một mô hình cho phép hai máy
tính có thể gởi và nhận dữ liệu cho nhau. Mô hình này dựa trên tiếp cận phân tầng (lớp),
với mỗi tầng đảm nhiệm một số các chức năng cơ bản nào đó và được gọi là mô hình OSI.
Để hai máy tính có thể trao đổi thông tin được với nhau cần có rất nhiều vấn đề liên
quan. Ví dụ như cần có Card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách
thức đóng gói dữ liệu, điều khiển lỗi đường truyền ... Bằng cách phân chia các chức năng
này vào những tầng riêng biệt nhau, việc viết các phần mềm để thực hiện chúng trở nên dễ
dàng hơn. Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chúng
trao đổi thông tin. Mô hình này gồm có 7 tầng:
7. Tầng ứng dụng (Application Layer)
Đây là tầng trên cùng, cung cấp các ứng dụng truy xuất đến các dịch vụ mạng.
Nó bao gồm các ứng dụng của người dùng, ví dụ như các Web Browser
(Netscape Navigator, Internet Explorer ), các Mail User Agent (Outlook
Express, Netscape Messenger, ...) hay các chương trình làm server cung cấp
các dịch vụ mạng như các Web Server (Netscape Enterprise, Internet
Information Service, Apache, ...), Các FTP Server, các Mail server (Send
mail, MDeamon). Người dùng mạng giao tiếp trực tiếp với tầng này.
6. Tầng trình bày (Presentation Layer)
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 3
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
Tầng này đảm bảo các máy tính có kiểu định dạng dữ liệu khác nhau vẫn có
thể trao đổi thông tin cho nhau. Thông thường các máy tính sẽ thống nhất với
nhau về một kiểu định dạng dữ liệu trung gian để trao đổi thông tin giữa các
máy tính. Một dữ liệu cần gởi đi sẽ được tầng trình bày chuyển sang định
dạng trung gian trước khi nó được truyền lên mạng. Ngược lại, khi nhận dữ
liệu từ mạng, tầng trình bày sẽ chuyển dữ liệu sang định dạng riêng của nó.
5. Tầng giao dịch (Session Layer)
Tầng này cho phép các ứng dụng thiết lập, sử dụng và xóa các kênh giao tiếp
giữa chúng (được gọi là giao dịch). Nó cung cấp cơ chế cho việc nhận biết tên
và các chức năng về bảo mật thông tin khi truyền qua mạng.
4. Tầng vận chuyển (Transport Layer)
Tầng này đảm bảo truyền tải dữ liệu giữa các quá trình. Dữ liệu gởi đi được
đảm bảo không có lỗi, theo đúng trình tự, không bị mất mát, trùng lắp. Đối
với các gói tin có kích thước lớn, tầng này sẽ phân chia...
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
CHƯƠNG 1.1
Tổng quan vềlập trình truyền thông.1
1.1. Cơchếgiao tiếp liên quá trình là gì ?.2
1.2. Phân loại cơchếgiao tiếp liên quá trình.2
1.3. Mô hình tham khảo OSI.3
1.4. Mạng TCP/IP.6
1.5. Dịch vụmạng.7
1.6. Mô hình Client – Server.7
1.6.1. Giới thiệu.7
1.6.2. Ví dụvềdịch vụWeb.8
1.6.3. Các chế độgiao tiếp.9
1.6.3.1. Chế độnghẽn :.9
1.6.3.2. Chế độkhông nghẽn:.9
1.7. Các kiểu kiến trúc chương trình.9
1.7.1. Kiến trúc đơn tầng (Single-tier Architecture).10
1.7.2. Kiến trúc hai tầng (Two - Tier Architecture).10
1.7.2.1. Loại Fat Client.11
1.7.2.2. Loại Fat Server.12
1.7.3. Kiến trúc đa tầng (N-Tier Architecture).12
1.8. Bài tập.13
1.8.1. Bài tập bắt buộc.13
1.8.2. Bài tập gợi ý.13
Tìm đọc và viết một báo cáo không quá 10 trang vềgiao thức POP3.13
CHƯƠNG 2.14
Sơlược vềngôn ngữJava.14
1.1. Giới thiệu vềngôn ngữJava.15
1.1.1. Lịch sửphát triển.15
1.1.2. Khảnăng của ngôn ngữJava.15
1.1.2. Những đặc điểm của ngôn ngữJava.15
1.1.3. Máy ảo Java (JMV - Java Virtual Machine).15
1.1.4. Hai kiểu ứng dụng dưới ngôn ngữjava.16
1.1.5. Bộphát triển ứng dụng Java (JDK- Java Development Kit).16
1.1.6. Kiểu dữliệu cơbản dưới Java.16
1.1.7. Các phép toán cơbản.17
1.1.8. Qui cách đặt tên trong Java.17
1.2. Chương trình ứng dụng kiểu Application.18
1.2.1. Chương trình HelloWorld.19
1.2.3. Biên soạn chương trình bằng phần mềm Notepad của Ms Windows.19
1.2.4. Cài đặt bộphát triển ứng dụng JDK.20
1.2.5. Biên dịch và thực thi chương trình.20
1.2.6. Một sốví dụ.21
1.2.6.1. Hiển thịthông tin ra màn hành.21
1.2.6.2. Đọc ký tựtừbàn phím.21
1.3. Các cấu trúc điều khiển trong Java.23
1.3.1. Lệnh if – else.23
1.3.2. Phép toán ?.24
1.3.3. Lệnh switch.25
1.3.4. Lệnh while.26
1.3.5. Lệnh do - while.27
1.3.6. Lệnh for.27
1.3.7. Lệnh break.28
1.3.8. Lệnh continue.29
1.3.9. Một sốvấn đềkhác.30
1.3.9.1. Đọc đối sốcủa chương trình.30
1.3.9.2. Đổi chuỗi thành số.31
1.4. Ngoại lệ(EXCEPTION).31
1.5. Một sốvấn đềliên quan đến lớp trong Java.33
1.5.1. Định nghĩa lớp mới.33
1.5.2. Phạm vi nhìn thấy của một lớp.34
1.5.3. Tính thừa kế.35
1.6. Vào / Ra với Stream.36
1.6.1. Lớp java.io.InputStream.37
1.6.2. Lớp java.iutputStream.39
1.6.3. Nhập chuỗi từmột InputStream.40
1.6.4. Xuất chuỗi ra một OutputStream.41
1.7. Luồng (Thread).42
1.7.1. Các mức cài đặt luồng.43
1.7.1.1. Tiếp cận luồng ởmức người dùng:.44
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 94
Khoa Công NghệThông Tin - Đại Học Cần Thơ- Giáo Trình Lập Trình Truyền Thông
1.7.1.2. Tiếp cận luồng ởmức hạt nhân hệ điều hành.44
1.7.2. Luồng trong java.44
1.7.2.1 Độ ưu tiên của luồng.47
1.7.3. Đồng bộhóa giữa các luồng.49
1.8. Bài tập áp dụng.49
Chủ đề1: Cơbản vềJava.49
Chủ đề2: Thiết kếlớp trong Java.49
Chủ đề3: Thread.50
CHƯƠNG 3.51
Ống dẫn (Pipe).51
1.1. Giới thiệu về ống dẫn.52
1.2. Ống dẫn trong Java.52
1.2.1. Giới thiệu.52
1.2.2. Các cách tạo ống dẫn.53
1.3. Dịch vụphản hồi thông tin (Echo Service).53
1.4. Giảlập dịch vụphản hồi thông tin bằng Pipe.54
1.4.1. Lớp PipedEchoServer.54
1.4.2. Lớp PipedEchoClient.55
1.4.3. Lớp PipedEcho.55
1.4.5. Biên dịch và thực thi chương trình.56
CHƯƠNG 4.57
Socket.57
1.1. Giới thiệu vềsocket.58
1.1.1. Giới thiệu.58
1.1.2. Sốhiệu cổng (Port Number) của socket.58
1.1.3. Các chế độgiao tiếp.60
1.2. Xây dựng ứng dụng Client-Server với Socket.61
1.2.1. Mô hình Client-Server sửdụng Socket ởchế độcó nối kết (TCP).61
1.2.2. Mô hình Client-Server sửdụng Socket ởchế độkhông nối kết (UDP).63
1.3. Socket dưới ngôn ngữJava.64
1.3.1. Xây dựng chương trình Client ởchế độcó nối kết.65
1.3.1.1. Lớp java.net.Socket.65
1.3.1.2. Chương trình TCPEchoClient.66
1.3.2. Xây dựng chương trình Server ởchế độcó nối kết.67
1.3.2.1. Lớp java.net.ServerSocket.67
1.3.2.2. Xây dựng chương trình Server phục vụtuần tự.67
1.3.2.3. Chương trình STCPEchoServer.68
1.3.2.4. Server phục vụsong song.69
1.3.2.5. Chương trình PTCPEchoServer.70
1.3.3. Xây dựng chương trình Client - Server ởchế độkhông nối kết.71
1.3.3.1. Lớp DatagramPacket.72
1.3.3.2. Lớp DatagramSocket.73
1.3.3.3. Chương trình UDPEchoServer.74
1.3.3.4. Chương trình UDPEchoClient.75
1.4. Bài tập áp dụng.77
CHƯƠNG 5.79
RPC và RMI.79
1.1. Lời gọi thủtục xa (RPC- Remote Procedure Call).80
1.1.1. Giới thiệu.80
1.1.2. Kiến trúc của chương trình Client-Server cài đặt theo cơchếlời gọi thủtục xa80
Hình 5.1 Kiến trúc chương trình kiểu RPC.80
1.2. Kích hoạt cách xa (RMI- Remote Method Invocation ).81
1.2.1. Giới thiệu.81
1.2.2. Kiến trúc của chương trình Client-Server theo cơchếRMI.82
1.2.3. Các cơchếliên quan trong một ứng dụng đối tượng phân tán.83
1.2.4. Cơchếvận hành của của một ứng dụng Client-Server theo kiểu RMI.84
1.2.5. Các lớp hỗtrợchương trình theo kiểu Client-Server trong Java.85
1.3. Xây dựng một ứng dụng phân tán với RMI.85
1.3.1. Thiết kếvà cài đặt các thành phần của ứng dụng.85
1.3.2. Biên dịch các tập tin nguồn và tạo Stubs và Skeleton.85
1.3.3. Tạo các lớp có thểtruy xuất từmạng.86
1.3.4. Thực thi ứng dụng.86
1.3.4. Ví dụminh họa.86
1.4. Bài tập áp dụng.92
Mục lục.92
CHƯƠNG 1
Tổng quan về lập trình truyền thông
Mục đích
Chương này nhằm cung cấp cho các bạn một cái nhìn tổng quan về các vấn đề có
liên quan trong lập trình truyền thông
Yêu cầu
Sau khi hoàn tất chương này, bạn có thể:
Giải thích được Cơ chế giao tiếp liên quá trình (Inter-Process
Communication ) là gì.
Mô tả chức năng, nhiệm vụ của các tầng trong mô hình OSI.
Định nghĩa về giao thức và biện luận được sự cần thiết của giao thức trong
truyền thông .
Mô tả về bộ giao thức TCP/IP.
Định nghĩa mô hình Client – Server.
Phân biệt được 2 chế độ giao tiếp: Nghẽn và Không nghẽn.
Phân biệt được các kiểu kiến trúc chương trình.
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 1
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
1.1. Cơ chế giao tiếp liên quá trình là gì ?
Truyền thông là một khái niệm dùng để chỉ sự giao tiếp, trao đổi thông tin giữa hai
hay nhiều thực thể trong một hệ thống nào đó. Nếu hệ thống mà chúng ta xem xét là xã hội
loài người, thì truyền thông có thể là quá trình trao đổi thông tin giữa người với người
trong cuộc sống thông qua các phương tiện truyền tải thông tin khác nhau như không khí
(trong trò chuyện trực tiếp), hệ thống điện thoại, sách, báo, các phương tiện nghe nhìn,
mạng máy tính...
Nếu hệ thống mà chúng ta xem xét là một hệ thống máy tính hay một hệ thống
mạng thì truyền thông có thể được phân thành hai mức:
Mức phần cứng: là sự giao tiếp, trao đổi thông tin giữa các bộ phận vật lý
cấu thành nên hệ thống máy tính như CPU, bộ nhớ, thiết bị vào ra, card giao
tiếp mạng, nhờ vào các phương tiện truyền thông như hệ thống BUS nội, hệ
thống BUS vào ra hay các dây cáp mạng . . .
Mức phần mềm: là sự giao tiếp, trao đổi thông tin giữa các thành phần bên
trong của một chương trình hay giữa các chương trình với nhau thông qua
các cơ chế truyền thông được hỗ trợ bởi các hệ điều hành, hệ điều hành
mạng.
Trong các hệ thống máy tính đơn nhiệm (monotasking) cổ điển, ví dụ MS-DOS, tại
một thời điểm chỉ cho phép tồn tại một quá trình. Việc giao tiếp, trao đổi thông tin chỉ diễn
ra trong phạm vi của một chương trình. Đó là sự giao tiếp giữa các thủ tục dưới hình thức
chia sẻ các biến toàn cục, hay bằng cách truyền các tham số khi gọi hàm, thủ tục hay bằng
giá trị trả về của một hàm . . . Ngược lại, trong các hệ thống đa nhiệm (multitasking) có
nhiều quá trình tồn tại song song nhau, mỗi quá trình được thực hiện trong một không gian
địa chỉ (Address space) riêng biệt. Việc giao tiếp giữa các quá trình muốn thực hiện được
đòi hỏi phải có những tiện ích hỗ trợ bởi hệ điều hành, hệ điều hành mạng. Các tiện ích
này thường được gọi với cái tên là Cơ chế giao tiếp liên quá trình (IPC - Inter-Process
Communication).
1.2. Phân loại cơ chế giao tiếp liên quá trình
Các cơ chế giao tiếp liên quá trình được hỗ trợ bởi các hệ điều hành đa nhiệm, hệ
điều hành mạng được chia ra làm hai loại:
Loại 1: Cơ chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình trên
cùng một máy tính. (Hình H1.1)
Hình 1.1 - Cơ chế giao tiếp liên quá trình loại 1
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 2
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
• Loại 2: Cơ chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình nằm
trên các máy tính khác nhau (Hình H1.2).
Hình 1.2 - Cơ chế giao tiếp liên quá trình loại 2
Trong cơ chế giao tiếp liên quá trình trên cùng một máy, dữ liệu trao đổi qua lại
giữa các quá trình phải đi xuyên qua hạt nhân (kernel) của hệ điều hành. Đó có thể là một
vùng nhớ dùng chung cho các quá trình đã được qui định trước bởi hệ điều hành, hay một
tập tin trên đĩa được quản lý bởi hệ điều hành trong đó một quá trình sẽ ghi dữ liệu vào,
quá trình khác đọc dữ liệu ra, . . .
Trong cơ chế giao tiếp liên quá trình trên các máy tính khác nhau, dữ liệu trao đổi
giữa các quá trình không những phải đi qua hạt nhân như cơ chế giao tiếp liên quá trình
trên một máy tính mà hơn thế các hạt nhân của các máy có liên quan phải hiểu nhau. Nói
cách khác các hạt nhân phải thoả thuận trước với nhau về các qui tắc trao đổi thông tin
giữa chúng. Thông thường ta gọi các qui tắc này là các giao thức (Protocol).
1.3. Mô hình tham khảo OSI
Để dễ dàng cho việc nối kết và trao đổi thông tin giữa các máy tính với nhau, vào
năm 1983, Tổ chức tiêu chuẩn thế giới ISO đã phát triển một mô hình cho phép hai máy
tính có thể gởi và nhận dữ liệu cho nhau. Mô hình này dựa trên tiếp cận phân tầng (lớp),
với mỗi tầng đảm nhiệm một số các chức năng cơ bản nào đó và được gọi là mô hình OSI.
Để hai máy tính có thể trao đổi thông tin được với nhau cần có rất nhiều vấn đề liên
quan. Ví dụ như cần có Card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách
thức đóng gói dữ liệu, điều khiển lỗi đường truyền ... Bằng cách phân chia các chức năng
này vào những tầng riêng biệt nhau, việc viết các phần mềm để thực hiện chúng trở nên dễ
dàng hơn. Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chúng
trao đổi thông tin. Mô hình này gồm có 7 tầng:
7. Tầng ứng dụng (Application Layer)
Đây là tầng trên cùng, cung cấp các ứng dụng truy xuất đến các dịch vụ mạng.
Nó bao gồm các ứng dụng của người dùng, ví dụ như các Web Browser
(Netscape Navigator, Internet Explorer ), các Mail User Agent (Outlook
Express, Netscape Messenger, ...) hay các chương trình làm server cung cấp
các dịch vụ mạng như các Web Server (Netscape Enterprise, Internet
Information Service, Apache, ...), Các FTP Server, các Mail server (Send
mail, MDeamon). Người dùng mạng giao tiếp trực tiếp với tầng này.
6. Tầng trình bày (Presentation Layer)
Biên Soạn: Ngô Bá Hùng - Nguyễn Công Huy 3
Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ - Giáo Trình Lập Trình Truyền Thông
Tầng này đảm bảo các máy tính có kiểu định dạng dữ liệu khác nhau vẫn có
thể trao đổi thông tin cho nhau. Thông thường các máy tính sẽ thống nhất với
nhau về một kiểu định dạng dữ liệu trung gian để trao đổi thông tin giữa các
máy tính. Một dữ liệu cần gởi đi sẽ được tầng trình bày chuyển sang định
dạng trung gian trước khi nó được truyền lên mạng. Ngược lại, khi nhận dữ
liệu từ mạng, tầng trình bày sẽ chuyển dữ liệu sang định dạng riêng của nó.
5. Tầng giao dịch (Session Layer)
Tầng này cho phép các ứng dụng thiết lập, sử dụng và xóa các kênh giao tiếp
giữa chúng (được gọi là giao dịch). Nó cung cấp cơ chế cho việc nhận biết tên
và các chức năng về bảo mật thông tin khi truyền qua mạng.
4. Tầng vận chuyển (Transport Layer)
Tầng này đảm bảo truyền tải dữ liệu giữa các quá trình. Dữ liệu gởi đi được
đảm bảo không có lỗi, theo đúng trình tự, không bị mất mát, trùng lắp. Đối
với các gói tin có kích thước lớn, tầng này sẽ phân chia...
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:
You must be registered for see links
Last edited by a moderator: