Computer Science/Network

[Network] TCP / UDP

ooeunz 2020. 3. 22. 18:02
반응형

TCP

TCP란 인터넷 상에서 데이터를 메세지 형태로 보내기 위해서 ip와 함께 사용하는 프로토콜 입니다. TCP는 아래와 같은 특성을 가지고 있습니다.

 

1. 연결형 서비스 입니다.
2. 높은 신뢰성을 가지고 있습니다.
3. 3 way-hand-shaking으로 연결하고 4way-handshaking으로 해제합니다.
4. UDP보다 속도가 느립니다.

 

3-way handshaking


1. 클라이언트에서 Server로 연결 요청을 하기위해 SYN 데이터를 보냅니다.
2. 서버에서 해당 포트를 LISTEN하고 있는 상태로 SYN 데이터를 받고,
정상적으로 데이터를 받았다는 대답(ACK)와 client도 포트를 열어달라는 SYN데이터를 함께 보냅니다.
3. 클라이언트에서는 SYN + ACK를 받고 ESTABLISHED로 상태를 변경하고 서버에게 요청을 잘 받았다는 ACK를 다시 전송합니다.
ACK를 받은 서버 역시 ESTABLISHED로 상태를 변경합니다.
(ESTABLISHED : 서로 연결을 맺은 상태)

 

※ TCP의 SYN 패킷의 Sequence Number는 일반적으로 난수를 이용해 생성합니다.


4-way handshaking


1. 클라이언트에서 연결을 종료하겠다는 FIN 플래그를 전송합니다.
2. 서버는 일단 확인 메세지(ACK)를 보내고, 자신의 통신이 끝날 때까지 기다립니다.
3. 서버가 통신을 끝내면 연결이 종료되었다고 클라이언트에게 FIN 플래그를  전송합니다.
4. 클라이언트는 확인되었다는 ACK를 보냅니다.

 

TCP 헤더의 Acknowledgment Number란?

  • 다음에 받을 것으로 예상되는 데이터의 순서 번호를 나타냅니다.
  • TCP의 신뢰적 데이터 전송을 위해 사용됩니다.

 


UDP

비연결형 서비스입니다. 때문에 정보를 주고 받을 때 TCP처럼 신호 절차를 보내지 않기 때문에 속도는 빠르지만 신뢰성이 떨어집니다.

 

반응형