1 / 57

2 주차 . TCP/IP 패킷 분석

2 주차 . TCP/IP 패킷 분석. 수원과학대학 정보통신과. 2.1 PC 의 네트워크 설정 보기. 명령창 열기 : 시작  모든 프로그램  보조프로그램  명령프롬프트 또는 시작  실행 cmd ipconfig /all. 2.2 Wireshark 의 설치와 사용. wireshark 를 실행하여 인터페이스 보기 아이콘을 클릭한다. 인터페이스 리스트 보기 클릭. Wireshark – 인터페이스 고르기. 인터페이스 리스트에서 인터넷과 연결된 인터페이스를 고르시오.

Download Presentation

2 주차 . TCP/IP 패킷 분석

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2주차. TCP/IP 패킷 분석 수원과학대학 정보통신과

  2. 2.1PC의 네트워크 설정 보기 • 명령창 열기: 시작모든 프로그램보조프로그램명령프롬프트 또는 시작실행cmd • ipconfig /all

  3. 2.2 Wireshark의 설치와 사용 • wireshark를 실행하여 인터페이스 보기 아이콘을 클릭한다 인터페이스 리스트 보기 클릭

  4. Wireshark – 인터페이스 고르기 • 인터페이스 리스트에서 인터넷과 연결된 인터페이스를 고르시오. IPv6형식이면 클릭하여 IPv4형식으로 바꾼다. ①체크 ②클릭

  5. Wireshark – 캡쳐링 • 패킷이 적절히 수집되면 캡처를 중단한다. 캡처중지

  6. Wireshark – 캡쳐링 결과 분석 캡쳐된 패킷들의 개요화면으로 시간, 발신지와 목적지 정보, 프로토콜, 요약정보를 보여줌 위에서 선택한 패킷의 인캡슐레이션과 필드값들을 보여줌 위에서 선택한 패킷의 바이트 값을 보여줌

  7. 캡쳐링 인터페이스 선택 • 인터페이스 리스트에서 인터넷과 연결된 인터페이스를 고르고 옵션을 클릭한다. IPv6형식이면 클릭하여 IPv4형식으로 바꾼다. ①체크 ②클릭

  8. 옵션 창에서 인터페이스 고르기 ①더블클릭

  9. 캡쳐 필터 입력 ① host 자신의ip주소 를 입력한다. ②클릭 이렇게 필터를 넣으면 자신의 ip 주소가 들어간 패킷만 캡쳐해주게 된다.

  10. 캡쳐 시작 ①클릭

  11. 2.3 Ethernet (이더넷) • LAN에서 사용하는 가장 대표적인 네트워킹 방식 • 전세계 LAN의 95% 이상이 Ethernet • Ethernet의 가장 큰 특징 • CSMA/CD MAC(Medium Access Control) protocol 사용

  12. CSMA/CD • Carrier Sense Multiple Access / Collision Detection • Carrier Sense (캐리어 감지) • 통신을 하고자 하는 PC나 server 들은 네트워크 상에 통신이 일어나고 있는지 carrier를 감지 • Multiple Access (다중 접근) • Carrier가 감지되지 않을 때 PC나 server들이 연결된 매체를 통해 네트워크 상에 데이터를 실어 보는 것 • Collision Detection (충돌 감지) • 두 개 이상의 장비들이 동시에 데이터를 보내려다 서로 부딪치는 것 • Collision이 발생하면 데이터를 전송했던 PC들은 서로 랜덤(random)한 시간 동안 기다린 후 데이터 전송을 재시도 • 15번을 반복해서 시도했으나 계속 collision에 의해 데이터 전송에 실패할 경우 데이터 전송을 포기

  13. 2.3.2 이더넷 주소 • MAC (Media Access Control) address • Physical address(물리주소), hardware address 라고도 함 • 참고) IP address는 logical address 라고도 함 • Ethernet 상에서 각 장비의 NIC(Network Interface Card)들은 48bit(6 octet, octet: 8bits)의 고정된 주소를 보유함 • 표기법 • 00-60-97-8F-4F-86 • 00:60:97:8F:4F:86 • 0060.978F.4F86 • 48bits 중 앞 24bits는 제조자 코드, 뒤 24bits는 각 maker가 만든 NIC에 부여하는 일련번호임 • 제조자 코드는 OUI (Organizational Unique Identifier) code라고도 함 24bits 24bits 제조자 코드 일련번호

  14. Unicast / Broadcast / Multicast • 유니캐스트(unicast) 통신 • 일 대 일 통신 • 하나의 목적지 주소만을 적어서 특정한 PC에게 보내는 방식 • 브로드캐스트(broadcast) 통신 • 하나와 불특정한 다수와의 통신 • Broadcast domain에 있는 모든 PC에게 한번에 전달하는 방식 • Router는 broadcast packet을 전달하지 않으므로 router까지의 구간이 broadcast domain임 • 보통, 브로드캐스트 주소는 모든 비트가 “1”이다 • 이더넷의 Broadcast MAC address: FFFF.FFFF.FFFF • 멀티캐스트(multicast) 통신 • 하나와 특정한 다수(특정 그룹 멤버)와의 통신 • 라우터나 스위치가 multicast를 지원해야 함

  15. 2.3.3 이더넷 프레임 형식 • 이더넷 프레임 구조 2 46-1500 4 1 6 6 7 Source Address Preamble SFD Destination Address Type or Length Data FCS

  16. Preamble(101010…패턴의 7바이트) - 프레임 도착 알림, 타이밍 기능 제공 • SFD(Start frame delimiter) - 프레임 시작을 나타내는 비트열, 10101011 • DA(Destination address) - 목적지 주소 • SA(Source address) - 발신지 주소 • Type or Length – 이 필드의 값이 1518보다 작으면 데이터 필드의 길이를 의미하지만 1536보다 크면 이 프레임에 어떤 상위 계층 프로토콜의패킷이 실려 있는 지를 나타냄 • 0x0800 : IP, 0x0806: ARP • Data - 46~1500 바이트길이 • CRC - 오류 발견정보, CRC-32

  17. 2.3.4 Ethernet 표준 • 10Mbps Ethernet • 10Base5, 10Base2 - 동축 케이블 • 10Base-T – category 3 UTP cable, 2 pair • 10Base-FL (fiber-optic) – 광섬유 • 100Mbps Ethernet • 100Base-TX – category 5 UTP cable, 2 pair • 100Base-T4 – category 3 UTP cable, 4 pair • 100Base-FX - 광섬유(optical fiber) • 1Gbps Ethernet (1GbE) • 1000Base-SX, 1000Base-LX – 광섬유 • 1000Base-T - category 5E UTP cable, 4-pair • 1000Base-CX – STP • 10Gbps Ethernet (10GbE)

  18. 2.4 IP (Internet Protocol) • IP의 특징 • 신뢰성 없는 비연결성의 데이터그램 프로토콜 • 최선노력전달 (best-effort delivery) 서비스 제공 • 흐름제어나 오류제어 등과 같은 기능은 사용하지 않으면서 모든 패킷을 동등하게 최선의 노력을 다해 전송 • 오류 발생시 폐기, 재전송 없음  데이터 전송을 보장하지 않음 • 신뢰성이 필요하면 TCP와 같은 상위 계층 (전송층) 프로토콜을 사용하여 데이터 전송을 보장해야 함 • 데이터그램이 독립적으로 전달되므로 도착순서가 전송순서와 다를 수 있음  상위 계층 프로토콜 (TCP)이 해결해야 함

  19. 2.4.2 IP 헤더 형식 ( )안의 숫자는 비트수 기본헤더 20바이트 총 길이 20 ~ 65535 바이트 옵션헤더 0~40바이트

  20. IP 헤더의 각 필드의 기능 (1) • VER - 버전, IPv4의 경우는 0100 • HLEN - 헤더 길이, 4바이트 단위로 기록, 실제 헤더길이는 HLEN*4 • DS (differentiated services) – 원래는 TOS (type of service) 필드로 라우터에 특별한 처리를 요청할 목적으로 만들어졌지만 잘 사용되지 않다가, 최근 QoS (quality of service) 제공을 목적으로 데이터그램의 등급을 구별하기 위한 필드로 사용되고 있음 • Total Length - IP 데이터 그램 총 길이(헤더와 데이터 길이의 합), 데이터 길이는 총길이 – 헤더길이 (HLEN*4) 로 계산, 16비트이므로 IP 데이터그램은 최대 65536 바이트가 될 수 있음 • Identification, Flags, Fragmentation offset – 단편화 용 필드 • Time to live (TTL) - 데이터그램을 폐기하기 전에 전달될 수 있는 홉 수, 이 필드값은 라우터를 거칠때마다 1씩 감소, 0이되면 라우터가 이 패킷을 폐기함, 이 필드는 패킷이 무한정 네트워크상에서 돌아다니는 것을 막기 위함임. • 기본 TTL 값: Windows = 128, Linux = 64~255, Unix = 255

  21. IP 헤더의 각 필드의 기능 (2) • Protocol – IP를 이용하는 상위 계층 프로토콜 정의 • 1: ICMP, 2 : IGMP, 6: TCP, 17: UDP, 89 : OSPF • Header checksum • 헤더의 오류 검사를 위한 필드 • 라우터의 처리속도를 높이기 위해헤더만 오류 검사하고, 데이터의 오류검사는 안함  필요하면 상위계층에서! • Source IP address • 발신지 IP 주소 • Destination IP address • 목적지 IP 주소 • Option • 선택사항

  22. 2.4.3 IP 주소 형식 • 인터넷에서 접속하는 연결을 구분하기 위해 호스트들의 네트워크 인터페이스에 부여된 전세계적으로 유일한 주소 • IP 주소의 표현 • IPv4(IP version 4) 에서의 주소: 4 bytes 크기 • 예: 192.168.166.254 • IPv6(IP version 6)에서의 주소: 16 bytes 크기

  23. Classful Addressing • 초기의 IP 주소체계는 클래스형 체계이었으나 1990년대 중반 이후부터 비클래스형 체계가 도입됨 • 클래스형 IP 주소는 네트워크 부분(netid)과 호스트 부분(hostid)로 구성되어 있음 • Network: router를 거치지 않고 바로 받을 수 있는 하나의 broadcast domain을 가리킴 • Host: 각각의 PC나 장비 • IP 주소 할당의 기본 • 하나의 Network에 속한 host들의 IP 주소들은 network part에 해당하는 netid가 같아야 하고, host part에 해당하는 hostid가 서로 달라야 함 • 예) 하나의 Network에 할당된 IP 주소가 200.200.100.1 ~ 200.200.100.255 일 때 • netid: 200.200.100 • hostid: 1 ~ 255

  24. IP 주소의 클래스 • 하나의 IP 주소에서 netid와 hostid의 경계의 구분  Class로 식별 • IP 주소의 Class • A, B, C, D, E의 5개 class가 있음 • A, B, C – Unicast 용, D – Multicast 용, E - 연구용 첫번째 바이트 네번째 바이트 두번째 바이트 세번째 바이트 - 주소범위 - 클래스 A netid hostid 0.0.0.0 ~ 127.255.255.255 클래스 B netid hostid 128.0.0.0 ~ 191.255.255.255 192.0.0.0 ~ 223.255.255.255 netid hostid 클래스 C 224.0.0.0 ~ 239.255.255.255 클래스 D Multicast address 클래스 E Reserved 240.0.0.0 ~ 255.255.255.255

  25. 특수한 IP 주소들 • Network address • hostid의 모든 비트가 0 으로 (netid, 0)의 형식 • 예) 163.152.0.0  클래스 B 네트워크 주소 • Broadcast address • hostid의 모든 비트가 1인 주소 • 특정 네트워크의 모든 호스트로 브로드캐스팅 • 예) 163.152.255.255는 163.152.0.0에 속한 모든 호스트로 브로드캐스팅 • Loop back address • 127.X.X.X의 형식으로 127.0.0.1 이 보통 사용 • 자기자신을 가리키는 주소로써 시스템에 TCP/IP가 제대로 설치되고 작동되는지 테스트하기 위해 사용 • 사설 IP • 인터넷과 독립적인 사설망에서 TCP/IP를 사용할 경우 사용 • 클래스 A용 사설 IP: 10.0.0.0 ~ 10.255.255.255 • 클래스 B용 사설 IP: 172.16.0.0 ~ 172.31.255.255 • 클래스 C용 사설 IP: 192.168.0.0 ~ 192.168.255.255

  26. 디폴트 마스크 • Class 별 default mask (default subnet mask라고도 함) • 어떤 IP 주소로부터 네트워크 주소를 추출하는 마스크 • (IP 주소) bit AND (Default Mask) = Network Address • 슬래쉬 표기법 – 마스크를 간단히 표현하기 위해 슬래쉬(/) 후 1의 개수를 적는다

  27. Subnetting의 필요성 (1) • Subnet을 사용하지 않을 때 • Network 141.14.0.0의 host 수 = 65534개  너무 많다. • Broadcast domain이 너무 크다. • 실제 상황에서는 통신이 어려울 것임.

  28. 서브넷 마스크로 서브넷 찾기 • Subnetting을 사용할 때 • 서브넷을 안 쓸 때 네트워크 주소 추출 netid hostid netid 0 netid만 추출 hostid의 일부를 subnetid로 할당 • 서브넷을 쓸 때 netid subnetid hostid netid subnetid 0 네트워크 주소 추출 netid부터 subnetid까지 추출

  29. 서브넷 수와 호스트 수 계산 • 어떤 네트워크를 서브넷팅했을 때 • 사용가능한 서브넷 수 = 2subnetid 비트 수- 2 • Subnetid의 모든 비트가 0인 것(zero subnet)과 1인 것은 통상 사용하지 않음 • 서브넷 당 사용가능한 호스트 주소의 개수 = 2hostid 비트 수- 2 • Hostid의 모든 비트가 0인 것은 네트워크 주소용이고, 모든 비트가 1인 것은 브로드캐스트 주소용이므로 할당 불가 • 예: 클래스 B 네트워크에서 subnetid로 4비트, hostid로 12비트를 선택했을 때 • 사용가능한 서브넷의 개수 = 24- 2 = 14 • 서브넷 당 사용가능한 호스트 주소의 개수 = 212- 2 = 4094

  30. Subnet의 기본 • Subnet mask • Subnet address를 추출하기 위한 mask  subnetid까지 비트 1 • 서브넷을 쓸 때 원래의 hostid에서 subnetid로 몇 비트를 할 것인가는 해당 사이트를 담당하는 네트워크 관리자의 선택임 • 예) 클래스 B 네트워크에서 subnetid로 4비트, hostid로 12비트를 선택했을 때 • 클래스 B 디폴트 마스크 255.255.0.0 11111111 11111111 00000000 00000000 • 새로운 서브넷 마스크 11111111 11111111 1111 0000 00000000 255.255.240.0 240

  31. Subnet Mask • Subnet mask • Subnet address를 추출하기 위한 mask  subnetid까지 비트 1 • 원래의 hostid에서 subnetid로 몇 비트를 할 것인가는 해당 사이트를 담당하는 네트워크 관리자의 선택임 • 예) 클래스 B 네트워크에서 subnetid로 3비트, hostid로 13비트를 선택했을 때 • 사용가능한 서브넷의 개수 = 23-2 = 6 • subnetid의 모든 비트가 0(subnet zero)인 것과 모두 1인 것은 통상 사용하지 않음 • 서브넷 당 사용가능한 호스트 주소의 개수 = 213-2 = 8190 • 서브넷 주소와 브로드캐스트 주소는 호스트에게 줄 수 없음

  32. 2.5 ARP • 주소 변환 프로토콜 (ARP: address resolution protocol) • IP 주소를 MAC 주소로 변환, MAC 주소를 알아야 전송이 가능 • ARP operation 1.1.1.2 1.1.1.2 모두에게: IP주소 1.1.1.3의 호스트는 네 물리주소를 알려줘! 1.1.1.1 에게: 내 물리주소는 12:34:56:78:9A:BC 1.1.1.3 1.1.1.1 1.1.1.1 1.1.1.3 1.1.1.4 1.1.1.4

  33. ARP Packet 16 31 0 0 32 64

  34. ARP 패킷 형식 • HTYPE (hardware type) – LAN의 유형, 예로 이더넷의 경우는 1 • PTYPE (protocol type) – ARP를 사용하는 네트워크 프로토콜을 정의, 예로 IPv4의 경우는 0x0800 • HLEN (hardware length) – 물리주소의 길이, 이더넷의 경우는 6 • PLEN (protocol length) - 네트워크주소의 길이, IPv4의 경우는 4 • OPER (operation) – ARP 요청인 경우는 1, 응답인 경우는 2 • SHA (sender hardware address) – 송신 호스트의 물리주소 • SPA (sender protocol address) – 송신 호스트의 네트워크 주소 • THA (target hardware address) – 수신 호스트의 물리주소 • TPA (target protocol address) – 수신 호스트의 네트워크 주소

  35. Encapsulation of ARP Packet • ARP 패킷은 데이터링크층 프레임에 캡슐화(encapsulation)됨 • 이더넷 프레임의 type 필드: 전송되는 데이터가 ARP임을 나타냄 • 0x0806: ARP Destination Address Source Address Type 0x0806 ARP Packet FCS

  36. 2.6 ICMP • IP의 단점 • 여러가지 이유에 의해 패킷이 폐기되어도 발신지에게 그 사실을 통보할 수단을 보유하고 있지 않음 • 다른 라우터나 호스트의 상태를 파악하기 위한 방법 부재 • ICMP (internet control message protocol) • 위 2가지 단점을 보완하기 위한 IP의 보조프로토콜 • 네트워크층 프로토콜이나 IP 패킷에 캡슐화되어 전달됨 IP 헤더의 protocol 필드 값은 0x01 Destination Address Source Address Type 0x0800 IP Header ICMP Packet FCS

  37. ICMP 메시지 유형

  38. Type – ICMP 메시지 타입 Code –특정 메시지에 대한 세부 타입 Checksum –전체 메시지 내용에 대한 16비트 checksum ICMP 메시지 형식

  39. 2.6.1 ICMP 오류 보고 메시지 • ICMP 오류 보고의 특징 • 오류 메시지는 최초 송신지에게 전달된다. • 오류의 종류 • 목적지 도달 불가, 송신지 억제, 시간경과, 매개변수 문제, 재지정 • 오류가 보고되지 않는 경우 • ICMP 오류 메지지를 전달하는 데이터그램에 오류가 발생할 때 • 단편화된 첫번째 데이터그램이 아닌 데이터그램에 오류가 발생할 때 • 멀티캐스트 주소를 가진 데이터그램에 오류가 발생할 때 • 127.0.0.0이나 0.0.0.0과 같은 특별한 주소를 가진 데이터그램에 오류가 발생할 때 • 오류 메시지의 데이터 부분에는 원래 데이터그램의 IP 헤더와 데이터 중 처음 8바이트(TCP 나 UCP 포트번호가 포함된 TCP 헤더의 일부나 UDP 헤더)가 포함됨

  40. 목적지 도달 불가 (Desitnation Unreachable) 메시지 • 라우터나 호스트가 데이터그램을 라우팅하거나 배달할 수 없을 때 데이터그램을 폐기하고, 송신지 호스트에게 “ICMP Destination Unreachble”(목적지 도달 불가) 메시지를 보냄 • 코드 필드에 16개의 오류 코드를 기록하여 오류 원인을 표시함

  41. 발신지 억제 (Source Quench) 메시지 • 라우터나 호스트에서 처리할 수 있는 속도 이상의 데이터그램이 계속 유입되어 버퍼의 용량를 초과하게 되면 데이터그램이 폐기되는데 이때 이 메시지를 발신 호스트로 보낸다. • 이 메시지를 받은 발신 호스트는 발신 속도를 일시적으로 떨어뜨린 후 다시 서서히 올리는 데 이 메시지가 또 수신되면 다시 속도를 떨어뜨림으로써 흐름제어를 제공한다.

  42. 시간 초과 (Time Exceeded) 메시지 • 데이터그램이 라우터를 통과할 때마다 TTL 필드값이 1씩 줄어드는데 이 필드가 0이되면 라우터는 이 데이터그램을 폐기하고 폐기 내역을 송신 호스트에게 통보한다 (Code 필드값 = 0). • 또한 단편이 손실되어 재조립 시간이 타임 아웃되었을 경우도 이 메시지가 송신호스트에게 전달된다 (Code 필드값 = 1). • 시간초과 메시지를 이용한 대표적인 응용: traceroute (Windows: tracert)

  43. traceroute 목적지까지의 경로상에 위치한 라우터들의 주소를 알아낼 수 있다.

  44. 매개변수 문제 (Parameter Problem) 메시지 • 라우터나 호스트는 데이터그램의 IP 헤더 매개변수에 오류가 있을 경우 데이터그램을 폐기하고 parameter problem 메시지를 송신지로 보냄 • 포인터 필드값은 오류가 있는 위치를 가리킨다. • 코드 필드 • 0x00: 헤더의 필수 필드에 오류가 있다. • 0x11: 헤더의 옵션 필드에 오류가 있다.

  45. 2.6.2 ICMP 질의 메시지 • 네트워크 문제 진단 목적 • 질의 메시지의 종류

  46. 에코요청과 응답 (Echo Request and Reply) 메시지 • 원격 네트워크나 호스트에 도달할 수 있는지를 테스트 하기 위한 것. • ICMP 에코 요구(Type&Code:0x0800) 메시지를 받은 원격 라우터나 호스트는 ICMP 에코 응답(Type&Code:0x0000)을 사용하여 수신된 메시지의 내용을 그대로 송신지로 보내준다. • 전형적인 예: ping • 송신측은 identifier와 sequence number에 ping 메시지마다 서로 다른 값을 부여함으로써 각 ping에 대한 응답메시지를 구별한다.

  47. 2.7 UDP • 사용자데이터그램 프로토콜 (User Datagram Protocol, UDP) • 흐름 및 오류제어가 없는 비연결이고 신뢰성 없는 전송 프로토콜 • 최소한의 오버헤드를 가진 매우 간단한 프로토콜 • 작은 메시지를 송신하기를 원하고 신뢰성에 관하여 신경쓰지 않는 응용에 적합, 간단한 요청-응답 통신을 요구하는 프로세스에 적합 • 멀티미디어와 멀티캐스팅 응용에 적합

  48. 잘 알려진 UDP 포트번호

  49. UDP 패킷 형식 64 16 48 0 32 Source Port Number Destination Port Number Total Length Checksum Data 발신지 포트번호 수신지 포트번호 검사합 총길이

  50. 전송제어프로토콜(Transmission Control Protocol, TCP) 스트림 연결지향(stream connection-oriented)의 신뢰성 있는 전송 프로토콜, UDP에 비해서 복잡 잘 알려진 TCP 포트번호 2.8 TCP

More Related