Monday, February 4, 2013

MDIX

article from http://cciepursuit.wordpress.com/2007/07/08/switch-cabling-and-auto-mdix/


Switch Cabling And Auto-MDIX

Filed under: Cabling,Home Lab,IOS,Switching — cciepursuit @ 6:28 am 
This thread in GroupStudy about using Auto-MDIX to enable the use of straight-through cables between switches reminded me of a real world issue involving the same technology.  At my previous job, there was a “senior” engineer who supported a large site.  She was having an issue with hard-setting the speed and duplex of an uplink port (I think it was a “stack” of 2950s) on a Cisco switch.  While most of our uplinks were fiber, this one was copper (it was a small office that just needed to connect to the MDF on the floor directly above it).  Our standard was to use a cross-over cable for any switch-to-switch connections and to hard-set the speed and duplex on both sides of the connection.  She was having a problem with setting the speed and duplex.  If she hard-set these settings on both sides of the link, then the link would go down.  If she let one side of the link auto-negotiate, the link would come up, but the connection would not meet our standards.  I eventually got dragged into this issue.
Looking at the switch settings, I noticed something odd: auto-MDIX was enabled (globally) on both switches.  Our standard was to disable this on every switch.  This gave us a little protection from users making unauthorized switch-to-switch connections (accidentally or on purpose) as cross-over cables were not generally available to end users (most wouldn’t know what a cross-over cable was).  I asked the engineer if she was using a cross-over cable on the uplink. 
Her response: “That’s not the problem.  You can use a straight-through cable.” 
“Sure you CAN, but our standard is to use crossover cables because….blah, blah, blah.”
Long story shorter: she refused to adhere to our standards and use a cross-over cable and I refused to waste my time on the issue.  I wasn’t sure that the cabling was the issue, but if disabling auto-MDIX and using the proper cabling did not fix the issue then we could at least take those elements out of the equation. 
She muddled on for a couple more days (she couldn’t be bothered to open a TAC case) and the problem remained.  Finally our top-level LAN guy looked into the issue.  He found the answer after a few minutes on Cisco’s web site (this is specific to the 3560):
Configuring Auto-MDIX on an Interface
When automatic medium-dependent interface crossover (auto-MDIX) is enabled on an interface, the interface automatically detects the required cable connection type (straight through or crossover) and configures the connection appropriately. When connecting switches without the auto-MDIX feature, you must use straight-through cables to connect to devices such as servers, workstations, or routers and crossover cables to connect to other switches or repeaters. With auto-MDIX enabled, you can use either type of cable to connect to other devices, and the interface automatically corrects for any incorrect cabling. For more information about cabling requirements, see the hardware installation guide.
Auto-MDIX is enabled by default. When you enable auto-MDIX, you must also set the interface speed and duplex to auto so that the feature operates correctly. Auto-MDIX is supported on all 10/100 and 10/100/1000-Mbps interfaces and on 10/100/1000BASE-TX small form-factor pluggable (SFP)-module interfaces. It is not supported on 1000BASE-SX or -LX SFP module interfaces.
So you can use a straight through cable to connect two switches, but you then cannotexplicitly set the speed and duplex.  The engineer was told that the solution to her problem was to disable auto-MDIX and use a cross-over cable.  Where had I heard that before?  :-)
To be fair, I wasn’t aware of the auto-MDIX needing auto-negotiation issue, BUT whenever you are troubleshooting a problem you want to minimize any deviations from known working configurations to eliminate unnecessary variables.  I think that I remember reading that auto-MDIX uses the same protocol as auto-negotiation and that’s why both need to be enabled.  I’m not positive about that though.
This table is pretty interesting.  I assume that “correct cabling” means a cross-over cable and “incorrect cabling” means a straight-through cable.
Local Side Auto-MDIXRemote Side Auto-MDIXWith Correct CablingWith Incorrect Cabling
OnOnLink upLink up
OnOffLink upLink up
OffOnLink upLink up
OffOffLink upLink down

