1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình mạng máy tính

39 429 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 594 KB

Nội dung

Dựa theo phạm vi phân bố của mạng ta có thể phân ra các loại mạng như sau: - Mạng cục bộ LAN Local Area Network: Mạng LAN là một nhóm máy tính và các thiết bị truyền thông mạng được nố

Trang 1

MỤC LỤC

Chương 1 CĂN BẢN VỀ MẠNG MÁY TÍNH 3

1.1 Định nghĩa mạng máy tính 3

1.2 Nhu cầu phát triển mạng máy tính 4

1.3.Phân loại mạng máy tính 5

1.4 Một số topo mạng thông dụng 7

1.5 Giao thức mạng 8

1.5.1 Giao thức TCP 8

1.5.2 Giao thức UDP 10

1.6 Các mô hình hoạt động của mạng máy tính 11

1.6.1 Mô hình hoạt động peer to peer 12

1.6.2 Mô hình hoạt động clients/ server 12

Chương 2 LẬP TRÌNH MẠNG VỚI SOCKET 13

2.1.TỔNG QUAN VỀ C# 13

2.1.1.Cơ Bản Về NET Framework 13

2.1.2.Các thành phần của NET Framework 13

2.1.3.Các tính năng cơ bản của ngôn ngữ lập trình C# 14

2.1.4.Các ứng dụng của C# 14

2.1.5.Các lợi ích của C# 15

2.2.GIỚI THIỆU VỀ LẬP TRÌNH SOCKET 15

2.3.LẬP TRÌNH MẠNG VỚI TCPSOCKET 16

2.3.1.Mô hình giao thức 16

2.3.2.Thiết lập kết nối 17

2.3.3.Truyền nhận dữ liệu 18

2.3.4.Đóng liên kết 19

2.4.LẬP TRÌNH MẠNG VỚI UDP SOCKET 20

2.4.1.Giao thức UDP 20

2.4.2.Một số thuật ngữ UDP 20

Trang 2

2.4.3.Hoạt động của giao thức UDP 22

2.4.4.Các nhược điểm của giao thức UDP 22

2.4.5.Các ưu điểm của UDP 23

2.4.6.Khi nào thì nên sử dụng UDP 24

2.5.MÔ HÌNH CLIENT/SERVER 24

2.5.1.Tổng quan 24

2.5.2.Giao thức cho ứng dụng Client/Server 32

Chương 3 XÂY DỰNG VÀ THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 36

3.1.GIỚI THIỆU VỀ CHƯƠNG TRÌNH 36

3.2.KỸ THUẬT CHIA NHỎ VÀ NỐI FILE 36

PHƯƠNG THỨC GỞI FILE 36

PHƯƠNG THỨ NHẬN FILE 37

3.3.GIAO DIỆN VÀ SỬ DỤNG CHƯƠNG TRÌNH: 37

3.3.1.Giao diện: 37

3.3.1.1.Chương trình Server : 37

3.3.1.2.Chương trình Client 38

TÀI LIỆU THAM KHẢO 39

Trang 3

Chương 1 CĂN BẢN VỀ MẠNG MÁY TÍNH

1.1 Định nghĩa mạng máy tính.

Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đường truyềntheo một cấu trúc nào đó và thông qua đó các máy tính trao đổi thông tin qua lại chonhau

Đường truyền là hệ thống các thiết bị truyền dẫn có dây hay không dây dùng đểchuyển các tín hiệu điện tử từ máy tính này đến máy tính khác Các tín hiệu điện tử đóbiểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on - off) Tất cả các tín hiệu đượctruyền giữa các máy tính đều thuộc một dạng sóng điện từ Tùy theo tần số của sóng điện

từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu Ở đây đườngtruyền được kết nối có thể là dây cáp đồng trục, cáp xoắn, cáp quang, dây điện thoại, sóng

vô tuyến Các đường truyền dữ liệu tạo nên cấu trúc của mạng Hai khái niệm đườngtruyền và cấu trúc là những đặc trưng cơ bản của mạng máy tính

