ยูนิกซ์กับเน็ตเวอร์ก


ยูนิกซ์กับเน็ตเวอรก

ยูนิกซ์กับเน็ตเวอร์ก

 

ปัจจุบันระบบยูนิกซ์ชักเริ่มแพร่หลายมีคนใช้กันมาก เพราะมีข้อดีหลายประการ เช่น เป็นระบบที่มีคนบัญญัติศัพท์แสนจะเท่ห์ว่า "หลายผู้ใช้หลายภาระ" ซึ่งมาจากคำว่า Multiuser Multitasking มีสภาวะ (Environment) ที่ดีในการพัฒนาโปรแกรม ทำให้โปรแกรมที่พัฒนาแล้วโอนย้ายข้ามเครื่องได้โดยง่าย โดยเฉพาะมีขีดความสามารถทางด้านการสื่อสารที่ดีมาก เหมาะกับสังคมสารสนเทศแบบไฮเทค ความฝันของผู้ใช้หน้าที่ของข่ายสื่อสารโดยทั่วไปจะสนับสนุนจุดประสงค์หลัก 2 ประการด้วยกันคือ 1. การใช้ข้อมูลร่วมกัน (Information Sharing) ผู้ใช้ทุกคนเมื่อใช้คอมพิวเตอร์ ซึ่งต่อกันเป็นเน็ตเวอร์กแล้วควรจะเข้าถึงข้อมูลได้ทุกอย่างที่ต้องการ ไม่ว่าข้อมูลนั้นจะอยู่ที่ไหน แถมเจ้าเครือข่ายนี้ต้องสนับสนุนการประสานงานระหว่างผู้ใช้ 2. การใช้ทรัพยากรร่วมกัน ชาวบ้านเขามีเครื่องพิมพ์เลเซอร์ชั้นยอด ผมอยากจะใช้บ้าง แต่ไม่มีปัญญาซื้อระบบเน็ตเวอร์กต้องช่วยให้ผมส่งงานพิมพ์ไปใช้ได้ง่าย มีดิสค์ตัวโต มีเทปแบคอัพอยู่ที่ไหนในคอมพิวเตอร์นี้ต้องใช้ได้หมด ความเป็นมาของยูนิกซ์กับข่าวสื่อสารระบบยูนิกซ์เป็นระบบที่มีมาตั้งแต่ต้นทศวรรษที่ 1970 โดยเริ่มจากงานวิจัยเล็ก ๆ ของเคน ทอมป์สัน เดนนิส ริตชี่ และไบรอัน เคอร์นิเกน ที่ห้องปฏิบัติการวิจัยเบลล์ แต่ความคิดในการสื่อสารข้อมูลด้วยระบบยูนิกซ์ เริ่มจากโปรแกรม UUCP *UNIX to UNIX Copy) ซึ่งพัฒนาขึ้นในปี ค.ศ. 1976 และปล่อยออกมานอก AT&T ในปี ค.ศ. 1978 พร้อมกับยูนิกซ์ เวอร์ชัน 7 UUCP ให้บริการด้านอีเมล์และรับส่งไฟล์ ในปัจจุบันก็ยังเป็นรูปแบบที่แพร่หลายที่สุดรูปแบบหนึ่งของการสื่อสารภายในยูนิกซ์ ในปี ค.ศ. 1978 อีริค ชมิด ได้พัฒนาซอฟต์แวร์สื่อสารข้อมูลขึ้นชื่อ "Berknet" ซึ่งใช้กันอย่างแพร่หลายที่มหาวิทยาลัยแคลิฟอร์เนียที่เบิกร์เล่ย์เริ่มจากยูนิกซ์ที่เบิร์กพัฒนาขึ้นคือ BSD 2.0 ระบบนี้ใช้สาย RS-232C เชื่อมกันที่ความเร็ว 9600 บิต/วินาที ก็พัฒนาขีดความสามารถของยูนิกซ์ในแง่ของการสื่อสารขึ้นมาเช่นกัน แต่เก็บไว้ใช้ข้างในไม่ค่อยปล่อยออกมา ระบบที่พัฒนาขึ้นสามารถส่งไฟล์ได้ ทำรีโมตล็อคอินและพิมพ์ข้อมูลต่างเครื่องได้ รวมทั้งให้บริการอีเมล์ด้วย ในช่วงกลางทศวรรษที่ 1980 มีคนพัฒนาโปรแกรมที่ใช้กับ UNIX System V โดยสนับสนุนการทำงานกับ TCP/IP ซึ่งส่วนใหญ่แล้วบริษัทเหล่านี้ก็คือคนที่พัฒนาฮาร์ดแวร์สื่อสารนั่นเอง บริษัท เอทีแอนด์ที เริ่มกลับมามีบทบาทในเรื่องของข่ายคอมพิวเตอร์ในยูนิกซ์อีกครั้งเมื่อนายเดนนิส เริ่มกลับมามีบทบาทในเรื่องของข่ายคอมพิวเตอร์ในยูนิกซ์อีกครั้งเมื่อนายเดนนิส ริตชี่ เสนอความคิดเรื่อง I/O เทคนิคเรียกว่า สตรีม (Stream I/O) ซึ่งเป็นแนวคิดใหม่ในยูนิกซ์ใน UNIX System V.3 ได้บรรทุกเทคโนโลยีนี้เข้าไปอย่างเต็มที่ รวมทั้ง TLI (Transport Layer Inter - face) ซึ่งติดต่อกับส่วนสื่อสารในยูนิกซ์ในลักษณะของไลบรารี ภาษาซีก็เริ่มปรากฏในยูนิกซ์รุ่นนี้ด้วย ทำให้มีการพัฒนาวอฟต์แวร์ต่าง ๆ ที่ใช้ความสามารถของข่ายคอมพิวเตอร์ขึ้นมาก เทคโนโลยี ข่ายสื่อสารสำหรับยูนิกซ์ถ้าเรามองดูคอมพิวเตอร์ที่ใช้ระบบยูนิกซ์ทั่วไปแล้ว ในสายตาผมจะแบ่งตามการใช้งานออกเป็น 2 พวก พวกหนึ่งคือ พวกใช้ส่วนตัวได้แก่ เวอร์กสเตชันทางวิศวกรรม ซึ่งเทคโนโลยีสมัยใหม่ทางด้านเน็ตเวอร์กเรียกได้ว่าเติบโตมาจากระบบพวกนี้ อีกพวกหนึ่งคือตัวระบบยูนิกซ์ที่ใช้งานกับผู้ใช้จำนวนมาก ๆ เพื่อทำงานทางด้านธุรกิจ เช่น พวกระบบฐานข้อมูล เป็นต้น ในการเชื่อมต่อในหน่วยงานเดียวกันที่นิยมใช้กันมากที่สุดคือใช้อีเธอร์เน็ตแลนดังรูปที่ 1

 

 

 

 

 

 

 

 

 