You can refer to the table below, but it’s pretty easy to determine if a link will be up or not: at least one side needs to have auto-MDIX enabled along with auto-negotiation of speed and duplex, otherwise the link will be down.
sw1
sw2
MDIXSpeed/DuplexMDIXSpeed/DuplexLink Status
onautoonautoup
onautoonhard-setup
onautooffautoup
onautooffhard-setup
onhard-setonautoup
onhard-setonhard-setdown
onhard-setoffautodown
onhard-setoffhard-setdown
offautoonautoup
offautoonhard-setdown
offautooffautodown
offautooffhard-setdown
offhard-setonautoup
offhard-setonhard-setdown
offhard-setoffautoup
offhard-setoffhard-setdown
This makes sense because you need at least one side to be able to logically switch the pinouts of a straight-through cable to emulate a cross-over cable.  Hard-setting the speed or duplex disables the auto-negotiation protocol (which auto-MDIX must utilize as well) which effectively disables auto-MDIX:
Note: The only command that I know of that will show the auto-MDIX state of an interface (other than looking at the running-configuration of the interface) is the rather verbose “show controllers ethernet-controller fax/x phy | include MDIX” command.
Note: The default setting for switch ports is to have auto-MDIX enabled.  This is a pretty recent change though.  IOS versions prior to 12.2(20)SE will use the default of “no mdix auto”.
“mdix auto” is the default, so it does not show in the running-configuration:
sw2(config)#do sh run int fa0/32
Building configuration…
Current configuration : 34 bytes
!
interface FastEthernet0/32
end
We can verify that auto-MDIX is on for this interface:sw2(config)#do sh controll eth fa0/32 phy | i MD Auto-MDIX                             :  On   [AdminState=1   Flags=0x00052248]
Let’s hard-set the speed and see what happens to auto-MDIX:sw2(config)#int fa0/32
sw2(config-if)#speed 100sw2(config-if)#do sh control eth fa0/32 phy | i MD
 Auto-MDIX                             :  Off   [AdminState=1   Flags=0x00010A48]
Notice that our configuration does not state that auto-MDIX has been disabled:sw2(config-if)#do sh run int fa0/32
Building configuration…
Current configuration : 45 bytes
!
interface FastEthernet0/32
 speed 100
end
This verifies that hard-setting the speed and/or duplex turns off auto-MDIX for the interface.
Note: I did test to see if DTP was effected by auto-MDIX.  It was not.  As long as the link was up, DTP could work it’s trunking magic.
So the long and the short of it is: you can use straight-through cables to connect two Cisco switches as long as you are willing to sacrifice the ability to hard-set the speed and/or duplex on both sides of the link.

Cisco Documentation:

Monday, January 28, 2013

Understanding Reverse Proxy Servers


Article by
Scott Forsyth's
Original article from http://weblogs.asp.net/owscott/archive/2009/08/08/understanding-reverse-proxy-servers-and-the-mailman.aspx

Understanding Reverse Proxy Servers – and the Mailman

Ok, the goal isn’t to learn about the mailman, but he’s going to come in handy later.
Proxy servers have been around since the early days of computing and they play a large role on the web today: sometimes obvious, sometimes not.  They can be used for good or they can be used for harm, like man-in-the-middle attacks.  Today I want to provide a visual representation of a reverse proxy server used for load balancing.  I also want to address some concepts and potential issues and solutions that often come up with proxy based load balancing.
Definition
ProxyDictionary.com: “the agency, function, or power of a person authorized to act as the deputy or substitute for another.”
Proxy serverWikipedia: In computer networks, a proxy server is a server (a computer system or an application program) that acts as a go-between for requests from clients seeking resources from other servers.
Reverse ProxyWikipedia: A reverse proxy or surrogate is a proxy server that is installed in a server network. Typically, reverse proxies are used in front of Web servers.
The proxy server drawn out
This can be easily represented with the following diagrams.  This is oversimplifying the meaning slightly, but it communicates the essence of forward and reverse proxies.

Proxy Server
Reverse Proxy Server



The difference between a forward and reverse proxy server is essentially where it lives and who it targets.  If it’s on the perimeter of the client’s network (like a corporate network or ISP) then it’s a proxy server.  If it sits in front of servers or devices on the web (like in a data center) then it’s a reverse proxy server. 
Proxy servers can be used for any numbers of applications, some of them include:
Forward Proxy Server Examples
  • Caching web pages to increase the perceived speed of the internet.  AOL has been known over the years for their poor implementation of proxy servers for their users.  Many corporate networks use proxies successfully.
  • Filtering to ensure that inappropriate or unapproved content isn’t allowed to the end user.  These are common in corporate environments, schools and colleges. A NetNanny-type of product functions as a proxy server/service.
