# TCP/IP

หากคุณจะต้องการศึกษาเรื่องของ TCP/IP อย่างละเอียด ขอแนะนำให้อ่านหนังสือชุดของ TCP/IP สามเล่ม Internetworking with TCP/IP โดย Douglas R. Comer จัดพิมพ์โดย Prentice Hall หนังสือทั้งสามเล่มจะบอกถึงสถาปัตยกรรม การออกแบบและการเขียนแอพพลิเคชั่นในแบบ Client-Server หนังสือชุดนี้ถือว่าเป็นหนังสือหลัก หากคุณต้องการจะเข้าใจเนื้อหาด้านลึกของ TCP/IP
การจะใช้งาน TCP/IP ได้นั้นจำเป็นจะต้องมีการกำหนดค่าของ IP address หรือหมายเลขประจำตัวให้กับเครื่องคอมพิวเตอร์แต่ละเครื่องในเครือข่าย ซึ่งจะคล้ายกับเลขที่บ้านของคุณ ที่จะทำหน้าที่บอกตำแหน่งที่อยู่ของคุณให้คนอื่นๆได้รับทราบ
นอกจากนี้ก็ยังจะมีค่าอื่นๆอีก แต่ที่จำเป็นอีกอย่างก็คือค่าของ MTU หรือ Maximum Transfer Unit ซึ่งค่านี้ก็จะบอกถึงจำนวนสูงสุดของข้อมูล (datagram) ที่จะใช้ทำการ process

### IP Address

IP address เป็นตัวเลขความยาว 32 บิท และจะต้องกำหนดให้แต่ละเครื่องมีความแตก ต่างกัน ถ้าคุณใช้งานเนตเวอร์กของคุณเพียงแค่ในหน่วยงานของคุณเอง ในกรณีนี้คุณสามารถกำหนดหมายเลขของ IP ให้กับเครื่องต่างๆของคุณเองได้ แต่ถ้าหากเป็นเนตเวอร์กที่ติดต่อกับสาธารณะเมื่อใด จะต้องมีการกำหนดมาจากหน่วยงานที่ทำการควบคุมหมายเลข IP โดยเฉพาะซึ่งจะเรียกว่า the Network Information Centor (NIC)
หมายเลข IP จะถูกแบ่งออกเป็นตัวเลข 8 บิทจำนวน 4 ส่วน (octets) ตัวอย่างเช่น IP address 0x954C0C04 จะถูกเขียนอย่างง่ายได้เป็น 149.76.12.4 การเขียนแบบนี้จะเรียกว่า dotted quad notation ประโยชน์อีกอย่างของการเขียนแบบแบ่งเป็นตัวเลข 4 ชุดนี้คือเพื่อแสดงถึง หมายเลขของเนตเวอร์ก และหมายเลขของโฮสต์
มีการแบ่งเนตเวอร์กออกเป็นขนาดต่างๆ ซึ่งจะมีผลต่อจำนวนของโฮสต์ที่มีอยู่ได้ ในเนตเวอร์กแต่ละชนิดด้วย

- Class A
  Class A ประกอบด้วยเนตเวอร์หมายเลข 1.0.0.0 จนถึง 127.0.0.0 หมายเลขของโฮสต์จะประกอบด้วยตัวเลข 24 บิต ซึ่งจะทำให้มีโฮสต์ถึง 1.6 ล้านโฮสต์
- Class B
  Class B ประกอบด้วยเนตเวอร์กหมายเลข 128.0.0.0 จนถึง 191.255.0.0 หมายเลขของโฮสต์จะมี 16 บิต มีเนตเวอร์กได้ 16320 เนตเวอร์ก และมีโฮสต์ได้ 65024 โฮสต์ สำหรับแต่ละเนตเวอร์ก
- Class C
  Class C ประกอบด้วยเนตเวอร์กตั้งแต่ 192.0.0.0 จนถึง 223.255.255.0 จะมีเนตเวอร์กได้จำวน 2 ล้านเนตเวอร์ก ซึ่งแต่ละเนตเวอร์กจะมีจำนวนโฮสต์ได้ 254 โฮสต์