รูปที่ 1 แลนของยูนิกซ์เวอร์กสเตชัน

 

การเชื่อมต่อกันด้วยแลนจะให้ความเร็วถึง 10 เมกะบิต/วินาที เคเบิลที่ใช้จะมีหลัก ๆ 2 ชนิด คือ 10BASE5 ซึ่งบางทีจะเรียกว่า Thick Ethernet (อย่างหนา) ใช้สาย COAX แบบ RG-9 ความต้านทาน 50 โอห์ม ส่วนอีกแบบคือสายแลนแบบอีเธอร์เน็ตปกติที่เราจะเห็นใช้กับระบบของพีซีเป็นสาย 50 โอห์ม RG-58 แบบนี้จะเรียกว่า 10BASE2 หรือ Thin Ethernet (อย่างบาง) บางทีเขาก็เรียก Cheaper net (แลนแบบปอน ๆ ว่างั้นเถอะ) ในการต่อกับ Thick Ethernet นั้นต้องมีส่วนเชื่อมโยงกับสายแลน เรียกว่า ทรานซีฟเวอร์ (Tranceiver) และมีสายเดินจากตัวทรานซีฟเวอร์เข้ามายังการ์ดแลนเรียกว่า AUI เคเบิลหรือ Drop เคเบิล แต่ในบางครั้งถ้าการ์ดแลนมีทรานซีฟเวอร์อยู่ภายใน (สำหรับ Thin Ethernet) ก็อาจต่อได้เลย เราสรุปเป็นสรุปได้ดังรูปที่ 2 ระบบยูนิกซ์เป็นระบบที่เน้นแนวคิดของระบบเปิด (Open System) ทั้งทางฮาร์ดแวร์และซอฟต์แวร์ ระบบปิดของบริษัทใดบริษัทหนึ่ง เช่น SNA และ IBM หรือ Decnet ของ DEC ไม่ค่อยเป็นที่สนใจของชาวยูนิกซ์นัก แนวคิดของระบบเปิดคือ มีมาตรฐานกลางในระดับนานาชาติที่ออกโดยองค์กรทางมาตรฐาน เช่น CCITT หรือ ISO ผู้ขายก็ผลิตไปตามมาตรฐาน ผู้ใช้ซื้อมาเชื่อมแล้วใช้ได้ทันที ของใครดีกว่าดูที่ประสิทธิภาพครับ ลักษณะนี้จะเป็นตลาดของผู้ใช้ ซึ่งผู้ใช้จะได้เปรียบมากในการเลือกซื้อของดีที่สุดมาใช้ ซึ่งในปัจจุบันแนวโน้มมุ่งไปทางระบบเปิดมากขึ้นทุกที ระบบยูนิกซ์ในปัจจุบัน ส่วนใหญ่จะสนับสนุนโปรโตคอลแบบ TCP/IP ซึ่งคิดขึ้นโดย DOD (Department of Defense) หรือกระทรวงกลาโหมสหรัฐ และใช้งานกันอย่างมากในอเมริกา โปรโตคอลนี้ทำให้เกิด Internetworking คือส่งข้อมูลระหว่างเครื่องที่ต่อผ่านข่ายคอมพิวเตอร์ชนิดไหนบ้าง และทำให้เกิดการติดต่อระหว่างโปรเซส (Interprocess Communication หรือ IPC) ที่อยู่ต่างเครื่องกัน

 

 

