TCP와 UDP

Patrick YOO·2022년 1월 23일
0
post-thumbnail

TCP 란

  • TCP 전송제어 프로토콜 (Transmission control protocol)
    • 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
      1. 데이터를 전송하기 전에 데이터를 전송을 위한 연결을 만드는 연결지향 프로토콜이다.
      2. 데이터는 네트워크 선로를 통해 전달되는 과정에서 손실되거나 순서가 바뀌어서 전달될 수 있는데 TCP 프토코콜은 손실을 검색하여 이를 교정하고 순서를 재조합할 수 있도록 해준다.

TCP 특징

  • 연결지향 (3way handshake)

    • IP프로토콜은 패킷을 목적지까지만 보내는일만하기 때문에 네트워크 상에서 발생할 수 있는 데이터 누락을 방지하지 못한다 이에 TCP 연결 프로토콜을 도입하여 목적지 서버에 연결이 되어있는지 먼저 연결을 확인한 후 데이터 전송을 진행함.

    1. 클라이언트측에서 SYN 을 서버로 보냄
    2. 서버는 SYN과 ACK 정보를 클라이언트 요청측으로 보냄
    3. 클라이언트는 이때 ACK 정보를 서버로 보냄
    4. 연결이 됐다라고 판단하여 전송데이터를 서버로 보냄.
  • 데이터 전달 보증

    • 클라이언트측 데이터 전달 후 서버측에서는 데이터를 받았을시 그 응답을 클라이언트측으로 전송함.
  • 순서 보장

    • TCP 패킷 송신이 있을 경우 한번에 덩어리로 전송하는것이 아닌 조각조각 나누어 서버로 전송하게 된다 이때 TCP 헤더에는 나누어진 조각의 순서를 헤더로 갖게되어 서버측에서는 데이터를 순서에 맞게 전송받을 수 있다.


TCP 헤더 구조


TCP 패킷 내부에는 전송제어 순서 검증정보 등이 포함되어 있다.

  • 신뢰할 수 있는 프로토콜

UDP 란

TCP 와 다르게 데이터를 패킷으로 나누고 반대편에서 재조립하는 과정을 거치지 않으며 서버와 연결과정 없이 데이터를 보내기만 한다. 하지만 속도가 빠르고 별도의 연결이 필요하지 않는다.

  • 비연결형 데이터 전살 순서가 보장되지 않지만 단순하고 빠름

UDP 특징

  • 순서보장 X 데이터 전달 보증 X 연결지향 X
  • IP 와 거의 유사하다
  • 에플리케이션에서 추가 작업이 필요함.

TCP 통신은 모든부분이 최적화가 되어있어 수정이 어렵지만 UDP 는 통신 커스터마이징이 가능하다

profile
자유인을 꿈꾸는 개발자

0개의 댓글