ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP / UDP
    CS/네트워크 2022. 3. 15. 12:45
    728x90

     

    TCP와 UPD는 전송 계층(Transport Layer)에 속해있는 프로토콜이다.

     

     

    Transport Layer

    End Point간 신뢰성있는 데이터 전송을 담당하는 계층

    • 신뢰성: 데이터를 순차적, 안정적인 전달
    • 전송: 포트 번호에 해당하는 프로세스에 데이터를 전달

    만약 Transport Layer가 없다면,

    • 데이터의 순차 전송이 원활하지 않게 된다.
    • 송수신자 간의 데이터 처리 속도 차이로 인해 흐름 문제가 발생한다.(Flow)
    • 네트워크의 데이터 처리 속도로 인해 혼잡 문제가 발생한다.(Congestion)

     

    TCP(Transmission Control Protocol)

    • 신뢰성있는 데이터 통신을 가능하게 해주는 프로토콜
    • 특징: Connection 연결 (3 way-handshake) - 양방향 통신
    • 데이터의 순차 전송을 보장
    • Flow Control(흐름 제어)
    • Congestion Control (혼잡 제어)
    • Error Detection(오류 감지)
    • 전송의 신뢰성은 보장하
    • 매번 Connection을 연결해서 시간 손실이 발생
    • 패킷을 조금만 손실해도 재전송 해야함

     

    TCP 프로토콜의 PDU(Protocol Data Unit)

    세그먼트 (Segment)

    TCP Header Data

    TCP Header

    SYN(연결 요청 플래그): TCP 에서 세션을 성립할 때  가장먼저 보내는 패킷, 시퀀스 번호를 임의적으로 설정하여 세션을 연결하는 데에 사용되며 초기에 시퀀스 번호를 보내게 된다.

    ACK(응답): ACK은 '승인'의 약자로, 다른 컴퓨터 나 네트워크 장치가 다른 컴퓨터에 SYN / ACK 또는 다른 요청을 보낸 것을 확인한 응답을 나타낸다.

    FIN(연결 종료 요청):세션 연결을 종료시킬 때 사용되며 더 이상 전송할 데이터가 없음을 나타낸다.

     

    TCP의 3 way-handshake(Connection 연결) & 4 way-handshake(Connection 해제)

    3way

    1. SYN 비트를 1로 설정해 패킷 송신

    2. SYN, ACK비트를 1로 설정해 패킷 송신

    3. ACK 비트를 1로 설정해 패킷 송신

     

    4way

    1. 데이터를 전부 송신한 Client가 FIN 송신

    2. 서버가 ACK 송신

    3. 서버에서 남은 패킷 송신 (일정 시간 대기)

    4. 서버가 FIN 송신

    5. Client가 ACK 송신

     

     

    UDP (User Datagram Protocol)

    • TCP보다 신뢰성이 떨어지지만 전송 속도가 일반적으로 빠른 프로토콜(순차 전송 x, 흐름 제어 x, 혼잡 제어 x)
    • Connectionless (3 way-handshake x)
    • Error Detection
    • 비교적 데이터의 신뢰성이 중요하지 않을 때 사용 (ex. 영상 스트리밍)

     

    UDP 프로토콜의 PDU

    User Datagram

    UDP Header Data

    TCP Header는 데이터를 쪼개지만 UDP는 쪼개지 않아 구현 시 직접 애플리케이션에서 쪼개주어야 한다.

    UDP Header

    Source Port: 전송을 위한 Port번호

    UDP Checksum: 에러검출

     

    UDP의 데이터 전송 방식

    https://m.blog.naver.com/dd1587/221147332360

    송신측은 무작정 보내기만 하고 신경을 쓰지 않는다. 수신측은 받아도, 받지 않아도 답변하지 않는다.

     

     

     

    참고 자료:

    [10분 테코톡] 👨‍🏫르윈의 TCP UDP

    728x90

    'CS > 네트워크' 카테고리의 다른 글

    쿠키&로컬스토리지  (0) 2022.05.06
    Load Balancing  (0) 2022.03.20
    RESTful API  (0) 2022.03.16
    URL에 www.naver.com을 입력하면 무슨 일이 일어날까?  (0) 2022.03.02
    TCP/IP 모델  (0) 2022.03.02

    댓글

oguuk Tistory.