[소켓네트워크] - 일반 소켓 vs RAW 소켓
소켓네트워크2017. 4. 21. 01:01
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
| 일반 소켓 vs RAW 소켓
일반 소켓과 RAW 소켓의 차이
일반 소켓 보낼 때 : 커널이 TCP HEADER(대표적으로 포트번호), IP HEADER(대표적으로 출발지IP, 도착지IP)를 정해서 보낸다
일반 소켓 받을 때 : TCP 층에서 포트번호가 맞는지 비교하고 IP 층에서 IP가 맞는지 비교하여 맞으면 받고 아니면 폐기한다
RAW 소켓 보낼 때 : 내가 직접 TCP HEADER와 IP HEADER를 정해서 보낼 수 있다
RAW 소켓 받을 때 : 일반 소켓과 달리 확인 없이 모두 받을 수 있다
RAW 소켓의 생성
socket(PF_INET, SOCK_RAW, IPPROTO_TCP); // TCP 프로토콜 형태의 RAW 소켓 생성
socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); // ICMP 프로토콜 형태의 RAW 소켓 생성
IP 헤더와 TCP 헤더 조작하기 위한 소켓 옵션 변경
int on = 1;
setsockopt(sock, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on));
무차별모드 : 랜카드로 들어오는 모든 정보를 얻는 모드(RAW소켓 설정 필수)
설정 - ipconfig eth0 promisc
해제 - ipconfig eth0 -promisc
'소켓네트워크' 카테고리의 다른 글
[소켓네트워크] - 채팅 서버 코드 (1) | 2017.06.02 |
---|---|
[소켓네트워크] - strtok 이용한 문자열 분리 (0) | 2017.05.05 |
[소켓네트워크] - Can not Bind 처리방법 (0) | 2017.04.21 |
[소켓네트워크] - TCP/IP 흐름 (0) | 2017.04.01 |
[소켓네트워크] - 소켓과 스트림 한번에 이해하기 (0) | 2017.02.27 |
댓글()