รายงาน - department of computer science · อุปกรณ์อืนๆ...
TRANSCRIPT
รายงาน
เรอง IRON FIST
คณะผจดทา
กลม 17 Section 3
นายกณชาต อภสทธสานนท � !"#$$#%-'
น.ส.อจฉรยา ชาเคน � !"#$$�.-.
น.ส.จนทรกานต แกวม2น � !"#"! #-#
น.ส.ณฐรกา กลดลก � !"#$$!#-"
นาย สรวชญ ไชยเดช � !"#$$�$-.
นาย อนสษฐ โพธ: เยน � !"#$$�%-"
ช<นปท2 2
Ses.1 กลมท2 17
อาจารยทปรกษา
รศ.ดร.จกรชย โสอนทร
รายวชา วชา322222 NETWORK I
สาขาเทคโนโลยสารสนเทศและการสอสาร คณะวทยาศาสตร ภาควชาวทยาการคอมพวเตอร
มหาวทยาลยขอนแกน
1
หลกการและเหตผล
ในปจจบนเครอขายส2อสารคอมพวเตอรและอนเทอรเนตเขามามบทบาทในชวตประจาวนมาก
ข<น มการใชงานเวบไซตมากมาย การซ< อของออนไลน รวมท< งการดาวนโหลดโปรแกรมและการ
เช2อมตอกบเครอขายอนเตอรเนต ซ2 งปญหาท2พบ ไดแก บางท อนเตอรเนตไมสามารถเขาถงเราได
ตลอดเวลา และทนทวงท ดวยเหตน< คณะผจ ดทา ไดเลงเหนถงความสาคญและความจาเปนในการ
ตดตอกนระหวาง IP โดยท2ไมตองใชอนเตอรเนต เชน การเลนเกมกนระหวาง 2 IP โดยใชเครอขายใน
วงแลน เช2อมตอผานทางสายแลน ซ2 งถอเปนการใชทรพยากรท2มไดอยางมประสทธภาพ จงไดมการ
เขยนเกม และเครอขายเพ2อเช2อมตอระหวาง IP 2 เคร2อง เพ2อศกษา และพฒนา ใหความรแกผรวมรบฟง
ตอไป
วตถประสงค
1) ศกษาหาความรในหวขอท2ศกษา
2) รจกวธเช2อมตออยางถกตอง
3) การแลกเปล2ยนขอมลความร ประสบการณปญหาและอปสรรคในการใชงานเครอขาย
4) เพ2อเผยแพรความร และแนะนาผเขารวมรบฟง ในเร2องการจดการเครอขาย
5) เพ2อใหผเขารวมรบฟงสามารถนาความรท2ไดรบไปประยกตใชในการทางานไดอยางม
ประสทธภาพ
6) การสานความสมพนธและสรางสรรคกจกรรมสมาชกภายในกลม
2
ทฤษฎทเกยวของ
IP ADDRESS
IP Address ยอ ม าจ าก คา เต ม ว า Internet Protocol Address ค อ ห ม า ยเล ข ป ระ จา เค ร2 อ ง
คอมพวเตอรแตละเคร2องในระบบเครอขายท2ใชโปรโตคอลแบบ TCP/IP ถาเปรยบเทยบกคอบานเลขท2
ของเราน2นเอง ในระบบเครอขาย จาเปนจะตองมหมายเลข IP กาหนดไวใหกบคอมพวเตอร และ
อปกรณอ2นๆ ท2ตองการ IP ท< งน< เวลามการโอนยายขอมล หรอส2งงานใดๆ จะสามารถทราบตาแหนง
ของเคร2องท2เราตองการสงขอมลไป จะไดไมผดพลาดเวลาสงขอมล ซ2 งประกอบดวยตวเลข % ชด ม
เคร2องหมายจดข<นระหวางชด เชน $'#.$. .$"".$ หรอ $_#.$..$".$ เปนตน โดยหมายเลข IP Address
ของเคร2องคอมพวเตอรแตละเคร2องจะมคาไมซ< ากน ส2งตวเลข % ชดน<บอก คอ Network ID กบ Host ID
Introduction to Socket Programming
Socket Programming เปนวธการส2 อสารระหวางโปรเซส (IPC – Inter Process Communication)
วธการหน2 งซ2 งทาใหโปรเซสสามารถตดตอ รบ/สง ขอมลกนได ซ2 งลกษณะของ socket จะเปนการ
ส2อสารแบบ full duplex โดยชองทางการส2อสารเดยวกน สามารถใชไดท<งรบและสง และสามารถทาได
พรอมกน Socket Programming ไมไดมใชงานเฉพาะ ระหวางโปรเซสท2อยตางเคร2องกน หรอใชส2อสาร
ผานเครอขายเทาน<น แตไดออกแบบมาใหใชส2อสารระหวางโปรเซสซ2 งม parent รวมกนหรอใชแทน
การส2อสารแบบ pipe ระหวาง parent/child process หรอ child process ท2ม parent รวมกนกได
3
Socketpair
ตวอยาง การใชการส2อสารผาน socket ระหวาง parent กบ child process โดยใช socketpair
จากตวอยางโปรแกรมน � ใน main() จะสราง socket ท�ใชสาหรบส�อสารข �นมา โดยเรยกใชฟงกชน
socketpair หลงจากน �นกจะ fork เพ�อสราง child process และใช socket สาหรบสงขอมลจาก parent
process ไปยง child process โดยตว parent process จะรบขอมลท�ผ ใชพมพเขามาแลวสงใหกบ child
process โดยใชฟงกชน send ในสวนของ child process กจะรบขอมลจาก parent process โดยใชฟงกชน
recvแลวสงขอมลน �นใหกบฟงกชน system ซ�ง เปนการสงขอมลท�ผ ใชพมพใหกบ shell ซ�ง ผลของการ
execute ของ shell จะแสดงผลออกทาง terminal ของ child process โดยตรง ซ�ง ในท�น �กจะเปน terminal
เดยวกบของ parent (child process ควรท�จะสง output ใหกบ parent กลบมาทาง socket !!)
4
Network Protocol Stack
Network Protocol Stack (TCP/IP)
Protocol Layering and Data
ในแตละช<นของโปรโตคอล จะมการเพ2ม Header เพ2อระบรายละเอยดของขอมล (จดการโดย
OS)ส2งท2สนใจในคลาสน< คอ Application Layer
5
TCP and UDP
TCP
Reliable ไววางใจไดวาขอมลท2สงไปจะถอผรบอยางแนนอน ซ2 ง TCP จะมการตรวจสอบวาขอมลท2สงไปน<นถงผรบจรง ๆ หรอไม ถาไมถง TCP กจะทาการสงขอมลน<นไปใหใหมอกคร< ง Connection-oriented มการเช2อมตอชองทางการรบสงขอมลกอนท2จะเร2มสง เปนการเตรยมทรพยากรตาง ๆ ระหวางเคร2องผรบและผสง เชน socket (ดเพ2มเตมเร2อง socket) หนวยความจา และตวแปรท2ใชเกบขอมลตาง ๆ เพ2อใหการรบสงขอมลระหวางตนทางและปลายทางเปนไปอยางราบร2นและมประสทธภาพ Flow control มการควบคมปรมาณขอมลท2รบสงระหวางตนทางและปลายทาง เพ2อปองกนไมใหฝ2งผสง สงขอมลมากจนเกนกวาท2 buffer ของฝ2งผรบจะรบได
6
Congestion control เปนการควบคมปรมาณการสงขอมลเชนกน แตเพ2อปองกนไมใหสงขอมลเขาไปในเครอขาย ท2 ณ ขณะน<นมความหนาแนนของขอมลสงมาก ซ2 งมความเส2ยงท2ขอมลท2สงเขาไปจะไปไมถงผรบ ในทางตรงกนขามเม2อเราหนมาดคณสมบตของ UDP บาง จะเปนดงน<
UDP
Unreliable ไมรบประกนวาขอมลจะถงผรบหรอไม
Connectionless ไมมการสรางชองทางการรบสงขอมลกอนเร2มสง No flow control ไมมการควบคมปรมาณการรบสงขอมลระหวางตนทางและปลายทาง No congestion control ไมมการควบคมปรมาณการสงขอมลระหวางท2เครอขายมความหนาแนนสง
IP, Port and Socket
IP address คอ เลขรหสประจาคอมพวเตอรท2ตออยบนเครอขาย ซ2 งประกอบดวยตวเลข 4 ชด
และมเคร2องหมายจดข<นระหวางชด ยกตวอยางเชน 192.168.1.1 เปนตนหรอนยมเรยกส<นๆวา IP ซ2 ง
ตวเลข IP แตละเคร2องจะไมซ< ากน ดงน<น จงไดมการกอต<งองคกรเพ2อ แจกจาย IP Address โดยเฉพาะ
ช2อองคกรวา InterNIC (International Network Information Center) อยท2ประเทศสหรฐอเมรกา การ
แจกจายน<นทาง InterNICจะแจกจายเฉพาะ Network Address ใหแตละเครอขาย สวนลกขายของเคร2อง
ทางเครอขายน<นกจะเปน ผแจกจายอกทอดหน2ง ดงน<นพอสรปไดวา IP Address จะประกอบดวยตวเลข
2 สวน คอ
- Network Address
- Computer Address
7
พอรต (Port) เปนชองทางในการตดตอส2อสารระหวางตวคอมพวเตอร กบอปกรณภายนอก
ปกตพอรตจะอยดานหลงเคร2องคอมพวเตอร
Socket คอ กลมของหมายเลข Port และ หมายเลข IP ซ2งจะเปนตวบงช< ท2เฉพาะเจาะจงสาหรบ
Network process หน2งเดยวท2มอยในท<งระบบ Internet คของ Socket ท2ประกอบดวย Socket หน2 งตว
สาหรบตนทาง และอกตว สาหรบปลายทาง สามารถใชบรรยายถงคณลกษณะของ Connection oriented
protocols
ขอด
Socket เปนอะไรท2เปนมาตรฐาน (แมจะเกาไปหนอยกตาม) เพราะฉะน<นการเปด Socket *ไม
ม*ขอจากดวา Client, Server จะตองเปน platform เดยวกน หรอภาษาเดยวกนจงจะสงได
ขอเสย
หากเราเปด Socket เอง คงตองเลอก port ดๆ และไมควร hard code IP ของ Server หรอ port
ลงไป แตควรจะเอาไปไวใน config file เพ2อใหสามารถปรบเปล2ยนไดงายในภายหลง
8
IP Address and Port
IP Address and Port
Concept of Port Numbers
9
Concept of Port Numbers
เปนการระบท2อยของ process ในแตละเคร2อง
Port numbers สามารถเลอกใชไดจาก
- Well-known (port 0-1023)
- Dynamic or private (port 1024-65535)
Servers สวนใหญจะมการจอง Well-known port
- Client ตางๆจะไดรจก
- HTTP = 80, FTP = 21, Telnet = 23, ...
Clientsสวนใหญจะใช dynamic ports
- OS จะเปนผกาหนดใหเอง
Client-Server Application
10
การตดตอระหวาง Client-Server จะผาน Socket API
Client-Server Application
Socket Programming
Socket คอการเช2อมตอการส2อสารระหวางจดสองจด (เคร2องสองเคร2อง) แบบไปกลบได
ระหวางโปรแกรมสองโปรแกรม (server กบ client) ภายในเครอขายเดยวกน
- Server Socket Program เปนโปรแกรมท2รนบนเคร2องท2ม socket ท2ผกกบ Port number บนเคร2องและรอ request ท2จะเขามาจาก client
- Client Socket Program จะตองรวา IP Address ของเคร2องท2 server socket program ทางานอย และ port ท2เคร2องน<นรอฟง request ดวย
สวนประกอบของ Socket
- ท2อยของเคร2อง (IP) - ท2อยของโปรแกรมในเคร2อง (Port) - Address + Port=Socket
11
Client-Server Model
- เม2อมการสรางการเช2อมตอระหวาง server และ client กจะสงขอมลผานทาง socket
TCP Client-Server Interaction
ชนดของการเชอมตอ
12
ในการเขยน Socket Programming ใน C# น<นม Protocol ในการเช2อมตอน<นม 2 ชนด
- TCP/IP - UDP/IP
TCP/IP
TCP/IP (Transmission Control Protocol/Internet Protocol) เปนชดของโปรโตคอลท2ถกใชในการส2อสารผานเครอขายอนเทอรเนต โดยมวตถประสงคเพ2อใหสามารถใชส2อสารจากตนทางขามเครอขายไปยงปลายทางได และสามารถหาเสนทางท2จะสงขอมลไปไดเองโดยอตโนมต ถงแมวาในระหวางทางอาจจะผานเครอขายท2มปญหา โปรโตคอลกยงคงหาเสนทางอ2นในการสงผานขอมลไปใหถงปลายทางได TCP/IP Protocol TCP/IP มจดประสงคของการส2อสารตามมาตรฐาน สามประการคอ 1. เพ2อใชตดตอส2อสารระหวางระบบท2มความแตกตางกน 2. ความสามารถในการแกไขปญหาท2เกดข<นในระบบเครอขาย เชนในกรณท2ผสงและผรบยงคงมการตดตอกนอย แตโหนดกลางทใชเปนผชวยรบ-สงเกดเสยหายใชการไมได หรอสายส2อสารบางชวงถกตดขาด กฎการส2อสารน<จะตองสามารถจดหาทางเลอกอ2นเพ2อทาใหการส2อสารดาเนนตอไปไดโดยอตโนมต 3. มความคลองตวตอการส2อสารขอมลไดหลายชนดท<งแบบท2ไมมความเรงดวน เชน การจดสงแฟมขอมล และแบบท2ตองการรบประกนความเรงดวนของขอมล เชน การส2อสารแบบ real-time และท<งการส2อสารแบบเสยง (Voice) และขอมล (data) Encapsulation/DE multiplexing
การสงขอมลผานในแตละเลเยอร แตละเลเยอรจะทาการประกอบขอมลท2ไดรบมา กบขอมลสวนควบคมซ2 งถกนามาไวในสวนหวของขอมลเรยกวา Header ภายใน Header จะบรรจขอมลท2สาคญของโปรโตคอลท2ทาการ Encapsulate เม2อผรบไดรบขอมล กจะเกดกระบวนการทางานยอนกลบคอ โปรโตคอลเดยวกน ทางฝ2งผรบกจะไดรบขอมลสวนท2เปน Header กอนและนาไปประมวลและทราบวาขอมลท2ตามมามลกษณะอยางไร ซ2 งกระบวนการยอนกลบน< เรยกวา Demultiplexing
13
ข<นตอนการ Encapsulation และ Demultiplexing
ช]นสอสารนาสงขอมล (Transport Layer) แบงเปนโพรโตคอล 2 ชนดตามลกษณะ ลกษณะแรกเรยกวา Transmission Control Protocol
(TCP) เปนแบบท2มการกาหนดชวงการส2อสารตลอดระยะเวลาการส2อสาร (connection-oriented) ซ2 งจะยอมใหมการสงขอมลเปนแบบ Byte stream ท2ไวใจไดโดยไมมขอผดพลาด ขอมลท2มปรมาณมากจะถกแบงออกเปนสวนเลกๆ เรยกวา message ซ2 งจะถกสงไปยงผรบผานทางช<นส2อสารของอนเทอรเนต ทางฝายผรบจะนา message มาเรยงตอกนตามลาดบเปนขอมลตวเดม TCP ยงมความสามารถในการควบคมการไหลของขอมลเพ2อปองกนไมใหผสง สงขอมลเรวเกนกวาท2ผรบจะทางานไดทนอกดวย
โปรโตคอลการนาสงขอมลแบบท2สองเรยกวา UDP (User Datagram Protocol) เปนการตดตอแบบไมตอเน2อง (connectionless) มการตรวจสอบความถกตองของขอมลแตจะไมมการแจงกลบไปยงผ สง จงถอไดวาไมมการตรวจสอบความถกตองของขอมล อยางไรกตาม วธการน< มขอดในดานความรวดเรวในการสงขอมล จงนยมใชในระบบผใหและผใชบรการ (client/server system) ซ2 งมการส2อสารแบบ ถาม/ตอบ (request/reply) นอกจากน<นยงใชในการสงขอมลประเภทภาพเคล2อนไหวหรอการสงเสยง (voice) ทางอนเทอรเนต UDP : (User Datagram Protocol) เปนโปรโตคอลท2อยใน Transport Layer เม2อเทยบกบโมเดล OSI โดยการสงขอมลของ UDP น<นจะเปนการสงคร< งละ 1 ชดขอมล เรยกวา UDP datagram ซ2 งจะไมมความสมพนธกนระหวางดาตา
14
แกรมและจะไมมกลไกการตรวจสอบความสาเรจในการรบสงขอมล กลไกการตรวจสอบโดย checksum ของ UDP น<นเพ2อเปนการปองกนขอมลท2อาจจะถกแกไข หรอมความผดพลาดระหวางการสง และหากเกดเหตการณดงกลาว ปลายทางจะไดรวามขอผดพลาดเกดข<น แตมนจะเปนการตรวจสอบเพยงฝายเดยวเทาน<น โดยในขอกาหนดของ UDP หากพบวา Checksum Error กใหผรบปลายทางทาการท<งขอมลน<น แตจะไมมการแจงกลบไปยงผสงแตอยางใด การรบสงขอมลแตละคร< งหากเกดขอผดพลาดในระดบ IP เชน สงไมถง, หมดเวลา ผสงจะไดรบ Error Message จากระดบ IP เปน ICMP Error Message แตเม2อขอมลสงถงปลายทางถกตอง แตเกดขอผดพลาดในสวนของ UDP เอง จะไมมการยนยน หรอแจงใหผสงทราบแตอยางใด
งานทเกยวของ
MakrukThai 2004
MakrukThai 2004 เปนเกมสหมากรกไทย ท2มรปแบบและหลกการเลนท2เหมอนเลนบน
กระดานจรงทกประการ ผเลนสามารถวางหมากและเดนหมากไดอยางอสระ พรอมท<งมฟงกช2นการ
ปรบต<งคาในการเลนท2ละเอยดครบถวน สามารถดขอมลการเดนของหมากในแตละตว
นอกจากน<โปรแกรมยงสามารถเลนผานอนเทอรเนต (Internet) หรอเลนกนภายในเครอขาย
LAN (Local Area Network) รวมถงระบบ TCP/IP Network ไดอกดวย
งานของเราคออะไร
IRON FIST คอเกมท2มการเช2อมตอกนภายในเครอขาย LAN และระบบ TCP/IP การท2คอมพวเตอรจะ
สามารถเลนเกมรวมกนน<น ตองมการเช2อมตอกนภายในเครอขาย LAN น<นซ2 งจะมความสะดวกมากข<น
และยงสามารถเช2อมตอผานระบบ TCP/IP ไดอกดวย โดยเกมของเราใช TcpListener/Client ในการ
ตดตอระหวางเคร2องสองเคร2องโดนมเคร2องหน2งเปน Server และ อกหน2งเคร2องเปน Client
15
ความสามารถของIRON FIST
• เช2อมตอเครอขายกบอกเคร2องหน2งโดยไมตองมหน2งโดยไมตองใช internet
• มข<นตอนไมมากในการเขาใช
• เปนเกมเลนงายๆสามารถเลนไดทกวย
ข]นตอนการใชงาน IRON FIST
16
1.หนาแรก เมอเขาสโปรแกรมประกอบดวยปม เรมเกม วธการเลนเกม และ ปดเกม
2.เมอกดปมเรมเกม จะข]นหนาใหเลอก ระหวาง Server และ Client
17
3.ฝ2งทางซาย เปนหนาจอ สาหรบ เคร2อง Server และฝ2งทางขวาเปนหนาจอสาหรบ เคร2อง Client
เม2อใส IP ในเคร2อง Server แลวคล<ก ปม OK หาก Client สามารถเช2อมตอได จะข<นสถานะเปน
Connected
สวน เคร2อง Client ใหใส IP ของเคร2อง Server แลวคล<กปม ok หากสามารถเช2อมตอไดจะข<นสถานะ
เปน Connected
18
4. เม2อกด ปม Start Game จะแสดงหนาจอ ดงภาพ
วธการเลมเกม IRON FIST
1. มผเลน 2 ฝาย คอ Server และ Client 2. ฝาย Server จะเปนฝายท2ไดเร2มกดทอยลกเตากอน ตามดวยฝาย Client 3. หากฝายใด ไดแตมจากการทอยลกเตามากกวา จะไดเปนฝายเคล2อนท2เขาไปโจมต ฝายตรงขาม 4. เม2อฝายใดฝายหน2ง สามารถทาใหHP ของฝายตรงขาม เทากบ 0 จะไดรบแตม 1 แตม 5. หากฝายใด เกบแตมไดครบ 2 แตมกอน จะเปนฝายชนะ