2018년 6월 15일 금요일

TCP(Transmission Control Protocol) 동작원리


TCP는 End-to-End 호스트 내 프로세스 상호간에 논리적인 회선의 신뢰성 있는 연결지향 서비스를 제공합니다.


1. TCP 동작원리


1) 연결설정





TCP 연결 설정하기 위해서는 3-handshake 과정을 거칩니다. 클라이언트와 서버간 3번 연결설정 신호를 주고받기 때문에 3-handshake라 말합니다.

주고받는 번호(ISN, Initial sequence numbers)는 랜덤하게 생성됩니다. 클라이언트에서 서버쪽으로 ISN을 생성하여 전송하면, 서버는 ISN을 "1" 증가시키고, 랜덤하게 생성된 ACK신호를 같이 클라이언트측으로 전송합니다. 클라이언트는 다시 ACK신호를 "1" 증가시키며 서버측으로 전송하여 ACK를 수신했음을 응답합니다.

2) 연결종료





연결종료는 연결설정보다 1번 더 패킷교환(연결종료 + ACK)을 합니다. 총 4번의 패킷 교환으로 회선연결 종료합니다.


2. 논리적인 회선 서비스


각각의 세그먼트에 TCP헤더를 붙이고 이들을 순서 제어합니다.


3. 신뢰성 제공


1) 흐름제어(Flow Control)


TCP에서는 흐름제어를 위해 슬라이딩 윈도우 프로토콜 사용합니다.

2) 혼잡제어(Congestion Control)


TCP에서는 혼잡제어를 위해 슬로우 스타트, 혼잡회피 알고리즘 사용합니다.

3) 체크섬, 순서번호(확인응답 메시지), Timer


체크섬, 순서번호(ISN), Timer는 패킷 손실, 중복, 순서바뀜 등이 없도록 보장하기 위해 사용됩니다.


댓글 없음:

댓글 쓰기