Reverse Proxy Server Examples
  • Caching content for performance for a web server at the data center.  Speeds up a website for all users of that website.
  • Load balancing a few servers to distribute load.  Allows scalability or redundancy.
  • Webpage treatments for client-side performance gains.


As you can see, there are many reasons for proxy servers, and they are in operation all over the web.  It’s possible that a proxy server is being used for you to see this website right now.
Direct Server Return
I want to briefly mention another type of method used by some load balancers, called Direct Server Return (DSR). It’s helpful to contrast this with a Proxy Server.
Load Balancer using Direct Server Return

Notice that the load balancer isn’t as aggressive as the ones in the previous diagrams.  It passes on the request from the client to the web server and then it minds its own business and stays out of the rest of the communication.  In fact, with this solution, the web server barely even realizes that the load balancer played a role.  In this role, a load balancer is not taking the role of a reverse proxy server.  It does not stand in the middle for the whole process.
Additionally, even though routers and switches are middle-men between the client and server, they are not considered proxy devices either. 
Reverse Proxy Servers and Load Balancers
Now on to the main points that I want to cover.  Recently I’ve started to work with Microsoft’s new Application Request Routing (ARR) load balancer which I’ve been extra impressed with.  I plan to post more over time on how to really leverage this as a full blown flexible, stable and scalable load balancing solution.  Over the last few years I’ve been using DSR based load balancers for the most part.  As a result of working with ARR, I’ve run into a few concepts and addressed a few issues that I want to cover here.
The Mailman as a Proxy
The biggest issue that comes up with proxying requests is that it’s nearly impossible for the proxy (or reverse proxy) server to stay hidden.  Consider the mailman who delivers mail to your house each day.  He’s not the original sender, but he’s the person that, at first glance, appears to be the sender.  How many jokes are made of the mailman building a romantic relationship with the wife?

The mailman is a type of proxy.  The trick is to make sure that you can tell who the original sender is, and that you don’t get confused and give the mailman credit for a letter that’s not from him.  You certainly don’t want your love letters to your spouse or significant other being credited to the wrong person. 
In the case of the mailman, there is some evidence of the postal system proxying the mail, in the form of markings in the top right corner.  However the larger markings are the ‘return’ and ‘to’ addresses.  It’s important for the receiver to understand which markings to pay attention to and which to ignore.
The Proxy Server Leaves a Mark
When a server acts as a proxy, it will change some of the request headers.  In particular, the headers to watch for are:
  • REMOTE_ADDR
  • REMOTE_HOST
  • Some proxy servers can also off-load SSL, which means that it will proxy from SSL to HTTP.  In that case SERVER_PORT and some certification headers come into play.
In the case of IIS and the web server, it will try to set REMOTE_ADDR and REMOTE_HOST to the IP of the proxy server.  Any code that depends on these headers will get confused.  For example, if you check for blog spam by client IP, you may check REMOTE_ADDR from code.  With the proxy server in-between, it will appear that all traffic comes from a single IP.  Additionally the web server will log the traffic as coming from the proxy server.
To avoid this impacting affect caused by the proxy server, it’s necessary to rewrite all relevant header and log information back again so that it appears to come from the original sender.  This can be done various different ways, but I’ll cover a common method, and how ARR handles this.
ARR’s Header Rewriting
With ARR, this can be handled one of four ways:
  1. Ignore the issue.  Some people don’t have any site features that depend on knowing the client IP, and they are fine with not knowing the client IP in their site statistics. 
  2. Update your code to use the custom headers that ARR sets, namely X-Original-URL, X-Forwarded-For, X-ARR-SSL, X-ARR-LOG-ID.  This won’t address the IIS logs, but it can address everything else.
  3. ARR Helper.  Anil Ruia, one of the primary ARR developers, has written a helper module that works in IIS7 to rewrite the relevant headers back.  The ARR Helper module is not officially supported by Microsoft, but works like a charm.  ARR itself will place the original client’s site in a configurable request header, which is X-Forwarded-For by default.  It will also place certificate information for SSL offloading in X-ARR-SSL.  On the actual web server, the ARR Helper runs silently in the background and will rewrite those headers back to REMOTE_ADDR, REMOTE_HOST, SSL and REMOTE_PORT.  It will also ensure that the logs recover the original client IP.  It’s installed at the server level and doesn’t have any impact on non-load balanced sites and performance overhead is negligible (for load balanced or non-load balanced).  We’re running this in production at ORCS Web and are very pleased with the results.  No code changes are necessary for the site owner.
  4. With ARR and URL Rewrite 2.0, currently in Beta, it can also do the same thing.  ARR itself takes care of the writing on the ARR server, and URL Rewrite 2.0 can rewrite the X-Headers back to the appropriate locations.  URL Rewrite 2.0 needs to be installed and configured on each of the web servers.  Currently I’m running this in testing only since version 2.0 does not have a go-live license, but the end goal is to use URL Rewrite for the web server rewriting.  While Anil’s solution works perfectly, this will be the Microsoft supported solution moving forward.
