대메뉴 바로가기 본문 바로가기

데이터 기술 자료

데이터 기술 자료 상세보기
제목 TCP 연결 과정
등록일 조회수 7601
첨부파일  

TCP 연결 과정



㈜엑셈 컨설팅본부 /APM팀 홍 진환

개요

오늘날 데이터를 전송하는 방식 중 , 가장 많이 사용하는 방식으로 네트워크를 사용하고 있다 . 하지만 많은 양의 데이터를 네트워크를 통하여 전송하다 보면 , 물리적 또는 논리적인 데이터 유 실이 발생하기 마련이다 . 데이터 전송 시 , 데이터 유실을 최소화 하기 위하여 현재 가장 대표적으로 사용중인 전송 프로토 콜 TCP 의 연결 확립 순서에 대해서 알아보도록 하자 .


TCP(Transmission Control Protocol)에 대해서

TCP 는 네트워크 프로토콜의 국제표준기준 OSI 7 계층 ( Open System Interconnect ) 의 4 계층 (Transport) 속하며 , 3 계층 (Network) 의 IP 프로토콜과 같이 사용되기 때문에 , “ TCP/IP ” 라고도 불 린다 .

TCP 의 사용의 가장 큰 목적은 컴퓨터에서 실행되는 프로그램 간 데이터 유실 없이 안정적으로 전송하는 것이다 .



TCP 헤더 구조



- TCP 헤더 구조 중 , 연결 확립에 필요한 TCP Flag 구조에 대해서 알아보도록 하자



TCP 연결 확립 순서

TCP 통신 방식은 데이터의 안정성을 위하여 최초 연 결 시 , 클라이언트 (Source) 와 서버 (Destination) 간 3 번의 과정을 수행한다 . 이 과정을 “ Three - Way Hand Shake ” 라 부른다


SYN [SYNchronous Idle]

- 클라이언트에서 서버 IP로 TCP 통신이 가능한지 확인한다.



SYN [SYNchronous Idle] + ACK [ACKnowledgement]

- 서버에서 TCP연결이 가능할 경우, 클라이언트로 통신이 가능하다는 응답을 보낸다.



ACK [ACKnowledgement]

- 클라이언트에서 서버의 통신 가능을 응답을 확인하였으며, 데이터 전송을 시작하겠다고 서버에 알린다.



TCP 연결 종료 순서

TCP 연결을 종료 시 , 연결과 순서와 마찬가지로 데이터의 안정성을 위하여 서버와 클라이언트간 FIN[Finish] 를 통하여 안정적으로 종료하는 과정을 수행 합니다 .


FIN[Finish] + ACK[ACKnowledgement]

- 클라이언트에서 서버로 연결을 종료한다는 메시지를 보낸다.



ACK[ACKnowledgement]

- 서버에서 FIN 에 대한 응답을 한 후 , 전송할 데이터가 없는지 확인한다 .



FIN[Finish] + ACK[ACKnowledgement]

- 전송할 데이터가 없는지 확인 후, 서버에서 클라이언트로 종료해도 좋다는 메시지를 보낸다.



ACK[ACKnowledgement]

- 클라이언트에서 서버로 응답을 보내고 연결을 종료 한다 .



- 아래 화면은 TCP 연결 / 종료 순서를 전체로 나타낸 화면이다 .



결론

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/wi ki/ 전송 _ 제어 _ 프로토콜
- TCP 덤프 테스트 프로그램 -
Wireshark 1.10 (http://www.wireshark.org)



출처 : (주)엑셈

제공 : DB포탈사이트 DBguide.net