[CS] TCP / UDP

Onam Kwon·2022년 8월 9일
0

CS

목록 보기
9/22

TCP / UDP

  • TCP UDPOSI표준 모델과 TCP/IP 모델의 전송 계층에서 사용되는 프로토콜이다.
  • 전송계층은 말 그대로 전송을 담당한다. 송신자와 수신자를 연결하는 통신 서비스를 제공하고 이때 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층이다.
  • TCP UDP는 포트 번호를 이용해 주소를 지정하는것과 데이터 오류검사를 하는 공통점을 가지고 있지만 다른 차이점이 존재한다.

TCP(Transmission Control Protocol)

  • 양방향 통신.
  • 데이터 유실과 흐름제어의 방지, 신뢰성이 높은 프로토콜, 데이터를 중요히 생각해 확실한 전송을 원할때 사용.
    • 통신하는 컴퓨터끼리 전송확인, 수신확인 메시지를 보내며 데이터를 주고받음으로써 신뢰도 상승.
  • 512bytes 보다 큰 데이터를 전송하는데 사용.
  • 가장 대중적인 transport layer protocol.
  • 데이터를 보내기 전 반드시 연결이 형성되어야 함.
  • 1:1통신만 가능함.

UDP(User Datagram Protocol)

  • 단방향 통신.
  • 데이터 유실과 흐름제어가 없어서 신뢰성 미보장.
    • 대신 TCP보다 빠른 속도.
  • 512bytes 보다 작은 데이터를 전송하는데 사용.
  • transport layer에서 사용.
  • application layer에서 신뢰성이 핸들될 때 또는 시간적으로 예민한 경우에 사용한다.

비교

TCPUDP
연결 지향 프로토콜비연결형 프로토콜
20bytes 헤더 사이즈8bytes 헤더 사이즈
TCPUDP보다 느림UDPerror recovery를 시도하지 않으므로 TCP보다 빠름
데이터의 전송 순서 보장(각 바이트마다 번호 부여)There are no tracking connections, ordering of messages
error checking, error recovery 둘다 지원UDP는 오류 검사를 수행하지만 잘못된 패킷은 버림
수신여부 확인 -> handshake protocol 사용 ex) SYN, SYN-ACK, ACK수신여부 미확인 -> handshake를 사용하지 않는다 따라서 connectionless protocol
Used for large messages where multiple segments need to be transferredUsed for small messages where single message/packet/segment need to be transferred
1:1 통신1:1, 1:N, N:N 모두 지원
  • 연결 지향: 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미.
  • 비연결 지향: 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 발신하는 방식을 의미.

Different types of messages codes

  • SYN: Synchronization request.
  • ACK: Acknowledgement of a message received.
  • FIN: Finish request.
  • RST: Reset request.

3 way handshake

  • 3 way handshake 는 TCP 통신을 연결할 때 사용하는 방식입니다.
    • 클라이언트가 서버에게 SYN
    • 서버가 클라이언트에게 SYN + ACK
    • 클라이언트가 서버에게 ACK

4 way handshake

  • 4 way handshake 는 TCP 통신의 연결을 해제할 때 사용하는 방식입니다.
    • 클라이언트가 서버에게 FIN
    • 서버가 클라이언트에게 ACK
    • 서버가 클라이언트에게 FIN
    • 클라이언트가 서버에게 ACK
profile
권오남 / Onam Kwon

0개의 댓글