UDP 데이터 수신에 대한 질문입니다.
글쓴이: kim1158 / 작성시간: 수, 2004/04/21 - 1:20오후
udp는 비연결지향이므로 패킷이 도착하면
네트웍,ip층을거쳐 소켓버퍼(sk_buff)를 만들고 tcp와는 다르게 프로세스를 wakeup하지않고 해당프로세스가 값을 받아갈때까지 소켓버퍼에 저장해두는것으로 알고있습니다.
질문은요.
1)해당UDP패킷을 받는 프로세스가 도착한 데이터가 있나 체크하는 시점이 언제인가요?
아마도 스케줄링되서 실행상태로 진입하게 될때라는 생각이 들긴하는데요.
2)sk_buff 수신큐도 버퍼크기 제한이 있을것 같은데요.
크기제한이 얼만큼인지. 버퍼에두고 언제까지 UDP에서 가져가길 기다리는지.
조언을 듣고싶습니다.
Forums:
^_^ 죄송.. 답이 틀렸군요 ^_^
^_______^
제가 엄청난 실수를 저질렀군요 ㅎㅎ
정말 죄송합니다.
UDP 에서도 역시 wakeup 을 호출합니다.
심심해서? 커널 소스 (2.4.20) 을 보면서 따라가 보았습니다.. 8)
간략하게 정리해보면
여기서 sk->data_ready 는 sock_def_readable 을 가리키므로
따라가 보면 wakeup 코드가 나옵니다.. :D
댓글 달기