In future blog posts, I hope to dig deeper into ARR technically, but I wanted to lay the groundwork first on the concept of proxying, and what you need to consider by having a middle man between the client and web server.

Wednesday, August 22, 2012

Nginx, high-performance HTTP server and reverse proxy MAP/POP3 proxy server

Just came a across a capable HTTP server, the NginX.

Used by in , the 

[Apache and Nginx] are capable of serving a huge number of requests per second, while Nginx's performance almost doesn't drop!

Sunday, September 11, 2011

Tuesday, March 10, 2009

spaned vlan cause duplicated frame

LAN, Switching and Routing: Duplicate ACKs when Sniffing a Spanned VLAN

Wireshark tech support:
"If you span a vlan, every packet will enter the switch and leave the switch on that vlan, hence the switch will mirror it twice. You should use "rx" or "tx" instead of "both" on the definition of the span-port when spanning a vlan.

You can remove the duplicate packets in the tracefile with "editcap -d " :-)

"
Not sure if this relates directly to what you're seeing or not, but configuring a session monitor to observe traffic on multiple ports in both directions will cause Wireshark to report out of order and duplicate packets. For instance, I configured a 2950 to monitor a CallManger port and a Unity port for testing. Wireshark reported numerous out of order and duplicate packets. It took a few minutes to figure out but it turns out that the problem was simply the normal behavior of Wireshark when it sees the same traffic from two ports. The packet is 'monitored' on the ingress port, then again on the egress port. I would suggest that you make sure you are monitoring only one port and see if the out of order and duplicate packets persist. "

http://www.groupstudy.com/archives/cisco/200706/msg00600.html

Thursday, January 22, 2009

Jumbo/Giant frame in switch

Background Information

This section describes the basic terminology that this document uses. This section also explains the background theory for the configurations in this document.

Term Definitions

  • MTU: MTU is short for Maximum Transmission Unit, the largest physical packet size, measured in bytes, that a network can transmit. Any messages larger than the MTU are divided into smaller packets before transmission.

  • Jumbo: Jumbo frames are frames that are bigger than the standard Ethernet frame size, which is 1518 bytes (including Layer 2 (L2) header and FCS). The definition of frame size is vendor-dependent, as these are not part of the IEEE standard.

  • Baby giants: The baby giants feature allows a switch to pass or forward packets that are slightly larger than the IEEE Ethernet MTU. Otherwise, the switch declares big frames as oversize and discards them.

Background Theory

In order to transport traffic across switched-networks, ensure that transmitted traffic MTU does not exceed the MTU that the switch platforms support. Here are the reasons why the MTU size of certain frames is truncated:

  • Vendor-specific requirements: Applications and some Network Interface Cards (NICs) can specify an MTU size outside of the standard 1500 bytes. Much of this drive has been due to studies undertaken, which prove that an increase in the size of an Ethernet frame can increase average throughput.

  • Trunking: In order to carry VLAN-ID information between switches or other network devices, trunking has been employed to augment the standard Ethernet frame. Today, the two most common forms of trunking are Cisco's proprietary InterSwitch Link (ISL) encapsulation and IEEE 802.1q. Refer to these documents for more information on trunking:

  • MultiProtocol Label Switching (MPLS): When you enable MPLS on an interface, MPLS can also augment the frame size of a packet, depending on the number of labels in the Label stack for an MPLS-tagged packet. The total size of a label is four bytes. The total size of a label stack is n x 4 bytes. If a label stack is formed, the frames can exceed the MTU.

