ECE4110 Internetwork Programming. Introduction and Overview

Similar documents
User Datagram Protocol

EE 610 Part 2: Encapsulation and network utilities

Introduction to TCP/IP networking

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

CHAPTER-2 IP CONCEPTS

Interconnecting Networks with TCP/IP. 2000, Cisco Systems, Inc. 8-1

TSIN02 - Internetworking

Transport Protocols. Raj Jain. Washington University in St. Louis

TSIN02 - Internetworking

TSIN02 - Internetworking

Packet Header Formats

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

Interconnecting Networks with TCP/IP

TSIN02 - Internetworking

TCP /IP Fundamentals Mr. Cantu

CSCI-GA Operating Systems. Networking. Hubertus Franke

Layer 4: UDP, TCP, and others. based on Chapter 9 of CompTIA Network+ Exam Guide, 4th ed., Mike Meyers

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

ECE 650 Systems Programming & Engineering. Spring 2018

Network Model. Why a Layered Model? All People Seem To Need Data Processing

Introduction to Internet. Ass. Prof. J.Y. Tigli University of Nice Sophia Antipolis

APPENDIX F THE TCP/IP PROTOCOL ARCHITECTURE

EEC-682/782 Computer Networks I

Introduction to Information Science and Technology 2017 Networking II. Sören Schwertfeger 师泽仁

Chapter 5 OSI Network Layer

Transport Over IP. CSCI 690 Michael Hutt New York Institute of Technology

CCNA Exploration Network Fundamentals. Chapter 04 OSI Transport Layer

Protocol Layers & Wireshark TDTS11:COMPUTER NETWORKS AND INTERNET PROTOCOLS

Need For Protocol Architecture

Need For Protocol Architecture

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

Review of Important Networking Concepts

Sirindhorn International Institute of Technology Thammasat University

UNIT V. Computer Networks [10MCA32] 1

Internetwork Protocols

ET4254 Communications and Networking 1

Chapter 09 Network Protocols

Introduction to Internetworking

Networking Technologies and Applications

NETWORK PROGRAMMING. Instructor: Junaid Tariq, Lecturer, Department of Computer Science

User Datagram Protocol (UDP):

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Introduction to routing in the Internet

Data Communication Prof. A. Pal Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 34 TCP/ IP I

RMIT University. Data Communication and Net-Centric Computing COSC 1111/2061. Lecture 2. Internetworking IPv4, IPv6

Chapter 7. The Transport Layer

The Internet. 9.1 Introduction. The Internet is a global network that supports a variety of interpersonal and interactive multimedia applications.

OSI Transport Layer. objectives

Chapter 20 Network Layer: Internet Protocol 20.1

The Internet Protocol (IP)

Introduction to routing in the Internet

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 8

Dongsoo S. Kim Electrical and Computer Engineering Indiana U. Purdue U. Indianapolis

Internet Layers. Physical Layer. Application. Application. Transport. Transport. Network. Network. Network. Network. Link. Link. Link.

3. Provide the routing table of host H located in LAN E, assuming that the host s network interface is called i1. ARes/ComNet

Chapter 5 Network Layer

Data & Computer Communication

CSCI Networking Name:

Prof. Shervin Shirmohammadi SITE, University of Ottawa. Internet Protocol (IP) Lecture 2: Prof. Shervin Shirmohammadi CEG

To make a difference between logical address (IP address), which is used at the network layer, and physical address (MAC address),which is used at

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

EEC-484/584 Computer Networks. Lecture 16. Wenbing Zhao

Hands-On Ethical Hacking and Network Defense

App. App. Master Informatique 1 st year 1 st term. ARes/ComNet Applications (7 points) Anonymous ID: stick number HERE

Applied Networks & Security

Internet. 1) Internet basic technology (overview) 3) Quality of Service (QoS) aspects

OPTIMIZATION OF IPV6 PACKET S HEADERS OVER ETHERNET FRAME

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

cs144 Midterm Review Fall 2010

The Internetworking Problem. Internetworking. A Translation-based Solution

OSI Network Layer. Chapter 5