- Class D, E และ F
  มีแอดเดรสตั้งแต่ 224.0.0.0 ถึง 254.0.0.0 อยู่ในระหว่างการทดลองและสำรองไว้เผื่ออนาคต ไม่ได้กำหนดจำนวนเนตเวอร์กใดๆ

ตัวอย่างเช่น IP หมายเลข 149.76.12.4 จะหมายถึงโฮสต์ 12.4 บนเนตเวอร์ก Class B หมายเลขที่ 149.76.0.0 ในกรณีหมายเลขเป็น 149.76.255.255 จะหมายถึงโฮสต์ทุกตัวที่ อยู่บนเนตเวอร์กหมายเลข 147.76.0.0
มีเนตเวอร์กอีกสองหมายเลขที่ถูกสำรองไว้ใช้งานเฉพาะด้านคือ เนตเวอร์กหมายเลข 0.0.0.0 (default root) และ 127.0.0.0 (loopback address) loopback จะเป็นช่องทางพิเศษที่ใช้ติดต่อกับโฮสต์เครื่องนั้นเอง บางทีจะใช้สำหรับการทดสอบเนตเวอร์กบางอย่าง โดยไม่จำเป็นจะต้องต่อกับเนตเวอร์กจริง

### เนตมาสก์ (Netmask)

เนตมาสก์เป็นตัวบอกให้เราทราบได้ว่า IP ใดอยู่ในเนตเวอร์กเดียวกันบ้าง ตัวอย่าง ถ้าหากเนตมาสก์ มีค่าเป็น
255.255.255.0 ดังนั้นโฮสต์ที่มีหมายเลข IP เป็น 149.108.10.1 ที่มีค่าเนตมาสก์เป็นค่าข้างต้น เรารู้ว่าโฮสต์ตัวนี้จะอยู่ในเนตเวอร์กเดียวกันกับ โฮสต์ตัวอื่นๆที่มีหมายเลข IP ขึ้นต้นด้วย 149.108.10

### โดเมนเนมเซอร์ฟเวอร์ (Domain Name Server : DNS)

โดเมนเนมเซอร์ฟเวอร์จะทำหน้าที่คล้ายกับสมุดโทรศัพท์ ซึ่งเราสามารถจะเปิดหาชื่อของบุคคลที่เราต้องการจะติดต่อ เพื่อค้นหาเบอร์โทรศัพท์ของเขาได้ ในทำนองเดียวกันหมายเลข IP address มีลักษณะเป็นตัวเลขที่มนุษย์ค่อนข้างจะจดจำได้ยาก จึงมีการเปลี่ยนมาใช้เป็นตัวอักษรสำหรับแทนหมายเลข IP address ต่างๆ และมีเครื่องเซอร์ฟเวอร์ ที่คอยทำหน้าที่บริการเปลี่ยนจาก ตัวเลข IP ให้กลายเป็นตัวอักษรได้

### เกตเวย์ (Gateway)

เกตเวย์เป็นหนทางการเชื่อมต่อระหว่างเครือข่าย 2 เครือข่ายเข้าด้วยกัน สำหรับในกรณีที่มีโฮสต์ที่อยู่ในเครือข่ายที่เป็นซับเน็ต (subnet : เครือข่ายย่อย) เดียวกัน โฮสต์ต่างๆเหล่านั้นจะสามารถทำการติดต่อกันได้ แต่ถ้าหากจะต้องการติดต่อกับโฮสต์ ที่อยู่คนละซับเนตกันแล้วจำเป็นจะต้องอาศัยเกตเวย์เข้ามาช่วย เกตเวย์จะเปรียบเสมือนเป็นโฮสต์ที่เป็นที่รับรู้อยู่ ทั้งสองซับเน็ต และจะคอยทำการส่งผ่านข้อมูลระหว่างซับเนตทั้งสองไปมา สำหรับการหาเส้นทางการสื่อสารของเครือข่ายจำเป็นจะต้องอาศัยเครื่องหาเส้นทาง (router) เข้ามาช่วย

HTML developed by Kaiwal Development Team (kaiwal@geocities.com)