Hình 1.1 Một mô hình các máy tính liên kết trong mạng

Trang 4

1.2 Nhu cầu phát triển mạng máy tính

Ngày nay, khi máy tính được sử dụng một cách rộng rãi và số lượng máy tínhtrong một văn phòng hay cơ quan được tăng lên nhanh chóng thì việc kết nối chúng trởnên vô cùng cần thiết và sẽ mang lại nhiều hiệu quả cho người sử dụng

Với một lượng lớn về thông tin, nhu cầu xử lý thông tin ngày càng cao, mạng máytính đã trở nên quá quen thuộc đối với chúng ta trong mọi lĩnh vực như: khoa học, quân

sự, quốc phòng, thương mại, dịch vụ, giáo dục

Người ta thấy được việc kết nối các máy tính thành mạng cho chúng ta những khảnăng mới to lớn như:

- Sử dụng chung tài nguyên: những tài nguyên (như thiết bị, chương trình, dữliệu) khi được trở thành các tài nguyên chung thì mọi thành viên của mạng đều có thể tiếpcận được mà không quan tâm tới những tài nguyên đó ở đâu

- Tăng độ tin cậy của hệ thống: người ta có thể dễ dàng bảo trì máy móc, lưutrữ (backup) các dữ liệu chung và khi có trục trặc trong hệ thống thì chúng có thể đượckhôi phục nhanh chóng Trong trường hợp có trục trặc trên một trạm làm việc thì người tacũng có thể sử dụng những trạm khác thay thế

- Nâng cao chất lượng và hiệu quả khai thác thông tin: khi thông tin có thểđược sử dụng chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các côngviệc với những thay đổi về chất như:

+ Ðáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại

+ Cung cấp sự thống nhất giữa các dữ liệu

+ Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán

+ Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cungcấp trên thế giới

Với nhu cầu đòi hỏi ngày càng cao của xã hội nên vấn đề kỹ thuật trong mạng

là mối quan tâm hàng đầu của các nhà tin học Ví dụ như làm thế nào để truy xuấtthông tin một cách nhanh chóng và tối ưu, trong khi việc xử lý thông tin trên mạng

Trang 5

quá nhiều, đôi khi có thể làm tắc nghẽn và gây ra mất thông tin một cách đáng tiếc.Hiện nay, việc làm sao có được một hệ thống mạng chạy thật tốt, thật an toàn vớilợi ích kinh tế cao đang rất được quan tâm

1.3.Phân loại mạng máy tính

Do hiện nay mạng máy tính được phát triển khắp nơi với những ứng dụng ngày càng

đa dạng cho nên việc phân loại mạng máy tính là một việc rất phức tạp

Dựa theo phạm vi phân bố của mạng ta có thể phân ra các loại mạng như sau:

- Mạng cục bộ LAN (Local Area Network):

Mạng LAN là một nhóm máy tính và các thiết bị truyền thông mạng được nối kếtvới nhau trong một khu vực nhỏ như một tòa nhà cao ốc, khuôn viên trường đại học, khugiải trí… Các mạng LAN thường có đặc điểm sau:

+ Băng thông lớn, có khả năng chạy các ứng dụng trực tuyến như xem phim, hộithảo qua mạng

+ Kích thước mạng bị giới hạn bởi các thiết bị

+ Chi phí các thiết bị mạng LAN tương đối rẻ

+ Quản trị đơn giản

Trang 6

- Mạng đô thị MAN (Metropolitan Area Network): Mạng MAN gần giống như

mạng LAN nhưng giới hạn của nó là một thành phố hay một quốc gia Mạng MAN nốikết các mạng LAN lạ với nhau thông qua các phương tiện truyền dẫn khác nhau (cápquang, cáp đồng, sóng….) và các phương thức truyền thông khác nhau

Đặc điểm của mạng MAN:

+ Băng thông mức trung bình, đủ để phục vụ các ứng dụng cấp thành phố hay quốcgia như chính phủ điện tử, thương mại điện tử, các ứng dụng của các ngân hàng…

