TCP

Mokwon Univ 2008. 8. 16. 15:09
TCP 동작
 
캡슐화와 역캡슐화 - Frame Header + Frame data (IP Header + IP data ( TCP Header + TCP data))
버퍼링 - TCP는 각 연결마다 송신 버퍼와 수신 버퍼를 만든다
다중화와 역다중화
푸싱 데이터 - 송신 TCP 데이터 저장위한 버퍼, 임의의 크기의 세그먼트를 만들 수 있다
                 - 수신 TCP 데이터 저장위한 버퍼, 응용프로그램이 수신할 준비가 되면 데이터를 응용프로그램에 전달
긴급 데이터 - 스트림방식의 프로토콜
                 - 송신 응용 프로그램으로부터 전송된 데이터의 일부분을 수신 응용 프로그램이 순서에 어긋나게 읽었으면 한다는 것
 
TCP 연결
 
연결 지향 프로토콜, 발신지와 목적지 간에 가상 경로를 설정
 
연결 설정 - 전이중 모드로 전송, 3단계 핸드세이크, 2와 3의 단계가 하나의 단계로 결합
 
   1. 호스트 A가 호스트 B에게 연결 설정위해 세그먼트를 전송 ( A로부터 B로의 트래픽에 대한 초기화 정보 포함)
   2. 호스트 B가 A의 요구를 확인 응답(승인)하기 위한 세그먼트를 전송
   3. 호스트 B는 B로부터 A로 향하는 트래픽에 대한 초기화 정보를 포함하는 세그먼트를 전송
   4. 호스트 A는 B의 요구를 확인 응답(승인)하기 위한 세그먼트를 전송
 
->   1. Segment 1: SYN  seq:1200, ack:-   (발신지와 목적지 포트 번호)
<-   2. Segment 2: SYN + ACK  seq:4800, ack:1201   (첫번째 세그먼트수신을 확인, 서버의 초기 세그먼트로서 사용)
->   3. Segment 3: ACK seq:1201, ack:4801
 
 
연결 종료 - 양방향 연결이라 한 방향의 연결이 종료되더라도 다른 시스템은 다른 방향을 통하여 데이터 전송 가능
                 4단계 핸드세이크
 
   1. 호스트 A는 연결을 종료하고자 하는 세그먼트를 전송
   2. 호스트 B는 A의요구를 확인 응답(승인)하는 세그먼트 전송. 이때 호스트 B는 A로 데이터 전송 가능
   3. 호스트 B가 자신의 데이터 전송을 완료하면, B는 자신이 연결을 해지하고자 한다는 세그먼트를 전송
   4. 호스트 A는 B의 요구를 확인 응답(승인)
 
->   1. Segment 1: FIN  seq:2500, ack:-  
<-   2. Segment 2: ACK  seq:7000, ack:2501 (+1 확인응답번호)
<-   3. Segment 3: FIN seq:7001, ack:2501
->   4. Segment 4: ACK seq:2501, ack:7002 (+1 확인응답번호)
 
 
연결 리셋 (RST 세그먼트 전송)
   1. 한 쪽의 TCP가 존재하지 않은 포트로 연결요구
   2. 한 TCP는 비 정상적인 상황으로 인하여 연결 중단 요구
   3. 한 쪽의 TCP는 다른 편의 TCP가 긴 시간동안 휴지 상태에 있다는 것을 확인한 후 연결 중단 요구
Posted by 용학도리
,