Transporting Voice by Using IP Chapter 2 Internet Overview A collection of networks The private networks The public networks LANs, MANs, WANs Institutions, corporations, business and government May use various communication protocols ISP: Internet Service Providers Using Internet Protocol To connect to the Internet Using IP Internet Telephony 2 Internet Overview Interconnecting networks Routers provides the connectivity Internet Telephony 3 Overview of the IP Protocol Suite IP A routing protocol for the passing of data packets Must work in cooperation with higher layer protocols The OSI seven-layer model The top layer: usable information passed The information must be Packaged appropriately Routed correctly And it must traverse some physical medium Internet Telephony 4 The IP suite and the OSI stack TCP Reliable, error-free, in-sequence delivery UDP No sequencing, no retransmission Internet Telephony 5 Internet Standards and the Process The Internet Society A non-profit, non-governmental, international, professional membership organization Keep the Internet alive and growing “to assure the open development, evolution, and the use of Internet for the benefit of all people throughout the world” The tasks Support the development and dissemination of Internet standards Support the RD related to the Internet and internetworking Assists developing countries Form a liaison for Internet development Internet Telephony 6 IAB The Internet Architecture Board The technical advisory group provides overall architectural advice to IESG, IETF & ISOC appoints IRTF chair Technical guidance, oversee the Internet standards process Internet Telephony 7 IETF, formed in 1986 Comprises a huge number of volunteers Develop Internet standards “We reject kings, presidents and voting. We believe in rough consensus and running code”, Dave Clark standards only when people use them Detailed technical work Working groups (>100) avt, megaco, iptel, sip, sigtran Internet Telephony 8 IESG,The Internet Engineering Steering Group Area Directors + IETF Chair Manage the IETF’s activities Approve an official standard Can a standard advance? Internet Telephony 9 IANA,The Internet Assigned Numbers Authority Unique numbers and parameters used in Internet standards IP addresses mostly delegated to IP 5 regional Address registries domain names Be registered with the IANA deals with top level domains (TLDs) mostly delegated to DNS name registries functions split with the creation of ICANN Internet Corporation for Assigned Names and Numbers Internet Telephony 10 Internet Research Task Force (IRTF) Focused on long term problems in Internet Anti-Spam Crypto Forum Delay-Tolerant Networking End-to-End Host Identity Protocol Internet Measurement IP Mobility Optimizations Network Management Peer-to-Peer Routing Internet Telephony 11 Top Level View of Organization Internet Society IAB IRTF IASA IANA IANA RFC IESG area area area “the IETF” Internet Telephony 12 The Internet Standards Process The process RFC 2026 First, Internet Draft The early version of spec. Can be updated, replaced, or made obsolete by another document at any time IETF’s Internet Drafts directory Six-month life-time Internet Telephony 13 RFC Proposed standard Request for Comments An RFC number A stable, complete, and well-understood spec. Has garnered significant interest May be required to implement for critical protocols Draft standard Two independently successful implementations Interoperability be demonstrated Requirements not met be removed Internet Telephony 14 A standard The IESG is satisfied The spec. is stable and mature Significant operational experience A standard (STD) number Not all RFCs are standards Some document Best Current Practices (BCPs) Others applicability statements Processes, policies, or operational considerations How a spec be used, or different specs work together STD1 list the various RFCs Internet Telephony 15 IPR (Patents) RFC 2026 revised IETF IPR rules now use standards sequence to check IPR issues used to require “fair & non-discriminatory” licensing some standards blocked using old process require multiple implementations based on multiple licenses to progress to Draft Standard or Internet Standard but a worry about “submarine patents” IPR working group clear up fuzzy language in RFC 2026 produced RFC 3978 and RFC 3979 Internet Telephony 16 IPR, contd. IETF IPR (patent) rules in RFC 3979 require disclosure of your own IPR in your own submissions & submissions of others “reasonably and personally” known IPR WG takes IPR into account when choosing solution RFC 3669 gives background and guidance push from open source people for RF (royalty-free)only process consensus to not change to mandatory RF-only but many WGs tend to want RF or IPR-free Internet Telephony 17 IP RFC 791 Amendments, RFCs 950, 919, and 920 Requirements for Internet hosts, RFCs 1122, 1123 Requirements for IP routers, RFC 1812 IP datagram Data packet with an IP header Best-effort protocol Internet Telephony 18 IP Header Version 4 Header Length Type of Service Total Length Identification, Flags, and Fragment Offset A datagram can be split into fragments Identify data fragments Flags a datagram can be fragmented or not Indicate the last fragment TTL A number of hops (not a number of seconds) Internet Telephony 19 Protocol The higher-layer protocol TCP, 6; UDP, 17 Source and Destination IP Addresses Internet Telephony 20 IP Routing Based on the destination address Routers Can contain a range of different interfaces Determine the best outgoing interface for a given IP datagram Routing table Destination IP route mask the longest match Internet Telephony 21 Populating routing tables Issues The correct information in the first place Keep the information current in a dynamic environ The best path? Protocols RIP, Routing Information Protocol IGRP, Internet Gateway Routing Protocol OSPF, Open Short Path First BGP, Border Gateway Protocol, RFC 1771 Internet Telephony 22 TCP TCP In sequence, without omissions and without errors End-to-end confirmation, packet retransmission, Flow control RFC 793 Break up a data stream in segments Attach a TCP header Sent down the stack to IP At the destination, checks the header for errors Send back an ack The source retransmits if no ack within a given period Internet Telephony 23 The TCP header Internet Telephony 24 The TCP Header TCP Port Numbers Identifying a specific instance of a given application A unique port number for a particular session Well-known port numbers IANA, 0-1023 23, telnet; 25, SMTP Many clients and a server TCP/IP Source address and port number + Destination address and port number A socket address Internet Telephony 25 Sequence and acknowledge numbers Identify individual segments Actually count data octets transmitted A given segment with a SN of 100 and contains 150 octets of data The ack number will be 250 The SN of the next segment is 250 Other header fields Data offset: header length (in 32-bit words) URG: 1 if urgent data is included, use urgent pointer field ACK: 1, an ACK PSH: a push function, be delivered promptly Internet Telephony 26 RST: reset; an error and abort a session SYN: Synchronize; the initial messages FIN: Finish; close a session Window The amount of buffer space available for receiving data Checksum 1's complement of 1's complement sum of all 16-bit words in the TCP header, the data, and a pseudo header Internet Telephony 27 Urgent Pointer An offset to the first segment after the urgent data Indicates the length of the urgent data Critical information to be sent to the user application ASAP. Internet Telephony 28 TCP Connections An examples After receiving 100, 200, 300 ACK 400 Closing a connection > FIN < ACK, FIN > ACK Internet Telephony 29 UDP UDP Pass individual pieces of data from an application to IP No ACK, inherently unreliable Applications A quick, one-shot transmission of data, request/response DNS If no response, the AP retransmit the request The AP includes a request identifier The source port number is optional Checksum The header, the data and the pseudo header Internet Telephony 30 UDP header Internet Telephony 31 Voice over UDP, not TCP Speech Small packets, 10 – 40 ms Occasional packet loss is not a catastrophe Delay-sensitive 5 % packet loss is acceptable if evenly spaced Resource management and reservation techniques A managed IP network In-sequence delivery TCP: connection set-up, ack, retransmit → delays Mostly yes UDP was not designed for voice traffic Internet Telephony 32 The Real-Time Transport Protocol RTP: A Transport Protocol for Real-Time Applications UDP RFC 1889 RTP – Real-Time Transport Protocol RTCP – RTP Control Protocol Packets may be lost or out-of-sequence RTP over UDP A sequence number A time stamp for synchronized play-out Does not solve the problems; simply provides additional information Internet Telephony 33 RTCP A companion protocol Exchange messages between session users # of lost packets, delay and inter-arrival jitter Quality feedback RTCP is implicitly open when an RTP session is open Not mandatory E.g., RTP/RTCP uses UDP port 5004/5005 Internet Telephony 34 RTP Payload Formats RTP carries the actual digitally encoded voice RTP header + a payload of voice samples UDP and IP headers are attached Many voice- and video-coding standards A payload type identifier in the RTP header Specified in RFC 1890 New coding schemes have become available See table 2-1 A sender has no idea what coding schemes a receiver could handle Internet Telephony 35 Separate signaling systems Capability negotiation during the call setup SIP and SDP A dynamic payload type may be used Also support new coding scheme in the future The encoding name is also significant Unambiguously refer to a particular payload specification Should be registered with the IANA RED, Redundant payload type Voice samples + previous samples May use different encoding schemes Cope with packet loss Internet Telephony 36 RTP Header Format Internet Telephony 37 The RTP Header Version (V) Padding (P) 2 The padding octets at the end of the payload The payload needs to align with 32-bit boundary The last octet of the payload contains the count Extension (X) 1, contains a header extension Internet Telephony 38 CSRC Count (CC) Marker (M) The number of contributing source indentifiers RFC 1890 The first packet of a talkspurt, after a silence period Payload Type (PT) RED is an exception RFC 2198, the addition of headers Sequence number A random number at the beginning Incremented by one for each RTP packet Internet Telephony 39 Timestamp 32-bit The instant at which the first sample The receiver Synchronized play-out Calculate the jitter The clock freq depends on the encoding E.g., 8000Hz, TS=1/10 samples; TS=11 Support silence suppression The initial timestamp is a random number Internet Telephony 40 Synchronization Source (SSRC) 32-bit identifier The entity setting the sequence number and timestamp Chosen randomly, independent of the network address Meant to be globally unique within the session May be a sender or a mixer Contributing Source (CSRC) An SSRC value for a contributor 0-15 CSRC entries Internet Telephony 41 RTP Header Extensions Accommodate the common requirements of most media streams For payload formats that requires Internet Telephony 42 Mixers and Translators Mixers Enable multiple media streams from different sources to be combined An audio conference Could also change the data format The SSRC is the mixer If the capacity or bandwidth of a participant is limited More than one CSRC values A translator Manage communications between entities that does not support the same coding scheme The SSRC is the participant, not the translator Internet Telephony 43 The RTP Control Protocol (RTCP) RTCP A companion control protocol of RTP Periodic exchange of control information A third party can also monitor session quality For quality-related feedback Using RTCP and IP multicast Five type of RTCP packets Sender Report: transmission and reception statistics Receiver Report: reception statistics Internet Telephony 44 Source Description (SDES) One or more Must contain a canonical name BYE Separate from SSRC which might change When both audio and video streams exist Have different SSRCs Have the same CNAME for synchronized play-out Regular names, such as email address or phone number The end of participation APP Convey application-specific functions Internet Telephony 45 Two or more RTCP packets will be combined SRs and RRs should be sent as often as possible New receivers in a session must receive CNAME An SR/RR must contain an SDES packet A SDES packet is sent with an SR/RR even if no data to report An example RTP compound packet Internet Telephony 46 RTCP Sender Report SR Header Info Sender Info Receiver report blocks Option Profile-specific extension Internet Telephony 47 Resemble to a RTP packet Version Padding bit 2 Padding octets? RC, report count The number of reception report blocks 5-bit If more than 31 reports, an RR is added PT, payload type SSRC of sender Internet Telephony 48 NTP Timestamp Network Time Protocol Timestamp The time elapsed in seconds since 00:00, 1/1/1900 (GMT) 64-bit 32 MSB: the number of seconds 32 LSB: the fraction of a seconds (200 ps) A primary time server NTP, RFC 1305 Station WWV, Fort Collins, Colorado, by NIST Station WWVB, Boulder, Colorado, by NIST Internet Telephony 49 RTP Timestamp Sender’s packet count Corresponding to the NTP timestamp Use the same units and has the same offset as used for RTP timestamps For better synchronization Cumulative within a session Sender’s octet count Cumulative Internet Telephony 50 RR blocks SSRC_n Fraction lost Fraction of packets lost since the last report issued by this participant By examining the sequence numbers in the RTP header Cumulative number of packets lost The source identifier Since the beginning of the RTP session Extended highest sequence number received The sequence number of the last RTP packet received 16 lsb, the last sequence number 16 msb, the number of sequence number cycles Internet Telephony 51 Interarrival jitter Last SR Timestamp (LSR) An estimate of the variance in RTP packet arrival The middle 32 bits of the NTP timestamp used in the last SR received from the source in question Used to check if the last SR has been received Delay Since Last SR (DLSR) The duration in units of 1/65,536 seconds Internet Telephony 52 RTCP Receiver Report RR Issued by a participant who receives RTP packets but does not send, or has not yet sent Is almost identical to an SR PT = 201 No sender information Internet Telephony 53 RTCP Source Description Packet Provides identification and information regarding session participants Header Must exist in every RTCP compound packet V, P, SC, PT=202, Length Zero or more chunks of information An SSRC or CSRC value One or more identifiers and pieces of information Email address, phone number, name Defined in RFC 1889 A unique CNAME E.g., user@host Internet Telephony 54 RTCP BYE Packet Indicate one or more media sources are no longer active Application-Defined RTCP Packet For application-specific data For non-standardized application Internet Telephony 55 Calculating Round-Trip Time Use SRs and RRs E.g. Report A: A, T1 → B, T2 Report B: B, T3 → A, T4 RTT = T4-T3+T2-T1 RTT = T4-(T3-T2)-T1 Report B LSR = T1 DLSR = T3-T2 Internet Telephony 56 Calculation Jitter The mean deviation of the difference in packet spacing at the receiver Si = the RTP timestamp for packet I Ri = the time of arrival D(i,j) = (Rj-Sj) - (Ri- Si) The Jitter is calculated continuously J(i) = J(i-1) + (| D(i-1,i) | - J(i-1))/16 Internet Telephony 57 Timing of RTCP Packets RTCP provides useful feedback Regarding the quality of an RTP session Delay, jitter, packet loss Be sent as often as possible Consume the bandwidth Should be fixed at 5% An algorithm, RFC 1889 Senders are collectively allowed at least 25% of the control traffic bandwidth The interval > 5 seconds 0.5 – 1.5 times the calculated interval A dynamic estimate the avg RTCP packet size Internet Telephony 58 IP Multicast An IP diagram sent to multiple hosts Conference To a single address associated with all listeners Multicast groups Multicast address Join a multicast group Inform local routers Routing protocols Support propagation of routing information for multicast addresses Minimize the number of diagrams sent Internet Telephony 59 IPv4 Multicast addresses: 224.0.0.0 – 239.255.255.255 224.0.0.1 all hosts on a local subnet 224.0.0.2 all routers on a local subnet 224.0.0.5 all routers supporting OSPF 224.0.0.9 all routers supporting RIP v.2 IGMP, Internet Group Message Protocol Advertise membership in a group to routers RFC 1112, 2236 Internet Telephony 60 IP Version 6 The explosive growth of the Internet Expanded address space, 128 bits Simplified header format Improved support for headers and extensions Flow-labeling capability IPv4 address space, 32-bit Real-time and interactive applications Better support at the IP level for real-time ap Authentication and privacy At the IP level Internet Telephony 61 IP Version 6 Header Internet Telephony 62 IP Version 6 Header Version Traffic Class, 8-bit 6 For the quality of service Flow Label, 20-bit Label sequences of packets A flow := source address, destination address, flow label 0, no special handling Internet Telephony 63 Payload Length, 16-bit unsigned integer The length of payload in octets Header extensions are part of the payload Next Header, 8-bit The next higher-layer protocol The existence of IPv6 header extensions Hop Limit, 8-bit unsigned integer Same as the IPv4 The TTL field of the IPv4 header Source and Destination Addresses, 128-bit Internet Telephony 64 IP version 6 addresses XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX E.g., 1511:1:0:0:0:FA22:45:11 Leading zeros are omitted = 1511:1::FA22:45:11 0:0:0:0:AA11:50:22:F77 = ::AA11:50:22:F77 X is a hexadecimal character “::” can appears only once Should not generally require significant changes to up-layer protocols But the checksum calculation in UDP and TCP includes a pseudo header Internet Telephony 65 IP version 6 special addresses The all-zeros address, :: The loopback address, ::1 On a virtual internal interface IPv6 address with embedded IPv4 address (type 1) An unspecified address; a node does not yet know its address 96-bit zeros + 32-bit IPv4 address ::140.113.17.5 IPv6 address with embedded IPv4 address (type 2) 80-bit zeros + FFFF + 32-bit IPv4 address 0:0:0:0:0:FFFF:140.113.17.5 ::FFFF:140.113.17.5 Internet Telephony 66 IP Version 6 Header Extensions Extension Headers Are not acted upon by intermediate nodes With one exception Next Header The type of payload carried in the IP datagram The type of header extension Each extension has its own next header field An example Internet Telephony 67 Header extension Use the next header field Internet Telephony 68 Hop-by-hop extension The exception header extension Next header Length Examined and processed by every intermediate node If present, must immediately follow the IP header Of variable length in units of eight octets, not including the first eight octets Options TLV (Type-Length-Value) format 8-bit, 8-bit (in units of octets), variable length Type [0:2] of special significance Internet Telephony 69 Hop-by-hop header extension Internet Telephony 70 Type[0:1] 00 skip this option and continue processing the header 01 discard the packet 10 discard the packet and send an ICMP Parameter Problem, Code 2 message to the originator of the packet 11 do above only if the destination address in the IP header is not a multicast address Type[2] 1, the option data can be changed 0, cannot Internet Telephony 71 Destination options extension Has the same format as the hop-by-hop extension Only the destination node examine the extension Header type = 60 Routing Extension A routing type field to enable various routing options Only routing type 0 is defined for now Specify the nodes that should be visited Next header Length Internet Telephony 72 Routing Extension Internet Telephony 73 Routing type Segments Left The number of nodes that still need to be visited A list of IP addresses needs to be visited Is this type of header analyzed by intermediate node? Yes or no A->Z, 3, (B,C,D) A->B, 3, (C,D,Z) A->C, 2, (B,D,Z) by B A->D, 1, (B,C,Z) by C A->Z, 0, (B,C,D) by D Internet Telephony 74 Interoperation IPv4 and IPv6 IPv4 and IPv6 will coexist for a long time IPv4 nodes IPv6 nodes IPv6 nodes IPv6 nodes via IPv4 networks IPv4 nodes IPv4 nodes via IPv6 networks IPv4-compatible nodes with IPv4-compatible addresses at the boundaries of IPv6 networks IPv6 in IPv4 packets Internet Telephony 75 Interoperation IPv4 and IPv6 IPv4-compatible nodes with IPv4-compatible addresses at the boundaries of IPv6 networks IPv6 in IPv4 packets Internet Telephony 76