ors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 3242 errors: 0 dropped: 0 overruns: 0 carrier: 0
collisions: 0 txqueuelen: 0
RX bytes: 227644 (222.3 Kb) TX bytes: 227644 (222.3 Kb)
НЕ менш корисна команда route
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
її призначення, а також багатьох інших описано в Linux Network Administrator Guide
Сполуки p> У цій частині ми докладно розглянемо сокети і все що з ними пов'язано
Коли процес створює сокет то він порожній потім система визначає маршрут до віддаленого хосту і вносить цю інформацію в сокет. Після цього пакети направляються на потрібне пристрій
Є два типи сокетів BSD сокети які включають як член INET cокети BSD сокети описуються структурою struct socket в linux/net.h
struct socket
{
socket_state state;
unsigned long flags;
struct proto_ops * ops;
struct inode * inode;
struct fasync_struct * fasync_list;/* Asynchronous wake up list */
struct file * file;/* File back pointer for gc */
struct sock * sk;
wait_queue_head_t wait;
short type;
unsigned char passcred;
};
struct proto_ops {
int family;
int (* release) (struct socket * Sock);
int (* bind) (struct socket * sock, struct sockaddr * umyaddr,
int sockaddr_len);
int (* connect) (struct socket * sock, struct sockaddr * uservaddr,
int sockaddr_len, int flags);
int (* socketpair) (struct socket * Sock1, struct socket * sock2);
int (* accept) (struct socket * sock, struct socket * newsock,
int flags);
int (* getname) (struct socket * sock, struct sockaddr * uaddr,
int * usockaddr_len, int peer);
unsigned int (* poll) (struct file * File, struct socket * sock, struct poll_table_struct * wait);
int (* ioctl) (struct socket * sock, unsigned int cmd,
unsigned long arg);
int (* listen) (struct socket * sock, int len);
int (* shutdown) (struct socket * Sock, int flags);
int (* setsockopt) (struct socket * Sock, int level, int optname,
char * optval, int optlen);
int (* getsockopt) (struct socket * Sock, int level, int optname,
char * optval, int * optlen);
int (* sendmsg) (struct socket * sock, struct msghdr * m, int total_len, struct scm_cookie * scm);
int (* recvmsg) (struct socket * sock, struct msghdr * m, int total_len, int flags, struct scm_cookie * scm);
int (* mmap) (struct file * file, struct socket * sock, struct vm_area_struct * vma);
ssize_t (* sendpage) (struct socket * Sock, struct page * page, int offset, size_t size, int flags);
};
найбільш важливі поля
* struct proto_ops * ops вказує на протокольн...