- Today
- Total
목록분류 전체보기 (158)
Byeo

이전 포스트: https://byeo.tistory.com/entry/accept-system-call-2-inetaccept accept system call 2 (inet_csk_accept)이전 포스트: 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-byeo.tistory.com 7. inet_acceptinet_accept에서 호출했던 sk1->sk_prot->accept 함수는 inet_csk_accept ..

개요Blocking I/O의 동작 방법을 공부해 봅니다. (LDD (https://www.makelinux.net/ldd3/) 3판 section 6.2 요약) sys_accept을 공부하다가 blocking I/O에 대해서는 따로 간단히 정리를 해보면 좋겠다 싶어서 작성하게 되었습니다. Blocking I/O 하드웨어 장비는 언제나 작업을 처리할 수 있는 것은 아니다. 예를 들어, NIC을 통해서 data를 내보내고 싶은데 (send, TX), 이미 수많은 작업들이 쌓여있어서 하드웨어가 이를 수용하지 못할 수 있다. 반대로, application이 무언가 data를 받기를 기대하는데 (recv, RX) 실제로는 NIC에 들어온 data가 없을 수도 있다. 하지만 우리가 작성하는 프로그램은 하드웨어 상..

이전 포스트: 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을 생성하고 bindbyeo.tistory.com sock->ops->accept 함수는 inet_accept입니다. 5. inet_accept// net/ipv4/af_inet.c/inet_accept() :..

accept system call의 개요와 관련된 내용은 이전 포스트에 정리되어 있습니다.: https://byeo.tistory.com/entry/accept-system-call-Intro accept system call 0 - Intro일반적인 BSD Socket API는 server가 socket을 생성하고 bind 하고 listen 하면, 그다음은 accept을 수행합니다. 이 accept은 client가 연결 요청을 시도 함으로 인해 listen queue에 차있는 established packet을 꺼내온byeo.tistory.com 언제나 그렇듯, __sys_accept에서 시작합니다. 단, 함수 명의 끝에 4가 붙어있습니다.0. Parameteraccpet의 parameter는 조금 특..

일반적인 BSD Socket API는 server가 socket을 생성하고 bind 하고 listen 하면, 그다음은 accept을 수행합니다. 이 accept은 client가 연결 요청을 시도 함으로 인해 listen queue에 차있는 established packet을 꺼내온 뒤, socket()으로 생성했던 fd와는 다른 새로운 fd(!)를 생성하여 userspace에 제공합니다. accept에서 확인해야 할 점은 다음과 같습니다. 1. TCP Passive open 3-way handshake 수행 지점:server의 3-way handshake (SYN | ACK 반환)는 listen이 하는 것도 아니고, accept이 하는 것도 아닙니다.(1) Kernel이 SYN packet을 받으면(2)..

이전 포스트: https://byeo.tistory.com/entry/listen-system-call-2-inetlisten listen system call 2 (inet_listen)이전 포스트: https://byeo.tistory.com/entry/listen-system-call-1-syslisten listen system call 1 (__sys_listen)BSD socket API에서 server쪽은 bind를 실행한 뒤, listen을 시작합니다. Application이 listen을 시작하면 이제 받byeo.tistory.com sk->sk_prot->hash(sk)는 tcp_prot 구조체에 선언되어 있고, inet_hash 함수포인터를 값으로 갖고 있습니다. 4. inet..

이전 포스트: https://byeo.tistory.com/entry/listen-system-call-1-syslisten listen system call 1 (__sys_listen)BSD socket API에서 server쪽은 bind를 실행한 뒤, listen을 시작합니다. Application이 listen을 시작하면 이제 받을 수 있게 됩니다. 이 때, listen은 client가 요청한 연결들을 보관하는 함수라고 볼 수 있을byeo.tistory.com sock->ops->listen 함수는 inet_listen입니다. 현재까지 흐름도 2. inet_listen// net/ipv4/af_inet.c/inet_listen() :193/* * Move a socket into listen..

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분정도 거리에 있는 참성단이다. ..