Byeo

TCP SYN_RECV state의 ACK 처리 1 본문

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

TCP SYN_RECV state의 ACK 처리 1

BKlee 2024. 6. 2. 19:14
반응형

우리는 앞선 포스트에서 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 처리 1

accept system call은 established된 connection에 대해서 fd를 할당해 userspace에게 제공합니다. 그러면 3-way handshake의 TCP_SYN은 누가 처리할까요? 한 번 그 과정을 알아봅니다. 단, tcp code만 살펴볼 예정이고,

byeo.tistory.com

 

  • 1st handshake: 서버는 SYN packet을 수신하면 tcp의 global variable hashinfo의 ehash에 넣어놓습니다.
  • 2nd handshake: 그리고 SYN | ACK를 송신하죠. 
  • 3rd handshake: 클라이언트가 SYN | ACK를 정상적으로 수신했다면, 마지막으로 ACK를 송신할 것입니다. 우리는 이제 서버가 이 ACK를 어떻게 처리할지 알아보려고 합니다.

포스트 순서가 3-way handshake랑 순서가 어긋난 있긴 하나, Listen()과 Accept() 사이를 이해하기 위해서이니 양해 바랍니다.

 

 

반응형

'프로그래밍 (Programming) > 네트워크 스택' 카테고리의 다른 글

Listen socket의 TCP SYN 처리 2  (0) 2024.05.31
Listen socket의 TCP SYN 처리 1  (0) 2024.05.25
ftrace 사용법  (0) 2024.05.23
accept system call 3 (inet_accept)  (0) 2024.05.19
[Linux Kernel] Blocking I/O  (0) 2024.05.17
Comments