- Today
- Total
목록전체 글 (156)
Byeo
BSD socket API에서 server쪽은 bind를 실행한 뒤, listen을 시작합니다. Application이 listen을 시작하면 이제 받을 수 있게 됩니다. 이 때, listen은 client가 요청한 연결들을 보관하는 함수라고 볼 수 있을 것 같은데요. 그 보관 가능한 최대 개수가 listen system call의 2번째 인자인 'backlog'라고 보면 될 것 같습니다. 이 큐를 소모하는 주체(consumer)는 일반적으로 listen 다음에서 불리는 accept() system call입니다. backlog와 관련된 내용은 별도의 포스트에서 다뤄보겠습니다. 이 번에는 BSD socket API중에서 listen를 분석해보려고 합니다. 이전 포스트 (bind system call..
본 포스트는 sigcomm '21의 Revisiting the Open vSwitch Dataplane Ten Years Later를 요약하였습니다. 이전 포스트:https://byeo.tistory.com/entry/Revisiting-the-Open-vSwitch-Dataplane-Ten-Years-Later-1 Revisiting the Open vSwitch Dataplane Ten Years Later 1본 포스트는 sigcomm '21의 Revisiting the Open vSwitch Dataplane Ten Years Later를 요약하였습니다. Abstarct 해당 논문은 수천 명의 VMware 고객이 사용하는 data center 가상화를 위한 NSX 상품의 일부로서, Open vSwi..
마니산강화도에 위치한 산이다. 정상은 472m로 난이도가 생각보다 높지는 않다. 계단과 벌레가 많다. 정상까지의 소요시간은 정확히 1시간! 빨간색: 등산로보라색: 능선파란색: 하산로 사진 마니산 입구다. 날씨가 좋았어서 산책 혹은 등산하는 사람이 많았다. 등산까지 생각이 없다면 산책으로도 손색은 없다! 강화도인게 문제지만 나뭇잎은 아직 피지 않았지만 나름 봄이라고 철쭉은 폈다. 마니산 입구에서 별도의 등산 안내도를 보지는 못했다. 대신, 중턱에서 발견했던 이 사진으로 대체 중턱 오르면 오를수록 시야가 넓어진다. 강화도는 대부분 논으로 이루어져 있었고, 그 반대편은 바다가 멀리 보였다~ 정상 마니산 정상 파노라마 왼쪽 사진이 BAC 인증지이다. 오른쪽은 정상석에서 5분정도 거리에 있는 참성단이다. ..
이전 포스트https://byeo.tistory.com/entry/bind-system-call-2-inetbind bind system call 2 (inet_bind)이전 포스트 (bind system call 1: __sys_bind)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를 sbyeo.tistory.com 현재까지의 흐름도__inet_bind를 이어서 탐색해 봅시다. 4. __inet_bind3) __inet_bind로 돌아와서3-1) 주소 검사// net..
이전 포스트 (bind system call 1: __sys_bind)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. inet_bind__sys_bind에서 그 다음으로 호출하는 함수는 sock->ops->bind였습니다.// net/socket.c/__sys_bind() :1693 err =..
BSD socket API에서 socket을 생성한 뒤에는 server-side 측에서 bind를 실행합니다. bind는 나의 ip:port를 socket과 연결하는 역할을 수행하죠. 이 번에는 BSD socket API중에서 bind를 분석해보려고 합니다. 이전 포스트 (socket system call)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...
본 포스트는 sigcomm '21의 Revisiting the Open vSwitch Dataplane Ten Years Later를 요약하였습니다. Abstarct 해당 논문은 수천 명의 VMware 고객이 사용하는 data center 가상화를 위한 NSX 상품의 일부로서, Open vSwitch를 지원하고 운영해온 경험을 공유한다. 2009년부터 시작된 OVS는 userspace와 kernel의 강한 결합을 분리하였다. 이 분리는 성능을 위해서 반드시 필요했지만, 유지 보수의 어려움이 남아있다. 나아가, in-kernel packet processing은 DPDK와 같은 새로운 option에 비해 상당히 느린 상황이다. kernel/user split으로부터 야기하는 이 문제들을 해결하기 위해서 O..
* 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 socket(int socket_family, int socket_type, int protocol); Socket Systemcall: https://byeo.tistory.com/entry..
이전 포스트: https://byeo.tistory.com/entry/socket-system-call-3 socket system call 3 (tcp_v4_init_sock)이전 포스트: https://byeo.tistory.com/entry/socket-system-call-2 socket system call 2 이전 포스트: https://byeo.tistory.com/entry/socket-system-call socket system call 1 int socket(int domain, int type, int protocol); socket 시스템 콜의 동byeo.tistory.com 7. sock_map_fd마지막으로 sock_map_fd 함수를 거칩니다. 이 함수는 기존에 tcp_ip..
이전 포스트: https://byeo.tistory.com/entry/socket-system-call-2 socket system call 2이전 포스트: https://byeo.tistory.com/entry/socket-system-call socket system call 1 int socket(int domain, int type, int protocol); socket 시스템 콜의 동작을 한 번 들여다 봅니다! https://man7.org/linux/man-pages/man2/socket.2.html linubyeo.tistory.com inet_create까지의 발걸음 6. tcp_v4_init_sock// net/ipv4/tcp_ipv4.c/tcp_v4_init_sock() :2236st..
급히 성남에서 대전까지 하루 만에 다녀와야 할 일이 생겨서 어쩌다 이용하게 되었다. 대전에서 성남으로 올라올 때, 대전에서 동탄까지 SRT를 이용하고 동탄에서 판교까지 지난 3월 30일에 개통한 GTX-A를 탑승하였다. 동탄에서 성남역 (판교역과 이매역 중간)까지 약 12분 소요! 엄청난 속도다! 동탄역 SRT를 이용해 동탄에서 하차하면 곧바로 GTX-A로 환승할 수 있게 연결되어 있다. 바로 교통카드를 찍고 입장하면 된다! 역 구성은 아주 심플하다. 동탄에서 곧바로 성남, 그다음 역이 수서역이다. 추후에 구성역이 개통될 예정이라고 한다. 동탄에 분포한 삼성전자와 판교에 분포한 IT기업들의 교류(이직?)가 더 쉬워질라나? GTX 개통 기념 현수막이 걸려있다! 내부 23시 13분 차를 탑승했는데, 사람이 ..
이전 포스트: https://byeo.tistory.com/entry/socket-system-call socket system call 1int 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 5. inet_create (net/ipv4/af_inet.c:248)사실 address family가 달라지면 호출될 함수가 달라지겠죠. 예를 들어서 AF_INET6을 지정했다면 inet6_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 이전 포스트에서 리눅스 시스템 콜을 추가하면 서 확인했던 점은 시스템 콜의 시작 부분이 syscall_64.tbl에 등록되어 있다는 점이었습니다. 마찬가지로 linux 5.15 기준으로 socket 함수를 찾아봅니다. ... 40commonsendfilesys_sendfile64 41commonsocketsys_socket 42commonconnectsys_connect ... 이는 마찬가지로 syscalls.h..
설명은 나중에... 굉장히 난이도가 높은 문제인 듯 싶다. 특히 dfs()를 최대한 잘 추려내지 않으면 대부분 timeout난다. #include #include #include #include using namespace std; #define MAX_FLOW 2147483646 #define NODE 500 #define SOURCE (NODE + 1) #define SINK (SOURCE + 1) #define MAX_NODE (SINK + 1) vector adj[MAX_NODE]; int flow[MAX_NODE][MAX_NODE]; int N; bool bfs(int start, int end, int* level_graph) { queue q; q.push(start); level_graph..
한 달 만에 가는 산행, 7번째로 북한산을 선택했다. 북한산 초입에서부터 백운대까지 2시간 0분 소요. ※ 해빙기 암장조사 때문에 24년 3월 25일 ~ 24년 4월 7일은 백운대 출입이 금지됩니다. 경로 빨간색: 등산길 파란색: 하산길 물리적으로 도봉산과 거의 붙어있다. 도봉산 등산 때도 느꼈는데, 북한산 도봉산 둘 다 암벽이 참 아름답다. 사진 좌측부터 고도가 높아지는 순. 저 멀리에 있는 산의 눈은 녹지 않았다. 약 700m 즈음 쉼터에서 여유롭게 누워있는 누렁이랑 한 장 쉴 새 없이 오르면 북한산 산성에 도착한다. 약 800m즈음 되는 등산길일 텐데, 오르는 길에 평지는 거의 없다! 암벽 등반 남은 0.3km (고도는 약 60m쯤?) 은 줄 하나를 잡고 클라이밍을 해야 한다. 우뚝 솟은 산이라 그..