본문 바로가기

반응형

개발 노트/네트워크

(9)
[패킷덤프] 윈도우 tcpdump (dumpcap) 사용하기 윈도우에서 Linux 의 tcpdump 처럼 명령어 기반으로 패킷 필터를 걸어 패킷 덤프 파일을 저장하고 싶을 때가 있다. 물론 Wireshark 를 사용해 패킷을 모니터링하며 저장할 수 있지만 Wireshark 는 기본적으로 UI 를 띄워야만 사용이 가능하기 때문에 패킷을 실시간 모니터링하지 않아도 되는 경우는 굳이 창을 띄워 메모리를 더 잡아먹지 않아도 된다. Wireshark 설치 시 함께 설치되는 exe 파일들 중 dumpcap.exe 프로그램을 사용하면 tcpdump 와 유사한 캡처 필터 지정, output 파일 지정 등을 지정하여 실시간 모니터링하지 않으면서 패킷 덤프가 가능하다. 아래는 그 상세 방법이다. 1. Wireshark 설치 기본적으로 패킷을 뜨려는 상태라면 Wireshark 는 설..
[프로토콜] IP Version 4 (IPv4) IP Version 4 (IPv4) ❏ 인터넷 프로콜의 4번째 버전이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜으로서 IPv6를 제외하고 현재 인터넷에서 사용되는 유일한 프로토콜입니다. IPv4의 주소체계는 총 12자리이며 네 부분으로 나뉩니다. 각 부분은 0~255까지 32자리의 수로 표현되며 총 32비트로 구성되어 있습니다. ❏ 구성 단위(Class) ❏ 구성 단위 (Class) ❍ Class A : 최고위의 클래스로서, 1~126 (0, 127 예약됨) 범위의 IP주소를 가집니다. 주로 각 대륙에 할당하는 IP입니다. ❍ Class B : 두 번째로 높은 단위의 클래스로서, 아이피 구성에서 첫 번째 단위의 세 숫자는 128~191 가운데 하나를 가지며, 두 번째 단위의 세 숫자는 B Clas..
[프로토콜] IP Fragmentation / IP 단편화 ❏ IP 단편화 ❍ 데이터그램의 크기가 크면 MTU(Maximum Transmission Unit)의 크기에 맞게 그 데이터를 나누는 것을 단편화라고 합니다. Ethernet MTU는 1500바이트이고 보통 MT가 정의되어 있지 않다면 576바이트의 기본 크기로 보냅니다. ❍ 단편화의 바이트구조를 보면, 1비트는 R이며 나중을 위해 사용을 보류한 비트이고, 다음 1비트는 DF로 나타내며, 이 값이 1을 나타내면 이 데이터그램은 단편화를 해서는 안된다는 뜻입니다. 다음 비트는 MF로 나타내며, 이 값이 1을 나타내면 이 데이터그램 뒤에 단편화된 데이터그램이 더 있다는 뜻입니다. 오프셋은 해당 단편화 조각이 원래 데이터에서 몇 번째 데이터인지를 표시해주는 값입니다. 오프셋은 8단위로 이루어져 있기 때문에 단..
[프로토콜] IP Header ❏ IP ❍ 인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜)이며 OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당합니다. IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송되며, 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없습니다. ❍ IP는 비신뢰성(unreliability)과 비연결성(connectionlessness)이 특징입니다. 비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 뜻입니다. 패킷전송과 정확한 순서를 보장하려면 TCP 프르토콜과 같은 IP의 상위 프로토콜을 이용해야 합..
[프로토콜] UDP Header / UDP 동작 ❏ UDP ❍ 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)은 인터넷 프로토콜 스위트의 주요 프로토콜 가운데 하나입니다. TCP와 함께 데이터 그램으로 알려진 단문 메시지를 교환하기 위해서 사용됩니다. UDP는 Universal Datagram Protocol 이라고 일컫기도 합니다. ❍ UDP의 전송 방식은 너무 단순해서 서비스의 신뢰성이 낮고, 데이터 그램 도착 순서가 바뀌거나, 중복되거나, 통보 없이 누락시키기도 합니다. UDP는 일반적으로 오류의 검사와 수정이 필요 없는 애플리케이션에서 수행할 것으로 가정합니다. ❍ UDP를 사용하는 네트워크 애플리케이션에는 도메인 이름 서비스(DNS), IPTV, 음성 인터넷 프로토콜(VoIP), TFTP, IP터널, 그리고 많은..
[프로토콜] TCP 통신 ❏ TCP 통신 ❍ TCP 연결 : 3-Way Handshaking (세션 연결) (1) SYN : Sequence Number에는 클라이언트의 초기 순서 번호(100)를 넣고, Acknowledgment Number에는 0을 넣고, Flag는 SYN bit를 1로 설정하여 전송합니다. (2) SYN+ACK : Sequence Number에는 서버의 초기 순서 번호(200)를 넣고, Acknowledgment Number에는 “클라이언트의 초기 순서 번호(100) + 1 = (101)”의 값을 넣고, Flag는 SYN과 ACK bit 모두 1로 설정하여 전송합니다. (3) ACK : Sequence Number에는 서버의 Acknowledgment Number(101)를 넣고, Acknowledgment..
[프로토콜] TCP 프로토콜 동작 방식 ❏ TCP 프로토콜 동작방식 ❍ TCP는 흐름제어(Flow control)와 혼잡제어(Congestion control) 두 개의 제어 메커니즘을 이용하여 End-to-End 간의 신뢰성 있는 전송을 보장합니다. 흐름 제어는 송신 측이 수신 측으로부터 Advertised Window 크기를 받은 후 그것보다는 적게 보냄으로써 네트워크 상의 흐름을 조절하는 방법이고, 혼잡 제어는 Sender가 네트워크 상황을 보고 스스로 흐름을 조절하는 방법입니다. ❍ 흐름제어(Flow Control) - 정의 • 송신 측과 수신 측의 데이터 처리 속도 차이를 해결하기 위한 기법입니다. 수신 측이 송신 측보다 속도가 빠른 것은 아무 문제가 없지만 송신 측이 수신 측보다 속도가 빠르면 문제가 발생합니다. 수신 측에서 수신된..
[프로토콜] TCP Checksum (TCP 체크섬) ❍ TCP Checksum - TCP는 TCP Segment data 송신 도중 발생될 수 있는 비트 오류를 검출하기 위해 체크섬을 사용합니다. 송신자는 체크섬 계산알고리즘에 의해 계산한 체크섬을 TCP 체크섬 헤더에 삽입하여 송신하게 되며, 수신자는 동일 알고리즘으로 수신받은 데이터를 검사해 봄으로써 오류여부를 파악합니다. TCP 체크섬은 TCP 체크섬 계산에 사용되는 헤더 및 데이터를 16비트 단위로 분할하여 비트 합을 구한 뒤, 이에 대한 1의 보수를 취함으로써 계산됩니다. 비트합 계산 중 Carry가 발생될 경우에는 Wrap around를 적용합니다.- Checksum 계산 순서 (1) Pseudo Header 생성ㆍPseudo Header는 총 12바이트 길이로써 일부 IP Header를 참조하..

반응형