Lập trình giao tiếp mạng với winshock
CHƯƠNG 1: SƠ LƯỢC VỀ MẠNG MÁY TÍNH1.1 Định nghĩa và lợi ích của mạng máy tính1.1.1 Định nghĩaMạng máy tính là sự kết hợp các máy tính lại với nhau thông qua các thiết bị nối kết mạng và phương tiện truyền thông (giao thức mạng, môi trường truyền dẫn) theo một cấu trúc nào đó và các máy tính này trao đổi thông tin qua lại với nhau. Hình 1.1.1: Mô hình liên kết các máy tính trong mạng1.1.2 Những ích lợi kết nối thành mạng máy tính− Nhiều người có thể dùng chung một phần mềm tiện ích. − Một nhóm người cùng thực hiện một đề án nếu nối mạng họ sẽ dùng chung dữ liệu của đề án, dùng chung tập tin chính (master file) của đề án, họ trao đổi thông tin với nhau dễ dàng. − Dữ liệu được quản lý tập trung nên bảo mật an toàn, trao đổi giữa những người sử dụng thuận lợi, nhanh chóng, backup dữ liệu tốt hơn. − Sử dụng chung các thiết bị máy in, máy scaner, đĩa cứng và các thiết bị khác. − Người sử dụng và trao đổi thông tin với nhau dễ dàng thông qua dịch vụ thư điện tử (Email), dịch vụ Chat, dịch vụ truyền file (FTP), dịch vụ Web, . − Xóa bỏ rào cản về khoảng cách địa lý giữa các máy tính trong hệ thống mạng muốn chia sẻ và trao đổi dữ liệu với nhau. − Một số người sử dụng không cần phải trang bị máy tính đắt tiền (chi phí thấp mà chức năng lại mạnh). − Cho phép người lập trình ở một trung tâm máy tính này có thể sử dụng các chương trình tiện ích, vùng nhớ của một trung tâm máy tính khác đang rỗi để làm tăng hiệu quả kinh tế của hệ thống. − An toàn cho dữ liệu và phần mềm vì nó quản lý quyền truy cập của các tài khoản người dùng (phụ thuộc vào các chuyên gia quản trị mạng).1.2 Phân loại mạng máy tính. Có nhiều cách phân loại mạng khác nhau tuỳ thuộc vào yếu tố chính được chọn dùng để làm chỉ tiêu phân loại, thông thường người ta phân loại mạng theo các tiêu chí như sau - Khoảng cách địa lý của mạng - Kỹ thuật chuyển mạch mà mạng áp dụng - Kiến trúc mạng - Hệ điều hành mạng sử dụng . Tuy nhiên trong thực tế nguời ta thường chỉ phân loại theo hai tiêu chí đầu tiên1.2.1 Phân loại mạng theo khoảng cách địa lý :Nếu lấy khoảng cách địa lý làm yếu tố phân loại mạng thì ta có mạng cục bộ, mạng đô thị, mạng diện rộng, mạng toàn cầu. Mạng cục bộ ( LAN - Local Area Network ) : là mạng được cài đặt trong phạm vi tương đối nhỏ hẹp như trong một toà nhà, một xí nghiệp .với khoảng cách lớn nhất giữa các máy tính trên mạng trong vòng vài km trở lại. Mạng đô thị ( MAN - Metropolitan Area Network ) : là mạng được cài đặt trong phạm vi một đô thị, một trung tâm văn hoá xã hội, có bán kính tối đa khoảng 100 km trở lại. Mạng diện rộng ( WAN - Wide Area Network ) : là mạng có diện tích bao phủ rộng lớn, phạm vi của mạng có thể vượt biên giới quốc gia thậm chí cả lục địa. Mạng toàn cầu ( GAN - Global Area Network ) : là mạng có phạm vi trải rộng toàn cầu.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 làm yếu tố chính để phân loại sẽ có: mạng chuyển mạch kênh, mạng chuyển mạch thông báo và mạng chuyển mạch gói.Mạng chuyển mạch kênh (Circuit Switching Network): Khi có hai trạm cần trao đổi thông tin với nhau thì giữa chúng sẽ được thiết lập một “kênh” cố định và được duy trì cho đến khi một trong hai bên ngắt kết nối. Dữ liệu chđược truyền theo con đường cố định này. Kỹ thuật chuyển mạch kênh được sử dụng trong các kết nối ATM (Asynchronous Transfer Mode) và Dial-up ISDN (Integrate Services Digital Networks). Ví dụ về mạng chuyển mạch kênh là mạng điện thoại. Ưu điểm: -Kênh truyền được dành riêng trong suốt quá trình giao tiếp do đó tốc độ truyền dữ liệu được bảo đảm. Điều này là đặc biệt quan trọng đối với các ứng dụnthời gian thực như audio và video. Phương pháp chuyển mạch kênh có hai nhược điểm chính: − Phải tốn thời gian để thiết lập đường truyền cố định giữa hai trạm. − Hiệu suất sử dụng đường truyền không cao, vì có lúc trên kênh không có dữ liệu truyền của hai trạm kết nối, nhưng các trạm khác không được sử dụng kênhtruyền này.Mạng chuyển mạch thông báo (Message Switching Network): Không giống chuyển mạch kênh, chuyển mạch thông báo không thiết lập liên kết dành riêng giữa hai trạm giao tiếp mà thay vào đó mỗi thông báo được xem như một khối độc lập bao gồm cả địa chỉ nguồn và địa chỉ đích. Mỗi thông báo sẽ được truyền qua các trạm trong mạng cho đến khi nó đến được địa chỉ đích, mỗi trạm trung gian sẽ nhận và lưu trữ thông báo cho đến khi trạm trung gian kế tiếp sẵn sàng để nhận thông báo sau đó nó chuyển tiếp thông báo đến trạm kế tiếp, chính vì lý do này mà mạng chuyển mạch thông báo còn có thể được gọi là mạng lưu và chuyển tiếp (Store and Forward Network). Một ví dụ điển hình về kỹ thuật này là dịch vụ thư điện tử (e-mail), nó được chuyển tiếp qua các trạm cho đến khi tới được đích cần đến. Các ưu điểm của phương pháp: − Cung cấp một sự quản lý hiệu quả hơn đối với sự lưu thông của mạng. Bằng cách gán các thứ tự ưu tiên cho các thông báo và đảm bảo các thông báo có độ ưu tiên cao hơn sẽ được lưu chuyển thay vì bị trễ do quá trình lưu thông trên mạng. − Giảm sự tắc nghẽn trên mạng. Các trạm trung gian có thể lưu giữ các thông báo cho đến khi kênh truyền rảnh mới gửi thông báo đi. − Tăng hiệu quả sử dụng kênh truyền, với kỹ thuật này các trạm có thể dùng chung kênh truyền. Hai nhược điểm chính:− Nhược điểm của kỹ thuật này là độ trễ do việc lưu trữ và chuyển tiếp thông báo là không phù hợp với các ứng dụng thời gian thực. − Các trạm trung gian phải có dung lượng bộ nhớ rất lớn để lưu giữ các thông báo trước khi chuyển tiếp nó tới một trạm trung gian khác (kích thước của các thông báo không bị hạn chế).1.3 Một số Topology mạng thông dụngTopology của mạng là cấu trúc hình học không gian mà thực chất là cách bố trí phần tử của mạng cũng như cách nối giữa chúng với nhau. Thông thường mạng có 3 dạng cấu trúc là: Mạng dạng hình sao (Star Topology), mạng dạng vòng (Ring Topology) và mạng dạng tuyến (Linear Bus Topology). Ngoài 3 dạng cấu hình kể trên còn có một số dạng khác biến tướng từ 3 dạng này như mạng phân cấp, mạng full mesh, mạng partial mesh… Hình 1.3 Các dạng topologyMạng dạng hình sao (Star topology) Mạng dạng hình sao bao gồm một trung tâm và các nút thông tin. Các nút thông tin là các trạm đầu cuối, các máy tính và các thiết bị khác của mạng. Trung tâm của mạng điều phối mọi hoạt động trong mạng với các chức nǎng cơ bản là: -Xác định cặp địa chỉ gửi và nhận được phép chiếm tuyến thông tin và liên lạc với nhau. -Cho phép theo dõi và sử lý sai trong quá trình trao đổi thông tin. -Thông báo các trạng thái của mạng . Các ưu điểm của topo mạng hình sao:-Hoạt động theo nguyên lý nối song song nên nếu có một thiết bị nào đó ở một nút thông tin bị hỏng thì mạng vẫn hoạt động bình thường. -Cấu trúc mạng đơn giản và các thuật toán điều khiển ổn định. -Mạng có thể mở rộng hoặc thu hẹp tuỳ theo yêu cầu của người sử dụng. Nhược điểm:-Khả nǎng mở rộng mạng hoàn toàn phụ thuộc vào khả nǎng của trung tâm . Khi trung tâm có sự cố thì toàn mạng ngừng hoạt động.-Mạng yêu cầu nối độc lập riêng rẽ từng thiết bị ở các nút thông tin đến trung tâm. Khoảng cách từ máy đến trung tâm rất hạn chế (100 m). Nhìn chung, mạng dạng hình sao cho phép nối các máy tính vào một bộ tập trung (HUB hay Switch) bằng cáp xoắn, giải pháp này cho phép nối trực tiếp máy tính với HUB/Switch không cần thông qua trục BUS, tránh được các yếu tố gây ngưng trệ mạng. Gần đây, cùng với sự phát triển switching hub, mô hình này ngày càng trở nên phổ biến và chiếm đa số các mạng mới lắp.Mạng hình tuyến (Bus Topology)Theo cách bố trí hành lang các đường như hình vẽ thì máy chủ (host) cũng như tất cả các máy tính khác (workstation) hoặc các nút (node) đều được nối về với nhau trên một trục đường dây cáp chính để chuyển tải tín hiệu. Tất cả các nút đều sử dụng chung đường dây cáp chính này. Phía hai đầu dây cáp được bịt bởi một thiết bị gọi là terminator. Các tín hiệu và gói dữ liệu (packet) khi di chuyển lên hoặc xuống trong dây cáp đều mang theo điạ chỉ của nơi đến.Ưu điểm của topomạng bus:- Dùng dây cáp ít, dễ lắp đạt- Không giới hạn độ dài cápNhược điểm:- Sẽ gây ra nghẽn mạng khi chuyển lưu lượng dữ liệu lớn- Khi một trạm trên đường truyền bị hỏng thì các trạm khác cũng phải ngừng hoạt độngMạng dạng vòng (Ring Topology)Mạng dạng này, bố trí theo dạng xoay vòng, đường dây cáp được thiết kế làm thành một vòng khép kín, tín hiệu chạy quanh theo một chiều nào đó. Các nút truyền tín hiệu cho nhau mỗi thời điểm chỉ được một nút mà thôi. Dữ liệu truyền đi phải có kèm theo địa chỉ cụ thể của mỗi trạm tiếp nhận. Ưu điểm của topo mạng Ring:-Mạng dạng vòng có thuận lợi là có thể nới rộng ra xa, tổng đường dây cần thiết ít hơn so với hai kiểu trên. Nhược điểm: -Đường dây phải khép kín, nếu bị ngắt ở một nơi nào đó thì toàn bộ hệ thống cũng bị ngừng.Mạng dạng kết hợpKết hợp hình sao và tuyến ( star/Bus Topology ) Cấu hình mạng dạng này có bộ phận tách tín hiệu (spitter) giữ vai trò thiết bị trung tâm, hệ thống dây cáp mạng có thể chọn hoặc Ring Topology hoặc Linear Bus Topology.Ưu điểm của cấu hình này là mạng có thể gồm nhiều nhóm làm việc ở cách xa nhau, ARCNET là mạng dạng kết hợp Star/Bus Topology. Cấu hình dạng này đưa lại sự uyển chuyển trong việc bố trí đường dây tương thích dễ dàng đối với bất cứ toà nhà nKết hợp hình sao và vòng (Star/Ring Topology) Cấu hình dạng kết hợp Star/Ring Topology, có một "thẻ bài" liên lạc (Token) được chuyển vòng quanh một cái HUB trung tâm. Mỗi trạm làm việc (workstation) được nối với HUB - là cầu nối giữa các trạm làm việc và để tǎng khoảng cách cần thiết.Mạng full meshTopo này cho phép các thiết bị kết nối trực tiếp với các thiết bị khác mà không cần phải qua bộ tập trung như Hub hay Switch.Ưu điểm:- Các thiết bị hoạt động độc lập, khi thiết bị này hỏng vẫn không ảnh hưởng đến thiết bị khácNhược điểm:- Tiêu tốn tài nguyên về memory, về xử lý của các máy trạm- Quản lý phức tạpMạng phân cấp (Hierarchical)Mô hình này cho phép quản lý thiết bị tập chung, các máy trạm được đặt theo từng lớp tùy thuộc vào chức năng của từng lớp, ưu điểm rõ ràng nhất của topo dạng này là khả năng quản lý, bảo mật hệ thống,nhưng nhược điểm của nó là việc phải dùng nhiều bộ tập trung dẫn đến chi phí nhiều. 1.4 Giao thức mạngViệc trao đổi thông tin dù là đơn giản nhất cũng phải tuân theo những nguyên tắc nhất định. Đơn giản như hai người nói chuyện với nhau, muốn cho cuộc nói chuyện đạt kết quả thì ít nhất cả hai người phải ngầm tuân thủ quy ước : khi một người nói thì người kia phải biết lắng nghe và ngược lại. Việc truyền thông trên mạng cũng vậy. Cần có quy tắc, quy ước truyền thông về nhiều mặt : khuôn dạng cú pháp của dữ liệu, các thủ tục gởi, nhận dữ liệu, kiểm soát hiệu quả nhất chất lượng truyền thông tin. Tập hợp những quy tắc, quy ước truyền thông đó được gọi là giao thức của mạng (protocol).Một tập hợp tiêu chuẩn để trao đổi thông tin giữa hai hệ thống máy tính hoặc hai thiết bị máy tính với nhau được gọi là giao thức. Các giao thức này còn được gọi là các nghi thức hoặc định ước của máy tính.1.4.1 Giao thức TCP/IPGiao thức TCP/IP được phát triển từ mạng ARPANET và Internet và được dùng như giao thức mạng và vận chuyển trên mạng Internet. TCP (Transmission Control Protocol) là giao thức thuộc tầng vận chuyển và IP (Internet Prorocol) là giao thức thuộc tầng mạng của mô hình OSI. Họ giao thức TCP/IP hiện nay là giao thức được sử dụng rộng rãi nhất để liên kết các máy tính và các mạng.Hiện nay các máy tính của hầu hết các mạng có thể sử dụng giao thức TCP/IP để liên kết với nhau thông qua nhiều hệ thống mạng với kỹ thuật khác nhau. Giao thức TCP/IP thực chất là một họ giao thức cho phép các hệ thống mạng cùng làm việc với nhau thông qua việc cung cấp phương tiện truyền thông liên mạng.a. Giao thức IPNhiệm vụ chính của giao thức IP là cung cấp khả năng kết nối các mạng con thành liên kết mạng để truyền dữ liệu, vai trò của IP là vai trò của giao thức tầng mạng trong mô hình OSI. Giao thức IP là một giao thức kiểu không hướng kết nối (connectionless), có nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu.Để định danh các trạm (host) trong liên mạng được người ta sử dụng địa chỉ IP có độ dài 32 bits. Mỗi giao diện trong một máy có hỗ trợ giao thức IP đều được gán một địa chỉ IP (một máy tính có thể gắn với nhiều mạng do vậy có thể có nhiều địa chỉ IP). Địa chỉ IP gồm 3 phần: bit định danh lớp mạng, địa chỉ mạng (netID) và địa chỉ máy (hostID). Mỗi địa chỉ IP được phân thành 4 vùng (mỗi vùng 1 byte), có thể biểu thị dưới dạng thập phân, bát phân, thập lục phân hay nhị phân. Cách viết phổ biến nhất là dùng ký pháp thập phân có dấu chấm (dotted decimal notation) để tách các vùng. Mục đích của địa chỉ IP là để định danh duy nhất cho một máy tính bất kỳ trên liên mạng.Do tổ chức và độ lớn của mạng con (subnet) của liên mạng có thể khác nhau, người ta chia các địa chỉ IP thành 5 lớp, ký hiệu là A, B, C, D, và E. Trong lớp A, B, C chứa địa chỉ có thể gán được. Lớp D dành riêng cho lớp kỹ thuật multicasting. Lớp E được dành cho những ứng dụng trong tương lai. Hình 1.5. Cấu trúc của các lớp địa chỉ IPNetID dùng để nhận dạng từng mạng riêng biệt. Các mạng liên kết phải có địa chỉ mạng (netID) riêng cho mỗi mạng. Ở đây các bit đầu tiên của byte đầu tiên được dùng để định danh lớp địa chỉ (0 - lớp A, 10 - lớp B, 110 - lớp C, 1110 - lớp D và 11110 - lớp E).Ở đây ta xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, B, C.Phân lớp của địa chỉ IP như sau:- Mạng lớp A: địa chỉ mạng (netID) là 1 byte và địa chỉ host (hostID) là 3 byte. Lớp A cho phép định dạng tới 126 mạng, tối đa hơn 16 triệu host trên mỗi mạng. Lớp này được dùng cho các mạng có số trạm cực lớn.- Mạng lớp B: địa chỉ mạng (netID) là 2 byte và địa chỉ host (hostID) là 2 byte. Lớp B cho phép định danh tới 16382 mạng, với tối đa 65534 host trên mỗi mạng.- Mạng lớp C: địa chỉ mạng (netID) là 3 byte và địa chỉ host (hostID) là 1 byte. Lớp C cho phép định danh tới 2 triệu mạng, với tối đa 254 host trên mỗi mạng. Lớp này được dùng cho các mạng có ít trạm. Hình 1.6. Bảng phân lớp địa chỉ IPMột số địa chỉ có tính chất đặc biệt: một địa chỉ có hostID = 0 được dùng để hướng tới mạng định danh bởi vùng netID. Ngược lại, một địa chỉ có vùng hostID gồm toàn số 1 dùng để hướng tới tất cả các host nối vào mạng netID, và nếu vùng netID cũng gồm toàn số 1 thì nó hướng tới tất cả các host liên mạng.Cần lưu ý rằng địa chỉ IP được dùng để định danh các host và mạng ở tầng OSI, và chúng không phải là các địa chỉ vật lý (hay địa chỉ MAC) của các trạm trên đó một mạng cục bộ (Ethernet, Token Ring).Trong nhiều trường hợp, một mạng có thể được chia làm nhiều mạng con (subnet), lúc đó có thể đưa thêm các vùng subnetid để định danh các mạng con. Vùng subnetid được lấy từ vùng hostID, cụ thể đối với lớp A, B, C như ví dụ sau:Hình 1.7. Ví dụ địa chỉ IP khi bổ sung subnetidb. Giao thức TCPTCP là một giao thức hướng kết nối, có cung cấp một đường truyền dữ liệu tin cậy giữa hai máy tính. Tính tin cậy của đường truyền được thể hiện ở hai đặc điểm sau:- Mọi gói tin cần gửi sẽ đến được đích. Để làm điều này thì mỗi lần phía gửi sau khi gửi xong một gói tin nó sẽ chờ nhận một biên nhận từ bên nhận rằng đã nhận được đúng gói tin. Nếu sau một khoảng thời gian mà phía gửi không nhận được thông tin xác nhận phản hồi thì nó sẽ phát lại gói tin. Việc phát lại sẽ được tiến hành cho đến khi việc truyền tin thành công, tuy nhiên sau một số lần phát lại max nào đó mà vẫn chưa thành công thì phía gửi có thể suy ra là không thể truyền tin được và sẽ dừng việc phát tin.- Các gói tin sẽ được trình ứng dụng nhận được theo đúng thứ tự như chúng được gửi đi. Bởi các gói tin có thể được dẫn đi trên mạng theo nhiều con đường khác nhau trước khi tới đích nên thứ tự khi tới đích của chúng có thể không giống như khi chúng được phát. Do đó để đảm bảo có thể sắp xếp lại các gói tin một cách đúng đắn như ở phía gửi, giao thức TCP sẽ đánh số thứ tự cho từng gói tin trong cả khối tin chung được phát, nhờ vậy bên nhận có thể sắp xếp lại các gói tin theo đúng thứ tự ban đầu của chúng.Như vậy có thể thấy TCP cung cấp cho chúng ta một kênh truyền thông điểm - điểm phục vụ cho các ứng dụng đòi hỏi giao tiếp tin cậy như HTTP (Hypertext Tranfer Protocol), FPT (File Tranfer Protocol),… Các ứng dụng này đỏi hỏi một kênh giao tiếp tin cậy bởi thứ tự dữ liệu được gửi và nhận là yếu tố quyết định đến sự thành công hay thất bại của chúng.1.4.2 Giao thức UDPUDP (User Datagram Protocol) là giao thức không hướng kết nối, được sử dụng thay thế cho TCP theo yêu cầu của từng ứng dụng. Khác với TCP, UDP không có các chức năng thiết lập và kết thúc kết nối. Tương tự như IP, nó cũng không cung cấp cơ chế báo nhận (acknowledgment), không sắp xếp tuần tự các gói tin (datagram) đến và có thể dẫn đến tình trạng mất hoặc trùng dữ liệu mà không có cơ chế thông báo lỗi cho người gửi. Qua đó ta thấy UDP cung cấp các dịch vụ vận chuyển không tin cậy như trong TCP.Khuôn dạng UDP datagram được mô tả với các vùng tham số đơn giản hơn nhiều so với TCP segment.Hình 1.4.2 Khuôn dạng của gói tin UDP1.5 . Các mô hình hoạt động của mạng máy tínhMô hình hoạt động của mạng máy tính có hai loại:- Mô hình mạng hoạt động theo dạng peer to peer (Ngang hàng)- Mô hình mạng hoạt động theo dạng clients/server1.5.1 Mô hình mạng hoạt động theo dạng peer to peerKhông tồn tại bất kỳ máy chuyên dụng hoặc cấu trúc phân cấp giữa các máy tính, mọi máy tính đều bình đẳng và có vai trò như nhau. Thông thường mỗi máy tính hoạt động với cả vai trò máy khách và máy phục vụ, vì vậy không có máy nào được chỉ định quản lý toàn mạng. Người dùng ở từng máy tự quyết định dữ liệu nào trên máy của mình sẽ được chia sẻ để dùng chung trên mạng.Hình 1.5.1 Mô hình mạng hoạt động theo dạng peer to peerƯu điểm - Các peer tham gia vào mạng có thể đóng góp tài nguyên chia sẻ với nhau, tài nguyên có thể riêng lẻ và có thể truy cập tài nguyên ở bất các các nodes nào trong mạng.- Các peer đóng vai tròn như cả Client khi truy vấn thông tin và Server khi cung cấp thông tin.- Không cần Server riêng, khi hệ thống càng mở rộng thì khả năng hoạt động càng tốt.- Chi phí thấp, dễ cài đặt và bảo trì- Nhược điểm- Liên quan đến văn hóa trong chia sẻ về các tài nguyên có bản quyền.- Không đáng tin cậy và không tốt cho các ứng dụng cơ sở dữ liệu cần bảo mật cao.1.5.2 Mô hình mạng hoạt động theo dạng clients/ serverNhững mô hình LAN trong thời kỳ đầu (tập trung và máy phục vụ tệp) được xây dựng chủ yếu dựa trên phương thức chia xẻ tài nguyên dùng chung: chia xẻ sử dụng đường truyền theo thời gian, chia xẻ các tài nguyên vật lý khác và dùng chung tài nguyên thông tin là dữ liệu và các chương trình xử lý chúng trên một hoặc nhiều máy phục vụ (Server) của mạng.Hình 1.5.2.1 Mô hình Client/ServerMô hình phần mềm Client/Server là mô hình giải pháp phần mềm cho việc khắc phục tình trạng quá tải trên mạng và vượt qua những ngăn cách về sự khác nhau trong cấu trúc vật lý cũng như hệ điều hành của các hệ thống máy tính khác nhau trên mạng.Mỗi phần mềm xây dựng theo mô hình Client/Server sẽ được chia làm hai phần: phần hoạt động trên máy phục vụ gọi là phần phía Server và phần hoạt động trên trạm làm việc gọi là phần phía Client. Với mô hình này các trạm làm việc cũng được gọi là các Client (hay máy Client) còn các máy phục vụ gọi là các Server. Nhiệm vụ của mỗi phần được quy định như sau:• Phần phía Server quản lý các giao tiếp môi trường bên ngoài tại Server và với các Client, tiếp nhận các yêu cầu dưới dạng các xâu ký tự (query string), phân tích các query string, xử lý dữ liệu và gửi kết quả trả lời về phía các Client. [...]... nên phức tạp hơn đối với mạng có nhiều Client phân bố trên diện rộng 1.6 Kết luận CHƯƠNG II LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINSHOCK WinSock API (Windows Sockets Application Programming Interface) là thư viện các hàm giao diện lập trình mạng cho Microsoft Windows WinSock tương thích với họ nghi thức mạng TCP/IP 2.1 Giới thiệu về socket 2.1.1 Giới thiệu Socket là một giao diện lập trình ứng dụng (API-Application... có thể hoạt động theo hai chế độ: • Giao tiếp có nối kết, nếu sử dụng giao thức TCP • Hoặc giao tiếp không nối kết, nếu sử dụng giao thức UDP Socket là giao diện giữa chương trình ứng dụng với tầng vận chuyển Nó cho phép ta chọn giao thức sử dụng ở tầng vận chuyển là TCP hay UDP cho chương trình ứng dụng của mình Bảng sau so sánh sự khác biệt giữa hai chế độ giao tiếp có nối kết và không nối kết: Chế... Để có thể thực hiện các cuộc giao tiếp, một trong hai quá trình phải công bố số hiệu cổng của socket mà mình sử dụng Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống Khi quá trình được gán một số hiệu cổng, nó có thể nhận dữ liệu gởi đến cổng này từ các quá trình khác Quá trình còn lại cũng được yêu cầu tạo ra một socket Ngoài số hiệu cổng, hai bên giao tiếp còn phải biết địa chỉ IP... việc gửi các chương trình tính toán hay gửi dữ liệu dạng nguyên gốc từ phía Server về Client thì ý nghĩa hiệu quả của Client/Server không còn nữa • Mô hình Client/ Server cũng bộc lộ những nhược điểm do những khó khăn trong việc xây dựng và phát triển các phần mềm theo mô hình của nó Người lập trình phải tổ chức quản lý được các giao tiếp giữa hai phần của chương trình và giao tiếp với môi trường bên... cho các quá trình của hệ thống Các cổng mặc định của 1 số dịch vụ mạng thông dụng: Số hiệu cổng Dịch vụ 7 Dịch vụ Echo 21 Dịch vụ FTP 23 Dịch vụ Telnet 25 Dịch vụ E-Mail (SMTP) 80 Dịch vụ Web (HTTP) 110 Dịch vụ E-mail (POP) 2.1.3 Các chế độ giao tiếp Xét kiến trúc của hệ thống mạng TCP/IP Bộ giao thức TCP/IP Tầng vận chuyển giúp chuyển tiếp các thông điệp giữa các chương trình ứng dụng với nhau Nó...• Phần phía Client tổ chức giao tiếp với người dùng, với môi trường bên ngoài tại trạm làm việc và với phía Server, tiếp nhận yêu cầu của người dùng, thành lập các query string gửi về phía Server, tiếp nhận kết quả và tổ chức trình diễn chúng Hình 1.5.2.2 Mô hình phần mềm Client/Server Đặc điểm của mô hình Client/Server: Máy... giữa hai quá trình đã thiết lập kết nối Dữ liệu được truyền tin cậy, đúng trình tự và không lập lại Dữ liệu được truyền như dòng liên tục các byte không phân biệt ranh giới các record Datagram Socket : Dựa trên nghi thức UDP ( User Datagram Protocol ), việc truyền dữ liệu không yêu cầu có sự thiết lập kết nối giữa hai quá trình Dữ liệu truyền không tin cậy, có thể không đúng trình tự hoặc lập lại Dữ... hầu hết các hệ điều hành như MS Windows, Linux và được sử dụng trong nhiều ngôn ngữ lập trình khác nhau: như C, C++, Java, Visual Basic, Visual C++, Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh dấu bởi hai cổng (port) Thông qua các cổng này một quá trình có thể nhận và gởi dữ liệu với các quá trình khác Mô hình socket Hai loại Socket : Stream Socket : Dựa trên nghi thức TCP... mình Bảng sau so sánh sự khác biệt giữa hai chế độ giao tiếp có nối kết và không nối kết: Chế độ có nối kết (TCP) Chế độ không nối kết (UDP) • Tồn tại kênh giao tiếp ảo giữa • Không tồn tại kênh giao tiếp ảo hai bên giao tiếp giữa hai bên giao tiếp • Dữ liệu được gởi đi theo chế độ • Dữ liệu được gởi đi theo chế độ bảo đảm: có kiểm tra lỗi truyền không bảo đảm: Không kiểm tra lại gói tin lỗi hay mất,... Trả về hay thiết lập số hiệu cổng cục bộ Chỉ định 0 cho cổng nghĩa là bảo hệ thống chọn bất kỳ mộy cổng nào thích hợp Đọc/ viết và có hiệu lực thiết kế Protocol Long Không Trả về hay thiết lập giao thức cho điều khiển, hỗ trợ 2 giao thức TCP và UDP Những giá trị hằng số để thiết lập là sckTCPProtocol và sckUDPProtocol tương ứng với 0 và 1 RemoteHost String Không Trả về hay thiết lập tên của máy tính . trở nên phức tạp hơn đối với mạng có nhiều Client phân bố trên diện rộng.1.6 Kết luận CHƯƠNG II LẬP TRÌNH GIAO TIẾP MẠNG VỚI WINSHOCKWinSock API (Windows. mềm theo mô hình của nó. Người lập trình phải tổ chức quản lý được các giao tiếp giữa hai phần của chương trình và giao tiếp với môi trường bên ngoài tại