IT/통신,네트워크

TCP/IP 사상처리도, 동작 원리 (2006-04-20)

야생화정보마당 2021. 7. 18. 10:06
728x90
반응형

 

 

이 그림은 서버에서 netstat -an을 했을때 나오는 상태 변화를 그린 TCP 천이도 입니다..

 

 

1. 서버의 상태는 처음 Listen 입니다..: 뭐가 들어오나 듣고 있는거져..

   (즉 수동적으로 포트를 Open 하고 포트에 귀 기울이고 있는 상태)

 

2. 클라이 언트가 syn_sent 즉, tcp 3 hand-shaking의 처음을 시작합니다..

   TCP Code Bit 6 bit중 syn을 1로 마킹하는 패킷을 던지는 거져 --> 이상태가 바로 SYN_SENT 상태

   (즉 능동적으로 OPen 요청을 하쟈나여 그래서 Active Open)

 

3. 서버는 클라이언트의 SYN을 받으면, 바로 -> SYN_Recive 상태가 되고

   이에 대한 응답으로 TCP Code Bit 6 bit중 syn , ack를 각각 1로 마킹하여 응답하져.

 

4. 그후 클라이언트는 ack로 응답 하고 -> Established

 

5. 서버는 ack 응답 받는 순간 ->  Established

 

6. 그 후 데이터 왔다 갔다..

 

7. 종료 단계도 두 단계로 나뉩니다..

 

   -. 정상 종료 : 서버에서 종료 요청을 먼저 한경우 와 클라이언트에서 종료요청을 하는 경우.

   -. 비 정상 종료 : Reset 비트가 마킹 되면서 접속 절단의 경우.

 

8. 종료후 Close로 마무리 됩니다..

 

 

> 동작 원리

 host A 과 host B 가 TCP 통신을 한다고 가정하겠습니다.

TCP 세그먼트에는 Sequence Number 와 Acknowledgment Number 라는 요소가 포함되어 있습니다.

먼저 host A가 host B에게 TCP 세션을 맺기 위해 SYN(Synchronize) 세그먼트를 전송합니다.

여기에는 임의의 Sequence Number 가 포함됩니다. 이것을 SEQ#=100 이라 가정하겠습니다.

그럼 host B는 이것에 대한 SYN(Synchronize), ACK(Acknowledgment) 세그먼트를 host A에게 전송하는데 Sequence Number 는 임의로 생성되지만 Acknowledgment Number 는 host A에게서 받은 SEQ#=100 보다 1이 증가한 101을 보내야 합니다.

이것을 SEQ#=100 , ACK#=101 이라고 가정하겠습니다.

그럼 이것을 받은 host A는 ACK#=101 이 자신이 보낸 SEQ#=100 보대 1이 증가한 것을 검사한 후 세션이 제대로 이루어졌다고 판단하게 됩니다.
ACK#=101 이 아닌 다른 number나 SYN, ACK 세그먼트를 받지 못하게 되면 통신이 제대로 수행되지 않았다고 판단하고 다시 SYN 세그먼트를 host B 에게 보내게 되는 가죠.

따라서 ACK 세그먼트의 재전송을 강요하지 않고도 세션이 이루어 졌는 지를 판단할 수 있습니다. (첫번째 답)


두번째 답은 다음과 같습니다.

① host A SYN (SEQ#=100 CODE Bit=SYN) ===> host B

: 임의의 SEQ# 를 생성하여 host B에 전송

② host A <=== (SEQ#=200, ACK#=101 CODE Bit=SYNACK) host B

: 임의의 SEQ# 를 생성하고 host A에게 받은 SEQ#=100 에 대해 ACK#=101 를 host A에 전송

③ host A (SEQ#=101 ACK#=201 CODE Bit=ACK) ===> host B

: 임으로 생성한 SEQ#=100 의 다음 번호인 SEQ#=101 과 host B에게 받은 SEQ#=200에 대한 ACK#=201 를 host B에 전송

④ host A <=== (SEQ#=201 ACK#=102 CODE Bit=ACK) host B

: 임으로 생성한 SEQ#=200 의 다음 번호인 SEQ#=201 과 host A에게 받은 SEQ#=101에 대한 ACK#=102 를 host B에 전송

 

이상과 같은 4가지 과정으로 정상적인 TCP 세션이 맺어진 후에 Data 의 전송이 이루어집니다

728x90
반응형