+ Do MAN nối kết nhiều LAN với nhau nên độ phức tạp cũng tăng đồng thời côngtác quản trị sẽ khó khăn hơn

+ Chi phí các thiết bị mạng MAN tương đối đắt tiền

- Mạng diện rộng WAN (Wide Area Network): Mạng WAN bao phủ vùng địa lý

rộng lớn có thể là một quốc gia, một lục địa hay toàn cầu Mạng WAN thường là mạngcủa các công ty đa quốc gia hay toàn cầu, điển hình là mạng internet Do phạm vi rộnglớn của mạng WAN nên thông thường mạng WAN là tập hợp các mạng LAN, WAN nốilại với nhau bằng các phương tiện như: vệ tinh (satellites), sóng biva (microwave), cápquang, cáp điện thoại

Đặc điểm của mạng WAN:

+ Băng thông thấp, dễ mất kết nối, thường chỉ phù hơp với các ứng dụng offine nhưe-mail, web, ftp…

+ Phạm vi hoạt động rộng lớn không giới hạn

+ Do kết nối của nhiều LAN, WAN lại với nhau nên mạng rất phức tạp và có tínhtoàn cầu nên thường là có tổ chức quốc tế đứng ra quản trị

+ Chi phí cho các thiết bị và các công nghệ mạng WAN rất đắt tiền

Trang 7

- Mạng Internet: Là trường hợp đặc biệt của mạng WAN, nó cung cấp các dịch

vụ toàn cầu như mail, web, chat, ftp và phục vụ miễn phí cho mọi người

1.4 Một số topo mạng thông dụng

Theo định nghĩa về mạng máy tính, các máy tính được nối với nhau bởi các đườngtruyền vật lý theo một kiến trúc nào đó, các kiến trúc đó gọi là Topology Thông thườngmạng có ba loại kiến trúc đó là: mạng hình sao (Star Topology), mạng dạng tuyến (BusTopology), mạng dạng vòng(Ring Topology)

- Ring Topology: Mạng được bố trí vòng tròn, đường dây cáp được thiết kế làmthành một vòng khép kín, tín hiệu chạy theo một chiều nào đó Các nút truyền tín hiệu chonhau tại một thời điểm được một nút mà thôi Mạng dạng vòng có thuận lợi là có thể nớirộng ra xa nhưng đườ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

- Bus Topology: Ở dạng Bus tất cả các nút được phân chia một đường truyền chính(bus) Đường truyền này được giới hạn hai đầu bởi một loại đầu nối đặc biệt gọi làTerminator Khi một nút truyền dữ liệu, tín hiệu được quảng bá trên hai chiều của bus,mọi nút còn lại đều được nhận tín hiệu trực tiếp Loại mạng này dùng dây cáp ít, dễ lắp

Trang 8

đặt Tuy vậy cũng có những bất lợi đó là sẽ có sự ùn tắc giao thông khi di chuyển với lưulượng lớn và khi có sự hỏng hóc ở đoạn nào đó thì rất khó phát hiện, nếu một nút ngừnghoạt động sẽ ảnh hưởng tới toàn bộ hệ thống.

- Star Topology: Mạng hình sao bao gồm một bộ tập trung và các nút thông tin Cácnút thông tin có thể là các trạm cuối, các máy tính hay các thiết bị khác của mạng Mạnghoạt động theo nguyên lý nối song song nên nếu có một nút bị hỏng mạng vẫn hoạt độngbình thường Mạng có thể mở rộng hoặc thu hẹp tùy theo yêu cầu của người sử dụng, tuynhiên mở rộng phụ thuộc và khả năng của trung tâm

1.5 Giao thức mạng

Giao thức mạng là một tập các quy tắc, quy ước để trao đổi thông tin giữa hai hệ thốngmáy tính hoặc hai thiết bị máy tính với nhau Nói một cách hình thức thì giao thức mạng làmột ngôn ngữ được các máy tính trong mạng sử dụng để trao đổi dữ liệu với nhau Cónhiều loại giao thức được sử dụng trong mạng máy tính như: Apple Talk, DLC, NetBEUI,

… nhưng hiện nay giao thức được sử dụng phổ biến nhất trong mạng máy tính là giao thứcTCP/IP

1.5.1 Giao thức TCP

Định nghĩa: TCP(Transmission Control Protocol) là giao thức hướng kết nối, nó cungcấp một đường truyền dữ liệu tin cậy giữa hai máy tính Tính tin cậy thể hiện ở việc nóđảm bảo dữ liệu được gửi sẽ đến được đích và theo đúng thứ tự như khi nó được gửi Khi hai ứng dụng muốn giao tiếp với nhau một cách tin cậy, chúng sẽ tạo ra đường kếtnối giữa chúng và gửi dữ liệu thông qua đường này Cách trao đổi dữ liệu này tương tựnhư cách chúng ta gọi điện thoại Hãy lấy ví dụ khi bạn nhấc điện thoại lên và quay số

Trang 9

của người họ hàng này, lúc dó một kết nối sẽ được tạo ra giữa điện thoại của bạn và người

họ hàng, sau đó bạn gửi và nhận dữ liệu (dưới dạng âm thanh) bằng cách nói và nghe quađiện thoại của bạn Toàn bộ việc thực hiện kết nối và truyền dữ liệu giữa hai máy điệnthoại được thực hiện bởi công ty điện thoại thông qua các trạm và đường dây điện thoại,nhiệm vụ duy nhất của bạn là quay số để cung cấp cho nhà cung cấp dịch vụ điện thoạibiết số điện thoại bạn muốn liên lạc Giống như vậy, trong việc truyền dữ liệu qua mạngthì TCP đóng vai trò như nhà cung cấp dịch vụ điện thoại ở ví dụ trên, nó làm nhiệm vụtạo kết nối và truyền dữ liệu giữa hai điểm giao tiếp để đảm bảo dữ liệu không bị mất vàtới đích theo đúng trật tự như khi chúng ta gửi

Tính tin cậy của đường truyền được thể hiện ở hai điểm sau:

• Mọi gói tin cần gửi sẽ đến được đích Để làm được điều này thì mỗi lần phía gửigửi xong một gói tin nó sẽ chờ nhận một xác nhận từ bên nhận rằng đã nhận được 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ồithì 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ànhcô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 đượcgửi Bởi các gói tin có thể được dẫn đi trên mạng theo nhiều đường khác nhau trước khitớ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 gói tin ở phía nhận theo đúng thứ tự như khi chúngđược gửi, giao thức TCP sẽ gắn vào mỗi gói tin một thông tin cho biết thứ tự của chúngtrong 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ự 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ểmphục vụ cho các ứng dụng đòi hỏi giao tiếp tin cậy như HTTP (HyperText TransferProtocol), FTP (File Tranfer Protocol), Telnet… Các ứng dụng này đòi hỏi một kênhgiao tiếp tin cậy bởi thứ tự của 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 Hãy lấy ví dụ khi HTTP được sử dụng để đọc thôngtin từ một địa chỉ URL, dữ liệu phải được nhận theo đúng thứ tự mà chúng được gửi nếu

Trang 10

không thứ mà bạn nhận được có thể là một trang HTML với nội dung lộn xộn hoặc mộtfile zip bị lỗi và không giải nén….

1.5.2 Giao thức UDP

Định nghĩa: UDP (User Datagram Protocol) là giao thức không hướng kết nối, nógửi các gói dữ liệu độc lập gọi là datagram từ máy tính này đến máy tính khác mà khôngđảm bảo việc dữ liệu sẽ tới đích

Ở phần trước chúng ta đã thấy trong giao thức TCP khi hai chương trình muốn giaotiếp với nhau qua mạng chúng tạo ra một kết nối liên kết hai ứng dụng và trao đổi dữ liệuqua kết nối đó Trái lại ở giao thức UDP khi hai ứng dụng muốn giao tiếp với nhau chúngkhông tạo ra kết nối mà chỉ đơn thuần gửi các gói tin một cách độc lập từ máy này tớimáy khác.Các gói tin như vậy gọi là các datagram Việc gửi các gói tin như vậy tương tựnhư việc chúng ta gửi thư qua đường bưu điện Các bức thư bạn gửi độc lập với nhau, thứ

