<<

How to Make a Communication System using Sora Devise

Amir Aghdasi [email protected]

Abstract

Tried to demonstrate and simplify the way that Sora Board works and explained how components in Sora associate each-others

I. TCP/IP

A layer is a collection of conceptually similar functions that provide services to the layer above it and receives services from the layer below it. This is a new version of OSI model. Everything had been explained in TCP/IP but associated in the way that how OSI model modified.

A. Application Layer:

In OSI model and and also application layer were separated but in TCP/IP layer , they are all defined within application layer. Both OSI model and TCP/IP model has the application. application layers are included all appllications layers that are in the windows, but all application which are existed on the windows and also are not changeable(????). application layer is a term of categorizing the protocol. in TCP/IP , the application layer contains all protocol and methods that fall into the process of communication in IP.

B.TCP( Transmission Control Protocol): TCP is a protocol that most of applicants can rely on it such as the , e-mail, and file transfer. TCP provides ordered delivery and reliable of a stream of bytes from a program on one computer to another program on another computer. TCP is one of the main protocol in Suite . TCP is one of the two original of Suit and it complements the Internet Protocol which is IP and consequently these two layers and the whole collection are know as a TCP/IP. Tcp is responsible to verify that the packet are in right track from a server to a cleint or not which is very important.

C. Internet Protocol (IP)

IP is completing the other half of which is called TCP/IP. IP is a primary in Internet protocol suit. IP is delivering protocol data gram or packet from source to destination in base of the address. The interent protocol(IP) is the most widely used network protocol in the world. Ip maintained by Internet Engineering Task Force( IETF). IP is always responsible to moveing the data and packet from a node to a different node. also IP deliver the data in base of the 4 bytes destination address that they have.

D. Data : MAC and Link Layer

The is used to be in OSI model and now it divided to two different part which are MAc and LL in TCP/IP model.

Important :MAC and LL layers are defined within Data Link Layer

● MAC( Media Access Control) : The media access control(MAC) protocol sub layer is also know as the is a sublayer of the data link layer specified in 5 layers in TCP/IP system. MAC provide addressing and also channel access control and this system make the for several networks to communicate withing a multiple point network such as local area network (LAN) or metropolitan area network (MAN). Medium Access Controller is implemented the Mac. The MAC sub-layer acts as an interface between the (LLC) sublayer and the network's . MAC is responsible to move the data packet from one Network to another Network using the Channel.

● Link Layer or Logical Link Control

Logical Link Control (LLC) data layer is the upper layer of data link layer which is located in layer two and completing mac layer. in 5 layer tcp/ip system. LL provide the multiplexing and flow control system that make easier for several networks to be complex and communicate faster there are such as IP, IPX. Also LLC acts as an connection between the MAC and such as , token ring, and WLAN).

E. Physical Layer:

The Physical Layer is the first and lowest layer in the seven-layer TCP/IP model. physical layer is an fundamental layer and cause the logical data of higher level function in network. physical layer provide electrical and mechanical to transmission medium.

● Internet Protocol Suite It ‘s the other name for the TCP/IP and a combination of these two which simplified and demonstrated in previous. it sets of communicating protocol which is used for the Internet and other networks. ● Datagram( i defined in IP section) it is a basic unite which is associated with packet-switched network

● packet-switched network packet which are shared in networks.

● wide area network (WAN) it is a that covers a board area.

● personal area network (PAN) communication among computer device ● local area network segment (LAN) a computer is covering a Small physical area, such as home or school. ● metropolitan area networks (MAN) a large computer network that provide service to a city or a large campus ● data communication protocol communication protocol is basically the rules for exchanging the data and massages. ● channel access channel access method or multiple access method allows all the terminal get connected to the transmission medium to share what they have is a main bode. For instance bus networks, wireless network.

● transmission medium The transmission medium is a type of material that makes a sounds and that only can hear by ears ● multiplexing whenever in a network multiple signal are mixed is a signal, the process get called multiplexing ● flow control in a network, Flow Control provide a system for receiver to get to know the rate of transmission of the sender and prevent crashing

II. MDL(memory descriptor list)

What is MDL? MDL or memory descriptor list (MDL) is a structure which defined by a system and that describes a buffer by a set physical address. in the other word, MDL specifies as a physical memory which is occupied by a particular buffer . Basically I/O manager uses the MDL to save and store data and description of the memory. MDL is connected to the direct memory and whenever the memeory accesses controller processor MDL, the data cautiously transfer from couple of specific buffers which called MDL.

● MDL hast a specific space like buffer which is a temporary register or works like a data register for a processor. ● I/O manager uses an MDL to store description of a memory ● Driver and I/o manager MUST read and write from MDL

For example, Memory manager must read from VA(Virtual Space), pages A and B. VAs are including to pages B, C, D and also A. these pages are logically contiguous but the physical pages dose not have be next to each others. Pages C and D are basically resident in the direct memory so there is not point to be necessary to read them.

● C and D might already have been modified since they were last read in from their backing store, in which case it would be a serious error to overwrite their contents However, reading pages A and B in a single operation is more efficient than performing one read for page A and a second read for page ● The MDL consists of a header describing the virtual buffer, followed by an array that lists the physical pages associated with the buffer. Given, a virtual address within the buffer, it is possible to determine the corresponding physical page

III. IRP The IRP may be repurposed as a special kernel APC object if such is required to report completion of the I/O to the requesting thread. IRPs are typically created by the I/O Manager in response to I/O requests from user mode. However, IRPs are sometimes created by the plug-and-play manager, power manager, and other system components, and can also be created by drivers and then passed to other drivers.

● I/O request packets (IRP) are kernel mode structures that are used by Windows Driver Model (WDM) and Windows NT device drivers to communicate with each other and with the operating system.

● They are data structures that describe I/O requests, and can be equally well thought of as "I/O request descriptors" or similar. Rather than passing a large number of small arguments (such as buffer address, buffer size, I/O function type, etc.) to a driver, all of these parameters are passed via a single pointer to this persistent data structure.

● The IRP with all of its parameters can be put on a queue if the I/O request cannot be performed immediately. I/O completion is reported back to the I/O manager by passing its address to a routine for that purpose, IoCompleteRequest.

● The I/O request packet mechanism is also used by the VMS operating system, and was used by Digital's RSX family of operating systems before that. website: (http://en.wikipedia.org/wiki/I/O_request_packet)

IV. NDIS Packet

What Is NDIS packet? ● Ndis wrapper is an area that looketed between TCP/ IP and Link Layer whcih all the infomation have to go throw it before get to them. ● Ndis wrapper is not a Layer ● the upper information flow in to NDIS driver called Miniport ● The downer nformation flow in to NDIS driver called Protocol ● it’s possible to modify NDIS indirectly but that can’t happen directly

Consequently a question pops up :

How is network data encapsulated within a NDIS_PACKET?

In general it is best to think of the NDIS_PACKET structure (as well as the associated NDIS_BUFFER structures) as "opaque" - except for specific "reserved" fields that are discussed later. This means that the fields that are defined in the structure should not be directly accessed and that their definition will probably change from one NDIS version to another. Nevertheless, it is useful to have a visual idea of these structures and how they relate to the packet data. Here is a Graph related to the associate concept:

Where can I find specifications for standard network protocols, like the Internet Protocol (IP)? http://www.ietf.org/rfc/rfc0791.txt?number=791 and also ● ETSI - European Telecommunications Standards Institute ● IEEE - Institute of Electrical and Electronics Engineers referencer: ( http://www.ndis.com/ndis-ndis5/ndispacket/ndispacket1.htm)

NDIS_PACKET Reserved Areas ● NdisQueryPacket ● NdisQueryBuffer ● NdisGetNextBuffer ● NdisQueryBufferSafe

Here is an example to form a NDIS

NdisQueryPacket( (PNDIS_PACKET )pNdisPacket, (PUINT )NULL, // Physical Buffer Count (PUINT )&nBufferCount, // Buffer Count &pCurrentBuffer, // First Buffer &TotalPacketLength // TotalPacketLength );

Reference: [1] http://www.microsoft.com/whdc/driver/tips/mdl.mspx , [2] http://www.ucertify.com/article/what-is-a-memory-descriptor-list.html [3] http://www.calsoftlabs.com/whitepapers/filter-driver.html [4] http://www.ndis.com/ndis-ndis5/ndispacket/ndispacket1.htm