[CISCO] TCP(Tranmission Control Protocol) 알아보기 [Packet Tracer]
Nowhere 와 Now here 의 차이

IT/ㄴ Cisco

[CISCO] TCP(Tranmission Control Protocol) 알아보기 [Packet Tracer]

TIENE 2023. 7. 9. 11:34
반응형

TCP(Tranmission Control Protocol) 알아보기

 

- 네트워크를 처음 시작하면 배우는 것이 OSI 7계층이다. 그리고 실제 통신을 할 때, 아래 사진과 같은 과정 즉, OSI 7계층을 통하여 우리는 인터넷을 사용하고 있다. 많은 계층 중에서 오늘 주목할 것은 Layer 4 계층의 전송 계층이다.

- Layer 4 계층의 주요 프로토콜은 TCP와 UDP다. 이 두 개의 프로토콜 중에서도 TCP에 대해 알아보려고 한다. TCP를 검색하면 주로 아래와 같은 도식형의 그림을 아주 많이 볼 수 있다.

 

 

- 주거니 받거니 하는 과정이 어려워 보일 수 있지만 우리도 이런 방식을 사용하고 있다.

- 상대방의 존재를 확실히 확인하기 위해서 이런 대화를 한다.

A : B씨! 거기 계세요?
B : 네, 저 여기 있어요. A씨도 거기 있는거죠?
A  : 네, 저 여기 있어요.

 

- 이렇게, 서로의 존재를 확인하면서 대화를 할 때 신뢰성을 중점을 두고 있는 것처럼 TCP 방식이 이와 같다.

- 그래서 TCP 방식은 신뢰성 있는 전송을 보장하고 연결형 서비스, 연결 지향 전송 프로토콜이라고 불리운다.

 

- 위의 대화를 전문가처럼 표현할 수 있는데, 이를 3-Way Handshake라고 한다.

- 3번의 방향을 통하여 신뢰성을 쌓고 둘이 악수하는 뭐 그런 맥락으로 이해할 수 있다.

 

- 데이터의 전송 순서를 보장하기 때문에 순서제어와 오류 제어라는 장점이 있다.

- 다만, 3번의 절차, 패킷에 대한 응답으로 인하여 시간 지연(속도)나 성능 저하라는 단점을 피할 수 없다.

 

- TCP Header에는 여러 가지 Flags가 있다.

- 기억해두어야 할 Flags는 2가지다.

 

- SYN = 연결 요청 Flag
- ACK = 수신 확인 응답 Flag

 

- SYN은 SYnchronize sequence Numbers의 약자로, 연결 요청을 위해 보내는 무작위의 값이다.

- ACK는 ACKnowledgements의 축약자로, Client나 Server가 받은 SYN에 1을 더한 후, SYN를 잘 받았다는 응답이다.

- 이를 움짤(?) 로 확인해보자.

 

 

- 또한, 위 움짤에서의 각 상태에 대한 설명은 다음과 같다.

상태 설명
CLOSED 닫혀있는 상태
LISTENING 포트가 열려있는 상태 -  연결 요청을 들은 준비가 되어 있다.
SYN-SENT 연결 요청을 한 상태
SYN-RECEIVED 연결 요청을 받은 상태 - 상대방의 요청을  기다린다.
ESTABLISHED 연결 확인 / 확립 상태

 

 

- 이를 바탕으로 TCP 프로토콜에서 가장 중요한 3-Way Hanshake에 대해 자세히 알아보자.

 

 

[TCP 3-Way Handshake]


패킷 트레이서로 알아보자

 

1. Web Server의 연결을 시도하는 PC0가 있다.

- PC0은 Server에게 SYN를 보내어 연결을 요청한다.

- Sequence number 와 ACK number는 각각 0이다.

- PC0은 SYN를 보내고 SYN + ACK를 기다리는 SYN_SENT가 된다.

 


 

2. Web Server는 PC0로부터 받은 SYN 에 대한 응답을 받았다.

- 그리고, SYN + ACK를 보내어 다시 확인한다.

- PC0 이 보낸 Sequence number 와 ACK number에서 ACK에 1을 더하여 보낸다.

- 큰 박스 안의 내용을 살펴보면, ACK number가 1이 늘어난 것을 확인 할 수 있다.

- Sequence number = 0 / ACK number = 1이다.

 

 

- 그와 동시에, SYN + ACK를 보낸 Web Server는 SYN-RECEIVED 상태로 전환하여, PC0으로부터의 ACK를 기다린다.

 


3. PC0은 Web Server로부터 SYN + ACK를 받았다.

- 그와 동시에,  PC0은 ACK를 보낼 때, seqence number에 1을 더하여 ACK를 보낸다.

- Sequence number = 1 / ACK number = 1이다.

 

 

- Web Server은 Established 상태로 전환하여 PC0와 Web Server는 TCP 통신이 가능하다.


300x250

 

반응형