이 그림은 서버에서 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 의 전송이 이루어집니다
'IT > 통신,네트워크' 카테고리의 다른 글
공유폴더 접근시 '제공한 자격증명이 기존의 자격증명 집합과 충돌합니다' 에러 해결 (2008-09-18) (0) | 2021.08.07 |
---|---|
DCE/DTE 케이블 (V.35 Cable)(2008-07-25) (0) | 2021.07.17 |
AM과 FM의 차이 (2005-07-18) (0) | 2021.07.16 |
GMPCS (0) | 2021.07.16 |
위성 통신 (2005-07-18) (0) | 2021.07.16 |