รูปที่ 2 การต่อเครื่องยูนิกซ์เข้ากับแลน

 

สำหรับในระยะทางไกลนั้น ระบบยูนิกซ์ของบริษัทต่าง ๆ มักจะสนับสนุนการเชื่อมโยงผ่านโมเด็มแบบ Point to Point โดยใช้โปรโตคอลเรียกว่า SLIP (Serial Link Internet Protocol) หรือผ่าน X.25 WAN ซึ่ง X.25 นี้เริ่มมีให้บริการใช้ได้แล้วในเมืองคือระบบ Thaipak ของการสื่อสาร ฮาร์ดแวร์ต่อกันแล้ว ถึงคราวซอฟต์แวร์บ้างพอจับฮาร์ดแวร์คุยกันได้ (LAN, WAN, Serial) ถึงคราวซอฟต์แวร์บ้าง การที่คอมพิวเตอร์จะคุยกันรู้เรื่องก็ต้องเจรจาภาษาเดียวกัน ภาษาหรือข้อตกลงในการเจรจาพาทีระหว่างคอมพิวเตอร์ผ่านข่ายสื่อสารเราเรียกว่า โปรโตคอล ซึ่งแม่แบบของโปรโตคอลในระบบเปิดที่สำคัญมี 2 พวก คือ OSI และ TCP/IP ผู้พัฒนาโปรแกรมจะพัฒนาโปรแกรมโดยใช้ส่วนเชื่อมต่อกับโปรแกรมประยุกต์ (Application Program Interface หรือ API) ซึ่งมีในระบบที่ดังมากก็คือ Socket Interface ที่มีมากับยูนิกซ์ 4.2 BSD ขึ้นไป อีกแบบคือใช้ Remote Procedure Call หรือ RPC ซึ่งมีแนวคิดดังรูปที่ 3 ในแนวคิดของ RPC คอมพิวเตอร์แต่ละเครื่องในระบบจะมีส่วนของโปรแกรมซึ่งทำงานอยู่ โปรแกรมประยุกต์ที่เราเขียนขึ้นจะเรียกใช้โปรแกรมที่อยู่ต่างเครื่องได้เสมือนกับว่าเป็นซับรูทีนในโปรแกรมของเรา โดยระบบจะช่วยให้เราสร้าง Stub ซึ่งแปลงจากการเรียกฟังก์ชันธรรมดาเป็นโปรโตคอลคุยผ่านเครือข่ายคอมพิวเตอร์ไป โปรแกรมที่อยู่อีกเครื่องก็ทำงานกุ๊กกิ๊กสักพักก็ส่งคำตอบกลับมา ซึ่ง Stub จะแปลงกลับเป็นค่าที่คืนจากการเรียกฟังก์ชัน คนพัฒนาโปรแกรมก็ไม่ต้องรู้เรื่องเน็ตเวอร์กเลย แค่รู้ว่ามีอะไรให้เรียกใช้บ้างก็พอ

 

 

 

 

