รายงาน - department of computer science · อุปกรณ์อืนๆ...

19
รายงาน เรือง IRON FIST คณะผู ้จัดทํา กลุ ่ม 17 Section 3 นายกัณชาติ อภิสิทธิสานนท์ !"#$$#%-’ น.ส.อัจฉริยา ชาเคน !"#$$.-. น.ส.จันทรกานต์ แก้วมั2น !"#"!#-# น.ส.ณัฐริกา กุลดิลก !"#$$!#-" นาย สรวิชญ์ ไชยเดช !"#$$$-. นาย อนุสิษฐ โพธิ :เย็น !"#$$%-" ชั <นปี ที2 2 Ses.1 กลุ ่มที2 17 อาจารย์ทีปรึกษา รศ.ดร.จักรชัย โสอินทร์ รายวิชา วิชา322222 NETWORK I สาขาเทคโนโลยีสารสนเทศและการสือสาร คณะวิทยาศาสตร์ ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยขอนแก่น

Upload: others

Post on 22-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

รายงาน

เรอง IRON FIST

คณะผจดทา

กลม 17 Section 3

นายกณชาต อภสทธสานนท � !"#$$#%-'

น.ส.อจฉรยา ชาเคน � !"#$$�.-.

น.ส.จนทรกานต แกวม2น � !"#"! #-#

น.ส.ณฐรกา กลดลก � !"#$$!#-"

นาย สรวชญ ไชยเดช � !"#$$�$-.

นาย อนสษฐ โพธ: เยน � !"#$$�%-"

ช<นปท2 2

Ses.1 กลมท2 17

อาจารยทปรกษา

รศ.ดร.จกรชย โสอนทร

รายวชา วชา322222 NETWORK I

สาขาเทคโนโลยสารสนเทศและการสอสาร คณะวทยาศาสตร ภาควชาวทยาการคอมพวเตอร

มหาวทยาลยขอนแกน

Page 2: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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) การสานความสมพนธและสรางสรรคกจกรรมสมาชกภายในกลม

Page 3: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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 รวมกนกได

Page 4: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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 !!)

Page 5: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

4

Network Protocol Stack

Network Protocol Stack (TCP/IP)

Protocol Layering and Data

ในแตละช<นของโปรโตคอล จะมการเพ2ม Header เพ2อระบรายละเอยดของขอมล (จดการโดย

OS)ส2งท2สนใจในคลาสน< คอ Application Layer

Page 6: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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งผรบจะรบได

Page 7: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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

Page 8: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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ยนไดงายในภายหลง

Page 9: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

8

IP Address and Port

IP Address and Port

Concept of Port Numbers

Page 10: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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

Page 11: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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

Page 12: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

11

Client-Server Model

- เม2อมการสรางการเช2อมตอระหวาง server และ client กจะสงขอมลผานทาง socket

TCP Client-Server Interaction

ชนดของการเชอมตอ

Page 13: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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

Page 14: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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 งจะไมมความสมพนธกนระหวางดาตา

Page 15: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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

Page 16: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

15

ความสามารถของIRON FIST

• เช2อมตอเครอขายกบอกเคร2องหน2งโดยไมตองมหน2งโดยไมตองใช internet

• มข<นตอนไมมากในการเขาใช

• เปนเกมเลนงายๆสามารถเลนไดทกวย

ข]นตอนการใชงาน IRON FIST

Page 17: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

16

1.หนาแรก เมอเขาสโปรแกรมประกอบดวยปม เรมเกม วธการเลนเกม และ ปดเกม

2.เมอกดปมเรมเกม จะข]นหนาใหเลอก ระหวาง Server และ Client

Page 18: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

17

3.ฝ2งทางซาย เปนหนาจอ สาหรบ เคร2อง Server และฝ2งทางขวาเปนหนาจอสาหรบ เคร2อง Client

เม2อใส IP ในเคร2อง Server แลวคล<ก ปม OK หาก Client สามารถเช2อมตอได จะข<นสถานะเปน

Connected

สวน เคร2อง Client ใหใส IP ของเคร2อง Server แลวคล<กปม ok หากสามารถเช2อมตอไดจะข<นสถานะ

เปน Connected

Page 19: รายงาน - Department of Computer Science · อุปกรณ์อืนๆ ทีต้องการ ip ทั

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 แตมกอน จะเปนฝายชนะ