1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Lập trình mạng căn bản

11 9 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 11
Dung lượng 2,19 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giáo trình Lập trình mạng trình bày các nội dung chính: các kiến thức cơ bản về mạng máy tính, lập trình mạng trong NET FRAMEWORK, xây dựng ứng dụng mạng, xây dựng ứng dụng nhiều lớp. Đây là tài liệu tham khảo dành cho sinh viên ngành Quản trị mạng.

Trang 1

CHƯƠNG 1: CÁC KI N TH C CƠ B N V M NG MÁY TÍNH 3

1.1 Mô hình tham kh∀o 7 t%ng OSI 3

1.2 H∗ giao th,c TCP/IP 5

1.3 So sánh gi3a hai giao th,c TCP và UDP 6

1.4 C:ng giao th,c 7

1.5 ð<a ch= IP, các ñ<a ch= IP dành riêng 7

1.6 ð<a ch= tên miΧn: loΕi A, loΕi MX .8

1.7 MΙt sϑ giao th,c Κ t%ng ,ng dΛng: HTTP, SMTP, POP3, FTP 8

CHƯƠNG 2: LΟP TRÌNH M NG TRONG NET FRAMEWORK 9

2.1 Socket hưWng kΞt nϑi (TCP Socket) 9

2.1.1 GiWi thi[u vΧ NameSpace System.Net và System.Net.Sockets 10

2.1.2 ViΞt chương trình cho phía máy chβ 11

2.1.3 ViΞt chương trình cho phía máy khách 13

2.1.4 Sχ dΛng các luδng nhεp xuγt vWi Socket 14

2.2 Socket không hưWng kΞt nϑi (UDP Socket) 17

2.2.1 ViΞt chương trình cho phía máy chβ 17

2.2.2 ViΞt chương trình cho phía máy khách 18

2.2.3 Sχ dΛng lWp System.IO.MemoryStream ñη tΕo vùng ñ[m nhεp xuγt 20

2.3 Sχ dΛng các lWp hϕ trκ ñưκc xây dmng tν lWp Soket 20

2.3.1 LWp TCPClient 21

2.3.2 LWp TCPListener 22

2.3.3 LWp UDPClient 24

2.4 Socket không ñδng bΙ 26

2.4.1 Mô hình xχ lý sm ki[n cβa windows 26

2.4.2 Sχ dΛng Socket không ñδng bΙ 27

2.4.3 Ví dΛ vΧ Socket không ñδng bΙ 28

2.4.4 Sχ dΛng các phương th,c Nonρblocking 35

2.5 Sχ dΛng Thread trong các ,ng dΛng mΕng 39

2.5.1 Sχ dΛng Thread trong chương trình Net 40

2.5.2 Sχ dΛng Thread trong các chương trình Server 41

2.5.3 Sχ dΛng Thread ñη gχi/nhεn d3 li[u 41

2.5.4 Sχ dΛng ThreadPool trong các chương trình Net 43

2.5.5 Sχ dΛng ThreadPool trong các chương trình Server 47

2.6 Kσ thuεt IP Multicasting 48

2.6.1 Broadcasting là gì? 48

2.6.2 Sχ dΛng Broadcasting ñη gχi d3 li[u ñΞn nhiΧu máy trong mΕng cΛc bΙ 48

2.6.3 Multicasting là gì? 49

2.6.4 Socket Multicasting trong Net 50

2.7 Bài tεp áp dΛng 53

CHƯƠNG 3: XÂY DϖNG NG DωNG M NG 55

3.1 Giao th,c ICMP 55

3.1.1 Sχ dΛng Raw Socket 55

3.1.2 Sχ dΛng giao th,c ICMP và Raw Socket ñη xây dmng chương trình Ping 57

3.1.3 Sχ dΛng giao th,c ICMP và Raw Socket ñη xây dmng chương trình TraceRoute 58 3.2 Giao th,c SMTP, POP3 60

3.2.1 Cơ b∀n vΧ h[ thϑng Mail và giao th,c SMTP, POP3 60

3.2.2 Cài ñξt SMTP, POP3 Client/Server 60

3.3 Giao th,c HTTP 67

3.3.1 Cơ b∀n vΧ giao th,c HTTP 67

3.3.2 Cài ñξt HTTP Client/Server 68

3.4 Giao th,c FTP 74

3.4.1 Cơ b∀n vΧ giao th,c FTP 74

3.4.2 Cài ñξt FTP Client/Server 84

Trang 2

3.5 DNS (Domain Name Server) 88

3.5.1 Vγn ñΧ phân gi∀i tên miΧn 88

3.5.2 Triηn khai DNS MX (Mail Exchange) 89

3.6 Th∀o luεn vΧ các ,ng dΛng khác thưψng gξp 93

3.7 Bài tεp áp dΛng 93

CHƯƠNG 4: XÂY DϖNG NG DωNG NHI U LζP 94

4.1 Mô hình 2 lWp (two tier), 3 lWp (three tier) và n lWp .94

4.2 Remoting 98

4.2.1 GiWi thi[u vΧ Remoting 102

4.2.2 Khai báo, cài ñξt và ñăng ký giao di[n tν xa 102

4.2.3 Tri[u g∗i phương th,c tν xa 107

4.3 Web Serive 107

4.3.1 GiWi thi[u vΧ Web Serives 107

4.3.2 Giao th,c SOAP 109

4.3.3 Xây dmng Web Services 112

4.3.4 Tri[u g∗i Web Services tν ,ng dΛng NET, Java và các ngôn ng3 khác 114

4.4 Th∀o luεn vΧ các ,ng dΛng phân tán 116

4.5 Bài tεp áp dΛng 116

Trang 3

CHƯƠNG 1: CÁC KI N TH C CƠ B N V M NG MÁY TÍNH

1.1 Mô hình tham kh!o 7 t∃ng OSI

Mô hình kΞt nϑi h[ thϑng mΚ ñưκc T: ch,c quϑc tΞ vΧ tiêu chu∼n hoá ISO (International Organizaiton for Standardization) ñưa ra nh•m cung cγp mΙt mô hình chu∼n cho các nhà s∀n xuγt và cung cγp s∀n ph∼m vi‚n thông áp dΛng theo ñη phát triηn các s∀n ph∼m vi‚n thông Ý tưΚng mô hình hoá ñưκc tΕo ra còn nh•m hϕ trκ cho vi[c kΞt nϑi gi3a các h[ thϑng và modun hoá các thành ph%n phΛc vΛ mΕng viΞn thông

a Ch(c năng c+a mô hình OSI:

ρ Cung cγp kiΞn th,c vΧ hoΕt ñΙng cβa kΞt nϑi liên mΕng

ρ ðưa ra trình tm công vi[c ñη thiΞt lεp và thmc hi[n mΙt giao th,c cho kΞt nϑi các thiΞt b< trên mΕng

Mô hình OSI còn có mΙt sϑ thuεn lκi sau :

ρ Chia nh† các hoΕt ñΙng ph,c tΕp cβa mΕng thành các ph%n công vi[c ñơn gi∀n

ρ Cho phép các nhà thiΞt kΞ có kh∀ năng phát triηn trên tνng modun ch,c năng

ρ Cung cγp các kh∀ năng ñ<nh nghĩa các chu∼n giao tiΞp có tính tương thích cao

“plug and play” và tích hκp nhiΧu nhà cung cγp s∀n ph∼m

b Cưu trúc mô hình OSI:

Mô hình OSI gδm 7 lWp (level), mϕi lWp thmc hi[n các ch,c năng riêng cho hoΕt ñΙng kΞt nϑi mΕng

Hình 111 Mô t∀ b∼y lWp OSI 4 lWp ñ%u ñ<nh nghĩa cách th,c cho ñ%u cuϑi thiΞt lεp kΞt nϑi vWi nhau ñη trao ñ:i d3 li[u 3 lWp trên dùng ñη phát triηn các ,ng dΛng ñη ñ%u cuϑi kΞt nϑi vWi nhau và ngưψi dùng

Aplication Presentation Application

(Upper Layer) Session

Transport Layer Network Layer Data Link Physical

Data Lower Layer

Các l4p trên

3 lWp trên cùng cβa mô hình OSI thưψng ñưκc g∗i là các lWp ,ng dΛng (Application layers) hay còn g∗i là các lWp cao Các lWp này thưψng liên quan tWi giao tiΞp vWi ngưψi dùng, ñ<nh dΕng cβa d3 li[u và phương th,c truy nhεp các ,ng dΛng ñó

Hình 112 Mô t∀ các lWp trên và cung cγp thông tin vWi các ch,c năng cβa nó qua ví dΛ:

ρ LWp ,ng dΛng: ch,c năng giao Telnet, HTTP

Trang 4

Application tiΞp gi3a ngưψi sχ dΛng và các

chương trình ,ng dΛng

Presentation

ρ LWp trình bày: cách th,c chu∼n hoá d3 li[u và trình bày sϑ li[u

ρ Có ch,c năng ñξc bi[t là mã hoá d3 li[u ngưψi sχ dung

ASSCII EBCDIC JPEC

Session

ρ LWp phiên: thiΞt lεp, duy trì và huŒ b† mΙt phiên làm vi[c

NFS, SQL

Transport Layer

Network Layer

Data Link

Physical

ρ Application layer : ñây là lWp cao nhγt trong mô hình Nó là nơi mà ngưψi sχ dΛng hoξc kΞt nϑi các chương trình ,ng dΛng vWi các thβ tΛc cho phép truy nhεp vào mΕng

ρ Presentation layer : LWp presentation cung cγp các mã và ch,c năng ñη chuyηn ñ:i mà ñưκc cung cγp bΚi lWp ,ng dΛng Các ch,c năng ñó ñ∀m b∀o r•ng d3 li[u tν lWp ,ng dΛng trong mΙt h[ thϑng có thη ñưκc ñ∗c bΚi lWp ,ng dΛng cβa mΙt h[ thϑng khác VD : dùng ñη mã hoá d3 li[u tν lWp ,ng dΛng : như mã hoá ∀nh jpeg , gif Mã ñó cho phép ta có thη hi[n lên trang web

ρ Session layer : ñưκc sχ dΛng ñη thiΞt lεp, duy trì và kΞt thúc phiên làm vi[c gi3a các lWp presentation Vi[c trao ñ:i thông tin Κ lWp này bao gδm yêu c%u d<ch vΛ

và ñáp ,ng yêu c%u cβa các ,ng dΛng trên thiΞt b< khác

Các l4p dư4i

4 lWp dưWi cβa mô hình OSI sχ dΛng ñη ñ<nh nghĩa làm thΞ nào ñη d3 li[u ñưκc truyΧn ñi trong các dây nϑi vεt lý, các thiΞt b< mΕng và ñi ñΞn trΕm ñ%u cuϑi cuϑi cùng

là ñΞn các lWp ,ng dΛng Quγn sách này ta ch= quan tâm ñΞn 4 lWp cuϑi Và s• xem xét tνng lWp mΙt cách chi tiΞt giao thiΞp gi3a các lWp trong mô hình OSI:

Sχ dΛng phương pháp protocal stack ñη kΞt nϑi gi3a hai thiΞt b< trong mΕng Protocal stack là mΙt tεp hκp các quy ñ<nh dùng ñη ñ<nh nghĩa làm thΞ nào ñη d3 li[u truyΧn qua mΕng

Ví dΛ vWi : TCP/IP mϕi Layer cho phép d3 li[u truyΧn qua Các lWp ñó trao ñ:i các thông tin ñη cung cγp cuΙc liên lΕc gi3a hai thiΞt b< trong mΕng Các lWp giao tiΞp vWi nhau sχ dΛng Protocal Data Unit (PDU) Thông tin ñiηu khiηn cβa PDU ñưκc thêm

Trang 5

vào vWi d3 li[u Κ lWp trên Và thông tin ñiΧu khiηn này n•m trong trưψng g∗i là trưψng header và trailer

Hình 1ρ3 Data encapsulation

!

∀#∀###∀#∀#∀∀#∀∀∀∀#∀

1.2 H; giao th(c TCP/IP

Các t%ng cβa giao th,c TCP/IP so vWi cγc t%ng cβa mô hình OSI

Application: Xác nhεn quyΧn, nén d3 li[u và các d<ch vΛ cho ngưψi dùng

Transport: Xχ lý d3 li[u gi3a các h[ thϑng va cung cγp vi[c truy cεp mΕng cho các ,ng dΛng

Network: Tìm ñưψng cho các packet

Trang 6

Link: M,c OS hoξc các thiΞt b< giao tiΞp mΕng trên mΙt máy tính

M>t s≅ ñiΒm khác nhau c+a TCP/IP và mô hình OSI

+ LWp ,ng dΛng trong TCP/IP xχ lý ch,c năng cβa lWp 5,6,7 trong mô hình OSI

+ LWp transport trong TCP/IP cung cγp cW chΞ UDP truyΧn không tin cεy, transport trong OSI luôn ñ∀m b∀o truyΧn tin cεy

+ TCP/IP là mΙt tεp cβa các protocols (mΙt bΙ giao th,c)

+ TCP/IP xây dmng trưWc OSI

Quy trình ñóng gói dΗ liΙu trong mô hình TCP/IP như sau:

1.3 So sánh giΗa hai giao th(c TCP và UDP

Trang 7

1.4 CΝng giao th(c

Là mΙt sϑ năm trong kho∀ng 1 65535 dùng ñη phân bi[t gi3a 2 ,ng dΛng mΕng vWi nhau g’n vWi ñ<a ch= IP và Socket

MΙt sϑ c:ng và các giao th,c thông dΛng:

+ FTP: 21

+ Telnet: 23

+ SMTP: 25

+ POP3: 110

+ HTTP:80

1.5 ðΘa chΡ IP, các ñΘa chΡ IP dành riêng

Trang 8

1.6 ðΘa chΡ tên miΥn: loςi A, loςi MX

1.7 M>t s≅ giao th(c Ψ t∃ng (ng dΖng: HTTP, SMTP, POP3, FTP

Trang 9

CHƯƠNG 2: L]P TRÌNH M NG TRONG NET FRAMEWORK

2.1 Socket hư4ng kχt n≅i (TCP Socket)

Socket là mΙt giao di[n lεp trình ,ng dΛng (API) mΕng

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 gi3a hai máy sχ dΛng các giao th,c m,c thγp là TCP, UDP…

Socket là sm trνu tưκng hoá Κ m,c cao, có thη tưΚng tưκng nó như là thiΞt b< truyΧn thông hai chiΧu gχi – nhεn d3 li[u gi3a hai máy tính vWi nhau

Các loΕi Socket

Socket hưWng kΞt nϑi (TCP Socket) Socket không hưWng kΞt nϑi (UDP Socket) Raw Socket

ðξc ñiηm cβa Socket hưWng kΞt nϑi

Có 1 ñưψng kΞt nϑi ∀o gi3a 2 tiΞn trình MΙt trong 2 tiΞn trình ph∀i ñκi tiΞn trình kia yêu c%u kΞt nϑi

Có thη sχ dΛng ñη liên lΕc theo mô hình Client/Server Trong mô hình Client/Server thì Server l’ng nghe và chγp nhεn mΙt yêu c%u kΞt nϑi

Mϕi thông ñi[p gχi ñΧu có xác nhεn trΚ vΧ Các gói tin chuyηn ñi tu%n tm

ðφc ñiΒm c+a Socket không hư4ng kχt n≅i

Hai tiχn trình liên lςc v4i nhau không kχt n≅i trγc tiχp Thông ñiΙp gηi ñi ph!i kèm theo ñΘa chΡ c+a ngưϕi nhκn Thông ñiΙp có thΒ gηi nhiΥu l∃n

Ngưϕi gηi không chλc chλn thông ñiΙp t4i tay ngưϕi nhκn Thông ñiΙp gηi sau có thΒ ñχn ñích trư4c thông ñiΙp gηi trư4c ñó

Sϑ hi[u c:ng cβa Socket

Trang 10

ðη có thη thmc 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 d3 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 yêu c%u tΕo ra mΙt socket

2.1.1 Gi i thi u v NameSpace System.Net và System.Net.Sockets

Cung cγp mΙt giao di[n lεp trình ñơn gi∀n cho rγt nhiΧu các giao th,c mΕng

Có rγt nhiΧu lWp ñη lεp trình

Ta quan tâm lWp IPAdress, IPEndPoint, DNS, …

LWp IPAdress

MΙt sϑ Field c%n chú ý:

Any: Cung cγp mΙt ñ<a ch= IP ñη ch= ra r•ng Server ph∀i l’ng nghe trên tγt c∀ các Card mΕng

Broadcast: Cung cγp mΙt ñ<a ch= IP qu∀ng bá Loopback: Tr∀ vΧ mΙt ñ<a ch= IP lξp

AdressFamily: Tr∀ vΧ h∗ ñ<a ch= cβa IP hi[n hành LWp IPAddress

MΙt sϑ phương th,c c%n chú ý:

Phương th,c khΚi tΕo

IPAddress(Byte[]) IPAddress(Int64) IsLoopback: Cho biΞt ñ<a ch= có ph∀i ñ<a ch= lξp không Parse: Chuyηn IP dΕng xâu vΧ IP chu∼n

ToString: Tr∀ ñ<a ch= IP vΧ dΕng xâu TryParse: Kiηm tra IP Κ dΕng xâu có hκp l[ không?

LWp IPEndPoint

MΙt sϑ phương th,c c%n chú ý:

Phương th,c khΚi tΕo

IPEndPoint (Int64, Int32) IPEndPoint (IPAddress, Int32) Create: TΕo mΙt EndPoint tν mΙt ñ<a ch= Socket ToString : Tr∀ vΧ ñ<a ch= IP và sϑ hi[u c:ng theo khuôn dΕng ð<aCh=: C:ng, ví dΛ: 192.168.1.1:8080

LWp DNS

MΙt sϑ thành ph%n cβa lWp:

HostName: Cho biΞt tên cβa máy ñưκc phân gi∀i GetHostAddress: Tr∀ vΧ tγt c∀ IP cβa mΙt trΕm

Trang 11

GetHostName: Lγy vΧ tên cβa máy tính cΛc bΙ NameSpace System.Net.Sockets

MΙt sϑ lWp hay dùng: TcpClient, UdpClient, TcpListener, Socket, NetworkStream, …

ðη tΕo ra Socket

Socket(AddressFamily , SocketType , ProtocolType )

communication

Protocol

using System.Net;

using System.Net.Sockets;

class SockProp {

public static void Main() {

IPAddress ia = IPAddress.Parse("127.0.0.1");

IPEndPoint ie = new IPEndPoint(ia, 8000);

Socket test = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Console.WriteLine("AddressFamily: {0}", test.AddressFamily);

Console.WriteLine("SocketType: {0}", test.SocketType);

Console.WriteLine("ProtocolType: {0}", test.ProtocolType);

Console.WriteLine("Blocking: {0}", test.Blocking);

test.Blocking = false;

Console.WriteLine("new Blocking: {0}", test.Blocking);

Console.WriteLine("Connected: {0}", test.Connected);

test.Bind(ie);

IPEndPoint iep = (IPEndPoint)test.LocalEndPoint;

Console.WriteLine("Local EndPoint: {0}", iep.ToString());

test.Close();

Console.ReadKey();

}

}

2.1.2 Vi t chương trình cho phía máy ch∃

ViΞt chương trình cho phía máy chβ

TΕo mΙt Socket Liên kΞt vWi mΙt IPEndPoint cΛc bΙ L’ng nghe kΞt nϑi

Chγp nhεn kΞt nϑi Gχi nhεn d3 li[u theo giao th,c ñã thiΞt kΞ

Ngày đăng: 09/05/2021, 21:59

🧩 Sản phẩm bạn có thể quan tâm

w