รูปที่ 3 แนวคิดของ RPC

 

ไคล์เอนต์-เซอร์ฟเวอร์ และเหล่าปีศาจถ้าพูดถึงแนวโน้มของการวางระบบขนาดใหญ่ แนวคิดจะเริ่มเปลี่ยนแปลงจากระบบแบบรวมศูนย์ (Centralize) เป็นระบบแบบกระจาย (Distributed) โดยกระจายงานประมวลผลไปตามคอมพิวเตอร์ต่าง ๆ ที่ต่อกันผ่านข่ายข้อมูลคอมพิวเตอร์ ในการพัฒนาซอฟต์แวร์ตามแนวนี้เขาจะใช้โมเดลที่เรียกว่าไคล์เอนต์เซอร์ฟเวอร์ คือแบ่งโปรแกรมเป็น 2 ส่วน ดังรูปที่ 4

 

 

รูปที่ 4 แนวคิดแบบไคล์เอนต์เซอร์ฟเวอร์

 

เซอร์ฟเวอร์เป็นคนถือทรัพยากรของระบบไว้ เช่น ฐานข้อมูล, ไฟล์, เครื่องพิมพ์ ส่วนไคล์เอนต์เป็นโปรแกรมที่นำเอาทรัพยากรมาใช้ ไคล์เอนต์จะขอใช้ทรัพยากรต่าง ๆ ผ่านข่ายคอมพิวเตอร์โดยเซอร์ฟเวอร์จะตอบกลับมา โดยส่งสิ่งที่ต้องการมาให้ ตัวอย่างของแนวคิดนี้ได้แก่ SQL เซอร์ฟเวอร์บนแลนของพีซี เป็นต้น ในยูนิกซ์ได้สนับสนุนแนวคิดนี้อยู่แล้วโดยธรรมชาติ ในยูนิกซ์จะมีโปรเซสปีศาจ (Daemon process) ทำงานอยู่ตลอดเวลาเพื่อรอรับการติดต่อผ่านข่ายคอมพิวเตอร์จากภายนอก เมื่อโปรแกรมบนเครื่องอื่นติดต่อเข้ามาก็จะให้บริการบางอย่าง ตัวอย่างของปีศาจเหล่านี้ได้แก่ ftpd - ให้บริการเกี่ยวกับการส่งรับไฟล์ nfsd - ให้บริการเกี่ยวกับการใช้รีโมตดิสค์ rlogind - ให้บริการทำรีโมตล็อคอิน telretd - ทำรีโมตล็อคอินมาตรฐานของ DOD อื่น ๆ อีกมากมายครับ พูดไม่หมดแน่ โปรเซส daemon เหล่านี้จะรอให้บริการโดยจองสิ่งที่เรียกว่า well known port ซึ่งเป็นตัวเลขที่กำหนดไว้ ใครจะใช้บริการก็ติดต่อมาโดยอ้างแอดเดรสเครื่องแล้วบอกตัว well know port ให้ระบบก็จะเกิดการเชื่อมต่อกับเซอร์ฟเวอร์ได้ ตัวอย่างของ well know port แสดงไว้ในรูปที่ 5

 

 

 

 

 

 

DecimalKeywordUNIX KeywordDescription0

 

 

 

1

5

7

9

11

13

15

17

19

20

21

23

25

37

42

43

53

77

79

93

95

101

102

103

104

111

113

117

119

129

139

160-223

-

TCPMUX

RJE

ECHO

DISCARD

USERS

DAYTIME

-

QUOTE

