วันพฤหัสบดีที่ 7 ตุลาคม พ.ศ. 2553

Type of Address (2)


วันนี้ผมจะมาพูดถึง ประเภทของ Address ที่เราเรียกกันว่า IP Address


IP Address คือหมายเลขที่ประจำเครื่องของคอมพิวเตอร์ ซึ่งประกอบด้วยเลข 4 ชุดมีเครื่องหมาย (.) ขั้นระหว่างตัวเลขแต่ละชุด


รูปแบบของ IP address นั้นเป็นตัวเลขล้วน( มีขนาด 32 บิต) เวลาเขียน IP address แต่ละตัวจะเขียนแทนด้วยเลขฐานสิบ โดยแบ่งเลขฐานสิบที่เขียนออกมาเป็นสี่ส่วน แต่ละส่วนคั่นด้วยจุด ดังตัวอย่าง
ตัวอย่าง   161.200.50.1
แต่ละชุดตัวเลข จะมีตัวเลขระหว่าง 0-255
การสื่อสารและการรับส่งข้อมูลในระบบของ อินเตอร์เน็ต สิ่งสำคัญที่สุดคือ IP Address ของคอมพิวเตอร์แต่ละเครื่อง และเพื่อให้เลข IP Address มีการซ้ำกัน จึงมีการก่อตั้งองค์กรเพื่อแจกจ่าย IP Address ชื่อหน่วยงาน Internet Network Information Center (InterNic) ขององค์กร Network Solution Incorpaoration (NSI) ที่รัฐเวอร์จิเนีย สหรัฐอเมริกาเป็นผู้กำหนดหรือให้ IP address เมื่อหน่วยงานใดได้นำคอมพิวเตอร์หรือเน็ตเวิร์กต่อเข้ากับอินเตอร์เน็ตแล้ว ต้องทำการขอ IP address แต่ไม่จำเป็นต้องขอโดยตรงกับ InterNic ก็ได้ มีหน่วยงานที่รับ IP address จาก InterNic มา แล้วมาทำหน้าให้ IP address เช่น หน่วยงานประเภท ISP ให้ IP address แก่ผู้ที่เป็นสมาชิก


การแบ่งขนาดของเครือข่าย
เราจะเรียกการแบ่งขนาดนี้ว่าเป็น Class แบ่งได้ 3 Class คือ
Class A ตัวอย่างหมายเลข 10.XXX.XXX.XXX
Class B ตัวอย่างหมายเลข 172.16.XXX.XXX
Class C ตัวอย่างหมายเลข 192.168.254.XXX


หลังจากเราทำการรู้จักกับหมายเลข IP ไปแล้ว เรามารู้จักกับสิ่งที่เรียกกว่า Subnet Mask ซึ่งเป็นส่วนที่สำคัญเช่นเดียวกับ IP Address


Subnet mask เป็น Parameter อีกตัวหนึ่งที่ต้องระบุควบคู่กับหมายเลข IP Address หน้าทีของ subnet คือ ตัวที่แบ่ง IP address ที่ได้มาให้เป็นกลุ่มย่อย ช่วยในการแยกแยะว่าส่วนใดภายในหมายเลข IP Address เป็น Network Address และส่วนใดเป็นหมายเลข Host Address ดังนั้น ท่านจะสังเกตได้ว่า เมื่อเราระบุ IP Address ให้กับเครื่องคอมพิวเตอร์ เราจำเป็นต้องระบุ Subnet mask ลงไปด้วยทุกครั้ง

ค่าเริ่มต้นของ Subnet Mask ของแต่ละClass
Class A จะมี Subnet mask เป็น 255.0.0.0 หรือเลขฐานสองดังนี้
11111111.00000000.00000000.00000000
Class B
จะมี Subnet mask เป็น 255.255.0.0 หรือเลขฐานสองดังนี้
11111111.11111111.00000000.00000000

Class C จะมี Subnet mask เป็น 255.255.255.0 หรือเลขฐานสองดังนี้
11111111.11111111.11111111.00000000