Jumbo/Giant frame support on Catalyst switches config example

Wednesday, January 21, 2009

Teleconferencing - Introduction

from: Teleconferencing - Introduction, Services and requirements, Teleconferencing standards, Itu-t h.323 – packet-based multimedia communications systems, Call signaling and control, Audio


Shervin Shirmohammadi
University of Ottawa, Canada

Jauvane C. de Oliveira
National Laboratory for Scientific Computation, Petropolis, RJ, Brazil

Definition: Teleconferencing is an aggregation of audio conferencing, video conferencing, and data conferencing, and includes multiple participants in a live real-time session.
Teleconferencing (a.k.a. Multimedia Conference Services) consists of a live real time session between multiple participants with the ability to hear and see each other as well as share data and applications. Alternatively, teleconferencing can be thought of as an aggregation of audio conferencing, video conferencing, and data conferencing (or application sharing). Although a subject of interest for many years, teleconferencing has recently grabbed a lot of attention due to current economic and social trends, which emphasize the need for rich media communication between geographically-distributed people. Economic incentives include cutting traveling costs, as well as reducing security risks, and increasing worker availability, whereas social incentives are caused by the higher expectations from technology and experience of ordinary users of today.
Figure 1 shows a sample teleconferencing session in the JETS 2000 system. The participants in this session can see and hear each other, in addition to being able to do whiteboarding and application sharing. It should be noted that teleconferencing is, by nature, a live and therefore real-time multimedia application. Offline communication paradigms such as blogs, chat boards, and email are not considered to be part of teleconferencing.

Services and Requirements

A typical multimedia teleconferencing system should provide the following services:
  • audio conferencing
  • video conferencing
  • data conferencing
  • control and signaling
Since these services are provided in a live environment, communication lag and deficiencies such as delay, jitter, packet loss, and lack of sufficient bandwidth adversely affects the execution of the teleconferencing session. This is particularly significant in networks that don’t guarantee quality of service, such as the Internet.
Audio and video are medium which are continuous by nature. As such, they both suffer from network lag. However, it is a well-known fact that, from a human perception point of view, audio is affected more adversely than video in the presence of network lag. For example, if a given video frame is delayed, one can simply repeat the previous frame until the new one arrives. This causes some “unnaturalness” in the video, but it is acceptable for all practical purposes if the repeat duration is not too long. For audio streaming; however, if audio samples are delayed, they are either replaced by undesirable silence, which become especially irritating when happening in the middle of a word, or they are replaced by the last samples available until new ones arrive, which causes noise. In both cases, the flow of audio not only becomes unnatural, but also the conversation becomes incomprehensible. Under less than desirable network conditions, participants in teleconferencing do experience such problems. In order to mitigate this undesirable phenomenon, it is common to buffer a given amount of audio and video so that there is something available for playback in the event that delays occur. Naturally this buffering introduces further delay and needs to be limited, especially in the context of a live session. To accommodate the transmission of audio and video over the network, protocols such as the RTP (Real-time Transport Protocol) are used.

Teleconferencing Standards

In any field, standards are needed for compatibility: allowing products and services offered by different vendors to interoperate. Teleconferencing is no exception. In fact, the need for standards in teleconferencing is most crucial due to the large number of network operators, product vendors, and service providers.
The International Telecommunications Union – Telecommunications Standardization Sector (ITU-T) has created a large set of recommendations that deal with teleconferencing, encompassing audio, video, data, and signaling requirements. The ITU-T F.702 recommendation describes what is known as Multimedia Conference Services. It defines the terminology used in multimedia conferencing, as well as a description of the service with a functional model, configuration, and roles of participants, terminal aspects, applications, and additional services. There is a set of recommendations which are typically umbrella standards, each containing a number of other recommendations specifically for audio, video, data, and signaling. The most widely-used of such umbrella standards for teleconferencing on the Internet is the ITU-T H.323.

