ความรู้คู่ความก้าวหน้า
 
Default dynamic port range สำหรับ TCP/IP

 ปกติแล้วการเขียนบทความ ผมจะพยายามปูพื้นฐาน แต่เนื่องด้วยเวลาอันจำกัด ขอเขียนแบบเจาะจงเฉพาะเรื่อง โดยผู้ที่จะอ่านบทความนี้ควรจะมีความรู้พื้นฐานทางด้าน TCP/IP มาระดับนึงนะครับ โดยหากมีเวลา ก็จะเขียนแบบละเอียดทีหลังครับ

สำหรับ TCP port และ UDP port ที่เป็นมาตรฐาน ท่านสามารถเข้าไปดูได้ตาม link นี้ครับ
//en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

การสื่อสารข้อมูลแบบ TCP/IP นั้น จะเป็นการสื่อสารกันในลักษณะของ Client to Server 

โดยผมขอนิยามคำว่า Server กับ Client และขอกล่าวถึง protocol TCP และ UDP แบบสรุปๆ ดังนี้ครับ:

Server หมายถึง เครื่อง computer ที่ให้บริการ application ต่างๆ แก่เครื่องลูกข่าย (Client) เช่น เครื่องที่เป็น Web Server อาจจะเป็น Server ที่ให้บริการ web ของ google.com เป็นต้น หรือเครื่อง computer บางเครื่องเป็นเครื่องที่ให้บริการ Mail application เพื่อที่จะให้บริการการรับส่ง mail (เรียกว่า Mail Server) เป็นต้น โดย computer หนึ่งเครื่องสามารถให้บริการได้มากกว่าหนึ่งอย่าง ขึ้นอยู่กับ application ที่เราจะไปติดตั้งให้กับมัน เช่น computer เครื่องหนึ่งติดตั้งทั้ง web application และ mail application ดังนั้น computer เครื่องนี้จะเป็นทั้ง web server และ mail server
นั่นคือ เมื่อเครื่อง computer ได้ติดตั้ง application ประเภท web application เพื่อที่จะทำหน้าที่เป็น Web Server แล้ว มันจะทำการเปิด TCP port มาตรฐาน คือ TCP port 80 ที่เป็นที่รู้กันว่า 
"ผู้ที่ต้องการจะผลิต web browser application เพื่อที่ใช้ในการ browse ไปยัง Web Server นั้น จะต้องติดต่อไปยัง Web Server โดยการระบุ Destination TCP port 80 เท่านั้น เพราะมันเป็นมาตรฐาน" โดย web browser ที่นิยมใช้กัน เช่น Internet Explorer (IE), Google Chrome และ Firefox เป็นต้น

Note: บางท่านอาจจะสับสน (แม้แต่ผมก็เคยสับสน) กับคำว่า "Server" โดย computer ที่จะต้องมาทำหน้าที่เป็น server นั้น จะเป็น computer อะไรก็ได้ แม้แต่ notebook ก็ยังเป็น server ได้เช่นกัน เพราะความเป็น server มันไม่ได้ขึ้นอยู่กับ hardware เป็นหลัก แต่มันจะขึ้นอยู่กับ application เป็นหลักต่างหาก โดยหากเรานำ Web Application ไปติดตั้งบน notebook มันก็จะเปิด TCP port 80 รอ และสามารถทำหน้าที่เป็น Web Server ได้เช่นกัน เพียงแต่เครื่องที่จะทำหน้าที่เป็น Server จะต้องเปิดตลอด 24 ชั่วโมง และต้องรับภาระการ access เข้าใช้งานจากเครื่องลูกข่าย (Client) จำนวนมาก ดังนั้นเครื่องที่จะมาทำหน้าที่เป็น Server ได้ จะต้องเป็นเครื่องที่มี spec ที่ดีมากๆ จึงมีการผลิต computer ที่เหมาะกับการใช้งานในลักษณะเช่นนี้ เราจึงเรียกเครื่อง computer ที่มีความแข็งแรงคงทนเหล่านั้นว่า server (Computer ที่มี hardware spec ระดับ Server)

Client หมายถึง เครื่องลูกข่าย ที่จะไปขอใช้บริการ หรือ service บนเครื่อง Server ที่ให้บริการ (ให้บริการอะไร ขึ้นอยู่กับ application ที่ run อยู่บนเครื่องของ server)
เช่นเครื่อง Client มีการติดตั้ง Web Browser ของ Firefox เอาไว้ มันก็จะทำตัวเป็น Web Client พร้อมที่จะ access เข้าไปยัง Web Server ต่างๆ ที่อยู่ใน Internet เป็นต้น