Understanding the Network: A practical Guide to Internetworking Michael J. Martin

Transport Layer. <protocol, local-addr,local-port,foreign-addr,foreign-port> ϒ Client uses ephemeral ports /10 Joseph Cordina 2005

Your Name: Your student ID number:

Communication Systems DHCP

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols

TCP/IP Networking. Part 4: Network and Transport Layer Protocols

Internet Protocols (chapter 18)

EEC-684/584 Computer Networks

STEVEN R. BAGLEY PACKETS

Review of Important Networking Concepts. Recall the Example from last lecture

TCP/IP Networking Basics

IP Protocols. ALTTC/Oct

K2289: Using advanced tcpdump filters

Connection-oriented (virtual circuit) Reliable Transfer Buffered Transfer Unstructured Stream Full Duplex Point-to-point Connection End-to-end service

QUIZ: Longest Matching Prefix

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

Simulation of TCP Layer

Chapter 7 Internet Protocol Version 4 (IPv4) Kyung Hee University

SEN366 (SEN374) (Introduction to) Computer Networks

7. TCP 최양희서울대학교컴퓨터공학부

University of Toronto Faculty of Applied Science and Engineering. Final Exam, December ECE 461: Internetworking Examiner: J.

TCP/IP Transport Layer Protocols, TCP and UDP

Last time. Wireless link-layer. Introduction. Characteristics of wireless links wireless LANs networking. Cellular Internet access

CSE/EE 461 The Network Layer. Application Presentation Session Transport Network Data Link Physical

Network Layer PREPARED BY AHMED ABDEL-RAOUF

Internet protocols, TCP/IP suite

Internet Networking recitation #2 IP Checksum, Fragmentation

CCNA R&S: Introduction to Networks. Chapter 7: The Transport Layer

Transcription:

ECE4110 Internetwork Programming Introduction and Overview 1

EXAMPLE GENERAL NETWORK ALGORITHM Listen to wire Are signals detected Detect a preamble Yes Read Destination Address No data carrying or noise? Ignore Transmission No Broadcast Address No My Address Yes Yes Is the listening computer the intended party or is it for someone else? Read Data Frame Contents End of Frame Yes No Where does the message end? Perform Integrity Check Discard Data No Check Passed? Yes Deliver data to Designated Process Did the computer get a good message or is it corrupted?

DIX Ethernet Data Frame Format Preamble (8 Bytes) Destination MAC Address (6 Bytes) Source MAC Address (6 Bytes) Type (2 Bytes) Data 46-1500 bytes CRC (4 Bytes) Preamble - alternating 0 s and 1 s with last bit a l. Must not be noise if see this. Destination medium access control (MAC) address - compare this to our own hardwired network interface card (NIC ) address. Standards exist and manufactures comply. Normally a NIC knows its own address and the broadcast address. Source MAC address - sender s NIC address. Type -so we know what kind of data transporting, one example is Internet Protocol. Cyclic Redundancy Check - so we can tell if what we got was received correctly, if not throw it away. Aside: After the Ethernet Frame, a 12 Byte Interframe Gap must always follow. Note: Receive process does not look at data, that is done elsewhere. Gap 12 Bytes Note: Data is in most network technologies called a packet. 3

ROUTING CONCEPTS B C Computer X 2 3 4 Computer Y Output port X1 Output port A4 A1 A2 9 1 A3 A 8 6 D 5 F 7 E 1 Network Number (Address) Router a Network Computer X on Network 1 wants to send a message to computer Y on Network 5 4

NETWORK ADDRESS IS SOFTWARE CONFIGURABLE Preamble Destination Source Mac Address Mac Address Type INFO CRC Destination 5 : Y Source 1 : X Other Stuff Data ROUTING TABLES Computer X Destination Network Distance Next Router Output Port 5 3 A X1 5

Router A s Routing Table: Destination Network Distance Next Router Output Port 5 2 C A2 2 0 A A1 7 1 F A3............ Routers can Dynamically exchange information or they can be statically configured 6

