Appendix
TCP
PROTOCOL
IP PROTOCOL
TCP
Transmission Control Protocol (TCP) :
จะใช้ลำดับของสัญญาณตอบรับ (acknowledgment)
ด้วยการส่ง packet ใหม่เมื่อจำเป็น เพื่อการให้บริการการเชื่อมต่อเสมือน
และการส่งสัญญาณที่สามารถเชื่อถือได้ว่าถูกต้อง
Source port: หมายเลขของพอร์ต
ต้นทาง
Destination port: หมายเลขของพอร์ต ปลายทาง
Sequence number: คือลำดับของหมายเลข ซึ่งเป็นเลขฐาน
8 ชุดแรก(ยกเว้น SYN จะถูกนำมาแสดง) ถ้า SYN ถูกนำมาแสดงด้วย
sequence number: จะหมายถึง ลำดับหมายเลขในการเริ่มกำหนดค่า
(ISN : initial sequence number) และเลขฐาน 8 ชุดแรกก็จะเป็น ISN + 1
Acknowledgment number: หาก ACK control ถูกตั้งค่า
ข้อมูลส่วนนี้จะประกอบไปด้วย ค่าของ sequence number ซึ่งผู้ส่งได้คาดไว้ว่าจะได้รับเป็นตัวต่อไป
เมื่อมีการติดต่อกันเกิดขึ้น ค่านี้จะถูกส่งไปเสมอ
:Data offset มีจำนวน 4 บิต ใน 32 บิต ของส่วนหัวของ
TCP ซึ่งจะบ่งบอกถึงจุดเริ่มต้นของข้อมูล ส่วนหัวของ TCP จะเป็นเลขจำนวนเต็ม
32 บิต
Reserved มีจำนวน 6 บิต ซึ่งสำรองไว้ใช้ในอนาคต.
มีค่าเป็น 0
Control bits: มีจำนวน 6 บิต
U (URG) Urgent pointer field significant.
A (ACK) Acknowledgment field significant.
P (PSH) Push function.
R (RSH) Reset the connection.
S (SYN) Synchronize sequence numbers.
F (FIN) No more data from sender.
Window: มีจำนวน 16 บิต เป็นเลขฐาน 8 ซึ่งผู้ส่งของส่วนนี้กำลังรับ
การเริ่มต้นด้วยเลขฐาน 8 บ่งบอกถึงส่วนของ Acknowledgment
Checksum: มีจำนวน 16 บิต ซึ่งผลของการบวกของ
16 บิต ใน ส่วนหัว และ text ด้วยวิธี 1's complement
Urgent Pointer: มีจำนวน 16 บิต ส่วนนี้มีไว้ติดต่อสื่อสารกับค่าของ
urgent pointer ปัจจุบัน ด้วยค่า offset ที่เป็น บวก จาก sequence number
ใน segment นี้. urgent pointer จะชี้ไปที่ sequence number ของเลขฐาน 8
ที่มาตาม urgent data
Options: Options อาจถูกส่งไปส่วนท้ายของ TCP
header Options จะถูกรวมใน checksum
IP (INTERNET
PROTOCOL)
เป็น PROTOCAL หนึ่งใน PROTOCAL TCP/IP ที่ทำหน้าที่ในการ
ROUTE DATAGRAM จาก HOST หนึ่งไปยังอีก HOST หนึ่ง โดยที่ IP จะสร้าง HEADER
เพิ่มจาก UPPER-LAYER ที่ส่งมาให้ (เช่น TCP) โดยที่ IP FRAME HEADER จะประกอบด้วย
ROUTING INFORMATION และ CONTROL INFORMATION สำหรับในการส่งแต่ละ DATAGRAM
โดยมีรายละเอียดดังนี้
VERSION (4 BITS) จะบอกถึง VERSION NUMBER ของ
PROTOCOL เพื่อที่จะได้ทราบถึง FORMAT ของ INTERNET HEADER
IHL (4 BITS) INTERNET HEADER LENGTH เป็นความยาวของ
INTERNET HEADER เพื่อที่จะได้ทราบถึงจุดเริ่มต้นของ DATA โดย 1 HEADER จะยาว
32 BITS และค่าต่ำสุดของ IHL จะเท่ากับ 5 นั่นคือจะต้องมี HEADER LENGTH
เท่ากับ 5 * 32 = 160 BITS (20 OCTETS) ซึ่งก็คือไม่มีส่วนของ OPTION + PADDING
นั่นเอง
TYPE OF SERVICE ( 8 BITS) จะบอกถึงระดับคุณภาพของบริการที่ต้องการ
เนื่องจาก NETWORK จะให้บริการตามลำดับความสำคัญที่เหนือกว่า ในกรณีที่ช่วงเวลานั้นมี
LOADING สูง เพื่อเป็นแนวทางในการตัดสินใจ ROUTING เช่น ถ้า ROUTER มีหลายทางเลือกที่จะไปที่
NEXT HOP มันจะเลือก NETWORK ที่มี DATA RATE สูง ถ้า THROUGHPUT OPTION
เป็น HIGH THROUGHPUT ซึ่ง TYPE OF SERVICE สามารถกำหนดค่าต่างๆได้ดังนี้
BIT 0 - 2 : PRECEDENCE
111 : NETWORK CONTROL
110 : INTERNETWORK CONTROL
101 : CRITIC / ECP 100 : FLASH OVERRIDE
011 : FLASH
010 : IMMEDIATE (ตัวที่ได้รับสิทธิที่ดีกว่า
IP จะให้ความสำคัญกว่า)
001 : PRIORITY
000 : ROUTINE
BIT 3 = DELAY 0 : NORMAL DELAY
1 : LOW DELAY (ลด DELAY ที่ DATAGRAM นั้นผ่าน)
BIT 4 = THROUGHPUT
0 : NORMAL THROUGHPUT
1 : HIGH THRUOGHPUT ( ต้องการ THROUGHPUT ที่สูงที่สุด)
BIT 5 = RELIABILITY 0 : NORMAL RELIABLITY
1 : HIGH RELIABILITY (ลดความน่าจะเป็นที่ DATAGRAM
นั้นจะสูญหายหรือถูกทำลาย)
BIT 6- 7 : RESERVED FOR FUTURE USE
TOTAL LENGTH ( 16 BITS) บอกถึงความยาวของข้อมูล
(รวมทั้ง INTERNET HEADER และ DATA) หน่วยเป็น BYTES (OCTETS) โดยสามารถมีความยาวได้ถึง
65,535 BYTES ซึ่งจริงๆ แล้วจะไม่มี HOST หรือ NETWORK ใด จะใช้ถึงขนาดนั้น
HOST ส่วนมากจะเตรียมไว้ที่ 576 BYTE
IDENTITICATION (16 BITS) IDENTIFYING VALUE
เป็น SEQUENCE NUMBER ที่ถูกกำหนดโดยผู้ส่งซึ่ง NUMBER นี้จะต้อง UNIQUE
เพื่อที่จะได้สามารถรวบรวม FRAGMENTS ของ DATAGRAMS ได้
FLAG (3 BITS) เป็น CONTROL FLAG ที่เกี่ยวกับ
FRAGMENT ประกอบด้วย 3 BITS คือ
BIT 0 : RESERVED ไว้ (และต้องมีค่าเป็น 0)
BIT 1 : DON'T FRAGMENT BIT
ถ้ามีค่า = 0 : MAY FRAGMENT
ถ้ามีค่า = 1 DON'T
FRAGMENT
แต่ละ NETWORK ในINTERNET จะมี MAXIMUM PACKET
SIZE ต่างกัน ดังนั้น ROUTER อาจจะต้องทำการแบ่ง DATAGRAM ที่เข้ามาออกเป็นส่วนย่อยๆ
เรียกว่า FRAGMENTS ก่อนที่จะส่งต่อไปยัง NETWORK ถัดไปดังนั้น ถ้า BIT
นี้มีค่า = 1 จะไม่ให้มีการแบ่ง DATAGRAM นั้นเนื่องจากที่ปลายทางไม่มีความสามารถในการรวบรวม
FRAGMENT นอกจากนี้ถ้า DATAGRAM นั้นใหญ่กว่า MAXIMEM SIZE ของ ROUTE NETWORK
มันจะถูกยกเลิกไป (DATAGRAM FRAGMENT จะถูกรวบรวมที่ DESTINATION ไม่ใช่ทำที่
ROUTER)
BIT 2 : MORE FRAGMENT BIT (ใช้ในFRAGMENTATION
และ REASSMBLY)
ถ้ามีค่า = 0 : LAST FRAGMENT
ถ้ามีค่า = 1 : MORE FRAGMENTS
FRAGMENT OFFSET (13 BITS)จะบอกว่า
FRAGMENT นี้อยู่ที่ส่วนใดของ DATAGRAM โดยวัดเป็น 8 BYTES (64 BITS) ซึ่ง
FIRST FRAGMENT จะมี OFFSET = 0
TIME TO LIVE (TTL) (8 BITS) จะระบุถึงเวลาที่มากที่สุดที่
DATAGRAM นั้นจะอยู่ใน INTERNET SYSTEM (วัดเป็นวินาที) ซึ่ง TTL จะถูกลดค่าลงไปทุกๆ
ROUTER ที่ PROCESS DATAGRAM นั้น (HOP COUNT) และเมื่อ TTL มีค่าเป็น
0 นั่นคือมันส่งไปไม่ถึงปลายทาง มันจะถูกทำลายไป ดังนั้น TTL มักจะมีค่าเท่ากับ
LIMIT ของเวลาที่ DATAGRAM นั้นจะอยู่ได้
PROTOCOL (8 BITS) จะระบุถึง PROTOCAL LEVEL
ถัดไปที่สูงกว่าที่จะใช้ส่วนที่เป็น DATA
HEADER CHECK SUM (16 BITS) CHECK SUM สำหรับ
HEADER เท่านั้น เนื่องจากบาง HEADER FIELD มีการเปลี่ยนแปลงระหว่างการส่ง
เช่น TTL จึงมีการ RECOMPUTED และ ตรวจสอบใหม่ ณ.จุดที่ INTERNET HEADER
ถูก PROCESSED ในแต่ละ ROUTER เพื่อเป็นการตรวจสอบหาข้อผิดพลาด
SOURCE ADDRESS/DESTINATION ADDRESS
NAME : ระบุถึง OBJECT ที่ต้องการ
ADDRESS : ระบุถึงตำแหน่งที่อยู่ของ OBJECT
นั้น
ROUTE : ระบุถึงวิธีที่จะไปให้ถึง OBJECT
นั้น
PROTOCOL LEVEL ที่สูงกว่า IP จะเป็นผู้ที่ทำการ
MAPPING จาก NAMES มาเป็น ADDRESS ให้ จากนั้น INTERNET
MODLUE ก็จะ MAPS INTERNET ADDRESS เป็น
LOCAL NET ADDRESS สุดท้าย ใน LEVELที่ต่ำกว่า (เช่น GATEWAYS) ก็จะทำการ
MAPPING จาก LOCAL NET ADDRESS เพื่อที่จะทำการ ROUTES ออกไปอีกที
OPTION + PADDING อาจจะมีหรือไม่มีใน DATAGRAM
ก็ได้ เช่นอาจจะมี SECRUITY OPTION สำหรับ DATAGRAMS นั้นๆ
DATA IP DATA หรือ HIGHER LAYER PROTOCOL
HEADER
|