การทำงานของ TCP/IP จะเป็นแบบ Client to Server นั่นหมายถึง การรับส่งข้อมูลจะต้องเริ่มต้นจาก Client ก่อนเสมอ โดย Client จะต้องเป็นผู้เริ่มต้นไปสะกิด Server เพื่อแจ้งขอใช้บริการเสมอ

TCP Protocol จะเป็นการสื่อสารข้อมูลที่มีความน่าเชื่อถือ เพราะจะมีการสถาปนาการเชื่อมต่อ (establish session) ก่อนที่จะมีการรับส่งข้อมูลจริงๆ โดยมีการส่ง signal เจรจาเตรียมความพร้อมก่อนการรับส่งข้อมูลกัน หรือที่เรียกกันว่า Connection-Oriented  และข้อมูลที่รับส่งกันก็จะมี sequence หรือลำดับ จึงทำให้สามารถรับรู้ได้ว่ามีข้อมูลสูญหายในระหว่างการรับส่งหรือไม่ 

UDP Protoocl จะเป็นการสื่อสื่อสารแบบทำให้ดีที่สุด (Best Effort) หรือพูดแบบง่ายๆ คือ ตามมีตามเกิด จะไม่สามารถการสถาปนาการเชื่อมต่อใดๆ โดยหากต้องการส่งข้อมูล ก็จะส่งเลย หรือที่เรียกกันว่า Connectionless และไม่มีลำดับของการส่ง packet 

เอาล่ะ ก็มาถึงวัตถุประสงค์ของบทความนี้ซะที

ในการสื่อสารแบบ TCP/IP เมื่อ Client ทำการเปิดเกมส์ไปสะกิด Server เพื่อขอใช้บริการแล้ว มันจะส่งข้อมูลโดยมี Destination Port (อาจจะเป็น protocol TCP หรือ UDP ขึ้นอยู่กับ application ที่ใช้) ที่สอดคล้องกับ application ที่มันใช้ เช่น 
- ถ้า Client ไปขอใช้บริการ Web application บน Web Server มันจะใช้ Destination TCP port 80
- ถ้า Client ไปขอใช้บริการ Mail application บน Mail Server มันจะใช้ Destination TCP port 25
- ถ้า Client ไปขอใช้บริการ TFTP application บน TFTP Server มันจะใช้ Destination UDP port 69

แต่สำหรับ Source TCP/UDP port แล้วนั้น มันจะใช้ Random port หรือ Dynamic port โดยมันจะมี range ดังนี้

- สำหรับ Windows XP และ version ที่ต่ำกว่า จะใช้ source port ที่เป็น Dynamic port range สำหรับ TCP/IP ตั้งแต่ 1,025 ไปจนถึง 5,000
- สำหรับ Windows Vista และ Windows Server 2008 เป็นต้นไป จะใช้ source port ที่เป็น Dynamic port range สำหรับ TCP/IP ตั้งแต่ 49,152 ไปจนถึง 65,535

ซึ่งการกำหนดมาตรฐานของ Dynamic port range จะถูกกำหนดโดย IANA (Internet Assigned Numbers Authority) และเหตุผลที่ต้องมีการปรับเปลี่ยน default port เริ่มต้นจาก 1,025 มาเป็น 49,152 นั้น ก็เนื่องจากว่าปัจจุบันมี application เกิดขึ้นมากมาย โดยมีมากว่า port ที่ได้จองเอาไว้สำหรั้บ standard application (มี application มากกว่า 1,024 application) จึงทำให้ IANA ต้องมีการปรับขยาย standard port ออกมานั่นเอง

สำหรับ link อ้างอิงเรื่อง Dynamic port คือ
สำหรับตัวอย่างของ TCP session / Source port / Destination port ดังภาพตัวอย่างข้างล่างครับ

คำอธิบายเพิ่มเติมสำหรับภาพข้างล่าง ท่านสามารถเข้าไปอ่านได้ตาม link นี้ครับ





หวังว่าบทความนี้จะมีประโยชน์กับท่านไม่มากก็น้อยนะครับ

ขอบคุณครับ
โก้-ชัยวัฒน์



Create Date : 10 กุมภาพันธ์ 2558
Last Update : 13 กรกฎาคม 2558 12:52:19 น. 2 comments
Counter : 6483 Pageviews.  
 
 
 
 
อธิบายดีมากครับ ขอบคุณครับ
 
 

โดย: Great IP: 171.96.187.111 วันที่: 23 มีนาคม 2558 เวลา:14:20:52 น.  

 
 
 
ขอบคุณครับอาจารย์ วันนี้ไล่เก็บหมดแล้ว
 
 

โดย: Ironman IP: 119.76.14.176 วันที่: 4 เมษายน 2558 เวลา:15:28:30 น.  

Name
Opinion
*ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก

kochaiwat
 
Location :
กรุงเทพฯ Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 693 คน [?]




เริ่มงานครั้งแรกที่บริษัท UIH (United Information Highway) ซึ่งเป็นบริษัทผู้ให้บริการทางด้านการสื่อสารข้อมูล อาทิเช่น Lease Line, Frame Relay และ MPLS และได้ย้ายไปร่วมงานกับบริษัท dtac โดยได้ทำงานเกี่ยวกับ IP Network (Switch/Router/Firewall/F5-Loadbalancer) รวมถึง MPLS Network และ IPRAN (IP Radio Access Network) ซึ่งเป็น IP Network ที่รองรับ Access ของ Mobile System นอกจากนั้นยังสนใจศึกษาเรื่อง IPv6 Address ที่จะมาใช้แทน IPv4 ที่เราใช้งานอยู่ในปัจจุบัน
แต่ด้วยความชอบในการแบ่งปันความรู้ จึงได้มีโอกาสสอน CCNA อยู่ที่สถาบันแห่งหนึ่งในอาคารฟอร์จูนทาวน์ในวันเสาร์-อาทิตย์ ตั้งแต่ปี พ.ศ. 2549 จนถึง พ.ศ. 2553 รวมเป็นเวลา 4 ปี, หลังจากนั้นในระหว่างที่ทำงานที่ dtac ก็ได้สอนเสาร์-อาทิตย์เรื่อยมา

เคยเป็น Trainer หรือ Instructor อย่างเต็มตัว สอนวิชาต่างๆ ของ Cisco อย่างเป็นทางการ (Authorize Training) ที่บริษัท Training Partner Thailand จนถึง มีนาคม 2014 และได้ตัดสินใจออกมาสอนเอง เพราะด้วยความรักในอาชีพการสอน และต้องการที่จะแบ่งปันความรู้ให้กับบุคคลในระดับกลางและล่างเพื่อส่งเสริมให้ได้มีโอกาสได้เรียน และได้มีโอกาสสมัครงาน แต่ด้วยใจรักในบริษัท Cisco ดังนั้น เมื่อมีโอกาสเข้ามา จึงได้ตัดสินใจหยุดการสอน และได้เข้าไปเป็นพนักงาน หรือทำงานที่บริษัท Cisco Thailand ตั้งแต่วันที่ 15 กุมภาพันธ์ 2559 (2016) จนถึงปัจจุบัน

ลูกค้าที่เคยมารับการอบรม เช่น
- Lao Telecom Company Ltd
- CAT Telecom
- TOT
- True
- dtac
- CDG Group
- SITA air transport communications and information technology (www.sita.aero/)
- Infonet Thailand
- MultiLink Co., Ltd
- โรงพยาบาลไทยนครินทร์
- และเคยไปเป็นวิทยากรพิเศษที่ มหาวิทยลัยกรุงเทพสุวรรณภูมิ

ปัจจุบัน โก้-ชัยวัฒน์ ได้ผ่านการสอบ:
- Cisco Certified Internetwork Expert (CCIE) No. 51353 และ
- Cisco Certified Systems Instructor (CCSI) ซึ่งเป็น Certificate ที่ออกให้โดย Cisco สำหรับผู้ที่จะเป็นผู้สอน Cisco Certificate อย่างเป็นทางการ และได้รับ CCSI ID: 34784