What Happens To Ethernet Frame and Packet Address As Data Frame Goes From Computer X To Computer Y Data Presently On Network # 1 Mac Destination Address A Mac Source Address X Packet Dest Address Y : 5 Packet Source Address X : 1 9 C A Y : 5 X : 1 4 D C Y : 5 X : 1 5 Y D Y : 5 X : 1 Routing - Intelligent delivery of data from point A to point B on an Internetwork. Router - Perform routing service. Typically uses shortest path Reference: Networking Unix, by Douba, Sams Publishing Chapter 1,2. 7

Layered Internet Protocol Stack vs OSI Reference Model Internet Protocol Stack OSI Reference Model Application Presentation Application Transport Internet Physical Session Transport Network Data Link Physical 8

Operation Of TCP/IP Concepts Host A APPX APPY TCP IP Physical Global Network Address Host B APPX APPY TCP IP Physical ethernet 1 Router J IP ethernet 2 Interface1 Interface2 9

Operation of TCP/IP Concepts Continued: IP : is implemented in all end systems and routers. TCP: is implemented only in the end systems. Each host on a subnetwork must have a unique global internet address which is used by IP for routing and delivery. Each application within a host must have an address unique within host used by TCP. Addresses are know as ports. 10

Tracing Through This Example Network : Suppose: Port 1 Host A to Port 2 Host B. Host A sends message down to TCP. TCP hands down to IP. IP down to network access layer (ethernet) with instructions to send to Router J. At Router J ethernet packet header examined. Using IP header info know to send on to subnetwork 2. At Host B all headers removed. Reference: High speed networks TCP/IP and ATM design principles By Stallings chapter 2, 10, 11 11

Communication Task Layers: The TCP/IP Protocol Architecture Physical layer - Physical interface between computer and the network (nature of signals, data rate). Link Layer - Access to and sending data across a network for two end systems attached to the network Example: ethernet Internet layer - Allows data to traverse multiple interconnected networks. Internet protocol (IP) is used at this layer to provide the routing function across multiple networks. IP implemented in end systems (computers) and also in routers. (Everywhere) Router is a processor that connects two networks with primary function to relay data from one network to the other on its route from the source to the destination. Transport layer - Allows data to be exchanged reliably. Transmission control protocol (TCP) is the must commonly used protocol to do this. (End Stations) Application layer - module to perform support for application like FTP, TELNET, etc. 12

ANOTHER VIEW SMTP FT P TFTP DNS SNMP APPLICATION TCP UDP TRANSPORT IGMP ICMP IP ARP RARP INTERNET ETHERNET PHYSICAL SMTP Simple Mail Transfer Protocol FTP- File Transfer Protocol TFTP- Trivial File Transfer Protocol DNS- Domain Name Service SNMP- Simple Network Management Protocol TCP- Transmission Control Protocol UDP- User Datagram Protocol IGMP- Internet Group Management Protocol ICMP- Internet Control Message Protocol IP- Internet Protocol ARP- Address Resolution Protocol RARP Reverse Address Resolution Protocol 13

Protocol Data Units In TCP/IP Architecture TCP/UDP HEADER APPLICATION DATA APPLICATION BYTE STREAM TCP SEGMENT OR UDP USER DATAGRAM IP HEADER IP DATAGRAM ETHERNET HEADER PHYSICAL LEVEL PACKET (For Example Ethernet Frame) 14

TCP Header : Bit 0 4 10 15 31 ( 32 Bits) SOURCE PORT DESTINATION PORT 20 BYTES HEADER LENGTH UNUSED SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER U R G A C K FLAGS P S H R S T S Y N F I N WINDOW CHECKSUM URGENT POINTER OPTIONS + PADDING 15

TCP Header Details: Source Port (16 bits) source TCP user. Destination Port (16 bits) destination TCP user. Sequence Number (32 bits) sequence number of the first data octet in this segment except when SYN flag is set. If SYN is set this field is the initial sequence number (ISN). Acknowledgement Number (32 bits) a piggybacked acknowledgement, contains the sequence number of the next data octet that the TCP entity expects to receive. Header Length (4 bits) number of 32 bit words in the header. Unused (6 bits) unused. 16