CHARGEN

FTP-DATA

FTP

TELNET

SMTP

TIME

NAMESERVER

NICNAME

DOMAIN

-

FINGER

DCP

SUPDUP

HOSTNAME

ISO-TSAP

X400

X400-SND

SUNRPC

AUTH

UUCP-PATH

NNTP

PWDGEN

NETBIOS-SSN

Reserved

-

-

echo

discard

systat

daytime

netstat

qotd

chargen

ftp-data

ftp

telnet

smtp

time

name

whois

nameserver

rje

finger

-

supdup

hostnames

iso-tsap

x400

x400-snd

sunrpc

auth

uucp-path

nntp

-

-

-

-

Reserved

TCP Multiplexer

Remote Job Entry

Echo

Discard

Active Users

Daytime

Network status program

Quote of the Day

Character Generator

File Transfer Protocol (data)

File Transfer Protocol

Terminal Connection

simple Mail Transport Protocol

Time

Host Name Server

Who is

Domain name Server

any private RJE service

Finger

Device Control Protocol

SUPDUP Protocol

NIC Host Name Server

ISO-TSAP

X.400 Mail Service

X.400 Mail Sending

Sun Remote Procedure Call

Authentication Service

UUCP Path Service

USENET News Transfer Protocol

Password Generator Protocol

NETBIOS Session Service

รูปที่ 5 แสดงบริการที่มี และ Well known port number