tự các thư là không quan trọng và không có gì đảm bảo là thư sẽ đến được đích Trongtruyền thông bằng UDP thì các datagram giống như các lá thư, chúng chứa thông tin cầngửi đi cùng thông tin về địa chỉ đích mà chúng phải đến, tuy nhiên chúng khác với các láthư ở một điểm là nếu như trong việc gửi thư, nếu lá thư của bạn không đến được đích thì

nó sẽ được gửi trả lại nơi gửi nêu trên lá thư đó bạn có đề địa chỉ gửi còn UDP sẽ khôngthông báo gì cho phía gửi về việc lá thư đó có tới được đích hay không

Vậy nếu UDP là một giao thức không đảm bảo giao tiếp tin cậy thì tại sao người talại dùng chúng Điều đó là bởi nếu như giao thức TCP đảm bảo một kết nối tin cậy giữacác ứng dụng thì chúng cũng đòi hỏi nhiều thời gian để truyền tin do chúng phải kiểm tracác header các gói tin để đảm bảo thứ tự các gói tin cũng như để phát lại các gói tin khôngđến được đích do đó trong một số trường hợp thì điều này không cần thiết Dưới đây làmột số trường hợp trong đó giao thức không hướng kết nối là thích hợp hơn so với giaothức hướng kết nối:

Khi chỉ một gói dữ liệu cần truyền đi và việc đó đến được đích hay không là khôngquan trọng, sử dụng giao thức UDP sẽ loại bỏ được các thủ tục tạo và hủy kết nối Sosánh một chút chúng ta sẽ thấy giao thức hướng kết nối TCP phải dùng đến bẩy gói tin để

Trang 11

gửi một gói tin do nó cần phát và nhận các gói tin yêu cầu và chấp nhận kết nối cũng nhưcác gói tin yêu cầu và xác nhận việc hủy kết nối, trong khi đó giao thức không kết nốiUDP chỉ sử dụng duy nhất một gói tin chính là gói tin chứa dữ liệu cần chuyển đi

Chúng ta lấy ví dụ về một server đồng hồ, nhiệm vụ của nó là gửi thời gian hiện tạicủa nó cho các ứng dụng trên client khi có yêu cầu Nếu gói tin chứa thời gian bị thất lạctrên đường truyền và không tới được đích thì client cũng sẽ không đòi hỏi server phải gửilại gói tin đó bởi khi gói tin đó được phát lại lần hai và tới được client thì thông tin thờigian chứa trong nó đã không còn đúng nữa Nếu client tạo ra hai yêu cầu và nhận đượccác gói tin trả lời không theo đúng thứ tự mà server đã gửi thì client cũng không gặp phảivấn đề gì bởi nó

hoàn toàn có thể suy ra được rằng các gói đã không được chuyển đến đúng thứ tựbằng cách tính thời gian được chứa trong các gói Trong trường hợp này tính tin cậy củaTCP là không cần thiết bởi nó làm giảm hiệu suất và có thể cản trở hoạt động của server.Trường hợp thứ hai chúng ta xem xét việc sử dụng giao thức UDP là các ứng dụngđòi hỏi chặt chẽ về thời gian như các ứng dụng nghe audio thời gian thực Trong trườnghợp này việc hướng tới một kênh giao tiếp tin cậy không phải là ưu điểm mà ngược lại đó

là một nhược điểm bởi nếu việc phải chờ cho khi một gói tin bị mất được nhận có thể gây

ra những tác động dễ nhận thấy hoặc khiến chương trình phải tạm ngừng Với các ứngdụng này giao thức không hướng kết nối đã được phát triển và chúng làm việc tốt hơnhẳn Chúng ta có thể tham khảo ứng dụng RealAudio, trong đó người ta sử dụng một giaothức không hướng kết nối để truyền các dữ liệu âm thanh qua mạng

Bảng sau so sánh sự khác biệt giữa hai chế độ giao tiếp hướng kết nối và khônghướng kết nối