ITU-T H.323 – Packet-based multimedia communications systems

The H.323 standard provides a foundation for real time audio, video and/or data communications across packet-based networks, such as the Internet. Support for audio is mandatory, while data and video are optional. By complying with the H.323 recommendation, multimedia products and applications from multiple vendors can interoperate, allowing users to communicate with ensured compatibility. H.323 is specifically designed for multimedia communications services over Packet Based Networks (PBN) which may not provide a guaranteed Quality of Service (QoS), such as the Internet.
The standard is quite broad in its scope. It encompasses stand-alone devices, embedded devices, point to point, and multipoint conferences. It also covers issues such as multimedia management, bandwidth management, and interoperation with various terminal types.
As an umbrella standard, H.323 specifies other standards for audio, video, data, and signaling. Figure 2 shows an example of an H.323 recommendation compliant system, illustrating audio, video, data, and signaling, and their relation with ITU-T standards and the TCP/IP protocol stack.

Call signaling and control

Call signaling and control is concerned mostly with setting up, maintaining, and taking down connections between teleconferencing parties. In addition, the recommendations define a Gateway: an optional element that provides many services, mainly used for translating between H.323 conferencing endpoints and other terminal types. This includes translation between transmission formats (H.225.0 to H.221) and between communications procedures (H.245 to H.242). The Gateway also translates between audio and video codecs and performs call setup and clearing on both the packet-based and the switched-circuit network side. Some of the relevant standards for signaling and control are:
  • H.225.0 – Call signaling protocols and media stream packetization for packet-based multimedia communication systems.
  • H.235 – Security and encryption for H-series (H.323 and other H.245-based) multimedia terminals
  • H.245 – Control protocol for multimedia communication
  • Q.931 – ISDN user network interface layer 3 specification for basic call control.
  • H.450.1 – Generic functional protocol for the support of supplementary services in H.323.

Audio

Audio signals transmitted over the network are digitized and, most of the time, compressed. H.323 supports a number of compression algorithms but only one is mandatory: H.323 terminals must support the G.711 recommendation for speech coding, which is basically uncompressed 8-bit PCM signal at 8KHz in either A-Law or ยต Law format, leading to bitrates of 56 or 64kbps. Support for other ITU-T audio recommendations and compressions is optional, and is implementation specific depending on the required speech quality, bit rate, computational power, and delay. Provisions for asymmetric operation of audio codecs have also been madel i.e., it is possible to send audio using one codec but receive audio using another codec. If the G.723.1 audio compression standard is provided, the terminal must be able to encode and decode at both the 5.3 kbps and the 6.3 kbps modes. If a terminal is audio only, it should also support the ITU-T G.729 recommendation. Note that if a terminals is known to be on a low-bandwidth network (<64kbps),>
  • G.711 – Pulse Code Modulation (PCM) of voice frequencies.
  • G.722 – 7 kHz audio-coding within 64 kbit/s.
  • G.723.1 – Dual rate speech coder for multimedia communications transmitting at 5.3 and 6.3 kbit/s.
  • G.728 – Coding of speech at 16 kbit/s using low-delay code excited linear prediction.
  • G.729 – Coding of speech at 8 kbit/s using conjugate-structure algebraic code excited linear prediction (CS-ACELP).

Video

Video support in H.323 is optional. However, if a terminal is to support video, it must at the very least support the H.261 codec at the QCIF frame format. Support for other H.261 modes or the H.263 codec is optional. During the initial setup, a specific video data rate is selected during the capability exchange. This rate should not be violated throughout the duration of the session. The H.261 standard uses communication channels that are multiples of 64 kbps, known as px64, where p {1, 2, 3, 30]. From a video encoding perspective, there are no Bidirectional or ‘B’ frames in H.261. Instead, it uses Intra or ‘I’ frames which are fully and independently encoded, and Predicted or ‘p’ frames which code the difference between the frame and its previous frame by using motion estimation.
Compared to H.261, H.263 uses 1/2 pixel motion-estimation for better picture quality, and a Huffman coding table that is optimized specifically for low bit rate transmissions. H.263 defines more picture modes than H.261, as seen in Table 1. In addition, H.263 introduces the PB frames, which consist of a P frame interpolated with a Bi-directional or ‘B’ frame: a frame that depends not only on a previous frame but also on a forthcoming frame. Similar to a P frame, a B frame uses motion estimation to reduce the amount of information to carry. See the related article on “Video Compression and Coding Techniques” and “Motion Estimation” for further details.

Data Conferencing

The ITU-T has a set of standards for data conferencing and application sharing. The ITU-T T.120 recommendation summarizes the relationships amongst a set of protocols for data conferencing, providing real time communication between two or more entities in a conference. Applications specified as part of the T.120 family include application sharing, electronic whiteboarding, file exchange, and chat.
Data conferencing is an optional capability in multimedia conferences. When supported, data conferencing enables collaboration through applications such as whiteboards, application sharing, and file transfer. The list below summarizes the related recommendations in the T.120 family set forth herein:
  • T.120 – Data protocols for multimedia conferencing.
  • T.121 – Generic application template It defines the generic application template (GAT), specifying guidelines for building application protocols and facilities that manage the control of the resources used by the application. T.121 is a mandatory standard for products that support T.120.
  • T.122 – Multipoint communication service – Service definition: It defines the multipoint services allowing one or more participants to send data. The actual mechanism for transporting the data is defined by T.125, T.122 and T.125 together constitute the T.120 multipoint communication services (MCS).
  • T.123 – Network specific data protocol stacks for multimedia conferencing: It defines the sequencing and transporting of the data and its flow control across the network.
  • T.124 – Generic Conference Control It defines the generic conference control (GCC) for initiating and maintaining multipoint data conferences. The lists of conference participants, their applications, and the latest conference information is kept here.
  • T.125 – Multipoint communication service protocol specification: It defines how data is actually transmitted. One can think of T.125 as the implementation of T.122 services, among other things.
  • T.126 – Multipoint still image and annotation protocol: It defines how the whiteboard application sends and receives data. Both compressed and uncompressed form for viewing and updating are supported.
  • T.127 – Multipoint binary file transfer protocol: It defines how files are transferred, sometimes simultaneously, among users. Similar to T.126, it supports both compressed and uncompressed forms.
  • T.128 – Multipoint application sharing: It defines the program sharing protocol; i.e., how participants can share programs that are running locally.

Other Standards

H.320 Narrow-band visual telephone systems and terminal equipment (March 2004) supports videoconferencing over ISDN. This protocol has a long and successful history. Sometimes considered a ‘legacy’ protocol, private industry still relies heavily on this protocol, and it provides an important bridge to the PSTN.
H.321 Adaptation of H.320 visual telephone terminals to B-ISDN environments (Feb 98) provides support for videoconferencing over ATM. A number of successful systems have been built upon this technology, though the general scarce deployment of ATM limits the overall reach of these systems.
H.322 Visual telephone systems and terminal equipment for local area networks which provide a guaranteed quality of service (Mar 96) used over LANs that guarantee bandwidth, such as ISO-Ethernet.
H.324 Terminal for low bit rate multimedia communication (Mar 2002)provides support for low bandwidth videoconferencing over PSTN. This protocol enjoys success particularly in Asian cellular markets.

Tools

There are many teleconferencing tools currently available. Some of the most popular commercial tools are Microsoft’s NetMeeting, CU-SeeMe, ICUII, and Isabel developed at the Universidad Politecnica de Madrid. In terms of open source solution, OpenH323 is a widely used platform that implements the H.323 standard.

Recording a Teleconference Session

The ability to record a teleconferencing session is an important requirement for many a applications. In many cases, it is necessary to play back the events that took place in a session. For example, when a participant misses a teleconferencing meeting, he/she can play back exactly what happened in the meeting, if the session was recorded. This includes conversations and discussions among participants, as well as applications and documents that were shared. Ideally, this recording should be done in a transparent way; i.e., user applications need not be modified for this recording to take place. One approach to achieve this would be for the “recorder” module to join the session as a regular client and observe what is taking place and record it. This is also referred to as non-intrusive recording. The J-VCR system is an example of a non-intrusive teleconferencing recording tool.