tcp_ip

57
1 Applied Network Research Group (ANREG), Department of Computer Engineering, Faculty of Engineering, Kasetsart university, Bangkok Data link layer Address Resolution Protocol (ARP) And Reverse Address Resolution (RARP) 0 15 16 31 Hardware Type (16) Protocol Type (16) HLEN(8) PLEN(8) Operation Sender Hardware Address Sender Protocol Address Hardware Address Target Target Protocol Address รายละเอียด Hardware Type 16 bit มีคา 1 หมายถึง Hardware type เปน Ethernet 4 หมายถึง Hardware type เปน Pronet , Token ring 5 หมายถึง Hardware type เปน Chaos 6 หมายถึง Hardware type เปน เครือขาย IEEE 802 7 หมายถึง Hardware type เปน ArcNet 12 หมายถึง 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 Request 2 หมายถึง ARP Reply 3 หมายถึง RARP Request 4 หมายถึง 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 ที่รับ

Upload: mighe

Post on 15-Nov-2014

791 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: TCP_IP

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 ที่รับ

Page 2: TCP_IP

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

Page 3: TCP_IP

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

Page 4: TCP_IP

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’ หมายถึง ตองการเสนทางหรือบริการท่ีมีความเช่ือถือไดสูง

Page 5: TCP_IP

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

Page 6: TCP_IP

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 ระดับบน

Page 7: TCP_IP

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 กลับ

Page 8: TCP_IP

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

Page 9: TCP_IP

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

Page 10: TCP_IP

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

Page 11: TCP_IP

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 ปลายทาง

Page 12: TCP_IP

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ผูเขียน : อ. สุรศักด์ิ สงวนพงษ

Page 13: 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

Page 14: TCP_IP

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

Page 15: TCP_IP

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

Page 16: TCP_IP

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

Page 17: TCP_IP

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

Page 18: TCP_IP

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.

Page 19: TCP_IP

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

Page 20: TCP_IP

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

Page 21: TCP_IP

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

Page 22: TCP_IP

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 รวมต้ังแตถาทางจนถึงปลายทาง

Page 23: TCP_IP

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 กอนหนา

Page 24: TCP_IP

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” หลังจากน้ันจึงสามารถสงผานขอมูลระหวางกันได

Page 25: TCP_IP

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

Page 26: TCP_IP

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

Page 27: TCP_IP

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

Page 28: TCP_IP

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 มาหรือไม

Page 29: TCP_IP

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…

Page 30: TCP_IP

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

Page 31: TCP_IP

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

Page 32: TCP_IP

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

Page 33: TCP_IP

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

Page 34: TCP_IP

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

Page 35: TCP_IP

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สถาปตยกรรมและโปรโตคอลทีซีพี/ไอพี, สุรศักด์ิ สงวนพงษ

Page 36: TCP_IP

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

Mail

Queue

Mail

Queue

SMTPMessage

Page 37: TCP_IP

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.

Page 38: TCP_IP

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]

Page 39: TCP_IP

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

Page 40: TCP_IP

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 ดวยถึงจะใชงานได

Page 41: TCP_IP

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 ไบต

Page 42: TCP_IP

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

Page 43: TCP_IP

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 ฟลดนี้มีรูปแบบเหมือนกัน คือ

Page 44: TCP_IP

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 มีขนาดไมคงที ่เปนคําตอบที่ตอบกลับมา

Page 45: TCP_IP

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.

Page 46: TCP_IP

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.

Page 47: TCP_IP

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.

Page 48: TCP_IP

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.

Page 49: TCP_IP

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.

Page 50: TCP_IP

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.

Page 51: TCP_IP

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.

Page 52: TCP_IP

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

Page 53: TCP_IP

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,

Page 54: TCP_IP

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 bit

upe

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

Page 55: TCP_IP

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 = 0

ng,

ํานวนเทา

Page 56: TCP_IP

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 ก็ได โดย

Page 57: TCP_IP

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