TCP Header Details Continued: Flags (6 bits) URG urgent pointer field significant. ACK - acknowledgement field significant. * PSH push function. RST reset the connection. SYN synchronize the sequence numbers. FIN - no more data from sender. Window (16 bits) flow control credit allocation contains the number of data octets beginning with the one indicated in the acknowledgement field that the receiver is willing to accept. Checksum (16 bits) an error detection calculated over header and data. Urgent Pointer (16 bits) points to the last BYTE in a sequence of urgent data. Options (variable) optional features. * Data Stream Push Note: Normally TCP decides when sufficient data have accumulated to form a segment for transmission. The user can require TCP to transmit all outstanding data up to and including that labeled with a push flag. 17

TCP OPTIONS: SINGLE BYTE: END OF OPTION NO OPERATION MULTIPLE BYTE: MAXIMUM SEGMENT SIZE: WINDOW SCALE FACTOR: 00000000 (Only one may be used and is only necessary if the very last byte of the last 32 bit word is not already the end of an option) 00000001 (Used for Padding/aligning an option on a 16 bit or a 32 bit boundary) ID CODE LENGTH 00000010 00000100 2 BYTE VALUE 00000011 00000011 1 BYTE VALUE TIMESTAMP (USED IN ROUND TRIP TIME CALCULATIONS): 00001000 00001010 4 BYTE TIME STAMP VALUE 4 BYTE TIME STAMP REPLY Example: <mss 512, nop, wscale 0, nop, nop, timestamp 146647> 18