วิชาที่สามารถได้สอนได้สำหรับ Cisco Certificate ในขณะนี้คือ
- CCNA Routing & Switching
- CCNA Security (IINS)
- CCNP Route & Switch: ROUTE
- CCNP Route & Switch: SWITCH
- CCNP Route & Switch: TSHOOT
- MPLS (IOS)
- MPLS Traffic Engineering (IOS)
- CCNP Service Provider: SPROUTE (OSPF, IS-IS, BGP, Prefix-List, Route-Map and RPL (Routing Policy Language))
- CCNP Service Provider: SPADVROUTE (Advance BGP, Multicast, and IPv6)
- CCNP Service Provider: SPCORE (MPLS, MPLS-TE, QoS)
- CCNP Service Provider: SPEDGE (MPLS-L3VPN, MPLS-L2VPN (AToM and VPLS)
- IPv6

Certification ที่มีอยู่ในปัจจุบัน CCIE# 51353, CCSI# 34784, CCNA Routing & Switching, CCNA Security (IINS), CCNA Design, CCNP Routing & Switching, CCIP, CCNP Service Provider ซึ่งเป็น Certification ของ Cisco product รวมถึง Certification ของสถาบัน EC-Council (www.eccouncil.org) นั่นคือ Certified Ethical Hacker (CEH)

"เป้าหมายมีไว้ให้ไล่ล่า บ้างเหนื่อยล้าบ้างหยุดพัก
ชีวิตแม้ยากนัก แต่เรารักเราไม่ถอย
ชีวิตแม้ต้องคอย จะไม่ปล่อยไปวันๆ
ชิวิตไม่วายพลัน แม้นสักวันต้องได้ชัย"

"แม้ระยะทางจะไกลแค่ไหน แม้ต้องใช้เวลามากเพียงใด
ขอเพียงแค่มีความตั้งใจ เราต้องได้ไปให้ถึงมัน"

ผมจะไม่ยอมทิ้งฝัน แต่จะไล่ล่ามันให้ถึงที่สุด สักวันฝันอาจจะเป็นจริง ถึงจะไปไม่ถึง แต่ผมก็ภูมิใจที่ได้ทำ
==============================
ความรู้ = เมล็ดพืช
ความพยายามในการเรียนรู้ = ปุ๋ย, น้ำ และความใส่ใจที่จะปลูก
สรุปคือ
ยิ่งพยายามเรียนรู้ ยิ่งพยายามศึกษาในเรื่องใดๆ ผลที่ได้คือ จะได้ความรู้ในเรื่องนั้นๆ อย่างลึกซึ้ง เปรียบเสมือนปลูกต้นไม้ด้วยความใส่ใจ ให้น้ำ ให้ปุ๋ย ผลที่ได้ก็คือ ต้นไม้ที่เติบโตอย่างแข็งแรง และผลิดอกและผลที่งดงามให้เราได้ชื่นชม
ความพยายามอยู่ที่ไหน ความสำเร็จจะอยู่ที่นั่น หรือที่ไหนก็ช่าง แต่เชื่อเถอะ เราจะได้ผลลัพธ์ที่ดีจากความพยายามนั้นๆ ไม่มากก็น้อย
อยากได้อะไรให้พยายาม แล้วความสำเร็จมันจะเข้ามาหาเอง
ผมเชื่อ และมั่นใจอย่างนั้น
===============================
ตอนนี้ผมได้ไปถึงฝัน (CCIE) แล้ว และสิ่งที่ไม่คาดฝัน คือได้ทำงานที่บริษัท Cisco ซึ่งถือได้ว่าไกลเกินฝัน

กว่าผมจะมาถึงจุดนี้ได้ เกิดจากความตั้งใจ มุ่งมั่น และพยายามอย่างไม่ย่อท้อ ศึกษาหาความรู้ และฝึกฝนตนเองอยู่เสมอ จนกระทั่งประสบความสำเร็จ และผมก็ได้พิสูจน์แล้วว่า ความพยายามอยู่ที่ไหน ความสำเร็จอยู่ที่นั่น ขอเพียงแค่อย่าท้อ อย่าถอย และอย่าหยุด

ผมขอเป็นกำลังใจให้กับทุกคน และขอให้ประสบความสำเร็จดังที่มุ่งหวัง ไม่ว่าท่านจะหวังสิ่งใดก็ตามครับ

ท้ายที่สุด ผมขอฝากข้อคิดในเรื่อง Certificate ไว้สักนิดนะครับ:
*** "CCIE และ Certificate อื่นๆ มีไว้เพื่อทำมาหากิน และมีไว้เพื่อข่มตนไม่ให้เกรียน เพราะความเกรียนจะนำมาซึ่งการเป็นเป้าให้คนที่เค้าหมั่นไส้ยิงเอานะครับ" ***

Facebook: ชัยวัฒน์ อมรหิรัญวงศ์
New Comments
[Add kochaiwat's blog to your web]

MY VIP Friends


 
 
pantip.com pantipmarket.com pantown.com