SlideShare a Scribd company logo
1 of 9
Download to read offline
Part 2 APM │467
TCP 연결 과정
㈜엑셈 컨설팅본부/APM팀 홍 진환
개요
오늘날 데이터를 전송하는 방식 중, 가장 많이 사용하는 방식으로 네트워크를 사용하고 있다.
하지만 많은 양의 데이터를 네트워크를 통하여 전송하다 보면, 물리적 또는 논리적인 데이터 유
실이 발생하기 마련이다.
데이터 전송 시, 데이터 유실을 최소화 하기 위하여 현재 가장 대표적으로 사용중인 전송 프로토
콜 TCP 의 연결 확립 순서에 대해서 알아보도록 하자.
TCP(Transmission Control Protocol)에 대해서
TCP 는 네트워크 프로토콜의 국제표준기준 OSI 7 계층(Open System Interconnect)의 4 계층
(Transport) 속하며, 3 계층(Network)의 IP 프로토콜과 같이 사용되기 때문에, “TCP/IP” 라고도 불
린다.
TCP 의 사용의 가장 큰 목적은 컴퓨터에서 실행되는 프로그램 간 데이터 유실 없이 안정적으로
전송하는 것이다.
468│2013 기술백서 White Paper
TCP 헤더 구조
- TCP 헤더 구조 중, 연결 확립에 필요한 TCP Flag 구조에 대해서 알아보도록 하자
이름 설 명
URG(Urgent) 특정(긴급) 상황 시, 특정 데이터를 읽기 원하는 경우 사용
이름 설명
Source Port 송신 포트 번호
Destination Port 수신 포트 번호
Sequence Number TCP 세그먼트 안의 데이터 송신 바이트 위치
Acknowledgment Number 수신자의 다음 데이터 바이트 순서번호
Data Offset TCP 헤더의 길이
Reserved 예약되어 있는 필드
TCP Flags “아래 별도 테이블 참조”
Window 수신 측이 받을 수 있는 데이터 사이즈
Checksum TCP 헤더 데이터를 포함한 세그먼트 전체 계산 값
Urgent Position 긴급히 처리해야 하는 데이터 바이트 위치
TCP Options 연결이 구성되는 동안의 최대 세그먼트 크기 옵션
Part 2 APM │469
ACK(Acknowledgment) 요청에 대한 확인 응답 시 사용
PSH(Push) 네트워크에서 버퍼링 우회와 데이터 즉시 통과 시 사용
RST(Reset) TCP 연결 중 특이사항이 발생하여 강제 종료 시 사용
SYN(Synchronize) 클라이언트, 서버의 일련번호(동기화)를 확인 시 사용
FIN(Finish) TCP 연결 종료 시 사용
TCP 연결 확립 순서
TCP 통신 방식은 데이터의 안정성을 위하여 최초 연결 시, 클라이언트(Source)와 서버
(Destination)간 3 번의 과정을 수행한다. 이 과정을 “Three-Way Hand Shake”라 부른다
1. SYN [SYNchronous Idle]
- 클라이언트에서 서버 IP 로 TCP 통신이 가능한지 확인한다.
2. SYN [SYNchronous Idle] + ACK [ACKnowledgement]
- 서버에서 TCP 연결이 가능할 경우, 클라이언트로 통신이 가능하다는 응답을 보낸다.
[표-2] TCP Flag 구조 설명
470│2013 기술백서 White Paper
3. ACK [ACKnowledgement]
- 클라이언트에서 서버의 통신 가능을 응답을 확인하였으며, 데이터 전송을 시작하겠다고
서버에 알린다.
TCP 연결 종료 순서
TCP 연결을 종료 시, 연결과 순서와 마찬가지로 데이터의 안정성을 위하여 서버와 클라이언트간
FIN[Finish]를 통하여 안정적으로 종료하는 과정을 수행 합니다.
[그림-2] TCP 연결 순서
Part 2 APM │471
1. FIN[Finish] + ACK[ACKnowledgement]
- 클라이언트에서 서버로 연결을 종료한다는 메시지를 보낸다.
2. ACK[ACKnowledgement]
- 서버에서 FIN 에 대한 응답을 한 후, 전송할 데이터가 없는지 확인한다.
3. FIN[Finish] + ACK[ACKnowledgement]
- 전송할 데이터가 없는지 확인 후, 서버에서 클라이언트로 종료해도 좋다는 메시지를
보낸다.
472│2013 기술백서 White Paper
4. ACK[ACKnowledgement]
- 클라이언트에서 서버로 응답을 보내고 연결을 종료 한다.
[그림-3] TCP 연결 종료 순서
Part 2 APM │473
- 아래 화면은 TCP 연결/ 종료 순서를 전체로 나타낸 화면이다.
[그림-4] TCP 연결/종료 전체 순서
474│2013 기술백서 White Paper
결론
WAS, DB, Client 환경 모니터링 시 많은 이슈들이 발생하는데, 그 중 가장 확인하기 어려운 부분
이 바로 네트워크 부분이었던 것 같다. 물론 해당 서버 – 클라이언트 작업 수행에 대한 로그를 상
세하게 남긴다면 네트워크 관련 이슈에 큰 도움이 되지만, 상세 로그를 남기는 작업에 대한 부하
가 걸릴 수 있기 때문에 힘든 부분이 있다.
이에, 위와 같은 TCP Dump 를 생성하여 분석 리스트에 추가한다면, 조금 더 정확한 원인 이슈해
결 방안이 나올 수 있을 것이라 생각 한다.
-참조 페이지-
http://blog.daum.net/jty71/1564533
7http://joyfullife.egloos.com/334320
http://mohwaproject.tistory.com/97
http://4network.tistory.com/entry/TCPIP20100414
http://mindnet.tistory.com/83
http://ko.wikipedia.org/wiki/전송_제어_프로토콜
-TCP 덤프 테스트 프로그램-
Wireshark 1.10 (http://www.wireshark.org)
Part 2 APM │475

More Related Content

Viewers also liked

All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm엑셈
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle엑셈
 
Runtime Data Areas_Wh apm
Runtime Data Areas_Wh apmRuntime Data Areas_Wh apm
Runtime Data Areas_Wh apm엑셈
 
Class Loader_Wh apm
Class Loader_Wh apmClass Loader_Wh apm
Class Loader_Wh apm엑셈
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle엑셈
 
SQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracleSQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracle엑셈
 
Result Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracleResult Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracle엑셈
 
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm엑셈
 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm엑셈
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle엑셈
 
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracleWINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracle엑셈
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle엑셈
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle엑셈
 
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracleSQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle엑셈
 
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm엑셈
 
웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm엑셈
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle엑셈
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2Seok-joon Yun
 
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3Seok-joon Yun
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 

Viewers also liked (20)

All about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apmAll about JDBC Performance Tuning_Wh apm
All about JDBC Performance Tuning_Wh apm
 
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracleORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
ORACLE EXADATA HCC 압축방식 이해하기_Wh oracle
 
Runtime Data Areas_Wh apm
Runtime Data Areas_Wh apmRuntime Data Areas_Wh apm
Runtime Data Areas_Wh apm
 
Class Loader_Wh apm
Class Loader_Wh apmClass Loader_Wh apm
Class Loader_Wh apm
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
 
SQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracleSQL PlAN MANAGEMENT 활용_Wh oracle
SQL PlAN MANAGEMENT 활용_Wh oracle
 
Result Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracleResult Cache 동작원리 및 활용방안_Wh oracle
Result Cache 동작원리 및 활용방안_Wh oracle
 
IBM JVM GC_Wh apm
IBM JVM GC_Wh apmIBM JVM GC_Wh apm
IBM JVM GC_Wh apm
 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm
 
KEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracleKEEP BUFFER 활용 방안_Wh oracle
KEEP BUFFER 활용 방안_Wh oracle
 
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracleWINDOW FUNCTION의 이해와 활용방법_Wh oracle
WINDOW FUNCTION의 이해와 활용방법_Wh oracle
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
 
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracleSQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
SQL 튜닝에 Dictionary View 활용하기 Part2_Wh oracle
 
Hotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apmHotspot JVM GC_Wh apm
Hotspot JVM GC_Wh apm
 
웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm웹 서버의 기능 및 역할_Wh apm
웹 서버의 기능 및 역할_Wh apm
 
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
 
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
[2015-06-19] Oracle 성능 최적화 및 품질 고도화 2
 
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 

Similar to TCP 연결 과정_Wh apm

TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수Yeon Soo Kim
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?용민 박
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜greenday96
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링Hyunsoo Jung
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료choi kyumin
 
05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향Youngsun Lee
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDPssuser91b87c
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and ProtocolWonjun Hwang
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들ssuser7c5a40
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04Jinil Nam
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkInho Kang
 
Cross-Platfrom 기반 Agent 개발
 Cross-Platfrom 기반 Agent 개발 Cross-Platfrom 기반 Agent 개발
Cross-Platfrom 기반 Agent 개발ssuser2e5c461
 
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]Ch01 네트워크와+소켓+프로그래밍+[호환+모드]
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]지환 김
 
