- Today
- Total
목록분류 전체보기 (155)
Byeo
우리는 앞선 포스트에서 3-way handshake의 1st packet을 서버가 수신한다면 어떤 코드를 거치는지 확인했습니다: https://byeo.tistory.com/entry/Listen-socket%EC%9D%98-TCP-SYN-%EC%B2%98%EB%A6%AC Listen socket의 TCP SYN 처리 1accept system call은 established된 connection에 대해서 fd를 할당해 userspace에게 제공합니다. 그러면 3-way handshake의 TCP_SYN은 누가 처리할까요? 한 번 그 과정을 알아봅니다. 단, tcp code만 살펴볼 예정이고,byeo.tistory.com 1st handshake: 서버는 SYN packet을 수신하면 tcp의 globa..
회사 동기들과 간 치악산 비로봉. 1,288m로 꽤나 높다. 단, 시작 지점은 약 400m 즈음으로 약 800m의 등산 난이도를 갖고 있다. 1. 치악산 국립공원 안내도 우리가 출발한 황골탐방지원센터는 경사도가 상당하다. 45도의 경사를 지닌 길을 약 30분 정도 계속 올라야 한다. 오른쪽 사진을 보면 감이 대략 온다.. 30분이 지났다고 끝이 아니다! 어느 사찰 같은 곳을 지나면 황골탐방로가 나오면서 다시 본격적인 등산이 시작된다. 4월 초인데 아직 나뭇잎이 나오지 않아 앙상하다.. 그렇다고 나뭇잎이 날 때에는 더워서 얼마 못 다닐 텐데 딜레마다! 2/3쯤 왔을 때이다. 원주가 한눈에 들어올 뻔했으나 안개 때문에 가시거리가 짧았다. 저 멀리 보이는 평지가 비로봉이 위치한 장소다! 2. 정상 ..
지금까지 tcp_conn_request() 함수의 6867줄까지 확인을 했습니다. 남은 6869줄부터 어떤 기능이 있을지 확인해봅니다. 현재까지의 흐름도입니다: 5. tcp_conn_request5-7. timestamp// net/ipv4/tcp_input.c/tcp_conn_request() :6869 if (tmp_opt.tstamp_ok) tcp_rsk(req)->ts_off = af_ops->init_ts_off(net, skb); af_ops는 tcp_request_sock_ipv4이고, init_ts_off 함수는 tcp_v4_init_ts_off입니다. // net/ipv4/tcp_ipv4.c/tcp_v4_init_ts_off() :102static u32 tcp_v4_init_ts..
accept system call은 established된 connection에 대해서 fd를 할당해 userspace에게 제공합니다. 그러면 3-way handshake의 TCP_SYN은 누가 처리할까요? 한 번 그 과정을 알아봅니다. 단, tcp code만 살펴볼 예정이고, device driver와 ip layer는 스킵합니다. 나중에 read system call에서 깊이 다루게 될 것 같습니다. ★ 이 로직은 application에 의해서 trigger되는 로직이 아닙니다! NIC이 packet을 수신하여 interrupt가 발생했고, device driver가 이를 처리하기 위해 trigger되는 로직(으로 예상을 하고있고, 나중에 read에서 확인할 예정)입니다! 1. tcp_v4_rcvtc..
대학 동기와 가는 오사카 여행, 일정은 자유롭게. 함께 하는 여행이라 일정에 협의가 필요하며, 이곳에는 간단한 내용만 적는다. 항공편 (인천 ~ 오사카 간사이) 2024.07.09 ~ 2024.07.13 출발편 (이스타항공 특가 93,300 원)도착편 (피치항공 190,278 원) 도착편이 저렴한지는 잘 모르겠으나, 회사 생활을 하다 보면 잊기 쉬워 미리 해둔다! 7/9 7/10 7/11 오사카 유니버셜 스튜디오 7/12 7/13
kernel function의 흐름이 모호할 때, ftrace가 도움을 줄 수 있습니다. ftrace 사용법을 정리해봅니다. kernel source code를 호스트에서 갖고 있고, 이를 qemu로 부팅합니다. linux 5.15입니다. 1. kernel configurationkernel configuration에서 FTRACE 관련 항목들의 설정을 확인합니다. CONFIG_FTRACE=y# CONFIG_BOOTTIME_TRACING is not setCONFIG_FUNCTION_TRACER=y available filter functions을 통해서 원하는 function만 tracing하도록 설정할 수 있습니다. 다른 설정들도 확인해서 필요한 값들도 있는지 확인합니다. (FTRACE 혹은 TRAC..
본 포스트는 sigcomm '21의 Revisiting the Open vSwitch Dataplane Ten Years Later를 요약하였습니다. 이전 포스트: https://byeo.tistory.com/entry/Revisiting-the-Open-vSwitch-Dataplane-Ten-Years-Later-2 Revisiting the Open vSwitch Dataplane Ten Years Later 2본 포스트는 sigcomm '21의 Revisiting the Open vSwitch Dataplane Ten Years Later를 요약하였습니다. 이전 포스트:https://byeo.tistory.com/entry/Revisiting-the-Open-vSwitch-Dataplane-Ten-..
이전 포스트: 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() :..