TCP와 UDP

Alex Moon·2023년 8월 10일
0

네트워크

목록 보기
5/9

TCP(Transmission Control Protocol)

Application 간의 데이터 전송을 위한 프로토콜이며, 신뢰성을 확보해주는 절차를 가진다.

TCP는 Connection 맺기 - Application 간 데이터 송수신 - Connection 끊기 프로세스를 가진다. Connection을 맺고 끊을 때는 각각 3way/4way Handshaking을 한다.

TCP 커넥션이 맺어지면 Application 간의 데이터를 전송하기 시작한다. 이 때 TCP는 데이터 크기나 네트워크 상황에 따라 제어를 하며, Flow Control이라고 한다.

TCP에서 한 번에 전송할 수 있는 크기를 MSS(Maximum Segment Size)라고 한다. MSS를 넘는 데이터를 전송할 경우에는 MSS를 기준으로 분할하여 전송한다.

3way Handshaking

  1. Client가 Server에 연결 요청을 보낸다.
  2. Server가 Client에게 요청에 대한 응답으로 Ack를 반환함과 동시에 Client에게 연결 요청을 보낸다.
  3. Client가 Ack로 Server의 요청에 응답하여 TCP 연결이 성사된다.

4way Handshakinh

  1. Client가 Server에게 연결 종료 요청을 보낸다.
  2. Server가 요청에 대한 응답으로 Ack를 반환하고, 현재 진행 중인 데이터 통신이 있다면 끝날 때까지 기다린다.
  3. 통신이 끝나면 Client에게 연결 종료 요청을 보낸다.
  4. Client가 Ack로 Server의 요청에 응답하여 TCP 연결이 종료된다.

Flow Control

  1. 데이터 크기가 크면 분할하고, 이 정보를 TCP 헤더에 기술한다.
  2. 데이터를 전송하고 Ack(수신확인)을 받아 결과를 체크한다.
  3. 네트워크 상태에 따라 전송 속도를 제한한다.
  4. 데이터를 수신한 Application은 TCP 헤더를 참조하여 원본 데이터로 조립한다.

TCP 헤더


UDP(User Datagram Protocol)

전송 신뢰도를 보장하지 않고 Application에 일방적으로 데이터를 전송한다.

데이터 전송 신뢰도를 보장하지 않는 단순한 구조를 가지고 있기 때문에 TCP보다 전송 속도가 빠르다. 또한 데이터를 분할하는 기능이 없기 때문에 필요시 직접 분할하여 전송해야 한다.

UDP 헤더

profile
느리더라도 하나씩 천천히. 하지만 꾸준히

0개의 댓글