Network Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Network Programming

Description:

Network Programming Eddie Aronovich mail: eddiea_at_mta.ac.il – PowerPoint PPT presentation

Number of Views:179
Avg rating:3.0/5.0
Slides: 56
Provided by: Aron66
Category:

less

Transcript and Presenter's Notes

Title: Network Programming


1
Network Programming
  • Eddie Aronovich
  • mail eddiea_at_mta.ac.il

2
How did it started ?
3
How can we write communication ?
  • Application Program Interface (API)
  • Sockets
  • TLI (Transport Layer Interface)
  • System calls
  • Library functions

4
What is it for ?
  • Communication systems provides 3 services
  • Information resource Sharing
  • Distance gapping
  • Backup abilities

5
Fundamentals
  • Server - An entity which gives services
  • Client - An entity which requests services
  • Transport layer - To transfer the data

6
The 7 layers model
7
The 7 Layer model in real life
8
The message is built in one side...
9
And striped in the dest. side
10
From Lynx to Netscapeor chat client
  • Presentation

11
(No Transcript)
12
Descriptors
  • Everything in Unix is a file
  • Descriptor is an index into an array

13
Memory Buffers
  • Contains Socket Address Structure
  • Headers
  • Data

14
The Basics of communication
  • LectureII

15
Processing Techniques
Decentralized
Centralized
WEB
16
The Client ?? Server Model
  • The server roles
  • Give service as asked
  • Wait the client to appeal to him
  • The client roles
  • Start the communication process
  • Asks the wanted service

17
Design considerations
  • Serve single or multiple users
  • Use reliable or unreliable protocol
  • Software updates

18
Client and server roles in UDP
  • Server roles
  • Bind a port
  • Wait for a message to come
  • Send reply
  • Client roles
  • Send a message
  • Get the reply

19
User Datagram Protocol
  • Simple protocol
  • Connectionless
  • Unreliable
  • RFC 768

20
Socketip_addr, port number
  • API, an interface for the program to contact with
    communication.
  • Enable usage of regular file commands as read,
    write and so on.
  • The sockets are structures passed from kernel to
    process and vice versa.

21
What the socket struct contains ?
  • Socket type stream, dgram, raw,
  • Socket options broadcast, OOB...
  • Time to linger wait before close the socket
  • Socket state flags
  • Protocol Control Block
  • Protocol Handle

22
The socket address structs
  • Generalstruct sockaddr uint8_t sa_len
    /Len of socket struct / sa_family_t sa_fami
    ly /Addr family as AF_INET /
    char sa_data20 /Protocol Address /
  • IP V4 address socket
  • struct sockaddr_in
  • uint8_t sin_len /The socket length /
  • sa_family_t sin_family /AF_INET for IP
    addresses /
  • unit16_t sin_port /The port id 16-bit port
    num /
  • struct in_addr sin_addr /The IP address
    32-bit /
  • char sin_zero 8 / FFU - Must be zero /

23
How the socket is created
  • The system call passes identifiers for address
    family(e.g.AF_UNIX, AF_INET,etc.), socket type
    and protocol.
  • Socket data structure is allocated.
  • Pointer from the fd table to other i-node struct
    which points to the socket.

24
User Datagram Protocol (rfc 768)
  • Data transport layer protocol(Fragment packets
    to fit local MTU)
  • Used to make available datagram packet switched
    mode
  • Connectionless protocol
  • Used when RTT is important or no connection needed

25
UDP header
Source port number (16 bit) Destination port number (16 bit)
Length (16 bit) UDP Checksum (16 bit)
Data Data
26
UDP by network monitor
27
Lets do it in UDP - client
C\TEMP\udp-cli-c.htm
C\TEMP\udp-cli-c.htm
28
Lets do it in UDP - server
C\TEMP\udp-srv-c.html
29
TCP
  • LectureIII

30
Transmission Control Protocolrfc 793
  • Reliability
  • Sequenced data transfer
  • Flow control
  • Full duplex

31
TCP Header
Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Source port number (16 bit) Dest port number (16 bit)
Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit) Sequence number (32 bit)
Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit) Acknowledgement number (32 bit)
Header length (4 bit) F.F.U (6 bit) URG ACK PSH RST SYN FIN Window size (16 bit)
TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) TCP Checksum (16 bit) Urgent Pointer (16 bit)
Options Options Options Options Options Options Options Options Options
Data Data Data Data Data Data Data Data Data
32
(No Transcript)
33
(No Transcript)
34
Ack Flow control
  • Acknowledgements are sent by byte.
  • The acks can be sent for group of packets (but
    should arrive before time out of first packet).
  • Window size is used for flow control and is
    controlled by receiver.

35
How connection starts ?
connect() listen()
connect returns. listen()
connect returns. accept()
connect returns. accept returns.
accept returns.
SYN j
SYN k, ACK j1
ACK k1
Connection Established
36
How we do it in C ?
Server Client
socket() socket()
bind() connect()
listen() connect()
accept()
New file descriptor is given
37
Ending Sessions
  • Passive close (FIN arrives) Vs. Active close

FIN M
ACK M1
FIN N
ACK N1
38
Internet Protocol
  • LectureIV

39
Network Layer
  • Passing packet from source host to destination
    host (cross networks if needed)
  • Independent of the datalink layer
  • QoS
  • Flow control

40
Internet Protocol
  • Connectionless
  • Unreliable
  • Best effort

41
Address
  • IP address consist 32bit and is divided into
    network id.,host id
  • Part of host id can be used for subnet mask
  • Some special addresses are defined (as net-addr,
    broadcast-addr, multicast-addr)

42
Addresses and Classes
  • Class A
  • Addresses 0-127.X.X.X
  • Class B
  • Addresses 128-191.0-255.X.X
  • Class C
  • Addresses 192-223.0-255.0-255.X

01XXXXXX
10XXXXXX
110XXXXX
43
Masks
  • Mask is used to refine network division.
  • 1b in mask symbolize bit belongs to network
    address.
  • 0b in mask symbolize bit belongs to host
    address.

44
Address conventions
  • Network address filled with 0 in host address.
  • Broadcast address filled with 1 in host
    address.
  • First, last subnet and address arent used

45
How routing is done ?
  • The router compares destination IP with each
    Network subnet address.
  • Unknown destination is routed to default.
  • Routers update each other with appropriate
    algorithms.

46
(No Transcript)
47
(No Transcript)
48
(No Transcript)
49
(No Transcript)
50
(No Transcript)
51
VI????? I/O Multiplexing
52
I/O Models
  • Blocking I/O
  • Nonblocking I/O
  • I/O Multiplexing
  • Signal driven
  • Asynchronous I/O

53
Non-Blocking I/O
  • No blocking is done (Error is returned)
  • Reading is done in loop (until data arrives)
  • Polling costs CPU time
  • Implementation in real time systems only

54
Signal Driven I/O
  • Signal handler should be started

55
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com