네트워크 기본

45
네트워크 기본 NHN Entertainment 장재완 2015. 9. 22.

Upload: toastnhnent

Post on 16-Apr-2017

1.693 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 네트워크 기본

네트워크 기본

NHN Entertainment

장재완

2015. 9. 22.

Page 2: 네트워크 기본

목차

1. 네트워크 성능 지표

2. TCP/IP

3. 모바일 네트워크

4. 네트워크 성능 측정법

5. 패킷 캡쳐

Page 3: 네트워크 기본

1. 네트워크 성능 지표

Page 4: 네트워크 기본

4

빠르다=속도(速度)

네트워크 성능 지표

Page 5: 네트워크 기본

5

• 대역폭

• 시간당 전송량

• Bandwidth, 대역폭, throughput 등등 = 모두 같은 말

• 프로그램 다운로드 시간이나 큰 이미지 다운로드 시간에 영향

• 지연시간

• 한 쪽에서 다른 쪽까지 가는 데 걸리는 절대적인 시간

• Latency, RTT (=latency x 2)

• 게임 플레이, 메신져, VoIP 품질에 영향

네트워크 성능 지표

Page 6: 네트워크 기본

2. TCP/IP

Page 7: 네트워크 기본

7

1. Packetization

2. Reliable communication

3. 3-way handshake

4. Congestion control

TCP/IP 기본

Page 8: 네트워크 기본

8

write() – 4000 bytes

TCP

Payload

HD

R

Payload

HD

R

Payload

HD

R

1000B 1500B 1500B

Packetization

Page 9: 네트워크 기본

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

Page 10: 네트워크 기본

10

Reliable communication = 순서대로, 패킷 손실 없이

Acknowledgement packet

보낸 패킷이 제대로 도착했다면, ACK 패킷이 영수증처럼 도착

ACK 패킷이 도착해야, 데이터 전송이 정상적으로 완료

Timeout & Retransmission

ACK 패킷이 도착하지 않으면 다시 보내고, ACK 패킷이 오기를 대기

TCP/IP

Page 11: 네트워크 기본

11

Time-out

OK OK

OK

Segment 3 corrupted

Sender Receiver

Corrupted segment

Page 12: 네트워크 기본

12

Time-out

OK OK

OK

Segment 3 Lost

Sender Receiver

Lost segment

Page 13: 네트워크 기본

13

OK OK OK

Acknowledgment lost

Sender Receiver

Lost acknowledgment

Page 14: 네트워크 기본

14

Sender Receiver

TCP connection : 3 way handshake

Page 15: 네트워크 기본

15

HTTP 동작

Sender Receiver

Page 16: 네트워크 기본

16

Sender Receiver

45KB 다운로드

???? 1.5KB 패킷 30여개

Page 17: 네트워크 기본

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

패킷 전송 모식도

Page 18: 네트워크 기본

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

패킷 전송 모식도

Page 19: 네트워크 기본

19

혼잡제어 (congestion control) 역사

1986년, 네트워크 상황을 모른 채로 무작정 패킷을 보내다 보니 네트워크 전체

가 마비 (32kbit/s 40 bit/s)

반 제이콥슨이 혼잡 제어 구현 후에 해결

Slow start

통신이 시작되면 패킷을 먼저 2개만 보냄

그 패킷에 대한 ACK을 받으면 4개를 보냄

패킷이 제대로 도착할 때 마다 2배씩 패킷을 더 보내게 됨

패킷 유실 (drop) 이 생길 때까지 반복

TCP 혼잡제어

Page 20: 네트워크 기본

20

Receiver

Sender

3WHS Server

processing time

RTT RTT RTT

3KB 9K 21K

6KB 12KB 3KB

TCP Slow start (1/2)

Page 21: 네트워크 기본

21

Receiver

Sender

RTT

TCP Slow start (2/2)

파이프가 가득 차서 대역폭을 충분히 쓰는 상태 (RTT x 6 정도의 시간이 필요했음)

Page 22: 네트워크 기본

22

http://vimeo.com/14658632 http://vimeo.com/14439742

TCP Slow start visualization

Page 23: 네트워크 기본

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

• 웹 페이지 이미지

• 게임 패치

작은 파일 여러 개

(수십개에서 수백개)

Page 24: 네트워크 기본

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 발생

Page 25: 네트워크 기본

25

최적? 더 좋은 방법은?

Sender Receiver

3 way handshake

HTTP GET A.html

200 OK

HTTP GET B.jpg

200 OK

HTTP GET C.jpg

200 OK

Page 26: 네트워크 기본

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 패턴

Page 27: 네트워크 기본

4. 모바일 네트워크

Page 28: 네트워크 기본

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 네트워크 구조

Page 29: 네트워크 기본

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주 동향

Page 30: 네트워크 기본

30

• 3G (HSPA)

• 100 ms

• LTE

• 40 ms

• 가장 안정적이다. 사업자가 3개에 불과함.

• WiFi

• 10~20 ms

• 느린 사용자도 많이 존재. 인터넷 회선의 품질에 비례.

• 유선망

• 1 ~ 20ms

Latency (RTT)

출처: 벤치비 2015. 9. 10, 10주 동향

Page 31: 네트워크 기본

31

Promotion delay

단말은 데이터 통신이 없을 경우 무선 신호를 잠시 꺼둔다.

• 다른 단말들과 한정된 무선 자원을 나눠서 쓰기 때문

• 단말 자체의 배터리 소모를 줄임

Promotion delay = 끊어진 무선신호를 다시 잡아서 실제 통신이 이루어질 때까지 필요

한 시간

• 3G는 대략 2~3초 정도, LTE는 1초 미만

Page 32: 네트워크 기본

32

* 통신은 한번에 몰아서

* 데이터 양은 최대한 적게

효율적인 모바일 네트워크 통신을 위해서는...

Page 33: 네트워크 기본

5. 네트워크 성능 측정

Page 34: 네트워크 기본

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

Page 35: 네트워크 기본

35

네트워크 성능 측정

Bandwidth

※ 출처 : http://www.caida.org/tools/taxonomy/performance.xml

Page 36: 네트워크 기본

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 측정 예시

Page 37: 네트워크 기본

6. 패킷 캡쳐

Page 38: 네트워크 기본

38

• 왜 하나?

• 접속이 안 되는데, 어디가 문제일까?

• 우리는 요청 패킷을 보냈는데, 반응이 없다. 어디가 문제일까?

• 네트워크 문제를 분석해보고 싶은데, 실 서버에 접근할 수가 없다.

• 캡처는 어디서 하나?

• 서버가 있는 곳에서 직접

• 스위치에서 패킷 미러링

• 캡쳐 도구

• TCPDUMP

• TSHARK

• WIRESHARK – GUI !!

패킷 캡쳐

Page 39: 네트워크 기본

39

• Capture ⇒ Interfaces ⇒ Options ⇒ Capture Filters

WIRESHARK

패킷 캡쳐하기

※ 참고 : http://wiki.wireshark.org/CaptureFilters

2. 패킷 캡쳐 Filter 설정

3. 패킷 캡쳐 시작

1. 패킷을 캡쳐할 인터페이스 지정

Page 40: 네트워크 기본

40

WIRESHARK

패킷 캡쳐 결과

Display Filter 설정

캡쳐된 패킷 리스트

선택된 패킷의 헤더 정보

선택된 패킷의 컨텐츠 정보 (Hexadecimal과 ASCII)

※ Display Filter 참고 : http://www.wireshark.org/docs/dfref/h/http.html

Page 41: 네트워크 기본

41

WIRESHARK

Display Filter

※ 참고 : http://wiki.wireshark.org/DisplayFilters

• http.response.code==200 • tcp.flags.syn==1 &&

tcp.flags.ack==0

예 시

Page 42: 네트워크 기본

42

해당 Stream에 해당하는 내용만 필터링해서 보여줍니다.

WIRESHARK

Follow TCP Stream

Page 43: 네트워크 기본

43

Conversations

WIRESHARK

Statistics

Page 44: 네트워크 기본

44

Flow Graph

WIRESHARK

Statistics

Page 45: 네트워크 기본

Thank you.