Network Project
Network ProjectNetwork Project
Network ProjectMinho Yoo
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktfDaehee Han
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관itian-f5
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 

Similar to TCP 연결 과정_Wh apm (20)

TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수TCP/IP 발표자료 - 김연수
TCP/IP 발표자료 - 김연수
 
[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?[네트워크] TCP, 믿을 수 있나요!?
[네트워크] TCP, 믿을 수 있나요!?
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜
 
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링실무로 배우는 시스템 성능 최적화   10부. 네트워크 모니터링
실무로 배우는 시스템 성능 최적화 10부. 네트워크 모니터링
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
 
05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향05 1 통신프로토콜과표준화-최근표준화협력방향
05 1 통신프로토콜과표준화-최근표준화협력방향
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
 
컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP컴퓨터공학 스터디 W4 발표: TCP/UDP
컴퓨터공학 스터디 W4 발표: TCP/UDP
 
Interface and Protocol
Interface and ProtocolInterface and Protocol
Interface and Protocol
 
TCP가 실패하는 상황들
TCP가 실패하는 상황들TCP가 실패하는 상황들
TCP가 실패하는 상황들
 
Cse342 chapter 04
Cse342 chapter 04Cse342 chapter 04
Cse342 chapter 04
 
네트워크 기본
네트워크 기본네트워크 기본
네트워크 기본
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center Network
 
Cross-Platfrom 기반 Agent 개발
 Cross-Platfrom 기반 Agent 개발 Cross-Platfrom 기반 Agent 개발
Cross-Platfrom 기반 Agent 개발
 
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]Ch01 네트워크와+소켓+프로그래밍+[호환+모드]
Ch01 네트워크와+소켓+프로그래밍+[호환+모드]
 