จะสังเกตได้ว่า เลขฐาน2 ทั้งหมด8ตัวจะเท่ากับ 255 นั่นเอง



 นายณัฐวุฒิ มงคลศิริ 5307470


DHCP (Dynamic Host Configuration Protocol)


DHCP เป็น Protocol ที่ทำหน้าที่ ให้ค่า IP address และ Network Configuration ต่างๆให้กับClient ในระบบเครือข่าย
มีการทำงานดังนี้โดยต้องอาศัยการทำงานจองของเครื่องคอมพิวเตอร์ตัวกลางเครื่องหนึ่งที่เราเรียกว่า DHCP Server

DHCP Server  
-       เป็นโปรแกรมที่ให้บริการในการแจกจ่าย IP Address จากฐานข้อมูลกลางโดยอัตโนมัติให้กับเครื่องคอมพิวเตอร์และอุปกรณ์คอมพิวเตอร์ต่างๆภายเครือข่าย เพื่ออำนวยความสะดวกให้กับผู้ใช้งานหรือผู้ดูแลระบบที่ไม่จำเป็นต้องไปตั้งค่า IP Address, Subnet mask, Default Gateway, DNS Server และค่าอื่นๆด้วยตัวเอง

-       มีหน้าที่จดเก็บหมายเลข IP Address และค่าพารามิเตอร์ต่างๆที่เกี่ยวข้องไว้เพื่อแจกจ่ายให้กับเครื่องลูกข่ายตามการร้องขอ โปรโตคอล DHCP โดยส่ง Message ต่างๆที่ใช้ในขบวนการกำหนด IP Address แบบอัตโนมัติมีขั้นตอนการทำงาน 4 ขั้นตอนประกอบด้วย
1.     DHCPDISCOVER คือ Message แรกของขั้นตอนการทำงานทั้งหมดโดยเริ่มจากการร้องขอใช้งานจากเครื่องลูกข่ายโดยเครื่องลูกข่ายจะส่ง Message ที่ชื่อว่า DHCPDISCOVER ในลักษณะการส่งกระจายBroadcast เพื่อถามหา DHCP Server โดยเครื่องลูกข่ายจะปะ Mac Address ของตัวเองมาด้วย
2.     DHCPOFFER เมื่อ DHCP Server ได้รับ Message แล้วจากเครื่องลูกข่ายแล้วก็จะทำการจัดสรรค่า IP Address พร้อมทั้งค่าต่างๆที่เกี่ยวข้องกลับไปให้เครื่องลูกข่ายผ่านโดยตอบกลับไปด้วย DHCPOFFER และระบุปลายทางด้วย Mac Address ที่เครื่องลูกข่ายแปะมาด้วยในขั้นตอน DHPCDISCOVER
3.     DHCPREQUEST เมื่อเครื่องลูกข่ายได้รับ message ของ DHCPOFFER แล้วก็จะนำค่า IP Address และค่าอื่นๆที่เกี่ยวข้องทั้งหมดมาตั้งค่าให้กับตัวเอง แต่ยังไม่สามารถใช้งานได้ เพราะต้องขออนุมัติจาก DHCP Server ก่อนซึ่งวิธีการขอนั้นคือการ Broadcast Message DHCPREQUEST ไปให้ DHCP Server
4.     DHCPACK และ DHCPNAK เมื่อ DHCP Server ได้รับ Message DHCPREQUEST แล้วถ้าไม่มีการ Error หรือมีปัญหาใดๆ ก็จะทำการอนุมัติโดยส่ง Message ที่ชื่อว่า DHCPACK ตอบกลับไป แต่ถ้าไม่อนุมัติเพราะเกิดปัญหาการ Error หรือการที่ IP Address ที่ขอมานั้นไม่ว่างหรือถูกใช้โดยอุปกรณ์ตัวใดตัวหนึ่งจะทำการส่ง Message ตอบกลับไปว่า DHCPNAK เพื่อแจ้งให้ทราบว่าไม่สามารถอนุมัติได้ และเครื่องลูกข่ายจะต้องเริ่มขั้นตอนในการร้องขอใหม่ทั้งหมด
ส่วนเสริม
            ภายใน Message ของ DHCPOFFER จะมีค่า Lease Time หรือวันหมดอายุอยู่ด้วย ซึ่งเครื่องลูกข่ายจะต้องขอต่ออายุการใช้งาน เมื่อใกล้ถึงวันหมดอายุเสมอโดยทำการส่ง DHCPREQUEST ไปหา DHCP Server ตามขั้นตอนที่ 3 ใหม่

วันพุธที่ 6 ตุลาคม พ.ศ. 2553

“TCP CONNECTION MANAGEMENT”

ทีซีพี หรือ TCP มาจากคำว่า Transmission Control Protocol ทีซีพี เป็นชุดของโปรโตคอลที่ถูกใช้ในการสื่อสารผ่านเครือข่ายอินเทอร์เน็ต โดยมีวัตถุประสงค์เพื่อให้สามารถใช้ สื่อสารจากต้นทางข้ามเครือข่ายไปยังปลายทางได้ และสามารถหาเส้นทางที่จะส่งข้อมูลไปได้เองโดยอัตโนมัติ ถึงแม้ว่า ในระหว่างทางอาจจะผ่านเครือข่ายที่มีปัญหา โปรโตคอลก็ยังคงหาเส้นทางอื่นในการส่งผ่านข้อมูลไปให้ถึงปลายทางได้
ทีซีพี เป็นโปรโตคอลที่ได้รับความนิยมที่สุดในโลกของอินเทอร์เน็ต มีแอปพลิเคชันจำนวนมากที่ใช้โปรโตคอลทีซีพีเป็นสื่อกลางในการเชื่อมต่อ เช่น เวิลด์ไวด์เว็บ เป็นต้น
TCP เป็นโปรโตคอลในระดับชั้นที่ 4 เมื่อเทียบกับ OSI มีลักษณะการทำงานเป็น Virtual Circuit คือจะมีการทำวงจร เสมือนขึ้นมาก่อนที่จะรับส่งข้อมูลกัน นั่นคือ แต่ละโหนดต้องมีตารางของ address และ destination route เพื่อให้รู้ว่าจะต่อกับใครจึงจะได้วงจรเสมือนตามต้องการ เมื่อทำ connection setup เสร็จแล้วก็จะรับส่งข้อมูลกัน โดยใช้เส้นทางนี้ตลอด ดังนั้นจะไม่มีปัญหาเรื่องการเรียงลำดับของชุดข้อมูลผิดพลาด หรือ เกิดการซ้ำซ้อนของข้อมูล การส่งผ่านข้อมูลบน TCP เป็น byte stream-oriented สำหรับหน้าที่ของ TCP นี้ก็คือ จัดการเรื่อง ตรวจสอบ error , ทำ flow control , ทำการ multiplex หรือ demultiplex application layer connection นอกจากนี้ก็ยังทำ หน้าที่ควบคุมแลกเปลี่ยนสถานะและทำ Synchronization ด้วย
          หน้าที่ของ TCP: Transmission Control Protocol (TCP) จะทำหน้าที่ในการแยกข้อมูลเป็นส่วน หรือที่เรียกว่า Package ส่งออกไป ส่วน TCP ปลายทาง ก็จะทำการรวบรวมข้อมูลแต่ละส่วนเข้าด้วยกัน เพื่อนำไปประมวลผลต่อไป โดยระหว่างการรับส่งข้อมูลนั้นก็จะมีการตรวจสอบความถูกต้องของ ข้อมูลด้วย ถ้าเกิดผิดพลาด TCP ปลายทาง ก็จะขอไปยัง TCP ต้นทางให้ส่งข้อมูลมาใหม่


โปรโตคอลมาตรฐานของระบบเครือข่าย

การส่งข้อมูลผ่านในแต่ละเลเยอร์ แต่ละเลเยอร์จะทำการประกอบข้อมูลที่ได้รับมา กับข้อมูลส่วนควบคุมซึ่งถูกนำมาไว้ในส่วนหัวของข้อมูลเรียกว่า Header ภายใน Header จะบรรจุข้อมูลที่สำคัญของโปรโตคอลที่ทำการ Encapsulate เมื่อผู้รับได้รับข้อมูล ก็จะเกิดกระบวนการทำงานย้อนกลับคือ โปรโตคอลเดียวกัน ทางฝั่งผู้รับก็จะได้รับข้อมูลส่วนที่เป็น Header ก่อนและนำไปประมวลและทราบว่าข้อมูลที่ตามมามีลักษณะอย่างไร ซึ่งกระบวนการย้อนกลับนี้เรียกว่า Demultiplexing




ข้อมูลที่ผ่านการ Encapsulate ในแต่ละเลเยอร์มีชื่อเรียกแตกต่างกัน ดังนี้
  • ข้อมูลที่มาจาก User หรือก็คือข้อมูลที่ User เป็นผู้ป้อนให้กับ Application เรียกว่า User Data
  • เมื่อแอพพลิเคชั่นได้รับข้อมูลจาก user ก็จะนำมาประกอบกับส่วนหัวของแอพพลิเคชั่น เรียกว่า Application Data และส่งต่อไปยังโปรโตคอล TCP
  • เมื่อโปรโตคอล TCP ได้รับ Application Data ก็จะนำมารวมกับ Header ของ โปรโตคอล TCP เรียกว่า TCP Segment และส่งต่อไปยังโปรโตคอล IP
  • เมื่อโปรโตคอล IP ได้รับ TCP Segment ก็จะนำมารวมกับ Header ของ โปรโตคอล IP เรียกว่า IP Datagram และส่งต่อไปยังเลเยอร์ Host-to-Network Layer
  • ในระดับ Host-to-Network จะนำ IP Datagram มาเพิ่มส่วน Error Correction และ flag เรียกว่า Ethernet Frame ก่อนจะแปลงข้อมูลเป็นสัญญาณไฟฟ้า ส่งผ่านสายสัญญาณที่เชื่อมโยงอยู่ต่อไป

เมื่อเซกเมนต์ CONNECT (SYN = “1” และ ACK = “0”) เดินทางมาถึง Entity TCP ที่โฮสต์ปลายทางจะค้นหาโพรเซสตามหมายเลขพอร์ตที่กำหนดในเขตข้อมูล Destination port ซึ่งถ้าหากไม่พบก็จะตอบปฏิเสธด้วยเซกเมนต์ที่มี RST = “1” กลับไปยังผู้ส่ง
เซกเมนต์ CONNECT ของผู้ส่งจะถูกส่งต่อไปยังโพรเซส ตามพอร์ตที่ระบุซึ่งอาจจะตอบรับหรือตอบปฏิเสธก็ได้ ถ้าโพรเซสนั้นต้องการสื่อสารด้วยก็จะส่งเซกเมนต์ตอบรับกลับไป รูปที่ 6-1 แสดงลำดับขั้นตอนการส่ง TCP เซกเมนต์ในการสร้างการเชื่อมต่อในสภาวะปกติระหว่างผู้ส่งและผู้รับ
ในกรณีที่โฮสต์สองแห่งพยายามสร้างการเชื่อมต่อระหว่างซ็อคเก็ตคู่เดียวกันจะเกิดเป็นลำดับขั้นตอนแสดงในรูปที่ 6-2 ผลสุดท้ายจะมีการเชื่อมต่อเกิดขึ้นเพียงหนึ่งช่องทางเท่านั้นเนื่องจากการเชื่อมต่อในแต่ละช่องทางจะถูกกำหนดขึ้นโดยใช้หมายเลขซ็อคเก็ตผู้ส่งและผู้รับ ถ้าการเชื่อมต่อลำดับแรกสำเร็จก็จะถูกบันทึกไว้ในตารางการสื่อสาร เช่น (x, y) ถ้าการเชื่อมต่อลำดับที่สองสำเร็จในเวลาต่อมา ข้อมูลนี้ก็จะถูกบันทึกไว้ที่เดียวกันคือ (x, y)
ขั้นตอนในการสร้างการเชื่อมต่อและการยกเลิกสามารถเขียนอธิบายด้วยไฟไนท์สเตทแมชชีนที่มีการทำงาน 11 สถานะ ดังแสดงในตารางข้างล่าง ในแต่ละสถานะจะมีเหตุการณ์บางอย่างที่เป็นไปได้ซึ่งจะได้รับการตอบสนองด้วยการกระทำที่เหมาะสม ในทางตรงกันข้าม เหตุการณ์ที่เป็นไปไม่ได้จะกลายเป็นข้อผิดพลาดที่จะต้องรายงานให้ทราบ
การเชื่อมต่อเริ่มต้นจากสถานะ CLOSED เมื่อเรียกใช้บริการ LISTEN หรือ CONNECT ก็จะมีการเปลี่ยนสถานะไปจากเดิม และถ้าอีกฝ่ายตองการเชื่อมต่อด้วย การเชื่อมต่อก็จะเกิดขึ้นและย้ายไปอยู่ในสถานะ ESTABLISHED คือการเชื่อต่อสมบูรณ์ และเมื่อยกเลิกการติดต่อก็จะกลับไปสู่สถานะ CLOSED อย่างเดิม
           
Three-way Handshake เป็นวิธีการส่งแพ็กเก็ตที่สามารถช่วยแก้ปัญหาในเรื่องแพ็กเก็ตซ้ำซ้อนได้ดี แต่วิธีนี้จำเป็นจะต้องสร้างช่องสื่อสารให้ได้ก่อนที่จะเริ่มรับ-ส่งข้อมูล อย่างไรก็ตาม แพ็กเก็ตควบคุมที่ใช้ในการต่อรองค่าตัวแปรสำหรับการสื่อสารต่างๆ อาจเกิดการตกค้างอยู่ในระบบได้ ทำให้การกำหนดค่าหมายเลขลำดับมีปัญหาไปด้วย เช่นการสร้างช่องสื่อสารระหว่างโฮสต์1 และ โฮสต์2 เริ่มจาก โฮสต์1 ขอเริ่มการเชื่อต่อด้วยการส่งแพ็กเก็ต CR (Connection Request) ไปยังโฮสต์2 ซึ่งจะมีค่าตัวแปรต่างๆสำหรับการสื่อสารรวมทั้งหมายเลขลำดับและหมายเลขช่องสื่อสารไปด้วย ผู้รับคือโฮสต์2 ก็จะส่ง ACK (Acknowledge) กลับมายังโฮสต์1 แต่ถ้าแพ็กเก็ต จากผู้ส่งเกิดสูญหายระหว่างทางและสำเนาแพ็กเก็ตที่ยังตกค้างอยู่ระบบเกิดเดินทางไปถึงผู้รับในภายหลังก็จะทำให้การสร้างช่องสื่อสารใช้การไม่ได้เนื่องจากมีค่าตัวแปรต่างๆไม่ตรงกัน
การใช้ Three-way handshake เป็นการไม่บังคับให้ผู้ส่งและผู้รับข้อมูลจะต้องกำหนดค่าเริ่มต้นของหมายเลขลำดับเป็นเลขเดียวกัน ทำให้สามารถนำวิธีนี้มาใช้ร่วมกับวิธีการจัดจังหวะการทำงานให้พร้อมกัน (Synchronization) แบบต่างๆได้ แทนที่จะเป็นการใช้วิธีการบันทึกเวลา ดังรูปที่ 7-1 แสดงขั้นตอนการเริ่มต้นการทำงานจากโฮสต์ 1 ไปยังโฮสต์ 2 สมมุติให้โฮสต์ 1 เลือกหมายเลขลำดับเป็น “x” และส่งแพ็กเก็ต CONNECTION REQUEST ไปยังโฮสต์ 2 โฮสต์ 2 ตอบรับด้วยแพ็กเก็ต CONNECTION ACCEPTED ซึ่งจะยอมรับหมายเลขลำดับ “x” พร้อมกับประกาศหมายเลขลำดับ “y” ที่เป็นของตนเอง จากนั้นโฮสต์ 1 ก็จะตอบรับค่าตัวเลือกของโฮสต์ 2 ผ่านทางเขตข้อมูล
สมมติว่าได้เกิดปัญหาการสูญหายของแพ็กเก็ตในขณะที่สำเนาแพ็กเก็ตที่ค้างในระบบเดินทางไปถึงผู้รับแทน สำเนาแพ็กเก็ตเก่าที่พึ่งจะเดินทางไปถึงโฮสต์ 2 โดยที่โฮสต์ 1 ไม่ทราบ โฮสต์ 2 ก็จะทำงานตามปกติคือจะตอบรับด้วยการส่งแพ็กเก็ต CONNECTION ACCEPTED TPDU กลับมา ที่โฮสต์ 1 ซึ่งโฮสต์1 จะสามารถตรวจสอบได้ว่า หมายเลขลำดับโฮสต์2 ตอบกลับมานั้นเป็นหมายเลขลำดับที่ได้เลิกใช้ไปแล้ว จึงมีการส่งแพ็กเก็ต REJECTกลับมายังโฮสต์ 2 เพื่อบอกยกเลิกการทำงาน จะเห็นว่าวิธีการนี้อาศัยการสื่อสารผ่านแพ็กเก็ต 3 ตัวซึ่งเป็นที่มาของคำว่า การจับมือร่วมสามขั้นตอนผลสุดท้าย ทั้งโฮสต์ 1 และโฮสต์ 2 ก็จะไม่มีการสร้างช่องสื่อสารขึ้นมาจากข้อมูลในสำเนาแพ็กเก็ตเก่าแต่อย่างใด

นางสาววิชาดา ชัยปฐวี 5307465


TCP segment structure (โครงสร้างของ TCP)






มีรายละเอียดังนี้


Source Port Number

หมายถึง พอร์ตที่โฮสต์ต้นทางใช้ในการสื่อสารกันของเซสชั่นนี้ และTCP/IP จะใช้พอร์ตนี้ตลอดไป โดยทั่วไปพอร์ตนี้จะเรียกว่า "ไคล์เอนต์พอร์ต" คือ พอร์ตที่ไคลเอนต์เปิดขึ้นมาเพื่อรอการตอบรับจากเซิร์ฟเวอร์ ไคลเอนต์พอร์ต จะมีหมายเลขไม่แน่นอนและเปลี่ยนไปทุกครั้งที่มีการเริ่มการเชื่อมต่อใหม่เป็นพอร์ตที่ถูกเปิดไว้ในระยะเวลาสั้นๆ ค่าที่เป็นไปได้ของพอร์ตนี้ขึ้นอยู่กับการจัดสรรของระบบปฏิบัติการ ในการกำหนดขอบเขตของพอร์ตเหล่านี้ส่วนใหญ่จะมีค่าอยู่ในช่วง 1024 - 5000


Destination Port Number

หมายถึง หมายเลขพอร์ตบนโฮสต์ปลายทางที่โฮสต์ต้นทางต้องการติดต่อด้วย โดยนัยแล้วจะหมายถึง แอพพลิเคชั่นที่ให้บริการอยู่พอร์ตนั้นที่โฮสต์ปลายทางนั่นเอง พอร์ตนั้นจะเรียกอีกอย่างว่า "เซิร์ฟเวอร์พอร์ต"หมายเลขพอร์ตที่เปิดไว้จะขึ้นอยู่กับแอพพลิเคชั่นที่ให้บริการ โดยทั่วไปแอพพลิเคชั่นแต่ละประเภทจะมีหมายเลขพอร์ตเป็นมาตรฐานสำหรับให้ไคลเอนต์ได้เรียกใช้บริการ




Sequence Number

