Курсовая работа: Реализация сети в операционной системе Linux

DEVICE->hard_start_xmit() - зависитотдевайса, drivers/net/DEVICE.c

в общем проверяет открыто ли устройство

посылает заголовок

говорит системной шине послать пакет

обновляетстатус

inet_sendmsg() - net/ipv4/af_inet.c

int inet_sendmsg(struct socket *sock, struct msghdr *msg, int size,

struct scm_cookie *scm)

{

struct sock *sk = sock->sk;

/*биндимсокет. */

if (sk->num==0 && inet_autobind(sk) != 0)

return -EAGAIN;

вызываем функцию протокола чтоб послать данные

return sk->prot->sendmsg(sk, msg, size);

}

ip_build_xmit - net/ipv4/ip_output.c (604)

calls sock_alloc_send_skb() выделяемпамять

=заголовочек=

if(!sk->protinfo.af_inet.hdrincl) {

iph->version=4;

iph->ihl=5;

iph->tos=sk->protinfo.af_inet.tos;

iph->tot_len = htons(length);

iph->frag_off = df;

iph->ttl=sk->protinfo.af_inet.mc_ttl;

ip_select_ident(iph, &rt->u.dst, sk);

if (rt->rt_type != RTN_MULTICAST)

iph->ttl=sk->protinfo.af_inet.ttl;

К-во Просмотров: 1522
Бесплатно скачать Курсовая работа: Реализация сети в операционной системе Linux