안녕하세요
혹시 wireshark을 사용하면서 버그 같은거 경험하신적 있으시나요? (버그는 아닐 수도 있지만..)
UDP로 데이터를 서버에 전달하는 간단한 샘플 프로그램을 사용하는데, 분명 wireshark에서는 데이터가 오는 게 보입니다. 그런데 샘플 프로그램(application)에서는 데이터가 전달되었다고 나오지가 않네요.
혹시 이런 적 있으셨나요?
고수님들 답변 부탁드립니다.
방화벽에서 막히진 않았는지. checksum error 혹은 다른 이유로 커널에서 버린건 아닌지 알고보니 포트를 잘못 등록했다던지 select를 잘못해서 전혀 읽고 있지 않다던지
의 이유를 한번 확인해보세요.
언제나 삽질 - http://tisphie.net/typo/ 프로그래밍 언어 개발 - http://langdev.net
네 말씀하신거 다 보았는데도 안되네요..
지금 하고 있는 것은 network 드라이버를 손대는 건데, (아마 문제의 원인일 수 있습니다.)
문제는 분명 wireshark까지는 올라왔다는 거 이상하다는 것입니다.
만약 드라이버에 문제가 있다면, wireshark까지는 올라오지 않을 것 같은데 말이지요..
혹, 제가 뭔가 잘못 생각하고 잇는 것이 있을까요?
---------------------------------http://blog.naver.com/munhoney ---------------------------------
커널을 수정중이시라면, 직접 따라가보는 것도 방법이 되겠습니다. 문제가 의외의 곳에서 나타날 수도 있죠.
제 경우는 가상 네트웍 인터페이스에서 받은 패킷이 어플리케이션에 도착하지 않아서 (select는 됐는데 read하면 막상 패킷이 없음) 왜그런가 추적해봤더니 align이 안맞아서 패킷이 폐기된 적이 있습니다. 결국 asm을 수정해서 해결했고요.
아 그렇군요....
아마 비슷한 문제일 것 같네요.. 혹시 리눅스나 혹은 윈도우에서 폐기된 패킷이 있다는 것을 알수 있는 방법이 있나요?
그것만 확실해 지면 문제의 실마리를 찾을 수 있을 것 같은데요.
지금 저는 윈도우 드라이버를 개발 중이고, 가상 피시에 적용 중입니다.
netstat -e 로 보면 되지 않을까 합니다. 전 tcp 패킷을 조작한다고 커널단을 건드렸는데 체크섬을 잘못 계산해서 다 폐기된 적이 있습니다. ㅡ.ㅡ;;;
netstat -e로 하면 다음과 같이 나온던데요... 폐기된 패킷은 어디에 나오는지 모르겠습니다.
1. 참. 그리고 저는 지금 UDP로 하고 있는데, UDP의 경우 checksum 도 맞추어야 하는지요. 2. 그리고 Ethernet Header도 건드리고 있는데 (MAC 주소 땜시) FCS (CRC)도 맞추어야 하나요?
P.S. 답변 너무 감사드립니다. ^^''
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 2727 @/org/kernel/udev/udevd unix 2 [ ] DGRAM 4246 @/org/freedesktop/hal/udev_event unix 14 [ ] DGRAM 3505 /dev/log unix 3 [ ] STREAM CONNECTED 11739 @/tmp/.X11-unix/X0 unix 3 [ ] STREAM CONNECTED 11738 unix 3 [ ] STREAM CONNECTED 11475 @/tmp/dbus-U2Bsm8D5XF unix 3 [ ] STREAM CONNECTED 11474 unix 3 [ ] STREAM CONNECTED 11470 @/tmp/dbus-ChpxgnUFVE unix 3 [ ] STREAM CONNECTED 11469 unix 3 [ ] STREAM CONNECTED 10811 @/tmp/dbus-ChpxgnUFVE unix 3 [ ] STREAM CONNECTED 10810 unix 3 [ ] STREAM CONNECTED 10608 /home/stmoon/.pulse/c9cc425a59616813117764984b6faad1-runtime/n ative unix 3 [ ] STREAM CONNECTED 10607 unix 3 [ ] STREAM CONNECTED 10308 @/tmp/dbus-U2Bsm8D5XF unix 3 [ ] STREAM CONNECTED 10307 unix 3 [ ] STREAM CONNECTED 10303 /var/run/dbus/system_bus_socket unix 3 [ ] STREAM CONNECTED 10302 unix 3 [ ] STREAM CONNECTED 10182
ifconfig 에서 인터페이스 정보에 error 같은게 있나 한번 보세요.
매번 답변 감사합니다.
확인 결과, UDP Checksum을 안해주어서 그랫던 거더군요.
님 덕분에 힌트를 얻게 되었습니다.
신기하게도 UDP에서는 setopt를 통해 Checksum을 안해주어도 되는데, 그게 먹히지 않더군요.
암튼 문제는 해결되었네요. 감사합니다~~~
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
방화벽에서 막히진
방화벽에서 막히진 않았는지.
checksum error 혹은 다른 이유로 커널에서 버린건 아닌지
알고보니 포트를 잘못 등록했다던지
select를 잘못해서 전혀 읽고 있지 않다던지
의 이유를 한번 확인해보세요.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
네 말씀하신거 다
네 말씀하신거 다 보았는데도 안되네요..
지금 하고 있는 것은 network 드라이버를 손대는 건데, (아마 문제의 원인일 수 있습니다.)
문제는 분명 wireshark까지는 올라왔다는 거 이상하다는 것입니다.
만약 드라이버에 문제가 있다면, wireshark까지는 올라오지 않을 것 같은데 말이지요..
혹, 제가 뭔가 잘못 생각하고 잇는 것이 있을까요?
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
커널을
커널을 수정중이시라면, 직접 따라가보는 것도 방법이 되겠습니다.
문제가 의외의 곳에서 나타날 수도 있죠.
제 경우는 가상 네트웍 인터페이스에서 받은 패킷이 어플리케이션에 도착하지 않아서
(select는 됐는데 read하면 막상 패킷이 없음)
왜그런가 추적해봤더니 align이 안맞아서 패킷이 폐기된 적이 있습니다.
결국 asm을 수정해서 해결했고요.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
아 그렇군요.... 아마
아 그렇군요....
아마 비슷한 문제일 것 같네요.. 혹시 리눅스나 혹은 윈도우에서 폐기된 패킷이 있다는 것을 알수 있는 방법이 있나요?
그것만 확실해 지면 문제의 실마리를 찾을 수 있을 것 같은데요.
지금 저는 윈도우 드라이버를 개발 중이고, 가상 피시에 적용 중입니다.
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
netstat -e 로 보면 되지
netstat -e 로 보면 되지 않을까 합니다.
전 tcp 패킷을 조작한다고 커널단을 건드렸는데 체크섬을 잘못 계산해서 다 폐기된 적이 있습니다. ㅡ.ㅡ;;;
netstat -e로 하면
netstat -e로 하면 다음과 같이 나온던데요... 폐기된 패킷은 어디에 나오는지 모르겠습니다.
1. 참. 그리고 저는 지금 UDP로 하고 있는데, UDP의 경우 checksum 도 맞추어야 하는지요.
2. 그리고 Ethernet Header도 건드리고 있는데 (MAC 주소 땜시) FCS (CRC)도 맞추어야 하나요?
P.S.
답변 너무 감사드립니다. ^^''
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 2727 @/org/kernel/udev/udevd
unix 2 [ ] DGRAM 4246 @/org/freedesktop/hal/udev_event
unix 14 [ ] DGRAM 3505 /dev/log
unix 3 [ ] STREAM CONNECTED 11739 @/tmp/.X11-unix/X0
unix 3 [ ] STREAM CONNECTED 11738
unix 3 [ ] STREAM CONNECTED 11475 @/tmp/dbus-U2Bsm8D5XF
unix 3 [ ] STREAM CONNECTED 11474
unix 3 [ ] STREAM CONNECTED 11470 @/tmp/dbus-ChpxgnUFVE
unix 3 [ ] STREAM CONNECTED 11469
unix 3 [ ] STREAM CONNECTED 10811 @/tmp/dbus-ChpxgnUFVE
unix 3 [ ] STREAM CONNECTED 10810
unix 3 [ ] STREAM CONNECTED 10608 /home/stmoon/.pulse/c9cc425a59616813117764984b6faad1-runtime/n
ative
unix 3 [ ] STREAM CONNECTED 10607
unix 3 [ ] STREAM CONNECTED 10308 @/tmp/dbus-U2Bsm8D5XF
unix 3 [ ] STREAM CONNECTED 10307
unix 3 [ ] STREAM CONNECTED 10303 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 10302
unix 3 [ ] STREAM CONNECTED 10182
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
ifconfig 에서
ifconfig 에서 인터페이스 정보에 error 같은게 있나 한번 보세요.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
매번 답변
매번 답변 감사합니다.
확인 결과, UDP Checksum을 안해주어서 그랫던 거더군요.
님 덕분에 힌트를 얻게 되었습니다.
신기하게도 UDP에서는 setopt를 통해 Checksum을 안해주어도 되는데, 그게 먹히지 않더군요.
암튼 문제는 해결되었네요. 감사합니다~~~
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
---------------------------------
http://blog.naver.com/munhoney
---------------------------------
댓글 달기