Raw 소켓

raw 소켓은 어느 특정한 프로토콜 용의 전송 계층 포매팅 없이 인터넷 프로토콜 패킷을 직접적으로 주고 받게 해주는 인터넷 소켓이다.

개요 
standard sockets에서 페이로드는 선택된 전송 계층 프로토콜에 따라 자동으로 캡슐화되며 소켓 사용자는 페이로드와 함께 브로드캐스트되는 프로토콜 헤더의 존재를 알지 못한다. raw 소켓을 읽는 경우 보통 헤더들도 포함된다. raw 소켓에서 패킷을 전달할 때 헤더를 자동으로 추가할지 여부는 필수적이지 않다.

Raw 소켓들은 nmap 같은 보안 관련 애플리케이션에서 사용된다. raw 소켓을 사용한 다른 가능한 방식으로 사용자 공간에서 새로운 전송 계층 프로토콜을 구현하는 것이 있다. Raw 소켓들은 일반적으로 네트워크 장비에서 사용 가능하며 인터넷 그룹 관리 프로토콜 (IGMPv4)과 최단 경로 우선 프로토콜(OSPF), 그리고 ICMP 같은 라우팅 프로토콜에서 ICMP echo request를 보내고 ICMP echo replie를 받을 때 사용된다.

구현 
대부분의 소켓 API들은 raw 소켓을 지원한다. 윈도우 XP는 2001년 Winsock 인터페이스에 구현된 raw 소켓을 지원하였지만 3년 후 마이크로소프트는 Winsock의 raw 소켓 지원을 보안을 이유로 제한하였다.

같이 보기 
 인터넷 프로토콜
 인터넷 프로토콜 스위트
 IPv4 패킷 포맷
 IPv6 패킷 포맷

각주

외부 링크 
 Net::RawIP; module for Perl applications. Created by Sergey Kolychev.
 Network Programming for Microsoft Windows ()
 A little more info on raw sockets and Windows XP SP2 - Michael Howard's Web Log an indication of what's actually allowed on Windows.
 SOCK_RAW Demystified: article describing inner workings of Raw Sockets
 C language examples of Linux raw sockets for IPv4 and IPv6 - David Buchan's C language examples of IPv4 and IPv6 raw sockets for Linux.
취약점 공격