20130625
____리눅스 & 네트워크_________________________________________________________
네트워크 이론 | |||||||||||||||||||||
☞ 멀티캐스트[ multicast ]인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송하는 방식을 말한다.
데이터 중복전송으로 인한 정보체증을 완화하며, 그룹 멤버십 정보를 관리할 수 있다. (네트워크에서 멀티캐스트 어드레스 : FF FF FF FF )
☞ 핑 [ping] 다른 호스트에 IP데이터그램 도달 여부를 조사하기 위한 프로그램.Ping은 TCP/IP 프로토콜을 사용하는 응용 프로그램으로 다른 호스트에 IP 데이터그램이 도착할 수 있는지를 검사하는 것을 의미한다. Ping을 수행하는 프로그램은 ICMP echo request라는 메시지를 원격 호스트로 보내 응답하는가를 기다린다. 즉 송신한 ICMP echo request를 받은 호스트가 동작 중이면 응답할 것이고 호스트가 동작하지 않으면 않을 것이기 때문이다. 이와 같이 ICMP echo reply가 돌아오는 지의 여부에 따라 원격 호스트가 동작 중인지 아닌 지를 검사할 수 있다.(응답하는 시간으로속도를 알수 있음) ※ Ping test => ping 192.168.10.63 (ip주소)
☞ dummy hub 와 switch hub 1) 더미허브와 스위칭허브의 차이점
2) 스위칭 허브의 이해
| |||||||||||||||||||||
pcap() 함수들... | |||||||||||||||||||||
☞ pcap_compile() => 조건적으로 패킷을 건져 올림 (특정 IP의 패킷만 건져올릴수 있음) ☞ pcap_next() => 패킷을 건져올리는 함수 ☞ pcap_datalink => LAN 변화를 알려줌 ☞ pcap_dispatch => 패킷 건져 올릴때 마다 call back(핸들러 호출)함 ☞ pcap_dump() => 패킷 건져 올린것을 파일로 만듬
| |||||||||||||||||||||
Ethernet Header | |||||||||||||||||||||
☞ 패킷에서 Ethernet Header는 14바이트이며 Destination Address(6바이트) + Source Address(6바이트) + packet type(2바이트)로 구성되어 있다.
| |||||||||||||||||||||
pcap_next() 함수를 이용한 패킷 캡쳐 | |||||||||||||||||||||
※ Ethernet network 표준 MAC 어드레스는 6바이트 임.
| |||||||||||||||||||||
pcap.c | |||||||||||||||||||||
#include <stdio.h>
char errbuf[PCAP_ERRBUF_SIZE]; // 에러메시지를 담는 버퍼, 크기 256바이트
cpNIC_Name = pcap_lookupdev(errbuf); // 현재 사용중인 랜카드(네트워크 장치)를 찾아줌
memcpy(ucData, pcap_next(stDes, &stInfo), sizeof(ucData)); // 메모리영역 복사
case ETH_P_LOOP: printf("Ethernet Loopback packet\n"); printf("Xerox PUP packet\n"); case ETH_P_PUPAT: case ETH_P_IP: case ETH_P_X25: printf("CCITT X.25\n"); printf("Address Resolution packet\n"); case ETH_P_BPQ: case ETH_P_IEEEPUP: printf("Xerox IEEE802.3 PUP Addr Trans packet \n"); printf("DEC Assigned proto\n"); case ETH_P_DNA_DL: case ETH_P_DNA_RC: case ETH_P_DNA_RT: printf("DEC DNA Routing\n"); printf("DEC LAT \n"); case ETH_P_DIAG: case ETH_P_CUST: case ETH_P_RARP: case ETH_P_ATALK: case ETH_P_AARP: case ETH_P_IPX:
case ETH_P_PPP_DISC: case ETH_P_PPP_SES: case ETH_P_ATMMPOA:
void hexaview(unsigned char *ucP, unsigned int iSize) { int iCnt; for(iCnt = 0; iCnt < 16; ++iCnt ) printf("%08X ", ucP); for(iCnt = 0; iCnt < 16; ++iCnt ) putchar('\n'); } } |
VI Tip |
☞ 매크로 만들기 : q + 매크로이름 -> 원하는 동작 -> q ☞ 매크로 수행 : @매크로이름
|
.vimrc 파일에
nmap <하고싶은key> gg=G'' 을 추가해 놓으면 해당 key를 누를때 마다
자동으로 들여쓰기 정렬 된다.
|
__________________________________________________________________________________________________
______실습파일 & 수업자료___________
_________________________________