Sponsored Content
Full Discussion: Raw Sockets Programming
Special Forums IP Networking Raw Sockets Programming Post 302349030 by Zykl0n-B on Monday 31st of August 2009 12:45:38 AM
Old 08-31-2009
RAW Sockets aren't a difficult thing, but you'll need deep knowledge of TCP/IP stack protocols, and practice with socket programming.

I recommend you to read a very short book named "TCP/IP Sockets in C: Practical Guide for Programmers - Michael J. Donahoo, Kenneth L. Calvert", it's not about raw sockets, but TCP/IP sockets.

Then, when you feel comfortable with the socket calls, options, and types, here is a GREAT text about raw socket programming with examples and source code, which talks about TCP/UDP/IP/ICMP, and how to calculate headers checksums:

http://packetstormsecurity.nl/progra...raw_socket.txt

Oh, right, for the TCP/IP "theory" part, i recommend you the following books:

The TCP/IP Guide: A comprehensive, illustrated Internet Protocols Reference - Charles M. Kozierok
TCP/IP Clearly explained 4th edition - Pete Loshin
TCP/IP Illustrated, Volume 2: The Implementation - Gary R. Wright, W. Richard Stevens

And of course, UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking API - W. Richard Stevens, Bill Fenner, Andrew M. Rudoff
Best regards.
Zykl0n-B
 

8 More Discussions You Might Find Interesting

1. Programming

Sockets!?!?!?!?!?!

I am looking for a way to have a program listen on a port (example: 8000) for communication I will be sending via that port to it(Linux Kernel machine). Once it recieves an appropiate command I need it to run a .bat file in linux. I know what I need to do but I am running into a few problems:... (8 Replies)
Discussion started by: bigB8210
8 Replies

2. Solaris

Sockets in use

Is there a way to see what sockets are in use? The developers here are getting some defunct processes and they would like to get a socket list. This is on a Solaris 8 machine. Thanks! (1 Reply)
Discussion started by: kjbaumann
1 Replies

3. Programming

Programming Sockets to Reconnect

Hello everyone, I'm very interested in sockets programming for developing games. Right now i'm trying to develop a client, and connecting to a host and port can be done, but i googled lots of pages, but i could not find how to reconnect to the host/port if the connection is somehow... (2 Replies)
Discussion started by: raistie
2 Replies

4. UNIX for Dummies Questions & Answers

Carreer:Networking Programming in Unix (C programming Language)

Hello, I am trying to learn Networking Programming in C in unix enviorment. I want to know how good it is to become a network programmer. i am crazy about Network programming but i also want to opt for the best carreer options. Anybody experienced Network Programmer, please tell me is my... (5 Replies)
Discussion started by: vibhory2j
5 Replies

5. Programming

c++, raw sockets, stopping kernel write in header?

Hi, im trying to lern about raw sockets with my debian and c++. Tried to make a icmp and tcp packet and send it with sendto. Checked on wireshark and recognized that kernel changed my headers. So searched about stopping the kernel change the header and tried it with setsockopt, like said in at this... (4 Replies)
Discussion started by: sandcastle
4 Replies

6. Red Hat

Sockets

hai guys, I'm doing a project in which one server communicates with several clients. How can i do it when i have different port numbers???:confused: (0 Replies)
Discussion started by: rajeshb6
0 Replies

7. UNIX for Dummies Questions & Answers

From iOS programming to Linux system programming

Hello. I like Linux and C programming language. Allways wanted to understand kernel and become a Linux system programmer. And I also like Objective-C and iOS. These two programming areas have relations: 1. Linux and iOS are UNIX-like systems, POSIX compliant. 2. It is useful to know C language... (2 Replies)
Discussion started by: Rockatansky
2 Replies

8. Programming

Raw Socket Programming - Efficient Packet Sniffer

Hi, I have the requirement to sniff packets from the Ethernet card on my Linux machine and process it and feed it to a RANAP protocol stack. So far I have written the raw packet sniffer and successfully sniffing packets and do little processing. However, for huge number of packets ... (9 Replies)
Discussion started by: rstnsrr
9 Replies
udp(4p) 																   udp(4p)

Name
       udp - Internet User Datagram Protocol

Syntax
       #include <sys/socket.h>
       #include <netinet/in.h>

       s = socket(AF_INET, SOCK_DGRAM, 0);

Description
       UDP  is	a  simple,  unreliable datagram protocol that is used to support the SOCK_DGRAM abstraction for the Internet protocol family.  UDP
       sockets are connectionless and are normally used with the and calls, though the call can also be used to fix  the  destination  for  future
       packets (in which case the or and or system calls may be used).

       UDP  address  formats are identical to those used by TCP.  In particular, UDP provides a port identifier in addition to the normal Internet
       address format.	Note that the UDP port space is separate from the TCP port space (for example,	a UDP port may not be ``connected''  to  a
       TCP  port).   In  addition  broadcast  packets  can be sent (assuming the underlying network supports this) by using a reserved ``broadcast
       address''; this address is network interface dependent.	The SO_BROADCAST option must be set on the socket for broadcasting to succeed.

Diagnostics
       A socket operation may fail with one of the following errors returned:

       [EISCONN]      Try to establish a connection on a socket which already has one, or when trying to send  a  datagram  with  the  destination
		      address specified and the socket already connected.

       [ENOTCONN]     Try to send a datagram, but no destination address is specified, and the socket has not been connected.

       [ENOBUFS]      The system runs out of memory for an internal data structure.

       [EADDRINUSE]   An attempt is made to create a socket with a port that has already been allocated.

       [EADDRNOTAVAIL]
		      An attempt is made to create a socket with a network address for which no network interface exists.

See Also
       getsockopt(2), send(2), socket(2) recv(2), intro(4n), inet(4f)

																	   udp(4p)
All times are GMT -4. The time now is 11:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy