네트워크 기본

Preview:

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.

Recommended