Upload
toastnhnent
View
1.693
Download
0
Embed Size (px)
Citation preview
네트워크 기본
NHN Entertainment
장재완
2015. 9. 22.
목차
1. 네트워크 성능 지표
2. TCP/IP
3. 모바일 네트워크
4. 네트워크 성능 측정법
5. 패킷 캡쳐
1. 네트워크 성능 지표
4
빠르다=속도(速度)
네트워크 성능 지표
5
• 대역폭
• 시간당 전송량
• Bandwidth, 대역폭, throughput 등등 = 모두 같은 말
• 프로그램 다운로드 시간이나 큰 이미지 다운로드 시간에 영향
• 지연시간
• 한 쪽에서 다른 쪽까지 가는 데 걸리는 절대적인 시간
• Latency, RTT (=latency x 2)
• 게임 플레이, 메신져, VoIP 품질에 영향
네트워크 성능 지표
2. TCP/IP
7
1. Packetization
2. Reliable communication
3. 3-way handshake
4. Congestion control
TCP/IP 기본
8
write() – 4000 bytes
TCP
Payload
HD
R
Payload
HD
R
Payload
HD
R
1000B 1500B 1500B
Packetization
9
Internet = Packet switch network
access net
access net
access net
access net
access net
access net
access net
access net
access net
access net
access net
access net
access net
access net access
net
access net
ISP B
ISP A
ISP C
IXP
IXP
10
Reliable communication = 순서대로, 패킷 손실 없이
Acknowledgement packet
보낸 패킷이 제대로 도착했다면, ACK 패킷이 영수증처럼 도착
ACK 패킷이 도착해야, 데이터 전송이 정상적으로 완료
Timeout & Retransmission
ACK 패킷이 도착하지 않으면 다시 보내고, ACK 패킷이 오기를 대기
TCP/IP
11
Time-out
OK OK
OK
Segment 3 corrupted
Sender Receiver
Corrupted segment
12
Time-out
OK OK
OK
Segment 3 Lost
Sender Receiver
Lost segment
13
OK OK OK
Acknowledgment lost
Sender Receiver
Lost acknowledgment
14
Sender Receiver
TCP connection : 3 way handshake
15
HTTP 동작
Sender Receiver
16
Sender Receiver
45KB 다운로드
???? 1.5KB 패킷 30여개
17
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3
5000
15000
10000
20000
25000
30000
35000
40000
45000
시간 (초)
TCP s
equence n
um
ber
패킷 전송 모식도
18
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3
5000
15000
10000
20000
25000
30000
35000
40000
45000
시간 (초)
TCP s
equence n
um
ber
패킷 전송 모식도
19
혼잡제어 (congestion control) 역사
1986년, 네트워크 상황을 모른 채로 무작정 패킷을 보내다 보니 네트워크 전체
가 마비 (32kbit/s 40 bit/s)
반 제이콥슨이 혼잡 제어 구현 후에 해결
Slow start
통신이 시작되면 패킷을 먼저 2개만 보냄
그 패킷에 대한 ACK을 받으면 4개를 보냄
패킷이 제대로 도착할 때 마다 2배씩 패킷을 더 보내게 됨
패킷 유실 (drop) 이 생길 때까지 반복
TCP 혼잡제어
20
Receiver
Sender
3WHS Server
processing time
RTT RTT RTT
3KB 9K 21K
6KB 12KB 3KB
TCP Slow start (1/2)
21
Receiver
Sender
RTT
TCP Slow start (2/2)
파이프가 가득 차서 대역폭을 충분히 쓰는 상태 (RTT x 6 정도의 시간이 필요했음)
22
http://vimeo.com/14658632 http://vimeo.com/14439742
TCP Slow start visualization
23
HTTP 동작
Sender Receiver
3 way handshake
HTTP GET A.html
200 OK
Connection close
3 way handshake
HTTP GET B.jpg
200 OK
Connection close
• 웹 페이지 이미지
• 게임 패치
작은 파일 여러 개
(수십개에서 수백개)
24
HTTP 동작
Sender Receiver
3 way handshake
HTTP GET A.html
200 OK
Connection close
3 way handshake
HTTP GET B.jpg
200 OK
Connection close
HTTP keepalive 사용! 같은 TCP 연결로 여러 개의 파일을 GET 가능 Connection 만드는 시간 절약 Slow start 회피
Slow start 발생
Slow start 발생
25
최적? 더 좋은 방법은?
Sender Receiver
3 way handshake
HTTP GET A.html
200 OK
HTTP GET B.jpg
200 OK
HTTP GET C.jpg
200 OK
26
최적의 방법 : 묶어서 한번에
Sender Receiver
3 way hand shake
HTTP GET A.html
200 OK
HTTP GET B.jpg
200 OK
HTTP GET C.jpg
200 OK
Sender Receiver
3 way hand shake
HTTP GET A+B+C.zip
200 OK
파일 크기가 작다면, ping-pong 패턴
4. 모바일 네트워크
28
UE (User equipment)
node B
node B
node B
RNC (Radio Network Controller)
SGSN
GGSN
UTRAN
Core Network
Internet
(UMTS Terrestrial Radio Access Network)
10.1.2.5 거대한
인터넷 공유기
3G/LTE 네트워크 구조
29
• 3G (HSPA)
• Download 13.976 Mbps, Upload 5.76 Mbps
• 현실 : Down 3 Mbps, Upload 0.8 Mbps
• LTE
• Download 100+ Mbps, Upload 50M+ Mbps
• 현실 : Down 40 Mbps, Upload 12.2 Mbps
• WiFi
• 현실 : Down 30 Mbps, Upload 27 Mbps
Bandwidth
출처: 벤치비 2015.9.10, 10주 동향
30
• 3G (HSPA)
• 100 ms
• LTE
• 40 ms
• 가장 안정적이다. 사업자가 3개에 불과함.
• WiFi
• 10~20 ms
• 느린 사용자도 많이 존재. 인터넷 회선의 품질에 비례.
• 유선망
• 1 ~ 20ms
Latency (RTT)
출처: 벤치비 2015. 9. 10, 10주 동향
31
Promotion delay
단말은 데이터 통신이 없을 경우 무선 신호를 잠시 꺼둔다.
• 다른 단말들과 한정된 무선 자원을 나눠서 쓰기 때문
• 단말 자체의 배터리 소모를 줄임
Promotion delay = 끊어진 무선신호를 다시 잡아서 실제 통신이 이루어질 때까지 필요
한 시간
• 3G는 대략 2~3초 정도, LTE는 1초 미만
32
* 통신은 한번에 몰아서
* 데이터 양은 최대한 적게
효율적인 모바일 네트워크 통신을 위해서는...
5. 네트워크 성능 측정
34
• Latency - Ping
네트워크 성능 측정
※ MS Windows에서는 Ping 명령어의 파라메터가 다릅니다. ※ Ping은 ICMP 포트가 열려있어야 측정이 가능합니다.
서버 kornet.net
클라이언트
RTT(Round-Trip Time)
$ ping -i 1 -c 3 -s 100 kornet.net
PING kornet.net (211.48.62.132): 100 data bytes 108 bytes from 211.48.62.132: icmp_seq=0 ttl=118 time=6.977 ms 108 bytes from 211.48.62.132: icmp_seq=1 ttl=118 time=6.910 ms 108 bytes from 211.48.62.132: icmp_seq=2 ttl=118 time=7.718 ms --- kornet.net ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.910/7.202/7.718/0.366 ms
Interval Count PacketSize
Request→
←Response
35
네트워크 성능 측정
Bandwidth
※ 출처 : http://www.caida.org/tools/taxonomy/performance.xml
36
• Bandwidth - iperf
네트워크 성능 측정
$ iperf –c 10.77.25.183 –p 6000 –t 20 $ iperf –s –p 6000
서버 10.77.25.183
클라이언트 Bandwidth
파라메터 의미
-c <IP> -s
클라이언트 모드로 동작하며 <IP>에 접속. 서버 모드로 동작.
-p 6000 Listen/Connect할 포트 번호를 지정
-r Up/Down 모두 Bandwidth를 측정.
-t 20 테스트 Duration(초)
※ 이 유틸리티는 Client - Server 모델로 동작합니다.
Upload Bandwidth 측정 예시
6. 패킷 캡쳐
38
• 왜 하나?
• 접속이 안 되는데, 어디가 문제일까?
• 우리는 요청 패킷을 보냈는데, 반응이 없다. 어디가 문제일까?
• 네트워크 문제를 분석해보고 싶은데, 실 서버에 접근할 수가 없다.
• 캡처는 어디서 하나?
• 서버가 있는 곳에서 직접
• 스위치에서 패킷 미러링
• 캡쳐 도구
• TCPDUMP
• TSHARK
• WIRESHARK – GUI !!
패킷 캡쳐
39
• Capture ⇒ Interfaces ⇒ Options ⇒ Capture Filters
WIRESHARK
패킷 캡쳐하기
※ 참고 : http://wiki.wireshark.org/CaptureFilters
2. 패킷 캡쳐 Filter 설정
3. 패킷 캡쳐 시작
1. 패킷을 캡쳐할 인터페이스 지정
40
WIRESHARK
패킷 캡쳐 결과
Display Filter 설정
캡쳐된 패킷 리스트
선택된 패킷의 헤더 정보
선택된 패킷의 컨텐츠 정보 (Hexadecimal과 ASCII)
※ Display Filter 참고 : http://www.wireshark.org/docs/dfref/h/http.html
41
WIRESHARK
Display Filter
※ 참고 : http://wiki.wireshark.org/DisplayFilters
• http.response.code==200 • tcp.flags.syn==1 &&
tcp.flags.ack==0
예 시
42
해당 Stream에 해당하는 내용만 필터링해서 보여줍니다.
WIRESHARK
Follow TCP Stream
43
Conversations
WIRESHARK
Statistics
44
Flow Graph
WIRESHARK
Statistics
Thank you.