ในขณะนี้มีระบบติดต่อกับผู้ใช้ที่โด่งดังขึ้นมาคือเอกซ์วินโดว์ โดยที่ระบบนี้เน้นในเรื่องของ Distributed มาก บนเครื่องเวอร์กสเตชั่นจะทำตัวเป็นเอกซ์เซอร์ฟเวอร์ซึ่งคุมทรัพยากร ได้แก่ เมาส์ คีย์บอร์ด และวินโดว์ โปรแกรมของเรา เช่น CAD ที่ต้องการแสดงผลปรากฏบนจอภาพของเรา แล้วผู้ใช้เล่นอะไรได้บ้างในแง่ของคนใช้เครื่องแล้วเรามีอะไรให้เล่นบ้าง การทำรีโมตล็อคอินบนระบบยูนิกซ์มียูทิลิตี้อยู่ 2 ตัวคือ rlogin ซึ่งเขียนโดยเบิร์กเล่ย์ เรานั่งอยู่หน้าคอมพิวเตอร์เครื่องใดก็ตามสามารถทำการล็อคอินไปใช้เครื่องอื่นที่ต่อผ่านข่ายสื่อสารได้หมด แต่ rlogin ใช้ได้กับยูนิกซ์ด้วยกันเท่านั้น ในเรื่องนี้มีโปรแกรมอีกโปรแกรมคือ telnet ซึ่งเป็นโปรแกรมที่ทำงานในลักษณะของเวอร์ชวลเทอร์มินัลตามมาตรฐานของ DOD ใช้เทลเน็ตแล้ว นอกจากจะใช้กับยูนิกซ์ด้วยกันได้ยังใช้กับคอมพิวเตอร์อื่นที่ต่อร่วมข่ายสื่อสารเดียวกันด้วย ในระบบของเวอร์กสเตชันที่เป็นแบบมัลติวินโดว์ยิ่งสนุกมากครับ เปิด 3 วินโดว์ใช้พร้อมกัน 3 เครื่องเลย การทำไฟล์ทรานสเฟอร์มีโปรแกรมช่วยคือ rcp ของเบิร์กเล่ย์ ซึ่งจะก๊อปปี้ไฟล์ข้ามระบบมาให้คล้ายกับทำคำสั่ง cp ในยูนิกซ์ แต่การส่งรับไฟล์จะไม่ซับซ้อนมาก ถ้าต้องการโปรแกรมเก่ง ๆ ต้องใช้โปรแกรม ftp โดยที่เราต้องมียูสเซอร์ที่อีกเครื่องด้วย ใน ftp เราสามารถสั่งเปลี่ยนไดเรคทอรี ดูไดเรคทอรีที่เครื่องอื่น ส่งรับไฟล์ที่ดีกว่านั้นคือ ทำการติดต่อกับระบบที่ไม่ใช่ยูนิกซ์ได้ด้วย เพราะทำงานตามมาตรฐานของ DOD เช่นเดียวกับเทลเน็ต ในเรื่องของไฟล์มีผลิตภัณฑ์อีกตัวซึ่งถือเป็นมาตรฐานกลาย ๆ คือ NFS (Network File System) ซึ่งถือกำเนิดมาจากบริษัทซันไมโครซิสเต็มส์และแพร่หลายมากในโลกของ UNIX NFS ทำให้เครื่องยูนิกซ์ที่อยู่บนแลนมองเห็นดิสค์ของอีกฝ่ายถึงกันหมด เหมือนกับเป็นดิสค์ในระบบของตัวเอง โดยแต่ละเครื่องจะมี NFS ไคล์เอนต์และเซอร์ฟเวอร์ทำงานอยู่ ยิ่งไปกว่านั้นในปัจจุบันยังมี NFS สำหรับพีซี เช่น PC-NFS ของบริษัทซันไมโครซิสเต็มส์ ทำให้พีซีของเราสามารถมองเห็นไดเรคทอรีบนเครื่องยูนิกซ์เป็นไดรฟ์ตัวหนึ่งในพีซี และยังสนับสนุนการใช้งานรีโมตพรินเตอร์อีกด้วย สุดท้ายก็คือ บริการไปรษณีย์อิเล็กทรอนิกส์ ซึ่งใช้โดยโปรแกรม mail ในยูนิกซ์นั้น ระบบเมล์จัดว่าเป็นสิ่งหนึ่งที่มีการใช้งานมากที่สุด และมีเครือข่ายที่ไพศาลไปทั่วโลก มาตรฐานของอีเมล์ที่ใช้จะเป็น SMTP (Simple Mail Transfer Protocol) และ UUCP เป็นหลัก โดยตัวระบบเมล์จะแบ่งเป็นส่วนที่ติดต่อกับผู้ใช้ และส่วนที่ส่งเมล์ของไปยังเน็ตเวอร์กคือโปรแกรม sendmail โปรแกรมนี้เองจะไปดูรูปแบบของที่อยู่ผู้รับเพื่อตัดสินใจในการส่งว่าไปไหน และใช้วิธีใดอีกครั้ง แต่ในแง่ผู้ใช้รู้แค่ที่อยู่ปลายทางก็พอแล้ว ก้าวต่อไปของยูนิกซ์กับการสื่อสารในแง่ของมาตรฐานแล้ว ยูนิกซ์ก็คงเน้นความเป็นระบบเปิดต่อไป แต่มีแนวโน้มที่จะเปลี่ยนจาก TCP/IP เป็น OSI แต่ก็นานมาก (อาจจะศตวรรษหน้า) ตอนนี้พัฒนาการทางด้านเทคโนโลยีทำให้การวางข่ายคอมพิวเตอร์มีราคาถูกลงมาก ดังนั้นในแง่ผู้ใช้คงจะได้ใช้โปรแกรมประยุกต์ที่มีลักษณะทำงานแบบกระจายมากขึ้น และการทำงานเป็นกลุ่มโดยมีข่ายข้อมูลคอมพิวเตอร์เป็นตัวเชื่อมโยงในลักษณะเครือข่ายของบริษัท (Corporate Network) คงจะเข้ามามีบทบาทในธุรกิจมากขึ้น ด้วยเทคโนโลยีของระบบเปิดจะทำให้ผู้ใช้เลือกเอาผลิตภัณฑ์ต่าง ๆ มาเชื่อมโยงเข้าด้วยกันได้ง่ายกว่าเดิม ระบบข่ายข้อมูลของพีซีและยูนิกซ์จะเข้ามาร่วมทำงานด้วยกันเพื่อเพิ่มความสะดวก และประสิทธิภาพให้กับผู้ใช้อย่างเต็มที่

 

 

 


หมายเลขบันทึก: 376248เขียนเมื่อ 17 กรกฎาคม 2010 17:36 น. ()แก้ไขเมื่อ 12 กุมภาพันธ์ 2012 15:19 น. ()สัญญาอนุญาต: ครีเอทีฟคอมมอนส์แบบ แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกันจำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท