tcp_ip
TRANSCRIPT
1
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Data link layerAddress Resolution Protocol (ARP) AndReverse Address Resolution (RARP) 0 15 16 31
Hardware Type (16) Protocol Type (16)HLEN(8) PLEN(8) Operation
Sender Hardware AddressSender Protocol Address
Hardware Address TargetTarget Protocol Address
รายละเอียด• Hardware Type 16 bit มีคา 1 หมายถึง Hardware type เปน Ethernet 4 หมายถึง Hardware type เปน Pronet , Token ring
5 หมายถึง Hardware type เปน Chaos6 หมายถึง Hardware type เปน เครือขาย IEEE 8027 หมายถึง Hardware type เปน ArcNet12 หมายถึง Hardware type เปน Local Talk
• Protocol Type 16 bit กําหนดชนิดของ Protocol ท่ีรองขอใช ARP• HLEN 8 bit กําหนดขนาดของ Hardware Address เปนจํานวน Byte ปกต ิที่ใชคือ 6 ซ่ึงเทากับขนาด 6
Byte ของ Ethernet Hardware Adderss• PLEN 8 bit กําหนดขนาดของ Network Address เปนจํานวน Byte ปกต ิที่ใชคือ 4 ซึ่งเทากับขนาด 4 Byteของ IP Address
• Operation 16 bit มีคา 1 หมายถึง ARP Request2 หมายถึง ARP Reply3 หมายถึง RARP Request4 หมายถึง RARP Reply
• Sender Hardware Address n bit ตําแหนงที่อยูของ Hardware ท่ีสง• Sender Protocol Address m bit ตําแหนงที่อยูของ Protocol ท่ีสง• Target Hardware Address n bit ตําแหนงที่อยูของ Hardware ที่รับ• Target Protocol Address m bit ตําแหนงที่อยูของ Protocol ที่รับ
2
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Serial Lines IP (SLIP)การติดตอส่ือสารของ TCP/IP สามารถทําไดบนเครื่อขายหลายๆ แบบ ทั้ง IEEE 802.3 ( ethernet ),
802.5 (token ring), LAN's, X.25 lines, satellite links, and serial lines (การส่ือสารผานทางสายส่ือสารแบบอนุกรม) ซ่ึงก็มีมาตรฐานการสง IP แพคเก็จผาน network ตางๆ เหลานี้ ยกเวนก็แต การส่ือสารผานทางสายส่ือสารแบบอนุกรม SLIP เปนมาตรฐานโดยพฤตินัยของ การสง IP แพคเก็จผานทางสายส่ือสารแบบอนุกรม ถึงแมจะไมใชมาตรฐานจริงๆ ก็ตาม
SLIP ProtocolSLIP จะมีอักขระพิเศษอยู 2 ตัวไดแก END มีคาเทากับ 0xC0 และ ESC ซ่ึงมีคาเทากับ 0xDB (เปนคนละ
ตัวกับ Esc ใน ASCII) ลักษณะ Frame ของ SLIP จะข้ึนตนดวย C0 และปดดวย C0 เสมอ ดังรูป
0xC0 ------------------------------data----------------------------- 0xC0
แตถามีขอมูลที่มีคาเทากับ 0xC0 อยูใน Data ก็จะใชรหัส Escape เปนตัวหลบหลีก โดยให 0xDB 0xDC แทน0xC0 และให 0xDB0 xDD แทน 0xDB ที่พบใน Data ดังรูป
ถามีขอมูล0xC0 --------0xC0-------- 0xC0
จะสงเปน0xC0 --------0xDB0xDC-------- 0xC0
และถามีขอมูล0xC0 --------0xDB-------- 0xC0
จะสงเปน0xC0 --------0xDB0xDD-------- 0xC0
เนือ่งจากไมไดเปนมาตรฐานจึงไมไดมีการกําหนด ขนาดของแพคเก็จไว แตขนาดของแพคเก็จที่กําหนดโดยBerkeley UNIX SLIP drivers เทากับ 1006 ไบต รวม IP Header และ Header ในชั้น transport
3
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Network LayerBootstrap Protocol ( BOOTP ) 0 15 16 31
OP (1) Htype (1) HLEN (1) Hops (1)Xid (4 Byte )
Secs ( 2 Byte ) Flags ( 2 Byte )Ciaddr ( 4 bytes )Yiaddr ( 4 bytes )Siaddr ( 4 bytes )Giaddr ( 4 bytes )Chaddr (16 bytes)
รายละเอียด• Op 1 byte ชนิดของ ขอความท่ีสง มีคา 1 หมายถึง BOOTREQUEST
2 หมายถึง BOOTREPLY• Htype 1 byte ชนิดของ Hardware• HLEN 1 byte ความยาวของ Hardware Address• Hops 1 byte สําหรับ Client ปกต ิGateway เปนตัวกําหนด• Xid 4 byte Transaction ID เปนคาที่ Random ใหตัวท่ีขอ Request• Secs 2 byte Client เปนตัวกําหนดวาเวลาผานไปก่ีวินาทีจึงจะ Boot เสร็จ• Ciaddr 4 byte สง Client IP address เม่ือมีการ bootrequest กําหนดโดย Client• Yiaddr 4 byte “Your” ( Client ) IP address กําหนดโดย Server เมื่อ Client ไมรู Address ของตัวเอง หรือ
Ciaddr = 0• Siaddr 4 byte Server IP address มีเม่ือมีการ Bootreply• Giaddr4 byte Gateway IP address• Chaddr 16 byte Client hardware address กําหนดโดย Client
4
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
IP PROTOCOLIP datagrams 0 15 16 31
Vers : 4 IHL : 4 TOS : 8 Total Length : 16Identification : 16 Flags : 3 Frag offset : 13
Time to live : 8 Protocol : 8 Header checksum : 16Source address : 32
Destination address : 32
Options and padding : 32
Data:
IP header details• Vers – version 4 bits แสดงรุนของ Protocol• IHL - Internet header length 4 bits บอกความยาวเฉพาะสวน header ของ datagram
ซึ่งนับจาก Version จนถึง byte สุดทายกอนที่จะถึงขอมูล
• TOS - Type of Service 8 bits ใชกําหนดรุปแบบการใหบริการตามลักษณะProtocol application
3 1 1 1 1 1Procedence D T R C Unused
รูป Format ของ TOS field
Procedence 3 bits ใชกําหนดลําดับความสําคัญของ datagramซ่ึงมีได 8 ระดับ router จะตรวจคาน้ีเพ่ือใหบริการกับ datagram ท่ีมีลําดับความสําคัญสูงกวากอน
บิต D มีคา ‘1’ หมายถึง ตองการเสนทางที่ม ี delay time ตํ่าที่สุดเทาที ่ router จะหาใหได
บิต T มีคา ‘1’ หมายถึง ตองการเสนทางท่ีมีความสามารถสงผานขอมูลไดปริมาณมาก ๆ ในหนึ่งหนวยเวลา
บิต R มีคา ‘1’ หมายถึง ตองการเสนทางหรือบริการท่ีมีความเช่ือถือไดสูง
5
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
บิต C มีคา ‘1’ หมายถึง ตองการเสนทางที่มีคา parameter ของ “cost” ตํ่า (ในสวนของการหาเสนทางนั้น cost ตํ่าหมายถึงเปนเสนทางที่ด ี)
• Total Length 16 bits บอกถึงความยาวทั้งหมดของ datagram ( รวมสวนหัวและขอมูล )
• Identification 16 bits ใชเปนหมายเลขประจาํช้ิน datagram หากตองการมีการ fragment ก็จะใชเปนคาเพ่ือบอกวาเปนdatagram ชุดเดียวกัน สถานีท่ีสราง datagram จะเพ่ิมคาน้ีคร้ังละ 1 ใหแตละ datagram ใหมที่สงออกไป
• Flags 3 bits ใชควบคุมและแสดงรูปแบบของ fragment ดังรูป
0 D M
สงวนไวโดยมีคาเปน 0 0 = fragment ได 0 = fragment สุดทาย 1 = don’t fragment 1 = ยังมี fragment อ่ืน
• Fragment Offset 13 bits router จะ fragment ขอมูลออกเปน block แตละBlock ตองเปนจํานวนเทาของ 8 byte ดังนั้น blockที่เล็กที่สุดคือ 8 byte ( เฉพาะขอมูลโดยไมรวมheader 20 byte ) ฟลด Fragment Offset จะใชบอกตําแหนง offset ของขอมูลแตละ fragment อางอิงจากขอมูลเดิม
• Time to live 8 bits ใชกําหนดจํานวน router ที่ datagram จะเดินทางผานได หรืออีกนัยหนึง่คือกําหนดอายุของ datagramซ่ึงมีคาไดสูงสุดตามขนาด field คือ 28 - 1 หรือ 255สถานีท่ีสง datagram จะตั้งคา TTL ไวที่คาใดคาหนึ่งrouter ที่รับ datagram จะปรับลดคานี้ลง 1 หนวย หากลดลงเปน 0 router จะท้ิง datagram น้ันไปแบะรายงานกลับไปดวยโดยใช ICMP protocol
• Protocol 8 bits บอกชนิด protocol ระดับบนที ่ encapsulate อยูในdatagram ซ่ึงจะใชประโยชนสําหรับใหสถานีปลายทางและสามารถสงผานขอมูลไปยัง protocol ระดับบนไดถูกตองเชน 1 ICMP
6 TCP8 EGP
6
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Header checksum 16 bits ใชตรวจสอบความผิดพลาดเฉพาะสวนหัวของdatagram โดยไมเก่ียวกับสวนขอมูล ทั้งนี้เพื่อลดภาระการคํานวณเพราะคาน้ีตองคาํนวณใหมทุกคร้ังท่ีdatagram เดินทางผาน router การคํานวณคาchecksum จะเริ่มตนดวยการปลอยใหฟลด checksumเปน 0 กอน จากนั้นจึงบวกคา header คร้ังละ 16 bitแบบ 1’s complement
• Source IP address 32 bits กําหนด IP address ตนทาง• Destination IP address 32 bits กําหนด IP address ปลายทาง• Option ไมคงท่ี กําหนดขาวสารเพ่ิมเติมสําหรับ datagram คาที่ใช
ในปจจุบัน จะเก่ียวของกับการรักษาความปลอดภัยการบันทึกผลลัพธจากการทํางานของคําส่ัง tracerouteหรือ ping
• Padding 0 – 3 bytes ผนวกเพ่ิมเพ่ือทําใหจํานวน byte ของ option รวมกับ padding เปนจํานวนเทาของ 32 bit ซึ่งชวยใหสามารถคํานวณตําแหนงเร่ิมตนของขอมูลได
• Data ไมคงที่ เปนขอมูลจาก protocol ระดับบน
7
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
ICMP PROTOCOLICMP datagrams 0 7 8 15 16 31
Type Code Checksum
Contents
IP Header details• Type 8 bits ใชกําหนดท้ังคาความผิดพลาดและการรายงาน
สถานะ การใชงานในปจจุบันมีทั้งหมด 15 ประเภท• Code 8 bits รหัสความผิดพลาดยอย• Checksum 16 bits คาผลบวกแบบ 1’S complements สําหรับใชตรวจ
สอบความผดิพลาด ใชวิธีการคํานวณคาผลรวมของทั้ง Type, Code และ Contents
• Contents ไมคงท่ี ฟลดน้ีใชบรรจขุอมูลขาวสารเพ่ิมเติมเพ่ือแจงกลับซ่ึงจะขึ้นอยูกับคา type และ code
Type ความหมาย การใชงาน0 Echo reply แจงตอบรับกลับ3 Destination unreachable ไมสามารถติดตอปลายทางได4 Source quench ใหตนทางลดระดับภาระงาน5 Redirect แจงเสนทางท่ีเหมาะสมกวา8 Echo request รองขอการตอบรับ9 Router advertisement Router แจงประกาศตัวเอง10 Router solicitation โฮสตตรวจหา router11 Time exceeded for datagram Datagram ใชเวลาเกินกําหนด12 Parameter problem on datagram มีปญหา parameter ใน datagram13 Time stamp request รองขอเวลาระบบ14 Time stamp reply แจงเวลาระบบกลับ15 Information request รองขอขาวสาร16 Information reply แจงขาวสารกลับ17 Address mask request รองขอ address mask18 Address mask reply แจง address mask กลับ
8
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
ประเภทความผิดพลาดของ ICMP
ICMP ชนิดตาง ๆ♦ ICMP ชนิด 0 และ 8
ICMP ชนิด 0 และ 8 ใชตรวจสอบวาสถานีหรือ router ปลายทางยังทํางานอยูหรือไม ตัวอยางการใชประโยชนจาก ICMP กลุมนี้คือ โปรแกรม ping
Ping จะสง ICMP ชนิด 8 เพ่ือสอบถาม ( request ) ไปยังสถานีหรือ router ท่ีตองการตรวจสอบและรอการตอบกลับ หากโฮสตหรือ router เปดใหบริการอยูก็จะตอบกลับโดยใชชนิด 0 ( reply )
0 7 8 15 16 31Type = 0, 8 Code = 0 Checksum
Identifier Sequence number
ขอมูลขนาดแปรเปลี่ยนได
ICMP datagram ชนิด 0 และ 8
• Identifier 16 bits กําหนดหมายเลขประจําชุด datagram• Sequence number 16 bits ใชบงบอกลําดับทีข่อง datagram ในชุด
♦ ICMP ชนิด 3 ไมสามารถตดิตอสถานีปลายทางหาก router ไมสามารถสง datagram ไปยัง router หรือ host ถัดไปได router จะตอบกลับดวย
ICMP ชนิด 3 และใสรหัสในฟลด code เพ่ือบอกสาเหตุของปญหา
0 7 8 15 16 31Type = 3 Code = 0 – 15 Checksum
ไมใชงาน ( มีคาเปน 0 )
Header IP + 64 bit แรกของขอมูล
ICMP datagram ชนิด 3
9
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Code ความผิดพลาด ความหมาย0 Network unreachable ไปไมถึงเครือขาย1 Host unreachable ไปไมถึง host2 Protocol unreachable ไปไมถึง protocol ปลายทาง3 Port unreachable ไปไมถึง port4 Fragmentation needed but the Do Not Fragment
bit was setจําเปนตองแบง datagram แตมีการกําหนดไมใหแบงแยก
5 Source route failed เสนทางท่ีกําหนดลมเหลว6 Destination network unknown ไมปรากฏเครือขายปลายทาง7 Destination host unknown ไมปรากฏ host ปลายทาง8 Source host isolated ( obsolete )9 Destination network administratively prohibited มีการปองกันไมใหเขาเครือขายปลายทาง10 Destination host administratively prohibited มีการปองกันไมใหเขา host ปลายทาง
Code ของ ICMP ชนิด 3
♦ ICMP ชนิด 4 source quenchRouter ท่ีตรวจพบวาเครือบายเกิดติดขัดจากปญหาการสง package มากผิดปกติ จะสง ICMP ชนิด 4
เพื่อให host ตอบสนองโดยลดอัตราสราง package ลงไป
0 7 8 15 16 31Type = 4 Code = 0 Checksum
ไมใชงาน ( มีคาเปน 0 )Header IP + 64 bit แรกของขอมูล
ICMP datagram ชนิด 4 - source quench
♦ ICMP ชนิด 5 - รองขอการเปลี่ยนทิศทาง 0 7 8 15 16 31
Type = 5 Code = 0 ChecksumIP address ของ router ท่ีเหมาะสมกวาHeader IP + 64 bit แรกของขอมูล
ICMP datagram ชนิด 5
10
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
♦ ICMP ชนิด 9 และ 10 - ตรวจหา routerสําหรับให host สรางตารางเลือกเสนทางโดยไมตองปรับต้ังโดยผูดูแลระบบ หลังจาก host บูตระบบ
ขึ้นมาแลวจะ broadcast ICMP ชนิด 10 เพื่อคนหา router ตัว router จะตอบกลับดวย ICMP ชนิด 9 เพื่อแจง IP address ประจําตัวกลับไป
0 7 8 15 16 31Type = 9 Code = 0 Checksum
Num of addr Addr entry size LifetimeRouter address(1)Preference level(1)Router address(2)Preference level(2)
…………ICMP datagram ชนิด 9
• Num of addr 8 bits แจง address กลับไดหลาย ๆ address• Add entry size8 bits กําหนดขนาดของ address ชุดหน่ึงๆ โดยนับเปนจํานวนเทาของ 32 bitคาปกติที่ใชคือ 2
• Lifetime 8 bits ตัวเลขกําหนดอายุการใชงานขอ ง address มีหนวยเปนวินาที
0 7 8 15 16 31Type = 10 Code = 0 Checksum
ไมไดใชงาน ( มีคาเปน 0 )ICMP datagram ชนิด 10
♦ ICMP ชนิด 11 - เกินกําหนดเวลาหาก router ลดคา TTL ( time to leave ) ใน datagram ลงเปน 0 ซ่ึงหมายถึง datagram อายุสิ
สุดลง router จะกําจัด datagram ออกไปและสง ICMP ชนิด 11 แจงแลับไปยังสถานีตนทางโดยให codeเทากัน 0
11
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
♦ ICMP ชนิด 12 - ปญหาพารามิเตอรหากพบความผิดพลาดท่ีสวนหัวของ IP datagram วามีความผดิปกติ
0 7 8 15 16 31Type = 12 Code = 0,1 Checksum
Pointer ไมไดใชงาน ( มีคาเปน 0 )Header IP + 64 bit แรกของขอมูล
ICMP datagram ชนิด 12
• Pointer 8 bits เปนตัวชี้ตําแหนง byte ของฟลดใน datagram ที่คาดวาจะเปนสาเหตุของความผิดพลาด
♦ ICMP ชนิด 13 และ 14 - ประทับเวลาใชสอบถามเวลาในเคร่ืองท่ีกําหนด สถานีตนทางท่ีตองการสอบถามเวลาจะสง ICMP ชนิด 13 และ
สถานีปลายทางจะตอบกลับดวย ICMP ชนิด 14
0 7 8 15 16 31Type = 13, 14 Code = 0 Checksum
Identifier SequenceOriginate time stampReceive time stampTransmit time stamp
ICMP ชนิด 13 และ 14
• Originate time stamp 31 bits คาเวลาท่ีสง datagram• Receive time stamp 31 bits เวลารับ datagram• Transmit time stamp 31 bits เวลาตอบกลับ
♦ ICMP ชนิด 15 และ 16 - รองขอขาวสารICMP ทั้ง 2 ชนิดนี ้ ใชสอบถามเลขเครือขายของ host ปลายทาง
12
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
♦ ICMP ชนิด 17 และ 18 - Address MaskICMP ทั้ง 2 ชนิดนี ้ ใชสอบถามคา subnet ในเครือขาย สถานีตนทางจะสง ICMP ชนิด 17 ไปยัง
router โดยตรงหรืออาศัยการ broadcast และสถานีปลายทางจะตอบกลับดวย ICMP ชนิด 18
0 7 8 15 16 31Type = 17, 18 Code = 0 Checksum
Identifier SequenceAddress mask
ICMP ชนิด 17 หรือ 18
อางอิงจาก : หนังสือ สถาปตยกรรมและโปรโตคอบ TCP/IPผูเขียน : อ. สุรศักด์ิ สงวนพงษ
13
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Border Gateway Protocol (BGP)รูปแบบ header
Marker Length Type 16 bytes 2 bytes 1 byte
รายละเอียด• Marker 16 bytes เปนคาท่ีผูรับสามารถทํานายไดวาหมายความวาอะไร• Length 2 bytes บอกขนาดของ message รวมท้ัง header ดวย• Type 1 byte มีคาเปน 1 หมายถึง Open
2 หมายถึง Update3 หมายถึง Notification4 หมายถึง KeepAlive
Referenceจาก http://www.protocols.com,RFC 165
14
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Exterior Gateway Protocal (EGP)รูปแบบ header0 15 16 31
EGP Version Type Code StatusChecksum Autonomous System number
Sequence number
รายละเอียด• EGP Version 1 byte บอก version ของ EGP• Type,Code,Status แบงเปนชุดๆตามคาของ Type ดังนี้
Type 3 Neighbor Acquisition MessagesCode 0 Request command
1 Confirm response 2 Refuse response 3 Cease command
4 Cease-ack responseStatus (see below) 0 unspecified
1 active mode 2 passive mode 3 insufficient resources 4 administratively prohibited 5 going down 6 parameter problem
7 protocol violation
Type 5 Neighbor Reachability MessagesCode 0 Hello command
1 I-H-U responseStatus 0 indeterminate
1 Up state2 Down state
15
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Type 2 Poll CommandCode 0
Status 0 indeterminate 1 Up state 2 Down state
Type 1 Update Response/IndicationCode 0Status 0 indeterminate
1 Up state 2 Down state 128 unsolicited message bit
Type 8 Error Response/IndicationCode 0
Status 0 indeterminate 1 Up state 2 Down state 128 unsolicited message bit
• Checksum 2 byte เปนตัวเลขแบบ one’s complement เริ่มคิดตั้งแต field EGP version ถาFrame ถูกตองคาท่ีไดจากการ Checksum ควรเปน 0
• Autonomous System Number 2 byte เปนคาประจํา Autonomous system• Sequence Number 2 byte เปนคาที่บอกวา Frame ที่สงไปเปน Frame ที่เทาไหร
Reference http://www.protocols.com, RFC 904
16
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Gateway to Gateway Protocal (GGP)รูปแบบ header0 15 16 31
Gateway Type Unused(0) Sequence Number
รายละเอียด• Gateway Type 1 byte 12 Routing update
2 Acknowledgments 10 Negative acknowledgments 8 Echo message 0 Echo reply
9 Network interface status• Sequence Number สําหรับระบุ Frame
ReferenceRFC 823
17
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Interior Gateway Random Protocal (IGRP)รูปแบบ header0 15 16 31
Version Opcode ChecksumFlags Sequence number
Acknowledge number Autonomous system numberType Length
รายละเอียด• Version 1 byte บอก version ของ• Opcode 1 byte 1 Update
2 Reserved3 Query4 Hello.5 IPX-SAP
• Checksum 2 byte คาท่ีใชในการตรวจสอบ Frame• Flags 1 byte คาที่ใชระบ ุstatus ตางๆ• Sequence number 2 byte ระบ ุFrame ท่ีสง• Acknowledge number 2 byte ระบ ุFrame ที่ Ack• Autonomous system number 2 byte คาที่ระบุ Autonomous system• Type 1 EIGRP Parameters
2 Reserved 3 Sequence.
4 Software version5 Next Multicast sequence
• Length 1 byte ระบุความยาวของ Frame รวมท้ัง header ดวย
Referencehttp://www.protocols.com
18
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Open Shortest Path First (OSPF)OSPF เปนโปรโตคอลหาเสนทางแบบโปรโตคอลภายในทีนิ่ยมใชกันอยางแพรหลาย เน่ืองจากสามารถ
ปรับเปล่ียนไปตามสภาพเครือขายไดอยางรวดเร็วและรองรับการทํางานกับเครือขายขนาดใหญได สงขอมูลเก่ียวกับทิศทางและลักษณะการเช่ือมตอระหวางกับโดยใช link-state
การทํางานของ OSPF โดยสรุป1. ตรวจหาเราเตอรอื่นที่อยูขางเคียง โดยสง hello packet ออกไปทางทุกลิงค เพ่ือทําใหทราบยไดวามี เราเตอรใดติดกับตนบาง
2. ประกาศออกไปใหเราเตอรอ่ืนทุกตัวทราบ ประกาศออกไปวามีเราเตอรใดตดิกับเราบางโดยสง แพคเก็ตประกาศลิงคสเตท (Link State Advertisement)
3. แตละเราเตอรอาศัยขอมูลจากขั้นที ่2 เพ่ือสรางแผนท่ีไปยังเราเตอรทุกตัวในเครือขายโดยการสรางเสนทางดวยตนไมแบบมีทิศทาง
รูปแบบของ header ของ OSPF0 8 16 31
Version No. Packet Type Packet length
Router ID
Area ID
Checksum AU type
Authentication
• Version number หมายเลขเวอรช่ันของโปรโตคอล ปจจุบันเปน เวอรช่ัน 2• Packet type ชนิดตางๆ ของขอมูลซ่ึงมีดังตอไปน้ี
1 Hello2 Database Description3 Link State Request4 Link State Update5 Link State Acknowledgment.
19
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Packet length ความยาวของแพคเก็จน้ีในหนวย ไบต ซ่ึงรวมถึงความยาวของ header นี้ดวย• Router ID หมายเลขประจําของเราเตอรที่สงแพคเก็จนี้ออกมา• Area ID หมายเลข area ของแพคเก็จนี้ ซึ่งทุกๆ OSPF แพคเก็จ จะตองข้ึนกับ area ใด area หนึ่งเสมอ• Checksum เปนเลข 16 บิต 1’s complement ของผลรวมของทุก word ในแพคเก็จ รวมท้ัง OSPF header ดวยแตไมรวม ฟลด authentication ถาความยาวของแพคเก็จน้ีไมไดเปนจาํนวนเทาของ 16 บิต จะคํานวณในสวนที่ขาดไปดวย เลข 0
• AU type บอกถึง authentication scheme ที่ใชกับแพคเก็จนี้• Authentication ขอมูล authentication scheme ขนาด 64 บิต
Hello Packet0 8 16 31
OSPF Header
Network MaskHello Interval Options Rtr Pri
RouterDeadIntervalDesignated Router
Backup Designated RouterNeighbor
…
• Network mask Network mask ของแพคเก็จนั้นๆ เชนถาเปน class B ก็คือ 0xffffff00• Options แฟลกบิตเพ่ือกําหนดสถานะตางๆ
* * DC EA N/P MC E *
• Hello Interval จํานวนวินาที ระหวาง แตละ Hello packets ของเราเตอรนี้• Rtr Pri Priority ของเราเตอรนี้ ถาเปน 0 เราเตอรนี้จะเปน (Backup) Designated Router ไมได• Router Dead Interval จํานวนวินาทีท่ีรอกอนท่ีจะตัดสินวา router ที่ไมตอบ down
20
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Designated Router หมายเลขของ Designated Router ของ network นี ้ปกติก็คือ IP address ของ Interface ที่เปน ถา network ใดไมมีจะใสเปน 0.0.0.0
• Backup Designated Router หมายเลขของ Backup Designated Router ของ network นี ้ปกติก็คือ IPaddress ของ Interface ที่เปน ถา network ใดไมมีจะใสเปน 0.0.0.0
• Neighbor บอก Router ID ของ Router ที่อยูติดกับ Router ท่ีสง Hello packet นี ้ซ่ึงก็คือ มี Hello packetsกลับมาทันในชวงกอน Router Dead Interval
21
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Routing Information Protocol (RIP)เปนโปรโตคอลเลือกเสนทางแบบ distant-vector มีจํานวน HOP ระหวางแตละ router เปนคา metrix
หลักการทํางานโดยสรุปของ RIP• เราเตอรที่ใช RIP จะสรางตารางที่ระบุถึงเราเตอรตางๆที่อยูขางเคียงและจํานวน hop• กระจายตารางนี้ไปยังเราเตอรขางเคียง RIP บรอดแคสตโดยใช UDP port 520• เราเตอรที่ไดรับจะทําการปรับปรุงคาตารางของตน แลวเม่ือถึงเวลาท่ีกําหนดก็จะทาํการ กระจาย ตารางออกไปใหม
ลักษณะของ RIP แพคเก็จ0 8 16 31
Command Version UnusedAddress family identifier Route tag
IP addressSubnet mask (only for RIP2; 0 for RIP)
Next hop (only for RIP2; 0 for RIP)Metric
ตั้งแต field Address family identifier ไปจนถึง Metric สามารถมีซ้ํากันไดถึง 25 ครั้ง• Command มีเพ่ือบอกถึงวัตถุประสงคของ datagram นี้
1 Request – ขอ routing table อาจจะทั้งหมดหรือบางสวน2 Response – บรรจุบางสวนหรือทั้งหมดของ routing table ของผูสง อาจจะเปนกรณีที่มีการรองขอหรือเปน การปรับปรุงตารางของผูสง5 Reserved – ถูกใชโดยบริษัท Sun Microsystems
• Version RIP datagrams จะถูกทํางานตาม version ของมัน0 จะถูกเพิกเฉย ไมถูกทํางานใดๆ ทั้งสิ้น1 จะถูกตรวจสอบวาทุกฟลดเปน 0 หรือไม ถามีฟลดใดไมเปน 0 message น้ีจะไมถูกทํางานอีก
ตอไป2 บอกวามีการบรรจุขอมูลในฟลดท่ีประกาศขึน้มาใหม หรือมีการใชระบบการยืนยัน>2 ทุกฟลดท่ีเปน 0 จะไมถูกนํามาประมวลผล
• Address family identifier บอกถึงลักษณะของ address ท่ีใชเพราะ RIP สนับสนุนหลายโปรโตคอล หมายเลขสําหรับ IP คือ 2 ถามีการใชการยืนยัน ฟลดน้ีจะถูกกําหนดใหเปน 0xFFFF แลว ฟลด Route Tag จะบอกชนิดของการยืนยัน และสวนที่เหลือจะเปน password
22
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Route tag คากําหนดของเสนทางที่ถูกสงวนหรือถูกประกาศใหม เพ่ือการแบงแยกเสนทางของเครือขายตางๆที่อยูใน RIP domain เดียวกัน ออกจาก RIP อ่ืน
• IP address IP address ของปลายทาง• Subnet mask คาซับเนทมาสก• Next hop IP address ของ Hop ถัดไป ที่เปนเสนทางที่จะไปถึงปลายทาง
• Metric จํานวน Hop รวมต้ังแตถาทางจนถึงปลายทาง
23
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Transport LayerTCP (Transmission Control Protocol)
TCP เปน protocol ท่ีเพ่ิมความนาเช่ือถือในการสง datagram ใหกับ IP ซ่ึงมีการเช่ือมตอท่ีเรียกวาconnection oriented คือ ตองมีการสถาปณาระหวางสถานีทัง้ 2 ฝายกอนทําการสงขอมูล
TCP มีบริการรับประกันความเช่ือถือในการลําเลียง segment มีละเอียดดังนี้• การตรวจจับและแกไขขอผิดพลาดมุงเนนแกปญหา หา segment ท่ีผิดปกติจากปญหาของสายส่ือสาร หรือ protocol ระดับลาง หรือ segment เดินทางไปไมถึงปลายทาง TCP จัดการกับปญหาน้ีโดยใช checksum เปนตัวตรวจสอบ เหมือนกับ UDP
• เมื่อ TCP ไดรับ segment จะตอบรับกลับไปตนทาง TCP ใชการตอบรับเพ่ือยืนยันวาไดรับขอมูลอยางถูกตอง
• เมื่อ TCP สง segment จะต้ังคาเวลาไวเพ่ือรอการตอบรับจากปลายทาง หากไมมีการตอบรับภายในเวลาท่ีกําหนด TCP จะสง segment ซ้ํา วิธีนีเ้รียกวา positive acknowledge with retranmission
• TCP ฝายรับสามารถกําหนดใหฝายสงจดัสงขอมูลเปนปริมาณเทาทีจ่ะรับไดจริงตามขนาด buffer ที่มีอยู การควบคุมปริมาณการไหลขอมูลเปนการปองกันไมใหมีการสง segment ไปเกินขีดความสามารถของฝายรับ
• TCP segment อาจมาถึงปลายทางไมเปนลําดับ เนือ่งจาก IP อาจเลือกสง datagram ไดหลายเสนทาง TCP ฝายรับตองจดัลําดับ segment ใหถูกตอง
• การกําจัด segment ซ้ําเปนการยกเลิก segment ท่ีไดรับซ้ํามา segment กอนหนา
24
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
TCP header 0 15 16 31
Source port Destination portSequence number
Acknowledgement numberOffset Reserved Code Window size
Checksum Urgent pointerOptions
Data
• Source port ขนาด 16 bits หมายเลข port ของสถานีตนทาง• Destination port ขนาด 16 bits เบอร port ของสถานีปลายทาง• Sequence number ขนาด 32 bits TCP ใชสําหรับนับจํานวนไบตที่ถายโอนขอมูล หมายเลขเริ่มตนไมจําเปนตองเร่ิมตนจาก 1 อาจจะเร่ิมตนจากคาอะไรก็ไดแตตองสัมพัทธกับหมายเลขเร่ิมตนสําหรับขอมูลชุดถัดไป
• Acknowledgement number ขนาด 32 bits ซ่ึงใชสําหรับตอบรับ segment ท่ีสงมาซ่ึงคาก็คือ sequencenumber เริ่มตน + จํานวนไบตที่สง + 1
• Offset ขนาด 4 bits ใชบอกขนาด header ตัวเลขมีขาดเปน 4 เทาของ 4 ไบต• Reserved ขนาด 4 bits สํารองเอาไวในอนาคต• Code ประกอบดวย 6 fields ยอย ซ่ึงแตละ bit ทําหนาทีเ่ปน flag
URG
ACK
PSH
RST
SYN
FIN
- URGent ถาบิตนี้เปน “1” หมายความวา Urgent pointer บรรจุตําแหนงขอมูลที่ตองรีบดําเนินการเรงดวนกอน
- ACKnowledgement ถาบิตนี้เปน “1” หมายถึงเปน segment ตอบรับ โดยตอบอางอิงเลขลําดับตามที่กําหนดใน field Acknowledgement number
- PuSH ถาบิตนี้เปน “1” หมายถึง ทันทท่ีีสถานีปลายทางไดรับ segment ตองรีบสงขอมูลไปยังApplication program ทันทีโดยไมตองรอให buffer เต็ม
- ReSeT ถาบิตนี้เปน “1” หมายถึง ใหยกเลิกการเช่ือมตอน้ีเน่ืองจากอาจมีความผิดปกติเกิดข้ึนระหวางคูสถานีท่ีกําลังติดตอกันอยู
- SYNchronize ถาบิตนี้เปน “1” หมายถึง ขอเร่ิมตนสถาปนาการเช่ือมตอและเม่ือสถาปนาเสร็จส้ินบิตนี้จะถูกกําหนดใหเปน “0” หลังจากน้ันจึงสามารถสงผานขอมูลระหวางกันได
25
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
- FINish ถาบิตนี้เปน “1” หมายถึง ขอจบการเช่ือมตอเพราะไมมีขอมูลสงอีกตอไป
• Window ขนาด 16 bit สถานีปลายทางใช field นี้แจงขนาด buffer ที่มีอยู หนวยเปนไบต สถานีท่ีติดตอดวยตองไมสงขอมูลเกินกวาขนาด buffer นี้
• Checksum ขนาด 16 bits ใชตรวจสอบความถูกตองของผลรวมโดยคํานวณท้ัง header และขอมูล• Urgent pointer ขนาด 16 bits pointer ชี้ตําแหนงไบตขอมูลที่ตองดําเนินการเรงดวนที่ตองการใหโปรแกรมประยุกตดําเนินการทันที คาที่บรรจุใน field น้ีจะมีความหมายก็ตอเม่ือ URG flag ถูก set เปน “1”
• Option ใชเปน option กําหนดงานเพิ่มเติมใหกับ TCP• Padding ขนาด 0-3 ไบต ใชเปนสวนที่ทําใหขนาดของ option เปนจํานวนเทาของ 32 bits
Referenceสุรศักด์ิ สงวนวงศ , สถาปตยกรรมและโปรโตคอลทีซีพี/ไอพี , 1999
26
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
UDP (User Datagram Protocol)UDP เปน โปรโตคอลที่อยูใน transport layer นําสงขอมูลจาก application layer ไปยัง internet protocol
และ UDP จะใหบริการแบบ connectionless คือ ไมตองสถาปณาการเช่ือมตอระหวางสถานีตนทางและปลายทางซ่ึงหากมีปญหาข้ึนกับ UDP datagram เชน datagram สูญหาย UDP จะไมจัดการกับปญหาเหลาน้ี
ลักษณะการใหบริการของ UDP เหมาะสมกับโปรแกรมประยุกตหลายชนิดที่ไมตองการความเช่ือถือสูงอยางที่มีใน TCP กลาวคือ โปรแกรมประยุกตใดๆก็ตามทีมี่การทํางานแบบ client – server ชนิดที่ใชการรองขอและ ตอบรับอยางงายๆ เหมาะที่จะใช UDP และเน่ืองจาก UDP มีขนาดของ header ท่ีเล็กกวา TCP ทําใหการขนสง UDP datagram น้ันทําไดเร็วกวา TCP จึงเหมาะกับงานท่ีตองการความเร็วแตไมตองการความเช่ือถือมากนักซ่ึงสามารถนําไปประยุกตไดกับ snmp, tftp เปนตน
UDP datagram0 15 16 31
Source port Destination portLength Checksum
Data
• Source port มีขนาด 16 bits เปนเบอร port ของสถานีตนทาง• Destination port มีขนาด 16 bits เปนเบอร port ของสถานีปลายทาง• Length มีขนาด 16 bits ใชบอกความยาวของ datagram (ทั้ง header และ data) เปนจํานวนไบต• Checksum มีขนาด 16 bits เปนตัวสําหรับตรวจสอบความถูกตองของ datagram
Referenceสุรศักด์ิ สงวนวงศ , สถาปตยกรรมและโปรโตคอลทีซีพี/ไอพี , 1999
27
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
X.25เปนมาตราฐานทีใ่ชในการติดตอระหวาง host system กับ packet-switching network และใชกันแพร
หลายสําหรับการเช่ือมตอ packet-switching network ในระบบ ISDN
มาตราฐานจะประกอบจาก 3 layer
User ProcessPacket
Link accessPhysical
• User process ไมนับเปน layer เพราะคือ Data ที่ user ตองการจะสง• Packet Layer เปนชั้นที่ทําใหขอมูลที่ User สงมาอยูในรูปท่ีเราเรียกวา packet โดยที่เพิ่ม Header ข้ึนมาสวนหนึ่ง
• Link Layer เปนชั้นที่นํา data ที่ไดจาก Packet Layer มาทําการเพ่ิม LAPB(Link Access Protocol – Balance)ทั้งหัวและทาย packet เพื่อ เพ่ิมความนาเช่ือถือของ data ท่ีทําการขนสง เม่ือมี LAPB ประกบหัว ทาย แลวเราจะเรียกวา frame
• Physical Layer เปนช้ันท่ีทําการขนสงขอมูลเหมือนกัน Physical Layer ใน OSI model
User data and X.25 protocol control information
User Data
Layer3 header X.25 Packet
LAP-B header LAP-B header LAP-B frame
ReferenceWilliam Stallings, Data and Computer Communications 5th, 1997
28
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Presentation LayerRemote Procedure Cell (RPC)
Format of RPC procedure call message as a UDP datagram• Transaction ID (XID) ถูกกําหนดโดย CLIENT และ SERVER จะนําคานี้สงกลับมายัง CLIENT เมื่อ
CLIENT ไดรับ reply message ก็จะนําคา XID ของ reply message มาทําการเปรียบเทียบกับคา XID ของ callmessage ท่ีมันสงไป ถาคาไมเทากัน CLIENT ก็จะท้ิง message น้ันไปแลวรอ message ตอไปจาก SERVERแตละครั้งที ่ CLIENT สราง new RPC มันจะทําการเปลี่ยนคาของ XID แตถา CLIENT สง RPC ทีไ่ดทําการสงไปแลวกอนหนานี้ เนื่องจากมันยังไมไดรับ replay message คา XID ก็จะไมเปลี่ยนแปลง
• Call Variable เปน 0 สําหรับการ call และเปน 1 สําหรับการ reply• RPC Version ในขณะนี้เปน 2• Program number, Version number, Procedure number ใชกําหนดวาตองการจะเรียก procedure ไหนที่ฝง SERVER
• Credentials ใชในการระบ ุCLIENT นั่นคือ SERVER จะดูคานี้เพื่อทําการตัดสินใจวา ควรจะทํางานตามที่มีการ request มาหรือไม
29
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Verifier ใชกับ Secure RPC ซ้ึงใช DES encryption• Procedure parameters จะมีรูปแบบตามที ่application ของ remote procedure กําหนด
Format of RPC procedure reply message as a UDP datagram
• XID ของ reply message จะทําการ copy มาจาก XID ใน call message• Reply มี่คาเปน 1 ซ่ึงจะแตกตางจาก call message• Status มีคาเปน 0 ในกรณีที ่call message ไดรับการยอมรับ ( message อาจจะถูกปฏิเสธไดในกรณีท่ี RPC
version ไมใช 2 , etc…• Verifier ใชกับ Secure RPC เพ่ือใชในการ identify SERVER• Accept status ในกรณีที่สําเร็จจะมีคาเปน 0 สวนในกรณีท่ีไมเปน 0 อาจจะเกิดไดจากหลายกรณีเชน อาจจะเกิดจาก invalid version number หรือ invalid procedure number , etc…
30
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Application layerFTP (File transfer protocol)
FTP เปน application ท่ีใหกันทัว่ไป และเปนมาตราฐานสําหรับการขนสง file ทาง internet FTP จะทําหนาที่คือ copy file อยางสมบูณนจากระบบหนึ่งไปยังอีกระบบหนึ่ง การท่ีจะใช FTP เราจําเปนที่จะตองมีaccount เพ่ือใหในการ login เขาสู server หรืออาจจะสามารถใชบริการจาก server ซ่ึงใหบริการ anonymouse FTP
FTP ถูก design เพ่ือใชกับ host ท่ีแตกตางกัน , ระบบปฏิบัติการที่แตกตางกัน , ระบบโครงสรางขอมูลของ file ท่ีแตกตางกัน
FTP protocolFTP จะแตกตางจาก Application อื่นๆ เพราะวาตองใช 2 TCP connection เพ่ือการขนสง file
1. Control connection จะสถาปนาในรูปแบบของ server-client ปกต ิซ่ึง server จะอยูในสภาวะ passive openบน port ท่ีรูจักกันทัว่ไปคือ port 21 และจะรอให client มาทํา active open บน port 21 ของ server การติดตอน้ีใชสําหรับการสงคําส่ังจาก client ไปยัง server และ สําหรับ server ท่ีจะ reply ไปให client
2. Data connection ถูกสรางทุกคร้ังท่ีมีการขนสง file ระหวาง client กับ server
ReferenceW. Richard Steven, TCP/IP Illustrated Volume 1 The Protocols, 1994
31
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Trivial File Transfer Protocol (TFTP)สวนใหญจะใชเม่ือทําการ Bootstrapping Diskless Systems (โดยปกติจะเปน Workstation หรือ
Xterminals).TFTP ถูกออกแบบใหใชงานกับ UDP เพ่ือใหมีรูปแบบทีง่ายและมีขนาดเล็กลักษณะการใชงานเปนการแลกเปล่ียนระหวาง Client และ Server ซ่ึงเร่ิมดวย Client ทําการรองขอ การ
อานและเขียนไฟลสําหรับ Client จาก Server ในการปกติของ Bootstrapping Diskless System ในการรองขอแรกของการติดตอคือการขออาน (Read Request หรือ RRQ) ซ่ึงมีรูปแบบของ protocol 5 รูปแบบ แสดงในรูปที ่1
IP Header UDP Headr Opcode(1 = RRQ) Filename 0 Mode 0
20 bytes 8 bytes 2 bytes N bytes 1 N bytes 1
IP Header UDP Headr Opcode(2 = WRQ) Filename 0 Mode 0
20 bytes 8 bytes 2 bytes N bytes 1 N bytes 1
IP Header UDP Headr Opcode(3 =Data)
BlockNumber Data
20 bytes 8 bytes 2 bytes 2 bytes 0-512 bytes
IP Header UDP Headr Opcode(4 =ACK)
BlockNumber
20 bytes 8 bytes 2 bytes 2 bytes
IP Header UDP Headr Opcode(5= Err)
ErrorNumber Error Message 0
20 bytes 8 bytes 2 bytes 2 bytes N bytes
รูปท่ี 1. รูปแบบทั้ง 5 ของ TFTP Message• opcode มีขนาด 2 bytes เปน Field ที่แบงลักษณะของ Message• Filename เปน Field ท่ีบอกช่ือไฟลท่ีอยูบน Server ทีต่องการทําการอานและเขียน ซึ่งจะมี Byte ปดทายที่เปน 0
32
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• Mode เปน• Block Number ใชในการตอบ Packet กลับ (Acknowledge Packet) เมื่อ Client ทําการอาน File โดยจะสง
RRQ มาพรอมกับช่ือไฟลและ mode ถาไฟลท่ีขอมาสามารถทําการอานไดฝง server จะทําการตอบกลับโดยจะสง Block number ที่1 กลับไปพรอมกับขอมูล เม่ือผูใชไดรับก็จะตอบกลับวาไดรับแลวโดยสง ACK ของBlock number ที่1 ที่ไดรับ เมื่อ server ไดรับการตอบกลับแลวก็จะสงขอมูลชุดตอไปพรอมกับ Block number2 ซ่ึงจะทํางานอยางน้ีไปเร่ือย ๆ ระหวางการสงขอมูล แตละ Packet ของขอมูลนั้นบรรจ ุ512 bytes ยกเวนถาเปน Packet สุดทาย ซึ่งจะบรรจุขอมูลไดตั้งแต 0 – 511 bytes ซึ่งจะรูไดทันทีวาเปน Packet สุดทายสวนเม่ือมีการขอเขียน (WRQ) จาก Client ถา Client สามารถทําการเขยีนได ทาง Server จะทําการตอบ
ดวย ACK ของ Block number 0 แลวทาง Client ก็จะทําการสงขอมูล 512 bytes แรกพรอมกับ Block numberที่ 1 ทาง server ก็จะตอบกลับดวย ACK ของ block number ที่ 1
• Error Message จะใช Opcode = 5 ซ่ึงจะใชตอบก็ตอเม่ือมีความผิดพลาดเกิดขึน้เชน ไมสามารถทําได, ความผิดพลาดท่ีเกิดขึน้ระหวางการสงขอมูลทีใ่หเกิดการจบการสง ขณะท่ีกําลังทําการสงอยู ซึ่งขอความนั้นจะอยูในรูป ASCII และอาจจะรวมถึงขอมูลบางอยางของระบบปฏิบัติการนัน้ ๆ ดวย
• Error Number จะบอกรหัสของการเกิด Error(0000) Unknown Error(0001) File not found.(0002) Access violation.(0003) Out of disk space.
(0004) Illegal TFTP operation. (0005) Unknown Transfer ID. (0006) Filename already exists. (0007) Unknown user.
ลักษณะการติดตอในการสงน้ันเรียกวา Stop-and-wait protocol ซึ่งจะพบในระบบ Protocol ที่มีลักษณะธรรมดา อยาง TFTP เพราะถูกออกแบบมาใหงายตอการประยุกตและไมมีความเร็วสูงมากนัก และเนื่องจาก TFTP ใช UDP จึงตองมีความสามารถรองรับการสูญหายและซ้ําของขอมูลได ขอมูลที่สูญหายนั้นตองสามารถตรวจไดดวยการจับเวลาการตอบกลับ และมีการสงใหมเม่ือหมดเวลา และในสวนของ TFTP จะไมมีการChecksum เพราะช้ัน UDP มีการ Checksum แลว
ReferenceTCP/IP Illustrated Volume 1, W. Richard Steven, ADDISON-WISELYhttp://www.protocols.com/RFC 783
33
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
RFC 1350
Simple Network Management Protocol (SNMP)SNMP ถูกออกแบบมาบน UDP ซ่ึงไมมีการรับประกันความนาเช่ือถือการสงขอมูลและไมไดมีการสรางการ
ติดตอแบบเช่ือมตอเพ่ือใหขนถายขอมูลไดอยางรวดเร็ว ซ่ึงมีเอ็นแคปซูเลตคําส่ัง format แบงเปน 2 สวนคือHeader และ PDU (PDU: Protocol data units) โดยในสวน Header ประกอบดวยสองสวนคือ
IP Header UDP Header Header PDU
• Version เวอรชั่นของโปรโตคอลที่ใชนั้นทั้งที่ server และ client จะตองเปนเวอรชั่นเดียวกัน จึงจะสามารถติตอกันได โดยถาเปนโปรโตคอลเวอรช่ัน 1 จะใส 0 ลงไปในเวอรช่ัน ถาเปนเวอรช่ัน 2 จะมีคาเทากับ 1
• Community รหสัผานในรูปสายอักขระท่ีตองกําหนดมา เพ่ือใหเอเจนตใชตรวจสอบวา ขอความท่ีสงเขามามีสิทธ์ิในการสอบถามหรือปล่ียนขอมูลหรือไม
• PDU แบบการติดตอ (1 - 5)0 - get-request1 – get – next –request2 – set – request3 – get - response4 - trapPDU types มี 5 แบบ ท่ีใชในการติดตอกับ server1. getrequest ใชสอบถามขอมูลจากตัวเอเจนตที่อยูบนอุปกรณที่ตองการตรวจสอบในระบบเครือขาย2. getnextrequest ใชสอบถามขอมูลท่ีเรียงเปนลําดับ เชนขอมูลที่เก็บอยูในรูปตาราง หรือในกรณีที่ไมทราบ ช่ือตัวแปรท่ีแนชัด
3. setrequest ทําการเปลี่ยนแปลงคาตัวแปรที่เอเจนตนั้นรับผิดชอบอยู4. getresponse เอเจนตจะใชในการสงคําตอบกลับมายังผูสอบถาม5. trap ในแจงเหตุการณที่เกิดขึ้นในระบบเครือขาย เชน การเร่ิมตนทาํงานใหมของอุปกรณ หรือเสนทางที่ขัดของ
getrequestgetresponse UDP port 161
UDP port 162
UDP port 161
UDP port 161
trapgetresponse
set-requestgetresponse
get-next-request
SNMP agents SNMP agents
Summary of the five SNMP
SNMP Message
34
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
รูปแบบคําสั่งทั้ง 5 ของ PDU types มี สองแบบคือ
โครงสราง PDU ของ คําส่ัง getrequest, getnextrequest, get response
โครงสราง PDU ของ คําส่ัง Trap
• request ID กําหนดบอกหมายเลขขอความเพ่ือใชจับคูเม่ือรับคาํตอบกลับมา• Error Index ดรรชนีช้ีคาผิดพลาดท่ีเกิดขึน้เกิดจากตัวแปรตัวลําดับท่ีเทาไร ของตัวแปรท้ังหมดทีส่อบถามไ• Error Status สถานะความผิดพลาดท่ีเกิดขึน้ โดย
รหัสผิดพลาด ช่ือ คําอธิบาย0 noError ไมมีขอผิดพลาด1 tooBig เอเจนตไมสามารถสงคําตอบทัง้หมดมาใน message เพียงคร้ัง
เดียว2 NosSuchName ไมมีตัวแปรท่ีตองการสอลถามอยูในฐานขอมูล3 BadValue เปลี่ยนแปลงคาที่ผิดใหกับตัวแปรนั้น หรือ แปลงไมถูกตองตาม
ขอกําหนด4 genError มีขอผิดพลาดอ่ืน ๆ เกิดขึ้น
• Enterprise ระบุเครือขายที่ไดมีการลงทะเบียน trap ไว
requestID
IPHeader
UDPHeader Version Community
20 bytes 8 bytes
Common snmpheader
PDU type(0-3)
Errorstatus(0-5)
name value name value ...
get/set header variable to get/set
snmp message
UDP datagramIP datagram
IPHeader
UDPHeader Version Community
20 bytes 8 bytes
Common snmpheader
PDU type(0-3) enterprise agent
addrtrap type
(0-6)specifycode
timestamp name value ...
Trap header interestingvariable
35
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
• trap type จะทําการอธิบายเหตุการณท่ีรายงานมามีคาท่ีกําหนดไว 7 คา 0 coldStart: Sending protocol entity has reinitialized, indicating that the agent’s configuration or entity implementation may be altered. 1 warmStart: Sending protocol has reinitialized, but neither the agent’s configuration nor the protocol entity implementation has been altered. 2 linkDown: A communication link has failed. 3 linkUp: A communication link has come up. 4 authenticationFailure: The agent has received an improperly authenticated SNMP message from the manager, i.e., community name was incorrect. 5 egpNeighborLoss: An EGP peer neighbor is down. 6 enterpriseSpecific: A non-generic trap has occurred which is further identified by the Specific Trap Type and Enterprise fields.
• Specific trap type ใชเมื่อทําการระบ ุtrap ที่ไม Generic Trap• Timestamp ระยะเวลาระหวางการ reinitialize กับการสราง tarp Value of the sysUpTime object,
representing the amount of time elapsed between the last (re-)initialization and the generation of that Trap.• Name/value คาตัวแปรและขอมูลของตัวแปรนั้น ๆ
ลักษณะพิเศษของ snmp คือไมมีการกําหนดขนาดที่แนนอน เพราะทุกฟลดยอยการเขารหสัจะไดขนาดความยาวแตกตางกันไปตามชนิดขอมูลท่ีมีอยูในขณะน้ัน
Referencewww.protocols.comTCP/IP Illustrated Volume 1, W. Richard Steven, ADDISON-WISELYสถาปตยกรรมและโปรโตคอลทีซีพี/ไอพี, สุรศักด์ิ สงวนพงษ
36
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Simple Mail Transfer Protocol (SMTP)Email นั้นเปนโปรแกรมประยุกตที่แพรหลายในระบบเครือขาย ประโยชนของ Email ชวยใหผูใชสง
และรับขอความขามเครือขายได ใน TCP/IP มี Protocols ที่สนับสนุนการรับสง Mail ในเครือขายอยูหลายโปรโตคอล โปรโตคอลมาตรฐานที่เปนแกนหลักของระบบ Mail และนิยมใชใน Internet คือ SMTP(Simple MailTransfer Protocols) หนาท่ีของ SMTP คือการกําหนดวิธีและแบบแผนการนําสงขอความระหวางผูรับและผูสงโดยจะอาศยัการลําเลียงผาน TCP ที่ Port 25
ระบบ Mail ที่ใชใน TCP/IP มีองคประกอบสองสวนคือ User Agents (UA) และ MTA(MessageTransfer Protocols) ซึ่งทั้งสองเปนชื่อที่นํามาจาระบบ X 4.00 ซ่ึงเปนมาตราฐานนานาชาติในการสง Mail
UA เปนโปรแกรมติดตอกับผูใชและอํานวยความสะดวกใหผูใชเขยีน แกไข และสงจดหมาย รวมท้ังการเปดอานจดหมายที่ไดรับ และจัดเก็บจดหมายเพ่ือนํามาใชภายหลัง สวน MTA ทําหนาทีห่าเสนทางและสงจดหมายไปใหถึงปลายทาง การติดตอระหวาง MTA ใช TCP ผาน Port 25
การติดตอระหวาง MTA ที่ใชรหัส ASCII เชนเดียวกับที่ใชใน Telnet และ FTP Client จะสงคําสั่งไปยังserver สวน Server จะตอบกลับมาเปนรหัสตัวเลขโดยอามีสายอักขระขยายความ
การทํางานเร่ิมตนดวย SMTP ฝาย Client ซ่ึงเปนฝายขอเช่ือมการติดตอกับ SMTP ฝาย Server แตกอนจะรับสขอความจะมีกระบวนการแลกเปล่ียนคําส่ังเพ่ือแจงผูรับผูสงกอน ในขั้นถัดไปฝายสงจึงนําสงขอความไดเมื่อส้ินสุดขอความจะมีรหสัอักขระสงปดทานยเปนสัญญาณใหฝารับทราบ หลังจากน้ันฝายสงก็จะขอปดการเช่ือมตอCommand DescriptionDATA เปนคาํส่ังใหเร่ิมการใสขอความใน mailEXPN <string> เปนคําสั่งเหมือน VRFY คือจะถามช่ือภายใน mailinglist วามีใครบางHELO/EHLO <domain> ทําการตอบช่ือ Mail ServerHELP <command> บอก command ทั้งหมดMAIL FROM <host> เปนสวนเริ่มของ Mail โดยจะบอกถึงผูสง
User Terminal User Terminal
UA UA
MTA MTA
Queue
Queue
SMTPMessage
37
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
NOOP ให server ตอบกลับ ดวยรหัส OKQUIT ยกเลิก MailRCPT TO <user> ระบุผูรับ mailCommand DescriptionRSET ทําการเร่ิม mail ใหมSAML FROM <host> ทําการสง Mail ไปที่ User Terminal และใน mailboxSEND FROM <host> ทําการสง Mail ไปที่ User TerminalSOML FROM <host> ทําการสง Mail ไปที่ user terminal หรือ mailboxTURN เปล่ียนสลับหนาท่ีของ ผูรับ และ ผูสงVRFY <user> ตรวจสอบ user วามี user น้ันอยูจริง โดยไมตองสง Mail ไปจริงNOTE: ในบางคําสั่งจะมีอยูแคใน Version เกาเทาน้ัน
Code ในการตอบของ SMTP มีดังนี้Response Code Explanatory Text
211 (Response to system status or help request).214 (Response to help request).
220 Mail service ready. 221 Mail service closing connection. 250 Mail transfer completed. 251 User not local, forward to <path>. 354 Start mail message, end with <CRLF><CRLF>. 421 Mail service unavailable. 450 Mailbox unavailable. 451 Local error in processing command. 452 Insufficient system storage. 500 Unknown command. 501 Bad parameter. 502 Command not implemented. 503 Bad command sequence. 504 Parameter not implemented. 550 Mailbox not found. 551 User not local, try <path>. 552 Storage allocation exceeded. 553 Mailbox name not allowed.
554 Mail transaction failed.
38
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
ตัวอยางรูปแบบการติดตอ การสง mail
Referencewww.protocols.comTCP/IP Illustrated Volume 1, W. Richard Steven, ADDISON-WISELYสถาปตยกรรมและโปรโตคอลทีซีพี/ไอพี, สุรศักด์ิ สงวนพงษ
Client Sever
Command response code
220
250
250
250
221
250
354
[email protected]..... Conect to
EHLO nontri.ku.ac.th [CRLF]
MAIL from:<[email protected]> [CRLF]
RCPT TO:<[email protected]> [CRLF]
DATA [CRLF]
...[CRLF][CRLF]
QUIT [CRLF]
39
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Network Time Protocol (NTP)NTP header structure
• LI Leap Indicator 2-bit code warning of impending leap-second ท่ีจะถูกใสเม่ือตอนส้ินสุดวันของวันสุดทายใน current month
00 No warning.01 +1 second (following minute has 61 seconds).10 -1 second (following minute has 59 seconds).11 Alarm condition (clock not synchronized
• VN Version number ขนาด 3 bit ใชในการบงบอก version number• Mode สามารถมีกําหนดคาไดดังตอไปน้ี
0 Reserved.1 Symmetric active.3 Client.4 Server.5 Broadcast.6 NTP control message.
• Stratum คา integer ที่ใชในการบงบอก stratum level ของ local clock ซึ่งจะมีคาไดดังนี้
0 Unspecified.1 Primary reference (e.g. radio clock).2...n Secondary reference (via NTP).
• Poll คา Signed integer ซึ่งใชในการระบ ุmaximum interval ระหวาง successive messagesPrecision คา Signed integer ซ่ึงใชในการระบุความถูกตองของ local clock
40
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Remote UNIX Services (RUNIX)เปนชุดคําสั่งที่ทํางานในชั้น application layer ใน TCP/IP layers ใชในการขามไปทํางานใน System อ่ืน
• Remote LOGIN (rlogin)เปนคําสั่งที่อนุญาตให users ในระบบหน่ึงสามารถติดตอขามไป UNIX system อื่นได ซ่ึงระบบ หรือ useraccount นั้น จะตองอนุญาตใหเขาไปทาํงานไดดวย และเม่ือเขาไปได users สามารถทํางานในระบบน้ัน ๆ ไดโดยจะอาศัย protocol ที่จําเปนเหมือนการทํางานของ telnet
• Off line printer (lpr)จะอาศัย spooling daemon ในการพิมพ file ท่ีสงมา ถาไมเปนไปตามมาตราฐาน spooling daemon จะใชappropriate filter ในการพิมพขอมูลท่ีสอดคลองกับมาตราฐาน
• Remote file copy (rcp)เปนคาํส่ังท่ีใชในการ copy file ระหวางระบบโดยจะบอก การ copy บอกวาสงไปให user account ใดและไปยัง host ใดที่ directory ใด
• Remote Shell (rsh)เปนคําสั่งที ่copy standard input output error และ signal ตาง ๆ สงไปยัง host อ่ืน ๆ เพื่อทํางานนั้น ไดเหมือนอยูที่ host หลัก
• Remote execution client for an exec Server (rexec)เปนคําสั่งจะจําลองตัวเองใหเปน Client ของ Server ใด ๆ เพื่อที่จะไปปฏิบัติคําสั่งใด ๆ เชน finger หรือls บนServer นั้นโดยผูใชไมจําเปนตอง Login เขา Server แตผูใชจะตองใส User Name และ Password ไปกับคาํส่ังดวยและ Server จะตองเปด Service rexecd ดวยถึงจะใชงานได
41
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Domain Name System (DNS)DNS เปนระบบท่ีใชต้ังช่ือใหแกทรัพยากรตางๆ ของเครือขายและเปนทั้งโปรโตคอลที่ใชในการติดตอ
เพื่อสอบถามขอมูลของ DNS เพราะ DNS เปนระบบฐานขอมูลที่กระจายกันอยูตามที่ตางๆ บนเครือขาย ในที่นี้จะอธิบายถึงสวนโปรโตคอลเทาน้ัน
รูปแบบเฟรมขอมูลของ DNS 0 16 32
Identification FlagsNumber of questions Number of answers RRs
Number of authority RRs Number of additional RRsQuestionsAnswersAuthorityAdditional
• Identification ปนเลขขนาด 16 บิตเพ่ือใชจับคูระหวางคําถามและคําตอบ• Flags แบงเปนสวนยอยตางๆ ดังนี้
QR Opcode AA TC RD RA reserved RC
QR – query type มีขนาด 1 บิต0 หมายถึง คําถาม1 หมายถึง คําตอบ
opcode มีขนาด 4 บิต0 หมายถึง การถามแบบปกต ิ(name to address)1 หมายถึง การถามแบบผกผัน (address to name)2 หมายถึง การรองขอสถานะของ server
AA – authoritataive answer มีขนาด 1 บิต0 หมายถึง server มีอํานาจหนาที่ในโดเมนที่สอบถาม1 หมายถึง server ไมมีอํานาจหนาท่ีในโดเมนท่ีสอบถาม
TC - truncated มีขนาด 1 บิตมีคาเปน 1 เมื่อ ขอความถูกตัดปลายออกเน่ืองจากมีขนาดเกิน 512 ไบต
42
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
TD – recursion desired มีขนาด 1 บิตมีคาเปน 1 เมื่อ ขอถามแบบเวียนซ้ํา
TA – recursion availableมีขนาด 1 บิตมีคาเปน 1 เมื่อ server ทํางานแบบเวียนซ้ําได
reserve มีขนาด 3 บิตเผื่อการใชงานในอนาคต ใหใสเปน 0 ทั้งหมด
RC - return code มีขนาด 4 บิต0 หมายถึง ไมมีขอผิดพลาด1 หมายถึง รูปแบบคําถามผิดพลาด2 หมายถึง server ทํางานลมเหลว3 หมายถึง ไมมีช่ือท่ีถาม4 หมายถึง รูปแบบของคําถามไมสามารถใหบริการได5 หมายถึง ปฏิเสธการถาม
• number of questions จํานวนของคาํถาม• number of answers RRs จํานวนของ resource records(RRs) ที่สงตอบกลับมา• number of authority RRs จํานวนของ resource records(RRs) ที่เปนคําตอบ ของ server ที่มีอํานาจหนาที่ในโดเมนนั้น
• number of additional RRs จํานวนของ resource records(RRs) ที่เปนขอมูลเพิ่มเติม
• Question
query namequery type query class
� query name มีขนาดไมคงที ่คือช่ือท่ีตองการจะสอบถาม แตละช่ือจะข้ึนตนดวยเลขขนาด 1 ไบตและปดทายดวยเลข 0 เชน std.cpc.ku.ac.th จะเปน 3std3cpc2ku2ac2th0
43
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
� query type มีขนาด 16 บิต กําหนดชนิดของ RRs ท่ีตองการถาม ซ่ึงมีรายละเอียดดังตาราง
ช่ือ คา ความหมายA 1 IP addressNS 2 name serverCNAME 5 ช่ือเลนSOA 6 คากําหนดอํานาจหนาที่WKS 11 หมายเลข port ที่ใหบริการPTR 12 แอดเดรสผกผันHINFO 13 ขอมูลโฮสตMX 15 ตําวแลกเปลี่ยนเมลAXFR 252 ขอถายโอนโซน* หรือ ANY 255 ขอทุกเรคอรด
* คา AXFR และ ANY สามารถใชไดเฉพาะเม่ือเปนการสอบถามเทาน้ัน
� query class บอกลําดับช้ันของการถาม 1 หมายถึง Internet
• Answers, Authority, Additional ท้ังสามฟลดน้ีมีจุดประสงคในการทํางานตางกัน คือ� Answer เปนคําตอบที่ตอบกลับมา� Authority เปนสวนที่ตอบ RRs ชนิด NS และ SOA ฟลดน้ีจะถูกใชงานเม่ือ server ไมสามารถตอบคําถามไดแตมีขอมูลเก่ียวกับ server ที่อาจจะสามารถหาคําตอบแทนใหได
� Additional เปน RRs ที่ server สงไปเพ่ือวาอาจจะชวยเหลือการทํางานของ ไคลเอนทได เชน เม่ือมีการถาม mail server ก็อาจจะสง IP address ไปใหดวยก็ได
แตทั้ง 3 ฟลดนี้มีรูปแบบเหมือนกัน คือ
44
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
0 16 31Domain name
Type Classtime to live
resource data lengthResource data
� domain name เปนช่ือโดเมนที่ตอบกลับมา มีรูปแบบเหมือนกับฟลด query name� type เหมือนฟลด query type� class เหมือนฟลด query class� time to live เปนระยะเวลาในหนวยวินาที่ที่ไคลเอนทควรเก็บ ขอมูลไวในแคช� resource data length บอกขนาดของขอมูลท่ีตอบกลับมา เชน IP address มีขนาด 4 ไบท� resource data มีขนาดไมคงที ่เปนคําตอบที่ตอบกลับมา
45
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
SUN ProtocolThe following diagram illustrates the Sun protocol suite in relation to the OSI model:
PMAP Port Mapper (PMAP) protocol จัดการกําหนดแบง ของ transport layer Portsใหเครือขายโปรแกรมประยุกตของ server โปรแกรมประยุกตของ server ไดรับ port โดย รองขอจาก port assignment client ตองติดตอกับโปรแกรมประยุกตซึ่งขั้นแรกจะเรียก โปรแกรม PMAP (well-know port) จะเอา พอรตขนสงบันทึกลงในโปรแกรมประยุกต client จะเรียกโปรแกรมประยุกตโดยตรงโดยใช register port ประโยชนของ PMAP กําจดัความตองการจะยอนกลับของเบอรพอรตสําหรับแตละโปรแกรมประยุกต โปรแกรมประยุกต PMAP มันเองเทานั้นที่ตองการ reverse portFrames
PMAP frames may be one of the following types:[no operation] Performs no operation.[set port number] Attempt to register an application.[unset port numb] Attempt to unregister an application.
[get port number] Requests registered port number. [get all ports] Requests all registered ports.
[call program] Direct call to a registered application.[port assigned] Registers an application to a port.[port unassigned] Unregisters an application.
46
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
[give port number] Informs client of registered port. [give all ports] Informs client of all registered ports.
[program called] Returns information from called program.Frame Parameter
Transport portTransport layer port ถูกกําหนดในโปรแกรมประยุกตเฉพาะProgram number เบอรโปรแกรมประยุกตProgram version เวอรชั่นของโปรแกรมTransport protocolTransport layer protocol ท่ีโปรแกรมใชProcedure เบอร โพรซีเยอร ที่โปรแกรมเรียก ถาเบอรโปรแกรมไมถูกบนัทึกก็จะขึน้
ขอความ {Program is unregistered}
MOUNTMOUNT protocol ถูกใชเม่ือเร่ิมตนที ่client ติดตอกับ server ที่สนับสนุน โปรแกรมประยุกต Network
File System (NFS) protocol นี้จะจับกับระบบปฏิบัติการเฉพาะของทองถิ่น เชน รูปแบบของ path name และ ผูใชรับรอง เมื่อ client ตองการติดตอกับโปรแกรม NFS กอนอ่ืนNFSจะไปเรียก โปรแกรม mount ท่ีไดจากแฟมhandle เหมาะ สําหรับใชกับ NFSFrames
MOUNT frames may be one of the following types:[no operation] Performs no operation.[add mount entry] Requests file handle for NFS.[get all mounts] Requests list of mounts for the client.[del mount entry] Requests deletion of mount entry.[del all mounts] Requests removal of mounts for client.[get export list] Requests group permissions for mounts.[mount added] Supplies file handle for use with NFS.[give all mounts] Supplies list of mounts for the client.[mount deleted] Confirms deletion of mount entry.[mounts deleted] Confirms deletion of all client mounts.[give export list] Lists group permissions for mounts.
47
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
Frame ParametersPath name server path name ของ directory mounted แสดงใน “ ”File handle 32-byte file handle ใชในการติดตอไดเรคทอรี ่mounted ความลมเหลวในการ
mount บน ระบบ UNIX สามารถแสดงขอความ error ขอความ UNIX Error xxxxโดยที่ xxxx เปนมาตรฐานการแสดง error ของระบบปฏิบัติการ UNIX
NFSSun Network File System (NFS) protocol เปนโปรแกรมประยุกตแชรแฟมขอมูลสําหรับ ชุด SUN
Protocol NFS อนุญาตใหกระจายทรัพยากรแฟมใหปรากฏเปนระบบ single-file บน Client UNIX (Sun OS) เปนมาตรฐานแพตฟอรตสําหรับ NFS แต SUN ออกแบบ procedure การเขาถึงแฟมใน NFS อยางพอเพียง โดยท่ัวไปอนุญาติ พอรตต่ิงอยางกวางของหลายระบบปฏิบัติการและ protocol
FrameNFS frames may be one of the following types:[no operation] Performs no operation.[get file attrib] Request for file attributes.[set file attrib] Attempts to set file attributes.[get filsys root] Request for the root file handle.[search for file] Requests a search for the specified file.[read from link] Requests a read from a symbolic link.[read from file] Requests a read from a file.[write to cache] Requests a write to a cache.[write to file] Requests a write to a file.[create file] Requests creation of the specified file.[delete file] Requests deletion of a file.[rename file] Requests renaming of a file.[link to file] Requests creation of a file link.[make symb link] Requests creation of a symbolic link.[make directory] Requests creation of a directory.[remove directry] Requests deletion of a directory.[read directory] Requests a directory listing.[get filsys attr] Requests information on the file system.
48
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
[give file attrib] turns attributes for a file.[file attrib set] nfirms setting of file attributes.[filesystem root] Returns the root file handle.[file search done] Returns result of file search.[link read done] Returns result of a symbolic link read.[file read done] Returns result of a file read.[cache write done] Returns result of a cache write.[file write done] Returns result of a file write.[create file rep] Returns file creation status.[delete file rep] Returns file deletion status.[rename file rep] Returns file renaming status.[link file reply] Returns file linking status.[symb link made] Returns symbolic link creation status.[make dir reply] Returns directory creation status.[remove dir reply] Returns directory deletion status.[dir read done] Returns directory listing.[filsystem attrib] Returns file system attributes.
Frame ParametersSun NFS frames can contain the following parameters:File handle 32-byte file handle ใชในการติดตอแฟมNumber จํานวนไบตที่อานหรือเขียนใน file operations.Offset เริ่มตม file offset สําหรับอานหรือเขียนคําสั่ง.File type มีชนิดดังนี้
NON Non-file.REG Regular file.DIR Directory.BLK Block device.CHR Character device.LNK Symbolic link.Mode Mode การติดตอกับแฟมมี 4 กลุม มีรายละเอียดดังนี้
Field Parameter ExplanationMode U Executable by specifying userID.
G Executable by specifying group ID.S Save as executable after use.
Owner R Read permission.
49
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
W Write/delete permission.X Execute/search permission.
Field Parameter ExplanationGroup r Read permission.
w Write/delete permission.x Execute/search permission.
Others r Read permission.w Write/delete permission.x Execute/search permission.
Links จํานวนของ hard links หรือช่ือแฟมสําหรับแฟมSize ขนาดของแฟมหนวยเปน ไบตBlock ขนาดของ บลอกท่ีใชเก็บแฟมFile system ID Identifying code ของระบบแฟมFile ID โปรโตคอล ID สําหรับแฟมCookie pointer ตัวช้ี ช้ีรายช่ือไดเรคทอร่ีแรกท่ีรองขอMaximum จํานวนมากที่สุดของตัวที่เขามาคืนคาสําหรับการรองขอ.Read device สําหรับ block and character device, อานจํานวนของ read device.
พารามิเตอรเพ่ิมเติม text strings เชน ช่ือแฟมจะแสดงใน “ “
Response FramesNFS response frames contain a completion status as indicated below:{OK} Completed with no errors.{Ownership required} Ownership required for operation.{File/dir not found} File or directory not found.{Device error} System or hardware error.{Device/addr not found} Device or I/O address error.{Insuff access rights} Insufficient access rights.{File/dir already exists} Duplicate file or directory.{Device not found} Device access error.{Not a directory} Operation only valid on directory.{Invalid dir operation} Operation not valid on directory.{File too large} File size too large.{Out of disk space} File device out of space.{Write protect violation} File system is read-only.
50
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
{Filename too long} File name too long.{Directory not empty} Directory not empty.{Disk quota exceeded} User disk quota exceeded.{Invalid file handle} File handle invalid.{Write cache was flushed} Write cache flushed to disk.{Unknown error} Unknown error type.
Referenceเอกสาร RFC1813
YP (NIS)Sun Yellow Pages (YP) protocol รูจักกันดีในช่ือวา Network Information Service (NIS) เปน บริการ
directory ใชสําหรับ คนหาช่ือ และ การระบุตารางท่ัวไป ในแตละ ฐานขอมูล YP ประกอบดวย คูของ key-valueแผนที่ และ โดเมน คีย ที่เปนดัชนี เชน name ใช YP หาคาเชน เบอรโทรศัพท เพราะ คียและคา จับคูกันสามรถตัดสิน สตริง ของไบต server YP ประกอบดวยชนิดของฐานขอมูลมากมาย
YP กําหนดกลุมของคู key-value ในแผนที่ แตละแผนที่อยูในโดเมนซึ่ง เปนบัญชีรายชื่อของแผนที่ลําดับชั้นของคู key-value แผนที่ และโดเมน ใหโครงสรางโดยทัว่ไปสําหรับการออกแบบฐานขอมูล สวนประกอบที่เลือกได database server ของ YP สนบัสนนุ YP binder (YPbind) server YP จะใช YPbinder servers ใหตําแหนงขอมูลเก่ียวกับ database server ขอมูล YP เปน potencial client client ตองการติดตอกับ database server YP สามารถเรียก YP binder service ใน Domain name และ รับ IP address และพอรตขนสงของ server YP สําหรับโดเมนน้ันFrames YP and YPbind frames may be one of the following commands:
[no operation] Performs no operation.[domain serve query1] Asks whether or not the specified domain is served.
[domain serve query2] Asks only for servers that serve the specified domain.[get key value] Asks for value associated with the specified key.[get first key pair] Requests the first key-value pair in map.[get next key pair] Requests the next key-value pair in map.[transfer map] Requests a new copy of the map to be transferred.[reset YP server] Requests the YP server to reset its internal state.[get all keys in map] Requests all key-value pairs in specified map.[get map master name] Requests the name of master YP database server.[get map number] Requests the creation time of the specified map.[get all maps] Requests all maps in the specified domain.[domain serve reply1] Response to domain serve query1.
51
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
[give key value] Returns value for specified key. [give first key pair] Returns the first key-value pair in map.[give next key pair] Returns the next key-value pair in map.[map transferred] Reports map transfer status.
[YP server reset] Reports server reset status.[give all keys in map] Returns listing of all keys in map.[give map master name] Returns name of master YP database server.[give map number] Returns creation date of map.[give all maps] Returns listing of all maps in domain.[no operation] Performs no operation.[get current binding] Requests YP addressing information for the specified domain.[set domain binding] Installs YP addressing information for the specified domain.[give current binding] Returns YP addressing information for a domain.[domain binding set] Returns status of YP addressing installation.
Frame Parameters YP and YPbind frames can contain the following parameters:
Bind address IP address ของ YP binder server.Bind port พอรตขอสงใชโดย YP binder server.Created สรางเวลาของแผนท่ีDomain Daomain nameท่ีใชKey ดัชนีคียที่ใชในการหาคาMap ช่ือแผนท่ีท่ีใชMaster ช่ือของ YP database server หลักPeer ช่ือ server ของ peer YP server.Transfer ID โยกยาย ID ใชอางถึง โยกยายแผนท่ีProgram เบอรของ RPC program ใชสําหรับโยกยายแผนท่ีPort เบอรTransport layer port ใชสําหรับโยกยายแผนท่ีValue คาท่ีสัมพันธกับคียStatus สถานะการโยกยายแผนที่Version version YPbind protocol
Response FramesYP response frames can contain the following status messages:{OK} Request completed successfully.{Bad request arguments} Request parameters invalid.{Domain not supported} Domain not supported by this YP server.{General failure} Unspecified failure.
52
Applied Network Research Group (ANREG), Department of Computer Engineering,Faculty of Engineering, Kasetsart university, Bangkok
{Invalid operation} Request invalid.{No more entries in map} No more key-value pairs in map.{No such map in domain} Specified map not in domain.{No such key in map} Specified key not in map.{Server database is bad} Server database corrupt.{YP server error} Internal YP server error.{YP version mismatch} YP server versions do not match.
YPbind response frames can contain the following messages:{OK} Request completed successfully.{Internal error} Local YP binder error.{No bound server for domain} No YP database servers known for the domain.{Can’t alloc system resource} YP binder resource error.
Transfer Status Frames YPbind transfer status frames can contain the following messages:
{Transfer successful} Transfer completed successfully.{Bad request arguments} Request parameters invalid.{Can’t clear YP server} Cannot clear the local YP server.{Can’t find server f/map} Cannot find YP server for map.{Can’t get master addr.} Cannot get YP master server address.{Domain not supported} Domain not supported by this YP server.{Local database failure} Local YP server database failure.{Local file I/O error} Local YP server file I/O error.{Map version mismatch} Map versions skewed in transfer.{Master dbase not newer} Master database is not newer.{Must override defaults} Must override default settings.{Resource alloc failure} Resource allocation failure.{RPC to server failed} No RPC response from server.{Server/map dbase error} YP server or map database error.{Server refused transfer} YP server refused to transfer database.{YP transfer error} Error occurred during database transfer.
Reference http://www.protocols.com/pbook/sun.htm
53
Applied Network RFac
EncodingExternal Data Representation Standard (XDR)• Basic Block Size
Byte 0 Byte 1 …. Byte n-1 0 … 0
Representation ของทุก item จะของ 4 bytes จะทําการเตมิ byte
• XDR DATA TYPE� Integer(MSB)Byte 0 Byte
เปน 2’s complement notaion ม
� Unsigned interger(MSB)Byte 0 Byte 1
เปน nonnegative integer มีคาอ
� Enumeration รูปแบบเหมือน sign i
� Booleanbool identifier;
n bytes
esearch Group (ANREG), Department of Computer Engineeriulty of Engineering, Kasetsart university, Bangkok
มีขนาดเปนจํานวนเทาของ 4 bytes โดยถาจํานวนขอมูลมีขนาดไมเป ที่มีคาเปน 0 เขาไปจนไดความยาวเปนจํานวนเทาของ 4 bytes
(LSB)Byte 2 Byte 3
คีาอยูในชวง –2147483648 ถึง 2147483647
(LSB)Byte 2 Byte 3
ยูในชวง 0 ถึง 4294967295
nteger
0
s
s
r bytes
n+r where (n+r) mod 4 =นจาํนวนเทา
132 bit
32 bit
ng,
54
Applied Network Research GroFaculty of Engin
เปนการ declare boolean โดยมีความหมายเหมือนกับenum {FALSE=0 , TRUE=1} identifier;
-45-� Hyper Integer and Unsigned Hyper Integer (MSB) (LSB)
Byte 0 Byte 1 Byte 2 Byte 4 Byte 5 Byte 6 Byte 7
เปนแบบ 2’complementation มี byte 0 เปน M
� Floating Point(-1)**S * 2**(E-Bias) * 1.F
โดยS = sign of number โดย 0 เปนบวกE = exponent of number มีไดจํานวF = fraction part ของ sa ของ
S E
โดย bit offset เริ่มตนของ S=0 , E=1 , F=9
� Double-precision Floating Point(-1)**S * 2**(E-Bias) * 1.F
โดยS = sign of number โดย 0 เปนบวกE = exponent of number มีไดจํานวF = fraction part ของ mantissa
S E 1โดย bit offset เริ่มตนของ S=0 , E=1 , F=12
s
t s
s
s
Byte 364 bit
SB และมี byte 7 เปน LSB
1 เปนลบน 8 bit โดยจะถูกลบดวยคา Bias ซึ่งมีคาเปน 127เลขนั้น มีความยาว 23 bits
F
s
1 bi 8 bitupe
1น
23 bit
mantis32 bit
เปนลบ 11 bit โดยจะถูกลบดวยคา Bias ซ่ึงมีคาเปน 1023นั้น มีความยาว 52 bits
Fs
s
11 bit
(ANREering, Ka
52 bit
ของเลข32 bit
G), Department of Computer Engineering,setsart university, Bangkok
55
Applied Network ReseaFaculty o
-46-� Fixed-length Opaque Data
opaque identifier[n];
Byte 0 Byte 1 ….. Byte n-1 0 0
คา constant n เปนคา number of byteจะตองเติม 0 เขาไปใหมีจํานวน byte
� Variable-length opaque dataopaque identifier<m>;
โดยที่ m เปนจํานวน byte สูงสุดใน sLength n Byte 0 Byte
4 bytes
จํานวน byte ตองเปนจํานวนเทาของ4
� Stringstring object<m>;
โดยที่ m เปนจํานวน byte สูงสุดที่จะLength n Byte 0 Byte
4 bytes
จํานวน byte ตองเปนจํานวนเทาของของ 4
� Fixed-length Arraytype-name identifier[n];
n bytes
rch Group (ANREG), Department of Computer Engineerif Engineering, Kasetsart university, Bangkok
ที่บรรจ ุopaque data โดยถาจํานวน byte ของขอมูลไมเปนจําน เปนจํานวนเทาของ 4
equence นั้น 1 … Byte n-1 0 …
4 ถาไมครบตองเติม byte ที่มีคา 0 ตอทายจนมีจํานวนครบเปนจ
บรรจุใน string ได 1 … Byte n-1 0 …
4 ถาไมครบตองเติม byte ที่มีคา 0 ตอทายจนมีจํานวนครบเปนจ
0
r bytes
n+r when (n+4)mod4 = 0วนเทาของ 4
0
n bytes
r bytes n+r byte when (n+r)mod4 =ํานวนเทของ
0
n bytes
r bytes n+r bytes when (n+r)mod4 = 0ng,
ํานวนเทา
56
Applied Network Research GroFaculty of Engin
Element 0 Element 1 … Element n-1
โดยแตละ element จะตองมีขนาดเปนจํานวน
� Variable-length Arraytype-name identifier<m>;
โดยคา m คือ จํานวน element สูงสุดท่ี array N Element 1
โดยคา n เปนจํานวน element ใน array
� Structurestruct{
component-declaration Acomponent-declaration B
}identifier;
Component A Cโดยขนาดของแตละ component ตองเปนจําน
� Discriminated unionunion switch (discriminant-declaracase discriminant-value-A:
arm-declaration-A;case discriminant-value-B:
arm-declaration-B; ...default: default-declaration;} identifier;
คาของ discriminant อาจจะเปนชนิด integer component type จะถูกเรียกวา “arm” ของ un
s
n element
เทาของ 4 และแตละ element อาจมีความยาวแตกตางกันได
-47-
สามารถรองรับไดElement 2 … Element n-1
4 byte
up (ANREeering, Ka
;;
omponent Bวนเทาของ
tion) {
, unsigned inion
n elements
G), Department of Computer Engineering,setsart university, Bangkok
4 และแตละ component อาจมีขนาดแตกตางกันได
teger หรือ enumerate type เชน bool ก็ได โดย
57
Discriminant Implied arm
� Void
เปน XDR
4 bytes
Applied NetworF
-48-
void; ที่ม ี0 byte ใชในกรณีท่ีขอมูลสวนน้ันไมมี หรือใน union ที่คา arm บางตัวมีบางตัวไมมี
0 byte
k Research Group (ANREG), Department of Computer Engineering,aculty of Engineering, Kasetsart university, Bangkok