udp와 tcp를 왜 사용하는지는 알고 있습니다.. 근데 raw_socket은 사용 이유를 모르겠습니다.. 답변 부탁합니다..
글쎄요. 일반적인 프로그램(통신상의 자료에 치중하는...)에서는 그냥 socket을 이용해서 프로그램을 작성하면 되겠죠. 하지만 커널단계나 시스템 분석단계의 프로그램을 작성하려면 socket보다는 좀더 많은 자료를 볼 수 있는 raw_socket을 사용하는게 좋겠죠. 즉, 일반 socket은 일반적인 게임, 메신저 등등의 프로그램에서 이용을 하게 될것이고 raw_socket은 iptables 같은 프로그램에서 이용이 되겠죠. ^^;
raw_socket 은 주로 IP header나 TCP header등 기본적인 packet정보를 만들때 이용을 많이 하는걸로 알고 있습니다.
즉 appl레벨에선 잘 안쓰지요.. 물런 NMS관련된 appl인경우..는 쓰겠지여? ^^*
이상 허접 정보였슴댜아 ^^*
TCP, UDP 모두 IP 데이터그램에 캡슐화 된 채로 돌아다니죠..
하지만 IP 프로토콜을 이용하지 않는 프로토콜도 많이 있습니다.
(ARP, RARP 등)..
이와 관련된 프로그램을 구현하려면 raw_socket 이 필수입니다.
이 외에도, user level 에서의 패킷 분석에도 널리 사용됩니다.
raw socket을 쓰는 이유는 여러가지 있을 수 있지만 우리 생활에서 가장 많이 사용하는 ping이 raw socket으로 되어 있습니다.
이외에 natd, ipfillter, tcpdump등 많은 부분에서 사용하지요.
왜 사용하냐고요. 1. icmp/igmp는 raw socket밖에는 안되니까. 2. ip address나 tcp port등 network상에서 이동되는 모든 자료를 볼려면 이걸 쓸수 밖에 없으니까. 등.. 여러가지 이유로 사용합니다.(아마 할수밖에 없을걸요)
raw socket을 사용하는이유는 ethernet frame를 다룰수 있기 때문입니다. 기존의 socket을 사용하면 ip의 payload부분밖에 프로그램에서 다룰 수가 없습니다. 그렇기 때문에 raw socket을 사용합니다.
텍스트 포맷에 대한 자세한 정보
<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]
Re: raw_socket의 사용 이유
글쎄요.
일반적인 프로그램(통신상의 자료에 치중하는...)에서는 그냥 socket을
이용해서 프로그램을 작성하면 되겠죠.
하지만 커널단계나 시스템 분석단계의 프로그램을 작성하려면 socket보다는
좀더 많은 자료를 볼 수 있는 raw_socket을 사용하는게 좋겠죠.
즉, 일반 socket은 일반적인 게임, 메신저 등등의 프로그램에서 이용을 하게
될것이고 raw_socket은 iptables 같은 프로그램에서 이용이 되겠죠. ^^;
Re: raw_socket의 사용 이유
raw_socket
은 주로 IP header나 TCP header등 기본적인 packet정보를
만들때 이용을 많이 하는걸로 알고 있습니다.
즉 appl레벨에선 잘 안쓰지요..
물런 NMS관련된 appl인경우..는 쓰겠지여? ^^*
이상 허접 정보였슴댜아 ^^*
Re: raw_socket의 사용 이유
TCP, UDP 모두 IP 데이터그램에 캡슐화 된 채로 돌아다니죠..
하지만 IP 프로토콜을 이용하지 않는 프로토콜도 많이 있습니다.
(ARP, RARP 등)..
이와 관련된 프로그램을 구현하려면 raw_socket 이 필수입니다.
이 외에도, user level 에서의 패킷 분석에도 널리 사용됩니다.
Re: raw_socket의 사용 이유
raw socket을 쓰는 이유는 여러가지 있을 수 있지만
우리 생활에서 가장 많이 사용하는 ping이 raw socket으로
되어 있습니다.
이외에 natd, ipfillter, tcpdump등 많은 부분에서 사용하지요.
왜 사용하냐고요.
1. icmp/igmp는 raw socket밖에는 안되니까.
2. ip address나 tcp port등 network상에서
이동되는 모든 자료를 볼려면 이걸 쓸수 밖에 없으니까.
등.. 여러가지 이유로 사용합니다.(아마 할수밖에 없을걸요)
raw socket을 사용하는이유는 ethernet frame를 다룰수
raw socket을 사용하는이유는 ethernet frame를 다룰수 있기 때문입니다. 기존의 socket을 사용하면 ip의 payload부분밖에 프로그램에서 다룰 수가 없습니다. 그렇기 때문에 raw socket을 사용합니다.
댓글 달기