Network Project
Network ProjectNetwork Project
Network Project
 
한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf한대희 Web proxy_개발_2006년11월_pas_ktf
한대희 Web proxy_개발_2006년11월_pas_ktf
 
F5 spdy 솔루션 선관
F5 spdy 솔루션 선관F5 spdy 솔루션 선관
F5 spdy 솔루션 선관
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 

More from 엑셈

WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm엑셈
 
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracleTABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle엑셈
 
SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle엑셈
 
대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle엑셈
 
Commit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracleCommit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracle엑셈
 
BlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracleBlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracle엑셈
 
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracleBind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle엑셈
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter엑셈
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu엑셈
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study엑셈
 

More from 엑셈 (10)

WAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apmWAS의 동작과 WEB, Servlet, JSP_Wh apm
WAS의 동작과 WEB, Servlet, JSP_Wh apm
 
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracleTABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
TABLE ACCESS 패턴을 이용한 SQL 튜닝_Wh oracle
 
SSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracleSSD 개념 및 활용_Wh oracle
SSD 개념 및 활용_Wh oracle
 
대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle대량의 DML 작업에 대한 성능개선방안_Wh oracle
대량의 DML 작업에 대한 성능개선방안_Wh oracle
 
Commit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracleCommit Wait Class 대기시간 감소 방안_Wh oracle
Commit Wait Class 대기시간 감소 방안_Wh oracle
 
BlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracleBlOOM FILTER의 이해와 활용방법_Wh oracle
BlOOM FILTER의 이해와 활용방법_Wh oracle
 
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracleBind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle
Bind Peeking 한계에 따른 Adaptive Cursor Sharing 등장_Wh oracle
 
Oracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameterOracle Query Optimizer 관련 Parameter_OracleParameter
Oracle Query Optimizer 관련 Parameter_OracleParameter
 
System Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle eduSystem Capa Planning_DBA oracle edu
System Capa Planning_DBA oracle edu
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
 