เป็นฟิลด์ที่ระบุถึงหมายเลขลำดับที่ใช้อ้างอิงในการสื่อสารข้อมูลแต่ละครั้ง เพื่อให้ทั้ง 2 ฝ่ายจะได้รับทราบตรงกันว่าเป็นข้อมูลของชุดใด การนำไปใช้งานจะได้ไม่ปะปนกัน และมีลำดับที่ถูกต้อง เนื่องจากการสื่อสารข้อมูลผ่าน TCP นั้นจังหวะและลำดับเป็นส่วนสำคัญของโปรโตคอลไม่ได้น้อยไปกว่าข้อมูลใน TCP Header รวมไปถึงการที่ข้อมูลในแต่ละ TCP Segment อาจจะถูกทำการแฟรกเมนต์ในเลเยอร์ของ IP ถัดลงไปทำให้ข้อมูลถูกแบ่งออกและส่งไปในลำดับที่ไม่เรียงกัน หากไม่มีจุดอ้างอิงของข้อมูลก็จะไม่สามารถอ่านข้อมูลกลับใหม่ได้อย่างสมบูรณ์และถูกต้อง การส่งข้อมูลและการตอบรับจะใช้ฟิลด์นี้เป็นตัวยืนยันระหว่งกันเสมอ



Acknowledge Number

ทำหน้าที่เช่นเดียวกับ Sequence Numbe ต่างกันตรงที่เป็น Sequence Number ซึ่งในการตอบรับกล่าวคือ เนื่องจาก Sequence Number ที่ใช้ในการอ้างอิงนั้นผู้ที่เร่มส่งข้อมูลจะเป็นผู้กำหนดเลขขึ้นมาและส่งไปพร้อมกับการสร้างการเชื่อมต่อครั้งใหม่แต่สำหรับฝ่ายที่ถูกติดต่อก็จำเป็นต้องกำหนดหมายเลขสำหรับใช้อ้างอิง ในการตอบรับเช่นกัน ค่าที่อยู่ใน ACK Number ก็คือหมายเลขที่ใช้อ้างอิงในการตอบรับนี้






Header Length

โดยปกติความยาวของ TCP Header จะเท่ากับ 20 ไบต์ แต่ถ้าหากมีการใช้ Option อาจจะทำให้ขนาดของ Header ยาวขึ้นตามข้อมูลที่ต้องเพิ่มมาจาก Option นั้น แต่ทั้งหมดแล้วจะไม่เกิน 60 ไบต์ เป็นข้อมูลในระดับบิตที่ใช้เป็นตัวบอกคุณสมบัติของ TCP Segment ที่กำลังส่งอยู่นั้น และใช้เป็นตัวควบคุมจังหวะ การรับส่งข้อมูลด้วย Flag ทั้งหมดมีอยู่ 6 บิต แต่ละบิตจะมีชื่อและมีความหมาย ดังนี้


Flag Detail

URG ใช้บอกความหมายว่าเป็นข้อมูลด่วน และมีข้อมูลพิเศษมาด้วย

ACK แสดงว่าข้อมูลในฟิลด์ Acknowledge Number นำมาใช้งานได้

PSH เพื่อแจ้งให้ผู้รับข้อมูลทราบว่า ควรจะส่งข้อมูล Segment นี้ไปยัง Process ที่

กำลังรออยู่ทันที
RST ใช้ในกรณีที่เกิดการสับสนขึ้นด้วยเหตุผลต่างๆ เช่น โฮสต์มีปัญหา

SYN ใช้ในการเริ่มต้นขอติดต่อกับปลายทาง

FIN ใช้ส่งเพื่อแจ้งให้ปลายทางทราบว่ายุติการติดต่อ




Window Size

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



Check sum

คือ ฟิลด์ที่ใช้ในการตรวจสอบความถูกต้องของข้อมูลใน TCP Segment ล่าสุดที่อยู่ในโหมด Urgent



Urgent pointer

คือ ข้อมูลที่เพิ่มเติมซึ่งจะอยู่ใน TCP Header เมื่อมีการตั้งค่า Option บางอย่าง ต้องการข้อมูลเพิ่มเติม ซึ่งไม่มีใน TCP Header เช่น MSS, Strict Route