TCP와 UDP

Published: by Creative Commons Licence

TCP와 UDP

많이 들어본 프로토콜
다시 한번 리뷰할겸 정리함!

TCP

  • 연결형 : 1:1로 연결이 된 후 통신을 시작함
  • 신뢰성 : 에러제어, 흐름제어가 가능
  • 느리다 : UDP보다 느림
  • 양방향 : 연결이 되면 서로 데이터 전송이 가능
  • 3-way-handshaking
    • 통신을 시작할 때
      클라이언트에서 SYN를 서버에 보내면(1hand)
      서버는 SYN를 받고 ARK와 SYN를 함께 보낸다(2hand)
      다시 클라이언트는 서버에서 데이터를 받고 ARK를 보낸다(3hand)
      이렇게 세번의 데이터 통신이 정상적으로 동작하면 서로 연결이 된다.
  • 4-way-handshaking
    • 통신을 끝 낼 때
      클라이언트에서 서버에 FIN을 보내면(1hand)
      서버는 FIN을 받고 CLOSE_WAIT이 되며 ARK를 클라에게 전송(2hand)
      서버는 Application을 close되면 클라에게 FIN을 전송(3hand)
      클라은 FIN을 받고 클라는 TIME_WAIT이 됨(4hand)
       이렇게 네번의 데이터 통신이 정상적으로 동작하면 서로 연결이 끊긴다.  CLOSE_WAIT은 어플리케이션이 종료될때까지 기다리는 것  TIME_WAIT은 혹시 서버에서 못온 데이터가 있을 수도 있으므로 조금 더 기다리는 것