TCP 연결 과정_Wh apm

  • 1. Part 2 APM │467 TCP 연결 과정 ㈜엑셈 컨설팅본부/APM팀 홍 진환 개요 오늘날 데이터를 전송하는 방식 중, 가장 많이 사용하는 방식으로 네트워크를 사용하고 있다. 하지만 많은 양의 데이터를 네트워크를 통하여 전송하다 보면, 물리적 또는 논리적인 데이터 유 실이 발생하기 마련이다. 데이터 전송 시, 데이터 유실을 최소화 하기 위하여 현재 가장 대표적으로 사용중인 전송 프로토 콜 TCP 의 연결 확립 순서에 대해서 알아보도록 하자. TCP(Transmission Control Protocol)에 대해서 TCP 는 네트워크 프로토콜의 국제표준기준 OSI 7 계층(Open System Interconnect)의 4 계층 (Transport) 속하며, 3 계층(Network)의 IP 프로토콜과 같이 사용되기 때문에, “TCP/IP” 라고도 불 린다. TCP 의 사용의 가장 큰 목적은 컴퓨터에서 실행되는 프로그램 간 데이터 유실 없이 안정적으로 전송하는 것이다.
  • 2. 468│2013 기술백서 White Paper TCP 헤더 구조 - TCP 헤더 구조 중, 연결 확립에 필요한 TCP Flag 구조에 대해서 알아보도록 하자 이름 설 명 URG(Urgent) 특정(긴급) 상황 시, 특정 데이터를 읽기 원하는 경우 사용 이름 설명 Source Port 송신 포트 번호 Destination Port 수신 포트 번호 Sequence Number TCP 세그먼트 안의 데이터 송신 바이트 위치 Acknowledgment Number 수신자의 다음 데이터 바이트 순서번호 Data Offset TCP 헤더의 길이 Reserved 예약되어 있는 필드 TCP Flags “아래 별도 테이블 참조” Window 수신 측이 받을 수 있는 데이터 사이즈 Checksum TCP 헤더 데이터를 포함한 세그먼트 전체 계산 값 Urgent Position 긴급히 처리해야 하는 데이터 바이트 위치 TCP Options 연결이 구성되는 동안의 최대 세그먼트 크기 옵션
  • 3. Part 2 APM │469 ACK(Acknowledgment) 요청에 대한 확인 응답 시 사용 PSH(Push) 네트워크에서 버퍼링 우회와 데이터 즉시 통과 시 사용 RST(Reset) TCP 연결 중 특이사항이 발생하여 강제 종료 시 사용 SYN(Synchronize) 클라이언트, 서버의 일련번호(동기화)를 확인 시 사용 FIN(Finish) TCP 연결 종료 시 사용 TCP 연결 확립 순서 TCP 통신 방식은 데이터의 안정성을 위하여 최초 연결 시, 클라이언트(Source)와 서버 (Destination)간 3 번의 과정을 수행한다. 이 과정을 “Three-Way Hand Shake”라 부른다 1. SYN [SYNchronous Idle] - 클라이언트에서 서버 IP 로 TCP 통신이 가능한지 확인한다. 2. SYN [SYNchronous Idle] + ACK [ACKnowledgement] - 서버에서 TCP 연결이 가능할 경우, 클라이언트로 통신이 가능하다는 응답을 보낸다. [표-2] TCP Flag 구조 설명
  • 4. 470│2013 기술백서 White Paper 3. ACK [ACKnowledgement] - 클라이언트에서 서버의 통신 가능을 응답을 확인하였으며, 데이터 전송을 시작하겠다고 서버에 알린다. TCP 연결 종료 순서 TCP 연결을 종료 시, 연결과 순서와 마찬가지로 데이터의 안정성을 위하여 서버와 클라이언트간 FIN[Finish]를 통하여 안정적으로 종료하는 과정을 수행 합니다. [그림-2] TCP 연결 순서
  • 5. Part 2 APM │471 1. FIN[Finish] + ACK[ACKnowledgement] - 클라이언트에서 서버로 연결을 종료한다는 메시지를 보낸다. 2. ACK[ACKnowledgement] - 서버에서 FIN 에 대한 응답을 한 후, 전송할 데이터가 없는지 확인한다. 3. FIN[Finish] + ACK[ACKnowledgement] - 전송할 데이터가 없는지 확인 후, 서버에서 클라이언트로 종료해도 좋다는 메시지를 보낸다.
  • 6. 472│2013 기술백서 White Paper 4. ACK[ACKnowledgement] - 클라이언트에서 서버로 응답을 보내고 연결을 종료 한다. [그림-3] TCP 연결 종료 순서
  • 7. Part 2 APM │473 - 아래 화면은 TCP 연결/ 종료 순서를 전체로 나타낸 화면이다. [그림-4] TCP 연결/종료 전체 순서
  • 8. 474│2013 기술백서 White Paper 결론 WAS, DB, Client 환경 모니터링 시 많은 이슈들이 발생하는데, 그 중 가장 확인하기 어려운 부분 이 바로 네트워크 부분이었던 것 같다. 물론 해당 서버 – 클라이언트 작업 수행에 대한 로그를 상 세하게 남긴다면 네트워크 관련 이슈에 큰 도움이 되지만, 상세 로그를 남기는 작업에 대한 부하 가 걸릴 수 있기 때문에 힘든 부분이 있다. 이에, 위와 같은 TCP Dump 를 생성하여 분석 리스트에 추가한다면, 조금 더 정확한 원인 이슈해 결 방안이 나올 수 있을 것이라 생각 한다. -참조 페이지- http://blog.daum.net/jty71/1564533 7http://joyfullife.egloos.com/334320 http://mohwaproject.tistory.com/97 http://4network.tistory.com/entry/TCPIP20100414 http://mindnet.tistory.com/83 http://ko.wikipedia.org/wiki/전송_제어_프로토콜 -TCP 덤프 테스트 프로그램- Wireshark 1.10 (http://www.wireshark.org)
  • 9. Part 2 APM │475