TCP CHECKSUM CALCULATION AT THE SENDER 1. Add the pseudoheader to the TCP segment 2. Fill the checksum field with zeros 3. Divide the total bits into 16 bit words 4. If total length is not a multiple of 16 bits add one byte of all zeros. (Only used in the checksum calculation, not sent in datagram) 5. Add 16 bit words using ones complement arithmetic 6. Complement the result and put this in checksum field of header 7. Drop pseudoheader and any padding 32 BIT SOURCE IP ADDRESS 32 BIT DESTINATION IP ADDRESS 8 BITS OF ZEROS 8 BITS PROTOCOL = 6 TCP TOTAL SEGMENT LENGTH (# bytes) NOT INCLUDING PSEUDOHEADER SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HEADER LENGTH UNUSED FLAGS WINDOW THIS IS WHAT WE ARE CALCULATING URGENT POINTER OPTIONS + PADDING + DATA (THIS IS TEMPORARILY A MULTIPLE OF 16 BITS BECAUSE OF PADDING IF NEEDED) 19

TCP CHECKSUM CALCULATION AT THE RECEIVER 1. Add the pseudoheader to the received datagram. 2. Add padding if needed 3. Divide total bits into 16 bit sections 4. Add all sections using ones complement arithmetic 5. Complement the result 6. If the result is zero drop the pseudo header, remove padding if any, and you have the TCP segment. Aside: Ones complement arithmetic used end around carry. If the final column of numbers has a carry, add that carry back into the sum. (See Appendix C pp 783-784 Fououzan) Note: The purpose of the pseudo-header is to double-check that the data has arrived to the correct host. 20

User Datagram Protocol ( UDP ) Is Another Possibility UDP Header : 0 16 31 (32 Bits) 8 BYTES SOURCE PORT SEGMENT LENGTH (# of BYTES) DESTINATION PORT CHECKSUM 21

UDP CHECKSUM CALCULATION AT THE SENDER 1. Add the pseudoheader to the UDP datagram 2. Fill the checksum field with zeros 3. Divide the total bits into 16 bit words 4. If total length is not a multiple of 16 bits add one byte of all zeros. (Only used in the checksum calculation, not sent in datagram) 5. Add 16 bit words using ones complement arithmetic 6. Complement the result and put this in checksum field of header 7. Drop pseudoheader and any padding 32 BIT SOURCE IP ADDRESS 32 BIT DESTINATION IP ADDRESS 8 BITS OF ZEROS 8 BITS PROTOCOL = 17 UDP TOTAL SEGMENT LENGTH (#bytes) NOT INCLUDING PSEUDOHEADER* SOURCE PORT DESTINATION PORT UDP TOTAL LENGTH (*SAME AS ABOVE) THIS IS WHAT WE ARE CALCULATING DATA (THIS IS TEMPORARILY A MULTIPLE OF 16 BITS BECAUSE OF PADDING IF NEEDED) 22

UDP SENDER CHECKSUM CALCULATION EXAMPLE 1.0.2.1 2.1.0.0 0 17 11 3 4 11 THIS IS WHAT WE ARE CALCULATING 0 1 2 PADDING ZEROS 00000001 00000000 1.0 00000010 00000001 2.1 00000010 00000001 2.1 00000000 00000000 0.0 00000000 00010001 0 and 17 00000000 00001011 11 00000000 00000011 3 00000000 00000100 4 00000000 00001011 11 00000000 00000000 This is what we are calculating 00000000 00000001 0 and 1 data 00000010 00000000 2 and padding The ones complement sum for this equals: 00000111 00110001 Thus the checksum value entered into the datagram is: 11111000 11001110 23

IP Header: ( IPV4) 0 4 8 16 19 31 (Bits) Version IHL Type of Service Total Length Identification Flags Fragment Offset 20 Bytes Time to Live Protocol Header Checksum Source Address Destination Address Options + Padding 24

IP Header Details: Version ( 4 Bits ) - version number now is 4 Internet Header Length (IHL) (4 Bits) - length of IP header in 32 bit words. Minimum value is 5 for a minimum header of 20 bytes. When option field max size, IHL = 15 Type of service (8 bits) 3 Bits Precedence 4 Bits TOS One Bit Not used at present 0000 normal service 0001 minimize cost 0010 maximize reliability 1000 minimize delay Total Length (16 Bits) - Total IP datagram length in bytes including IP header. Maximum length value is 2 16-1 = 65,535 25

It is possible to have an IP datagram that is too big for some networks. For example, the Maximum Transfer Unit (MTU) of data that may be encapsulated into an ethernet frame is 1,500 bytes. If we have an IP datagram larger than this, we will have to fragment the datagram. This means breaking the datagram into smaller pieces. The header is copied for use in every fragment. The flags, fragmentation offset, and the total length fields are set to new values in each fragment. Identification (16 Bits) - a sequence number. Counter in the source machine keeps track of how many IP datagrams it has sent. This value is copied into the identification field. Fragments all have the same identification number. Flags ( 3 Bits ) More Bit - when datagram is fragmented this bit indicates if this is the last fragment. A value of one indicates there are more fragments, a value of zero means this is the end. Do not fragment bit - do not fragment if this bit is a one Unused bit Fragment Offset (13 Bits) - where in the original datagram this fragment belongs measured in 64 bit units. This means divide the offset location in bytes by 8 to get the value in the header. Conversely multiply the value you see in a header before you use it. Since offset field is only 13 bits, use this divide/multiply by 8 method to allow larger than 2 13-1 offsets 26

Example: Given a 3,500 byte IP datagram and an ethernet network with an Maximum Transfer Unit = 1,500 bytes. Assume there are no options included in the 20 byte IP header. We have 3,500 total bytes 20 header bytes = 3,480 data bytes to transport. The MTU limit = 1,500 so the largest a data payload may be is 1,500 20 header = 1480 The amount of data we carry must be a multiple of 8 because of the offset field definition. 184 * 8 = 1,472 185 * 8 = 1,480 186 * 8 = 1,488 We should choose 1,480 data bytes in the first segment so that the total size is 1480 data plus 20 header = 1,500 which is equal to or less than the MTU of 1,500. The offset field will have the value 0, the more flag will be equal to 1. The second datagram will also carry 1,480 bytes with the offset field equal to 1480/8= 185. The more flag will be equal to 1 The third datagram will carry the remaining 3,480 (1,480 + 1,480) = 520 bytes. It will be carried in an IP datagram with 520 + 20 Overhead bytes = 540 bytes. The offset field will be (1,480+1,480) / 8 )=370, and the more flag will equal 0. 27

In the event a fragment is itself fragmented, then the offset value used is relative to the original datagram prior to any fragmentation. Example: Suppose that second datagram in the previous example (which is 1,500 bytes in size) is further fragmented into two fragments because we encounter a smaller MTU = 766. The resulting new fragments for the second fragmented datagram from our original example are: For an MTU of 766 we may have a max of 766 20 overhead = 746 data bytes. 746/8 = 93.25 so we should use 93*8 = 744 data bytes in one new segment, leaving 1480 total data 744 in one segment = 736 data left for next segment. So First additional segment has 744 + 20 = 764 bytes total, offset value = same old start of 185 from before. Next additional segment has 736 + 20 = 756 bytes total, new offset = 185 + 744/8 = 185 + 93 = 278. Note that the offset value is relative to the relative position of the data to the original (source) data. 28

IP Header Details: Time To Live (8 Bits) - how long datagram exists usually done by hop count. Every router decreases TTL by at least one. Protocol (8 Bits) - indicates next higher level protocol IE TCP, UDP, ICMP, IGMP, etc 1 ICMP Internet Control Message Protocol 2 IGMP Internet Group Message Protocol 6 TCPTransmission Control Protocol 17 UDP User Datagram Protocol 41 IPV6 89 OSPF Open Shortest Path First Routing Protocol IP Header Checksum (16 Bits ) - applied to header only. At the sender the checksum field is first set to zero, then the header is divided into 16 bit pieces. These pieces are added together using one s complement arithmetic with a result that is also 16 bits long. The sum is complemented (inverted). This is the check sum value put in the datagram header. At the receiver, the 16 bit pieces are once again added using ones complement arithmetic. If there are no errors in the header, the complemented result will be all zeros. 29

IP Checksum Calculation Example: Given the following IP Header, calculate the IP checksum value. 4 5 0 64 2 0 0 16 17 You are calculating this 255.255.0.0 1.1.0.0 4, 5, and 0 64 2 0 and 0 16 and 17 255 and 255 0 and 0 1 and 1 0 and 0 SUM CHECKSUM 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 (This example had a 1 end around carry added back to the solution) 30

Source Address - (32 Bits ) Destination Address - (32 Bits ) Options (Variable) Padding (Variable) - used so header always multiple of 4 Bytes. Data (Variable) - max length including header 65, 535 Option bytes may or may not exist. If they do exist they look like this: 31

IP Options: Single Byte: No Operation 00000001 End of Options 00000000 Multiple Byte Varying in Length: Record Route Strict Source Routing Loose Source Routing Timestamp 32

Code Field Copy 1 Bit Class 2 bits Type 5 bits Length 8 bits Data field is of variable length The Copy Bit: 0 Copy only in the first fragment 1 Copy into all fragments The Class Bits: 00 Datagram Control 10 Debugging and Management The Type Bits: 00000 End of Operation 00001 No Operation 00011 Loose Source Routing 00100 Timestamp 00111 Record Route 01001 Strict Source Route 33

Example Loose Source Route Option: Code Field NO OP 00000001 10000011 Total Length Integer Pointer Value First IP address Second IP address... Last IP address Note that these 4 byte words would be appended to the end of the IP header just before the data. That is where options are put. A No Operation byte is a filler byte to make it so that options are always a multiple of 4 bytes. Pointer is an integer number to the first empty byte in this option field. Makes more sense in an option that fills in fields as you go along. 34

0 (IPV6) 4 8 16 24 31 Version Priority Flow Label Payload Length Next Header Hop Limit 40 BYTES Source Address Destination Address 35

IP V6 Header Details: Version (4 Bits) 0110 in binary means version 6 Priority (4 Bits) Similar to precedence field of IPV4 Flow Label (28 Bits ) Distinguish packets that require the same treatment Payload Length - (16 Bits ) Length of data carried after the header Next Header - (8 Bits ) Set to protocol type (UDP, TCP, etc) or extension header type sort of like options in IPV4 Hop Limit (8 Bits)- Now named hops instead of Time to Live Source Address (128 Bits) Destination Address (128 Bits) 36