1.6 Các mô hình hoạt động của mạng máy tính

Mô hình hoạt động của mạng máy tính có hai loại:

- Mô hình hoạt động peer to peer

- Mô hình hoạt động clients/server

Trang 12

1.6.1 Mô hình hoạt động peer to peer

Khô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áytính Mọi máy tính đều bình đẳng và có vai trò như nhau Thông thường mỗimá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.7- Mô hình peer to peer

1.6.2 Mô hình hoạt động clients/ server

Trong mạng hoạt động theo mô hình Clients/Server có một hoặc nhiều máy

có nhiệm vụ cung cấp một số dịch vụ cho các máy khác ở trong mạng Cácmáy này được gọi là server còn các máy tính được phục vụ gọi là máy clients

Hình 1.8- Mô hình mạng Client/ Server

Đây là mô hình tổng quát, trên thực tế server có thể được nối với nhiềuserver khác để tăng hiệu quả làm việc Khi nhận được yêu cầu từ client, server

có thể xử lý yêu cầu đó hoặc gửi tiếp yêu cầu vừa nhận được cho một serverkhác

Máy server sẽ thi hành các nhiệm vụ do máy client yêu cầu Có rất nhiềudịch vụ trên mạng hoạt động theo nguyên lý nhận các yêu cầu từ client sau đó

xử lý và trả lại các kết quả cho client yêu cầu

Trang 13

Chương 2 LẬP TRÌNH MẠNG VỚI SOCKET

2.1.TỔNG QUAN VỀ C#

2.1.1.Cơ Bản Về NET Framework

NET Framework là một thành phần cơ bản của Windows cho việc xâydựng và chạy các ứng dụng viết bởi các ngôn ngữ lập trình mới (ứng dụng thế hệ kếtiếp)

NET Framework được thiết kế để:

 Cung cấp một môi trường nhất quán cho lập trình hướng đốitượng

 Tối ưu hóa việc phát triển phần mềm và sự xung đột phiên bảnbằng việc cung cấp một môi trường thực hiện code

 Cung cấp môi trường thực thi code an toàn hơn

 Cung cấp trải nghiệm (experience) nhất quán cho những ngườiphát triển trong việc tạo ra các kiểu ứng dụng khác nhau từ các ứng dụng trênnền tảng Windows, các ứng dụng trên nền tảng Web cho đến các ứng dụng trênnền tảng thiết bị di động, các ứng dụng nhúng…

2.1.2.Các thành phần của NET Framework

NET Framework bao gồm 2 thành phần chính:

Trang 14

- CLR (Common Language Runtime – Môi trường quản lý ngôn ngữ chung): đây làthành phần cốt lỗi (xương sống – backbone) của NET Framework thực hiện cácchức năng sau:

2.1.3.Các tính năng cơ bản của ngôn ngữ lập trình C#

C# là một ngôn ngữ lập trình hướng đối tượng thuần túy(pure object oriented programming) Kiểm tra an toàn kiểu

- Thu gom rác tự động: giảm bớt gánh nặng cho người lập trình viên trong việc phảiviết các đoạn code thực hiện cấp phát và giải phóng bộ nhớ

- Hỗ trợ các chuẩn hóa được ra bởi tổ chức ECMA (European ComputerManufactures Association)

- Hỗ trợ các phương thức và các kiểu phổ quát (chung)

2.1.4.Các ứng dụng của C#

C# có thể sử dụng để viết các kiểu ứng dụng khác nhau:

- Các ứng game

- Các ứng dụng cho doanh nghiệp

- Các ứng dụng cho thiết bị di động: PC Pocket, PDA , cell phone

- Các ứng dụng quản lý đơn giản: ứng dụng quản lý thư viện, quản lý thông tin cánhân…

Trang 15

- Các ứng dụng phân tán phức tạp trải rộng qua nhiều thành phố, đất nước.

2.1.5.Các lợi ích của C#

- Cross Language Support: hỗ trợ khả năng chuyển đổi dễ dàng giữa các ngôn ngữ

