집단지성프로그래밍 05. 최적화(kayak.ipynb) 김지은_20150522
실무로 배우는 시스템 성능...
-
Upload
jung-hyun-soo -
Category
Software
-
view
169 -
download
9
Transcript of 실무로 배우는 시스템 성능...
실무로배우는 시스템성능최적화
10부 . 네트워크모니터링 Part. 2
아꿈사스터디 - 정현수
UDP
❖ 특징
➢ 비연결 : 연결설정 / 종료과정이없다 .
➢ 비전송보장 : 데이터전달을보장하지않는다 . (비신뢰성 )
➢ 연결상태가존재하지않는다 .
➢ 오버헤드가적다 .
➢ TCP 에비해속도가빠르다 .
➢ DNS, IPTV, VoIP, TFTP, IP Tunneling 등에서활용된다 .
UDP❖ 헤더구조
➢ Source Port (16) : 송신호스트포트번호
➢ Destination Port (16) : 수신호스트포트번호
➢ Length (16) : UDP Header 를포함한 UDP Segment 전체크기
➢ Checksum (16) : 헤더와데이터부분의무결성을검증하기위한필드
UDP
❖ UDP 송수신버퍼설정
➢ OS 에설정된 <UDP 송수신버퍼크기 > 를초과하는데이터를전송하면제대로수신되지
않는다 .
➢ Linux(Ubuntu 16.04) 의 UDP 송수신버퍼확인
DNS❖ DNS (Domain Name System)
➢ “IP ” “ ” 주소 와 사람이이해하기쉽게기억할수있는이름 을상호변환해주는분산 데이터베이스시스템
➢ 일반적으로 UDP 포트 53 번사용
➢ DNS 헤더를포함한 DNS 메시지영역의길이가 512 Byte 를초과하거나 , Zone Transfer 과정에는 TCP 포트 53 번사용
❖ DNS 프로토콜
➢ 조회 / 질의 (Query)
➢ 응답 (Response)
FTP❖ FTP (File Transfer Protocol)
➢ 서버 - 클라이언트간파일을전송하기위한프로토콜
➢ 두개의네트워크연결을사용하여동작
■ TCP 21 번포트를사용하는명령연결 (FTP) 로서인증및제어에사용
■ 실제파일을전송할때만들어지는파일전송연결 (FTP-DATA)
❖ 파일전송용연결방식
➢ 능동모드 (Active Mode)
➢ 수동모드 (Passive Mode)
FTP
❖ Active 모드 vs. Passive 모드
네트워크데이터수집시고려사항
❖ < 최대패킷크기 > 는명시적으로지정한다 .
➢ 패킷의일부정보만수집해서는내용을정확히분석하기어려움
➢ MTU (Maximum Transmission Unit) : IP 패킷의최대크기
➢ MSS (Maximum segment Size) : TCP 에서전송할수있는최대애플리케이션데이터크기
❖ 서버에서데이터를수집하는경우 <호스트 > 와 <포트 > 는꼭지정한다 .
➢ 분석할대상을선정하여범위를줄여데이터를수집하기위함
❖ 유닉스와리눅스는 <root 계정 > 으로수집한다 .
➢ 네트워크데이터수집시 /dev 아래에있는네트워크디바이스에접근하기때문
네트워크데이터수집 ( 유닉스 / 리눅스 )
❖ tcpdump
➢ 주어진조건식 (expression) 을만족하는패킷들의헤더를출력해주는프로그램
➢ 사용법
# tcpdump [ 각종옵션들 ] [조건식 (expression)]
➢ 조건식 : 여러조건을사용할경우 <and, and not, or> 로조합가능
네트워크데이터수집 ( 유닉스 / 리눅스 ) : 계속
❖ tcpdump 옵션구분 옵션 설명
NIC -i [device] 수집할네트워크디바이스를지정
저장방법
-w [filename] 저장할파일명지정
-C [filesize] 수집된데이터를저장하는파일크기를 Byte 단위로지정-w 옵션에지정된파일명에 1, 2, 3 순으로순차번호가붇는다 .
-G [seconds] 지정한초단위만큼데이터를나눠여러파일에저장
-c [count] 제시된 count 만큼패킷수집후종료
-s [packetsize] 수집할패킷크기지정 (default : 68byte) 전체패킷으로정확한분석을위해충분히크게조절필요
네트워크데이터수집 ( 유닉스 / 리눅스 ) : 계속
❖ tcpdump 옵션구분 옵션 설명
출력방법
-n, -nn n : 호스트 IP 를서버명으로변경하지않음nn : 호스트 IP 와포트를모두서버명과포트명으로변경하지않음
-S TCP 시퀀스번호를절대번호로출력
-t 시간을출력하지않음
-tt, -ttt, -tttt, -ttttt
tt : 1970 년부터경과시간을소수점포함초단위시간으로출력ttt : 이전패킷과시간차를마이크로초단위로출력tttt : 시 , 분 , 초시간으로출력ttttt : 첫패킷이후경과시간을마이크로초단위로출력
-v, -vv, -vvv v 가추가될때마다출력되는패킷정보가증가
네트워크데이터수집 ( 유닉스 / 리눅스 ) : 계속
❖ tcpdump 필터항목 설명
[ dst | src ] host HOST <IP 주소 or 도메인명 > 을지정하여수집
[ dst | src ] port PORT < 포트번호 or 포트서비스명 > 을지정하여수집
[ dst | src | host ] ether EHOST <MAC 주소 > 를지정하여수집
[ dst | src ] net NET <IP 네트워크 > 를지정하여수집
[ less | greater ] LENGTH 지정된 LENGTH 보다작거나큰패킷만수집
protocol ip, tcp, udp 같이지정된프로토콜데이터수집
protocol[ index | index:size ] 프로토콜의상세조건을지정하여데이터수집
- index : 헤더시작부분을 0 으로하는바이트단위인덱스값- size : 인덱스를기준으로읽을바이트수
네트워크데이터수집 (윈도우 )
❖ Wireshark (https://www.wireshark.org/)
➢ 오픈소스패킷분석도구
➢ 앞서소개한 tcpdump 와기능적으로유사하지만그래픽환경이다 .
➢ GUI 환경이아닌터미널기반의 TShark 도제공된다 .
네트워크데이터수집 (윈도우 )
❖ Wireshark 를이용한데이터수집방법
1. Capture -> Options 선택
2. NIC 목록에서데이터수집할네트워크인터페이스선택
3. 네트워크필터설정 (tcpdump 의 expression 과비슷 )
4. 저장할파일명 , 경로지정
5. Start 버튼을클릭하여네트워크데이터수집시작
네트워크데이터수집 (윈도우 ) : 계속
❖ Wireshark 화면구성
패킷필터
수집된패킷목록
선택된패킷의 프로토콜정보
선택된패킷의Raw 데이터
네트워크데이터수집 (윈도우 ) : 계속
❖ 수집한데이터에서원하는데이터만필터링하는방법
and(&&), or(||), 괄호 (()) 를이용해복합적인필터사용가능
네트워크데이터수집 (윈도우 ) : 계속
❖ Follow TCP Stream
➢ 선택한 TCP 세션의패킷만필터링하여출력
네트워크데이터수집 (윈도우 ) : 계속
❖ 분석메뉴 (Statistic 탭 )
➢ Summary
■ 패킷파일에대한수집시간 , 용량 , 개수등용약정보출력
➢ Protocol Hierarchy
■ 무슨프로토콜을사용한패킷들이수집되었는지트리구조로출력
➢ Conversation, Endpoints
■ 수집된패킷이어떤호스트와얼마나통신하고있는지확인
■ Conversations 는두호스트간통신 , Endpoints 는연결된논리호스트
■ 시스템구성정보를모를경우시스템간어떤통신이이뤄지는지확인할때유용
➢ Packet Lengths
■ 패킷사이즈별분포출력
➢ IO Graphs
■ 데이터전송량그래프
➢ HTTP - Packet Counter, Requests
■ Packet Counter : 요청 / 응답비율확인
■ Requests : 도메인별요청목록 / 비율확인
네트워크데이터수집 (윈도우 ) : 계속
❖ 응답시간분석
➢ 네트워크시간 : Statistics -> TCP StreamGraph -> Round Trip Time (Delayed ACK 미설정시 )
■ 연결시간
■ 요청업로드시간
■ 응답다운로드시간
➢ 서버시간
➢ 클라이언트시간
네트워크데이터수집 (윈도우 ) : 계속
❖ 전문분석
➢ 원인파악을위한로그가없을경우수행
➢ 해당프로토콜정의를참고해전문을구성하는각필드값이정확한지확인필요
이때 Endian 을확인해바이트데이터를숫자로변환하여확인가능
➢ HTTP : 프로토콜헤더 , 일반본문이텍스트여서확인이쉬움
➢ 일반바이너리전문
■ 일반적으로전문이시작하는위치에 2~4 바이트정도의전문크기를기록
■ 기록된전문크기와실제전문크기가일치하는지비교하여분석을시작
네트워크데이터수집 (윈도우 ) : 계속
❖ 재전송분석
➢ 재전송여부확인 : “tcp.analysis.retransmission” 필터적용
➢ 재전송패킷구별
■ 원래의패킷전체재전송 : 재전송패킷은항상원래의 SEQ 번호와일치
네트워크데이터수집 (윈도우 ) : 계속
❖ 재전송분석
➢ 재전송패킷구별
■ Dup ACK 가발생한경우
네트워크데이터수집 (윈도우 ) : 계속❖ 성능분석
➢ 재전송발생여부및비율
■ 로컬네트워크 <= 0.01%
■ 원거리네트워크 <= 0.5%
➢ 네트워크 RTT
■ SYN 패킷주고받는시간 , 데이터패킷에대한 ACK 패킷도착시간간격으로유추
■ 네트워크및애플리케이션턴수를줄여성능개선
➢ 네트워크전송량
■ 전송량이많을경우압축 , 캐시등사용
➢ 클라이언트 / 서버 / 네트워크구간응답시간
■ 응답시간이큰구간구별
➢ 각프로토콜에특화된분석
➢ 실무로배우는시스템성능최적화 ( 권문수지음 , 위키북스 , 2016)
➢ tcpdump 사용설명서 (DASAN Networks, 2005)
➢ Wireshark User’s Guide : https://www.wireshark.org/docs/wsug_html_chunked/
➢ FTP Mode 이미지 : http://hoyatic.tistory.com/165
Reference