Sponsored Content
Full Discussion: The OSI-model
Special Forums IP Networking The OSI-model Post 17931 by Perderabo on Thursday 21st of March 2002 09:23:26 AM
Old 03-21-2002
I think that I might be able to offer a little better explanation of the layers. First though, you must realize that TCP/IP can only roughly be molded into the OSI network layers.

Application Layer I am a user and I want to use the network to send a file from my pc to a unix host. I must start by selecting an application. For this example, I will use the application known as ftp. Ftp is a commonly available application. My expertise on pc's is limited, but I can open an MS-DOS window and type the command "ftp". At that point, I suddenly know what to do. This is because the ftp program on windows is very similiar to the ftp program on unix. To a great extent, for a user, this is the only layer that I care about.

Presentation Layer But that ftp program was written by a programmer. She needed to invoke various functions or subroutines to get the job done. Those routines will require that data be converted from whatever form the current cpu may be using to a network format. A TCP/IP programmer working in C will have macros designed for this. These macros are named stuff like htonl (for host to network long). These macros are important, ignore them and you may write a program that works of a big-endian cpu but fails on a little-endian cpu. A few screwball systems have 6 bit bytes. On a system like that, this layer would have a lot more work to do. But unless you are working on an old CDC Cyber or something, this is a rather thin layer. It is also perhaps, not the first issue that the programmer would encounter in writing ftp. This is why I say that the OSI model is not a perfect match for TCP/IP. But let's move on.

Session Layer My ftp program will need to establish a session to the unix host. Since I am running nt, I could open a second ms-dos window and run a second ftp job to the same host. That's ok, the session layer will keep the jobs from getting mixed up. To the programmer, this layer means establishing a socket to the remote system.

Transport Layer When she established a socket, she had to specify a transport layer. Ftp uses TCP as it's transport layer. TCP will send packets from my pc to the unix host. It will get them there reliably and in order.

Network Layer IP is the only network layer available. The network layer will accept a packet from TCP and it will do it's best to deliver that packet to the destination. If it fails, TCP will need to resend. But IP will look at the the destination IP address and it will figure out how to move the packet closer to the destination. If needed, if will fragment a packet that is too big for the next layer down. As a special case, if the packet is addressed to the local host, it will just hand it back up to TCP (or UDP), thus bypassing the lower layers.

Data Link The IP layer on my PC talks to an ethernet driver. That driver is the Data Link layer. It converts the IP datagram into an ethernet frame.

Physical And finally, my ethernet driver talks to a card that actually puts the data on the cable that goes to a hub.

And the unix host, data arrives on its ethernet cable (physical) and is read by its ethernet driver (data link). The driver passes the data to the IP layer (network). The IP layer hands the data to the TCP layer (transport). The TCP layer makes the data available to a particular socket(session). The data to transformed to local format (presentation). And the ftpd daemon stores it in a file (application).
 

7 More Discussions You Might Find Interesting

1. UNIX Desktop Questions & Answers

What are the 7 layers of OSI model or TCP/IP

what is it?? I looked everywhere but cant seem to find it also where can I get information about the difference between NFS 2 or NFS 3?? (6 Replies)
Discussion started by: TRUEST
6 Replies

2. Solaris

OSI 9.0 Installation

Dear After i received a demo license for OSI 9.0 from SUN , i installed the packages . but when i tried to start the osinet deamon ( /etc/rc2.d/S90osinet ) i am getting the foellowing errror # ./S90osinet start starting osi daemon/usr/sbin/osinetd cannot find a valid license (STACK 9.0)... (4 Replies)
Discussion started by: itsgeorge
4 Replies

3. Solaris

OSI 9.0 Installation some question

Hi. I get the folloing message if i try to start the osinet deamon: # /etc/rc2.d/S90osinet start starting osi daemonunable to unload all the osi modules some OSI applications may be running unable to start OSI daemon # Has anyone an idea what is going wrong? Answers to mail: (Note... (1 Reply)
Discussion started by: morenqfj
1 Replies

4. Solaris

OSI interface...

I'm using OSI version 9.0 with solaries OS , I 'm thinking of analysing the tracing while sending information through OSI layers , I want to analyze exactly the BER data ? Any one could provide an examples , I know the command for tracing these information but i need to understand the bytes travels... (1 Reply)
Discussion started by: atiato
1 Replies

5. Debian

OSI application for Debian...

Is there OSI telecom application which can be installed on debian similar to Solstice Solaries OSI ? I need to get it on debian to build cmise and communicate with Network element . (0 Replies)
Discussion started by: atiato
0 Replies

6. IP Networking

OSI model, communication between same layers but on different machines

Hi friends, I hope everyone is doing fine. I have this confusion regarding the OSI model. I have been reading a book on datacommunication and networking which discusses the OSI model in great detail. One thing that I can't figure out is the OSI daigram in this book. It shows communication between... (1 Reply)
Discussion started by: gabam
1 Replies

7. Solaris

Unable to start OSI deamon

dear all, i am working on test server with solaris 10 , after installing OSI deamon i stopped it for a test now when i am starting again i am getting this message that i ggoled and search evrywhere and haven't any response i will be glade for any help in here mate the error was : ./osinet... (1 Reply)
Discussion started by: semaan
1 Replies
Jifty::Plugin::ClassLoader(3pm) 			User Contributed Perl Documentation			   Jifty::Plugin::ClassLoader(3pm)

NAME
Jifty::Plugin::ClassLoader - Automatically generates application classes DESCRIPTION
"Jifty::Plugin::ClassLoader" loads additional model and action classes on behalf of the application out of the configured plugin classes. Unlike, "Jifty::ClassLoader", this class will only autogenerate classes if the plugin provides them. The plugin classes are checked before the base Jifty classes, so that a plugin can override the Jifty class, just as any existing application classes will be loaded first. new Returns a new ClassLoader object. Doing this installs a hook into @INC that allows Jifty::Plugin::ClassLoader to dynamically create needed classes if they do not exist already. This works because if use/require encounters a blessed reference in @INC, it will invoke the INC method with the name of the module it is searching for on the reference. Takes two mandatory arguments, "base", which should be the application's base path; and "plugin" which is the plugin classname. INC The hook that is called when a module has been "require"'d that cannot be found on disk. The following stub classes are auto-generated: Application An empty application base class is created that doesn't provide any methods or inherit from anything. Application::Record An empty class that descends from Jifty::Record is created. Application::Collection An empty class that descends from Jifty::Collection is created. Application::Notification An empty class that descends from Jifty::Notification. Application::Dispatcher An empty class that descends from Jifty::Dispatcher. Application::Bootstrap An empty class that descends from Jifty::Bootstrap. Application::Upgrade An empty class that descends from Jifty::Upgrade. Application::CurrentUser An empty class that descends from Jifty::CurrentUser. Application::Model::AnythingCollection If "Application::Model::Something" is a valid model class, then it creates a subclass of Jifty::Collection whose "record_class" is "Application::Model::Something". Application::Action::(Create or Update or Delete)Anything If "Application::Model::Something" is a valid model class, then it creates a subclass of Jifty::Action::Record::Create, Jifty::Action::Record::Update, or Jifty::Action::Record::Delete whose record_class is "Application::Model::Something". require Loads all of the application's Actions and Models. It additionally "require"'s all Collections and Create/Update actions for each Model base class -- which will auto-create them using the above code if they do not exist on disk. DESTROY When the ClassLoader gets garbage-collected, its entry in @INC needs to be removed. perl v5.14.2 2010-12-08 Jifty::Plugin::ClassLoader(3pm)
All times are GMT -4. The time now is 02:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy