| ECE291 |
Computer Engineering II |
J. W. Lockwood |
Lecture 23
Today's Topics
- Local-Area and Wide-Area Networks (LANs/WANs)
Ethernet: 10/100 Mbps (Local-Area)
- Packets broadcast on shared media (the 'Ether')
- Coax (10Base2): Terminators prevent signal reflection
- Twisted Pair (10BaseT): Hubs retransmit packets to links
- No Quality of Service (QoS) Guarentees
- Data Delivery
- Broadcast: One-to-all
- Multicast: One-to-many (using group name)
- Unicast: One-to-one (each host has unique name)
- Data Transport Protocols
- Datagram
- Packets may be lost
- Packets may be reordered (except ATM)
- Can Broadcast, Multicast, Unicast
- Example: UDP
- Connection-Oriented
- Reliable connection between endpoints
- Lost packets are retransmitted
- Limited to point-to-point (Unicast) links
- Example: TCP
- Programming Models
- Client/Server (typical case)
- Server is a centralized, permanent resource
- Clients are short-lived, stateless programs
- Unicast Connections between server and client
- Peer Model
- All Programs share information
- Multicast or broadcast data between hosts
- Network Adapter & Software
- Hardware address filters
- Interrupt On Incoming Packet
- Demultiplex incoming packet
- Deliver data to appropriate application
- Local Area Network service
- Independent of underlying hardware
- Independent of underlying Protocols
- Standalone packets
- Encapsulation in IP
- Designed for Local Area Network
- Assumes single local network segment
- Implementation
- DOS Packet Driver
- Serice provided by WinNT, Win95, WFWG
- NetBIOS Provides
- Naming Service
- Provides Unique names on Network
- Global Namespace
- Multiple types of communication
- Datagram Broadcast
- Datagram Multicast
- Datagram Unicast
- Reliable Connection
- Communication with NetBIOS
- Network Control Block (NCB)
- Basic NetBIOS Data Structure
- Command Field: Determines what action to take
- Inputs/Outputs/Pointers: All passed through NCB
- NetBIOS Response Methods
- Blocking Functions: Wait until even occurs
- CallBack Functions: Register function to call when event occurs
Operates just like an interrupt
- NetBIOS Names
- 16-character NetBIOS identifiers
- Local Names: Unique across the LAN (enforced by NetBIOS)
- Group Name: Shared among multiple machines (Multicast)
- Examples
- Broadcast/Multicast Datagrams
- Sender & Receiver ADD NAME
- Loop while running
- Sender SENDS Broadcast Datagram
- Receiver RECEIVES Datagram
- Sender & Receiver REMOVE NAME
- Unicast Connection
- Sender & Receiver ADD NAME
- Receiver LISTENS
- Sender CALLS (Connection Established)
- Loop while running
- Sender SENDS
- Receiver RECEIVES
- Sender or Receiver HANGUP (Connection Terminated)
- Sender & Receiver REMOVE NAME
- Complete Documentation:
CBIS NetBios
Programmers Reference
- Programming with NetBIOS in the ECE291 Lab
- Lockwood's NetLIB:
(API to make your life easy!)
- Important Variables
- grp_name: Multicast Group name (Default=ECE291NetLib$$$$)
- my_name: My unique network id (Default=ECE291Player0$$$)
- TXBUffer: Transmission buffer
Load with data that you want to transmit then call SendPacket.
- RXBUffer: Receive Buffer
Filled with data from incoming network packet network just
before your netpost function is called.
- Procedures
- NetINIT: Call at start of your program
- netpost: Callback function called
whenever a datagram arrives.
- Called with
- BX = pointer to receive buffer
- AX = length of data
- Because this routine
is called from an interrupt, it must:
- Preserve all registers
- Avoid DOS and LIB291 calls
- SendPacket: Call with AX = Length of TXBuffer to transmit data
- NetRelease: Call at the end of your program
- ATM: Asynchronous Transfer Mode (Local & Wide-Area)
- Data transmitted as 53-byte cells
- Messages transmitted using Adapatation Layer (AAL)
- Transmits data at rate of 155 Mbps (OC3),
622 Mbps (OC12), 2.4 Gbps (OC48), or
10 Gbps (OC192)
per host and shared on virtual circuits.
- Preserves Quality of Service, allowing integrated data
(voice, video, IP) to carried over common network.
- See the iPOINT Testbed
for information about ATM research on this campus.
Return to ECE291 Lecture Index