본문 바로가기
  • AI (Artificial Intelligence)

Skills/Network34

netinet/in.h - IP 헤더에 프로토콜 번호 매크로 /* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Librar.. 2014. 5. 9.
WIreShark 구현 (7) - ICMP 헤더 출력구현 7. ICMP 헤더 출력 구현 ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서 필요한 기타 기능들을 수행하기위해 사용되는 프로토콜로, IP(Internet Protocol)와 하나의 쌍을 이루며 동작한다. ICMP 메세지의 일반적인 포멧 ☞ ICMP Message Format 0 7 8 15 16 31 ┌─────────────────────────┐ │ IP 헤더 │ ├──────┬──────┬───────────┤ ── │8-bit Type │8-bit Code │ 16-bit Checksum │next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->de.. 2014. 5. 9.
WIreShark 구현 (6) - UDP 헤더 출력구현 6. UDP 헤더 출력구현 TCP 프로토콜에 비해 헤더 정보도 단순하고, 속도 도한 빠르다. 그러나 신뢰성은 보장되지 않는다. 1) 데이터 정상 전달 - UDP는 상대방의 수신준비를 위한 TCP의 3 Way HandShaking 없이 데이터를 전달한다. 2) 전달 중 데이터 손실 발생 - 데이터 전달 중 손실이 발생된 경우, 해당 데이터를 폐기할 뿐 다시 요청하지 않는다. 3) 잘못된 포트 접속시도 - 대상 서버가 제공하지 않는 포트로 접속 시도 시 UDP 프로토콜에는 에러처리기능이 없기 때문에 ICMP 프로토콜이 대신 처리한다. UDP헤더는 이더넷 헤더와 IP헤더 다음에 온다. UDP헤더의 각 필드 1) Source Port : 송신측 포트번호 2) Destination Port : 수신측 포트번호 3.. 2014. 5. 9.
WIreShark 구현 (5) - TCP 헤더 출력구현 5. TCP 헤더 출력구현 상대방에게 정확하게 데이터를 전달할 수 있다. 상대방이 수신이 준비된 상태에서 데이터를 전달하는 세션연결 과정을 거친다. TCP헤더는 이더넷 헤더와 IP헤더 다음에 따라 붙는다. TCP 필드 1) Source Port Number : 송신자의 포트 번호 2) Destination Port Number : 접속하고자 하는 목적지 대상 서버 포트번호 3) Sequence Number : 데이터의 순서를 나타내는 번호, 분할된 패킷의 경우 데이터 재조합에 사용 4) Acknowledge Number : 다음에 수신할 데이터 번호이며 해당 번호를 통해 전체 데이터 중 몇번째 데이터 인지를 파악하게 된다. 5) Header Length(Offset) : TCP헤더 길이 6 ) Reser.. 2014. 5. 9.
WIreShark 구현 (4) - IP 헤더 출력구현 4. IP 헤더 출력 구현 네트워크 계층에 운영되는 IP 프로토콜에는 목적지 위치를 알려주는 고유한 32비트주소 값이 있으며 이를 IP주소라고 한다. IP 헤더는 이더넷헤더 다음에 오게된다. IP헤더에 사용되는 필드 1) Version : IP 버전 2) Header Length : 헤더 길이 정보를 담고 있으며, 단 마지막 필드인 Options 값에 따라 길이가 가변적일 수 있다. 단위는 32비트워드 단위이며, 최소 5에서 최대 15가 될 수 있다. 최소 5인 경우는 고정크기 20바이트(바이트기준 32/8 = 4가 된다. 고로 5로 표기된 경우는 5 *4 = 20바이트를 의미한다.)를 가지며 최대 15인 경우에는 헤더길이가 60바이트가 된다. 3) Type Of Service : 서비스 종류를 나타내며.. 2014. 5. 9.
WIreShark 구현 (3) - 이더넷 헤더 출력구현 3. 이더넷 헤더 출력구현 이더넷 프레임에 포함된 정보 중 LAN카드의 고유주소를 나타내는 MAC주소가 있으며, 해당 정보는 LAN 상에서 통신을 하는데 반드시 필요한 정보이다. 예를 들어 내가 특정서버의 Telnet 통신을 하는 경우 IP 주소만으로는 상대방과 통신을 할 수 없다. 이에 대상 서버의 MAC주소를 얻는과정(ARP 구동)을 거치고 난 이후에 확보된 MAC과 IP 주소를 이용하여 상대방과 Telnet통신을 수행하게 된다. 이더넷프레임에서 이더넷 헤더부분은 목적지 MAC주소, 발신지 MAC주소, 그리고 패킷유형까지이다. 이더넷 헤더 구조체 #include struct ether_header { u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr .. 2014. 5. 9.
WireShark 구현 (2) - 랜 케이블의 이더넷 패킷 출력 구현 1. 랜 케이블의 이더넷 패킷 출력 구현 첫 번째 미션은 랜케이블에서 돌아다니는 패킷인 이더넷의 실체를 확인해보는 것이다. 먼저 이더넷 개념을 다시한번 숙지하자. 이더넷은 데이터링크계층에서 동작하는 프로토콜로써 이더넷프레임이라고도 하며, 다수의 PC를 연결한 환경인 LAN상에서 동작된다. 송신하는 PC가 없는 경우 B의 MAC(랜카드 주소)를 수신자로 세팅하여 전송하게 되며, 이때 B를 제외한 모든 PC는 자신의 MAC주소가 아니기 때문에 해당 패킷을 폐기한다. 이와 같이 데이터를 보내는 것은 자유지만, 다른 PC에서 보낸 패킷과의 충돌이 발생할 수 있으므로 LAN 케이블을 감시하여 패킷이 없는 경우에만 전송이 가능하다. 이와 같은 통신방식을 CSMA/CD라고 불리는데, 해당 방식은 IEEE 802.3에.. 2014. 5. 9.
WireShark 구현 (1) - 환경 세팅 패킷 캡쳐 소프트웨어인 이더리얼은 1998년에 개발을 시작한 이래로 10년만에 정식버전을 출시하였으나 상표권 문제로 인해 이름을 와이어샤크(Wireshark)로 변경하였다. 와이어샤크 같은 프로그램은 네트워크상에 전송되는 패킷을 분석하여 문서상으로만 보던 프로토콜 헤더 등의 정보를 얻거나 심지어 비정상적인 프로토콜 혹은 공격 패턴 등을 탐지하는 도구로 활용되고 있다. 와이어샤크의 기반구조를 제공하는 Winpcap 라이브러리 사용법을 통해 와이어샤크 구현원리에 대해 배워보자. 1. 환경 세팅 스니핑구현을 위해 범용적으로 사용되는 Libpcap 라이브러리는 tcpdump와 같은 네트워크 모니터링 툴 개발에 활용되고 있으나 유닉스 환경에서만 사용가능하다. 윈도우 환경에서는 Libpcap 라이브러리르 윈도우환경.. 2014. 5. 9.
Pcap 을 이용한 패킷캡쳐응용 Pcap 을 이용한 패킷캡쳐응용 윤 상배 dreamyun@yahoo.co.kr 교정 과정 교정 0.8 2003년 1월 24일 23시 문서 작성 차례 1절. 소개 2절. ID 및 패스워드 검색 프로그램 2.1절. 이거 크래킹 프로그램 아닌가요? 2.2절. 구현 방법 2.3절. id, password 전달문자열 확인하기 2.4절. 예제코드 2.5절. 정보 누출을 막는 방법 1절. 소개 지난번에는 pcap 소개문서인 libpcap 프로그래밍 libpcap 프로그래밍을 통해서 기본적인 패킷캡쳐 방법에 대해서 알아보았었다. 이번에는 실질적인 응용에 대해서 간단한 예제와 함께 공부해 보도록 하겠다. 지난번 libpcap 에 대한 이해를 마쳤다면, 이 문서는 가벼운 마음으로 읽어나갈수 있을것이다. 2절. ID 및 패.. 2014. 5. 9.
Tcp 3-way Hand shaking 네트워크 상에서 서로 다른 Device 가 TCP 프로토콜을 이용하여 통신을 하려면 3 way hand shaking 을 하여야 한다. 1. Active open : 처음 Listen status 상대에게 Syn packet 을 발송하여 Syn+ack를 요청 한다. 2. Recieve Syn : Syn packet 을 수신한 상대는 Tcp 연결이 정상적이라면 Syn+ack packet 을 회신하며 Syn-reciened 상태로 변경된다. 3. Established : Syn+Ack 을 수신한 Client 는 자신의 Status 또한 Established 로 바뀌며 서로 Data를 주고 받을 수 있는 상태로 변경되게 된다. 아래에서 보면 Syn 이후 Syn,Ack 그다음 Ack 가 차례대로 발생한 내용을 .. 2014. 4. 22.
1편: 라우터 구조 소개 (Part 1: Router Architecture) 2000년대 초반에 L3 스위치(Ethernet 스위치 + IP 라우터) 개발 회사에서 IBM NP4GS3C라는 Network Processor(그 당시 칩 하나에 $500이면 상당히 비싼 칩이죠)를 이용하여 패킷 포워딩 기능을 구현(assembler 기반의 microcode)한 적이 있습니다. 그 때의 경험과 추억을 되살려 L3 스위치의 패킷 전달 로직에 대해 설명을 드려 볼까 합니다. 아래와 같은 순으로 연재를 하겠습니다. 1편: 라우터 구조 소개 (오늘 글) 2편: IP 라우터의 패킷 포워딩 과정 3편: L3 스위치의 L2(Ethernet) 스위칭 과정 4편: L3 스위치의 IP 포워딩 과정 라우터 구조 좌측 그림은 Cisco 7600 라우터 형상입니다. 그 역할에 따라 3가지 모듈로 나눌 수 있습.. 2014. 4. 16.
L3 Switch 구조에 대한 이해 (Understanding of the L3 Switch) 아래 글은 예전에 Netmanias Magazine에 기고했던 글의 일부로써, L3 Switch(예. Cisco 6500 series, Juniper MX series)의 구조에 대한 설명입니다. Protocol Reference Model 아래 그림은은 네트워크 장비의 기능을 크게 3개의 기능 블록으로 분리해 놓은 것이다. Control Plane: 네트워크 장비로 유입되는 패킷이 올바른 물리적 포트로 출력 될 수 있도록, 경로를 설정, 관리 및 해제하는 기능(Routing, Signaling)을 수행한다. Data Plane(User Plane): 수신된 패킷의 L2, L3 헤더 필드를 검사하여, Control Plane에서 의도 했던 출력 포트로 패킷을 송신하는 기능을 담당하며, 패킷 처리 과정에서.. 2014. 4. 16.
스위치 목차 1. 스위치 개요 2. 스위치의 주요 특징 2.1 Full duplex 2.2 Flow control 2.3 Static and Dynamic switching 2.4 Address resolution 2.5 Network 관리 3. Switching 방법 3.1 Cut-through switching (Cross-point switching) 3.2 Store-and-forward switching 3.3 Hybrid 4. Switch Architecture 4.1 RISC와 ASIC 4.2 Frame switching과 cell switching 4.3 Buffering 방법 4.4 Blocking과 Non-blocking 5. Summary 1. 스위치 개요 스위칭 기술은 네트워크의 스피드와 .. 2014. 4. 9.
L3 스위치 목차 1. Layer 3 Switch 개요 1.1 기존 라우터의 한계 1.2 Benefits 2. Layer 3 Switch의 주요 특징 2.1 Layer 3 Switch가 수행하는 주요 기능 2.2 Classical Router와 Layer 3 Switch의 비교 3. Basic Architecture model 4. Vendor들의 Layer 3 Switching 구현 4.1 IP Switching (Ipsilon)과 Cell Switch Router (Toshiba) 4.2 Fast IP (3Com) 4.3 Switched Virtual Networking and Multiprotocol Switched Services (IBM) 4.4 CiscoFusion과 Netflow Switching 4.5.. 2014. 4. 9.
라우터와 라우팅 목차 1. Router 개요 2. Router의 종류 2.1 Protocol Dependent Router 2.2 Multiprotocol Router 2.3 Protocol Independent Router 3. Routing 이란? 4. Routing Process 4.1 경로 선택 4.2 Switching 1. Router 개요 Router는 OSI 7 layer에서 Network Layer에 위치하는 장비이다. 고전적인 TCP/IP 관련 서적에서는 Gateway라고 한다. 이 명칭은 OSI 7 Layer 7계층에 위치하는 Gateway라는 개념과 혼돈스럽지만 일반적으로 TCP/IP 관련 서적에서 gateway는 이 Router를 지칭하는 것이다. Router는 네트워크 계층의 프로토콜 addres.. 2014. 4. 9.
P2P와 NAT: NAT 통과 기법 소개 (RFC 5128) - 1편: Relaying & Connection Reversal 오늘은 사설 IP 주소를 가지는 두 단말 간에 P2P 통신이 가능하도록 하는 기술(NAT Traversal이라 부름)에 대해 소개 해 드리겠습니다. RFC 5128(State of P2P Communication across NATs - Informational)에서 설명하고 있는 NAT Traversal 기술은 크게 3가지입니다. Relaying Connection Reversal UDP Hole Punching 이번 시간에는 Relaying과 Connection Reversal에 대해서 알아보고 다음 시간에 UDP Hole Punching에 대해서 설명 드리도록 하겠습니다. P2P (NAT Traversal) 입장에서 가장 곤혹스러운 NAT Behavior가 Address and Port-Depend.. 2014. 3. 31.