Aufgerufen durch die Funktionen der INET-Schicht erledigen die verschiedenen TCP- und UDP-Funktionen die Arbeit für die Transport-Schicht im Netzwerkschichtenmodell.
Von besonderer Bedeutung ist hier die Struktur struct msghdr [include/linux/socket.h]
Im folgenden die wichtigsten Funktionen der TCP/UDP Implementierungen.
int udp_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) [net/ipv4/udp.c]
int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) [net/ipv4/tcp_ipv4.c]
int tcp_sendmsg(struct sock *sk, struct msghdr *msg, int size) [net/ipv4/tcp.c]
int udp_sendmsg(struct sock *sk, struct msghdr *msg, int len) [net/ipv4/udp.c]
int tcp_recvmsg(struct sock *sk, struct msghdr *msg, int len, int nonblock, int flags, int *addr_len) [net/ipv4/tcp.c]
int udp_recvmsg(struct sock *sk, struct msghdr *msg, int len, int nonblock, int flags, int *addr_len) [net/ipv4/udp.c]
Diese Funktionen verarbeiten die Nachrichten zu Paketen von struct sk_buff und rufen die entsprechenden Funktionen der IP-Schicht auf. Bei TCP werden vorher die bekannten Features zur verbindungsorientierten Kommunikation implementiert.