Byeo

BSD Socket API 본문

프로그래밍 (Programming)/네트워크 스택

BSD Socket API

BKlee 2024. 4. 17. 22:52
반응형

* BSD socket API에 대한 소개와 Kernel 흐름도를 정리합니다. (linux 5.15 기준)

BSD Socket API Model

* BSD Socket API: Berkeley Software Distribution Socket API

출처: https://www.keil.com/pack/doc/mw6/Network/html/using_network_sockets_bsd.html

출처: https://en.wikipedia.org/wiki/Berkeley_sockets

 

 

1. Socket()

#include <sys/socket.h>

socket(int socket_family, int socket_type, int protocol);

 

Socket Systemcall: https://byeo.tistory.com/entry/socket-system-call

 

socket system call 1 (syscall_socket ~ __sock_create)

int socket(int domain, int type, int protocol); socket 시스템 콜의 동작을 한 번 들여다봅니다! https://man7.org/linux/man-pages/man2/socket.2.html linux 5.15 기준입니다. 1. syscall_64.tbl 이전 포스트에서 리눅스 시스템 콜

byeo.tistory.com

 

 

2. Bind()

#include <sys/socket.h>

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

bind system call: https://byeo.tistory.com/entry/bind-system-call-1

 

bind system call 1 (__sys_bind)

BSD socket API에서 socket을 생성한 뒤에는 server-side 측에서 bind를 실행합니다. bind는 나의 ip:port를 socket과 연결하는 역할을 수행하죠. 이 번에는 BSD socket API중에서 bind를 분석해보려고 합니다. 이전

byeo.tistory.com

 

 

 

3. Listen()

#include <sys/socket.h>

int listen(int sockfd, int backlog);

 

 

4. accept

#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *_Nullable restrict addr, socklen_t *_Nullable restrict addrlen);

accept system call: https://byeo.tistory.com/entry/accept-system-call-1-sysaccept4

 

accept system call 1 (__sys_accept4)

accept system call의 개요와 관련된 내용은 이전 포스트에 정리되어 있습니다.: https://byeo.tistory.com/entry/accept-system-call-Intro accept system call 0 - Intro일반적인 BSD Socket API는 server가 socket을 생성하고 bind

byeo.tistory.com

 

 

 

읽어볼 자료

 

 

반응형
Comments