- Hỗ trợ các giao thức Internet chung

- Triển khai đơn giản

- Hỗ trợ tài liệu XML: các chú thích XML có thể được thêm vào các đoạn code vàsau đó có thể được chiết xuất để làm tài liệu cho các đoạn code để cho phép các lậptrình viên khi sử dụng biết được ý nghĩa của các đoạn code đã viết

- thiết bị cầm tay với NET Framework Compact 2.0

2.2.GIỚI THIỆU VỀ LẬP TRÌNH SOCKET

- Sockets cung cấp một interface để lập trình mạng tại tầng Transport Một socket làmột end-point của một liên kết giữa hai ứng dụng Ngày nay, Socket được hỗ trợtrong hầu hết các hệ điều hành như MS Windows (WinSock), 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,C#,

- Windows Socket Application Programming Interface (Winsock API) là một thưviện các hàm socket Winsock hỗ trợ các lập trình viên xây dựng các ứng dụngmạng trên nền TCP/IP

- Là giao diện lập trình ứng dụng (API), giao diện giữa chương trình ứng dụng vớilớp mạng trong hệ thống mạng TCP/IP.Thông qua giao diện này chúng ta có thểlập trình điều khiển việc truyền thông giữa hai máy sử dụng các giao thức mứcthấp làTCP,UDP…

- Thiết lập các lập kênh giao tiếp với mỗi đầu kênh được đánh dấu bằng một cổng

Dữ liệu có thể đi vào và ra khỏi kênh giao tiếp thông qua cổng này

o Cơ chế 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 để nhận và gởi dữ liệu

Trang 16

 Các quá trình khác có thể giao tiếp với quá trình đã công bố cổng cũng bằngcách tạo ra một socket.

o Các loại socket:

 Socket hướng kết nối (TCP Socket)

 Socket không hướng kết nối (UDP Socket)

Trang 17

Hình II - Kết nối TCP

- Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duynhất trong liên mạng Dịch vụ TCP được cung cấp nhờ một liên kết logic giữa mộtcặp đầu nối TCP/IP Một đầu nối TCP/IP có thể tham gia nhiều liên kết với cácđầu nối TCP/IP ở xa khác nhau Trước khi truyền dữ liệu giữa 2 trạm cần phảithiết lập một liên kết TCP giữa chúng và khi không còn nhu cầu truyền dữ liệu thìliên kết đó sẽ được giải phóng

- Các thực thể của tầng trên sử dụng giao thức TCP thông qua các hàm gọi (functioncalls) trong đó có các hàm yêu cầu để yêu cầu, để trả lời Trong mỗi hàm còn cócác tham số dành cho việc trao đổi dữ liệu

2.3.2.Thiết lập kết nối

- Các bước thực hiện để thiết lập một liên kết TCP/IP: Thiết lập một liên kết mới cóthể được mở theo một trong 2 phương thức: chủ động (active) hoặc bị động(passive)

o Phương thức bị động, người sử dụng yêu cầu TCP chờ đợi một yêu cầu liên kếtgửi đến từ xa thông qua một đầu nối TCP/IP (tại chỗ) Người sử dụng dùnghàm passive Open có khai báo cổng TCP và các thông số khác (mức ưu tiên,mức an toàn)

Trang 18

o Với phương thức chủ động, người sử dụng yêu cầu TCP mở một liên kết vớimột một đầu nối TCP/IP ở xa Liên kết sẽ được xác lập nếu có một hàm PassiveOpen tương ứng đã được thực hiện tại đầu nối TCP/IP ở xa đó.

- Khi người sử dụng gửi đi một yêu cầu mở liên kết sẽ được nhận hai thông số trả lời

từ TCP

o Thông số Open ID được TCP trả lời ngay lập tức để gán cho một liên kết cục

bộ (local connection name) cho liên kết được yêu cầu Thông số này về sauđược dùng để tham chiếu tới liên kết đó (Trong trường hợp nếu TCP không thểthiết lập được liên kết yêu cầu thì nó phải gửi tham số Open Failure để thôngbáo.)

o Khi TCP thiết lập được liên kết yêu cầu nó gửi tham số Open Success đượcdùng để thông báo liên kết đã được thiết lập thành công Thông báo này dượcchuyển đến trong cả hai trường hợp bị động và chủ động Sau khi một liên kếtđược mở, việc truyền dữ liệu trên liên kết có thể được thực hiện

2.3.3.Truyền nhận dữ liệu

- Các bước thực hiện khi truyền và nhận dữ liệu: Sau khi xác lập được liên kết người

sử dụng gửi và nhận dữ liệu Việc gửi và nhận dữ liệu thông qua các hàm Send vàreceive

o Hàm Send: Dữ liệu được gửi xuống TCP theo các khối (block) Khi nhận được

một khối dữ liệu, TCP sẽ lưu trữ trong bộ đệm (buffer) Nếu cờ PUSH đượcdựng thì toàn bộ dữ liệu trong bộ đệm được gửi, kể cả khối dữ liệu mới đến sẽđược gửi đi Ngược lại cờ PUSH không được dựng thì dữ liệu được giữ lạitrong bộ đệm và sẽ gửi đi khi có cơ hội thích hợp (chẳng hạn chờ thêm dữ liệunữa để gửi đi với hiệu quả hơn)

o Hàm receive: Ở trạm đích dữ liệu sẽ được TCP lưu trong bộ đệm gắn với mỗi

liên kết Nếu dữ liệu được đánh dấu với một cờ PUSH thì toàn bộ dữ liệu trong

bộ đệm (kể cả các dữ liệu được lưu từ trước) sẽ được chuyển lên cho người sử

Trang 19

dụng Còn nếu dữ liệu đến không được đánh dấu với cờ PUSH thì TCP chờ tớikhi thích hợp mới chuyển dữ liệu với mục tiêu tăng hiệu quả hệ thống.

- Nói chung việc nhận và giao dữ liệu cho người sử dụng đích của TCP phụ thuộcvào việc cài đặt cụ thể Trường hợp cần chuyển gấp dữ liệu cho người sử dụng thì

có thể dùng cờ URGENT và đánh dấu dữ liệu bằng bit URG để báo cho người sửdụng cần phải sử lý khẩn cấp dữ liệu đó

2.3.4.Đóng liên kết

- Các bước thực hiện khi đóng một liên kết: Việc đóng một liên kết khi không cầnthiết được thực hiên theo một trong hai cách: dùng hàm Close hoặc dùng hàmAbort

o Hàm Close: yêu cầu đóng liên kết một cách bình thường Có nghĩa là việc

truyền dữ liệu trên liên kết đó đã hoàn tất Khi nhận được một hàm Close TCP

sẽ truyền đi tất cả dữ liệu còn trong bộ đệm thông báo rằng nó đóng liên kết.Lưu ý rằng khi một người sử dụng đã gửi đi một hàm Close thì nó vẫn phải tiếptục nhận dữ liệu đến trên liên kết đó cho đến khi TCP đã báo cho phía bên kiabiết về việc đóng liên kết và chuyển giao hết tất cả dữ liệu cho người sử dụngcủa mình

o Hàm Abort: Người sử dụng có thể đóng một liên kết bất và sẽ không chấp nhận

dữ liệu qua liên kết đó nữa Do vậy dữ liệu có thể bị mất đi khi đang đượctruyền đi TCP báo cho TCP ở xa biết rằng liên kết đã được hủy bỏ và TCP ở

xa sẽ thông báo cho người sử dụng của mình

Một số hà m khác c ủa T CP:

o Hàm Status: cho phép người sử dụng yêu cầu cho biết trạng thái của một liên

kết cụ thể, khi đó TCP cung cấp thông tin cho người sử dụng

o Hàm Error: thông báo cho người sử dụng TCP về các yêu cầu dịch vụ bất hợp

lệ liên quan đến một liên kết có tên cho trước hoặc về các lỗi liên quan đến môitrường

Ngày đăng: 07/12/2016, 12:31

TỪ KHÓA LIÊN QUAN

w