230708 TIL #132 TCP / UDP

김춘복·2023년 7월 7일
0

TIL : Today I Learned

목록 보기
132/571

230708 Today I Learned

오늘은 토x NEXT 코딩테스트를 보고 내일 있을 정보처리기사 시험 준비를 했다.


  • 전송계층 : 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 제어 등을 담당하는 계층. 즉, 데이터의 전달을 담당.


이미지 출처 : minho

TCP

Transmission Control Protocol. 전송계층에 위치한 연결지향적 프로토콜

  • 연결지향적 프로토콜 : 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜

  • 클라이언트가 연결 요청을 하고 서버가 연결을 수락하면 통신 선로가 고정된다. 이 선로를 통해 모든 데이터가 순차적으로 전달된다.

  • 전송 확인 작업을 수행한다. 패킷을 성공적으로 전송하면 ACK라는 신호를 날리는데, 신호가 제시간에 도착하지 않으면 Timeout이 발생해 손실이 발생한 패킷을 다시 전송한다.

-> 정확하고 안정적인 데이터의 전달 가능

  • 데이터 전송 순서가 보장되고 신뢰성 있는 데이터를 전송한다.

  • 데이터의 경계를 구분하지 않느다.

  • 1 : 1 통신만 가능하고 데이터를 보내기전에 반드시 연결이 형성되어야 하며, 고정된 통신 선로가 최단선이 아니면 UDP보다 전송속도가 느리다는 단점이 있다.

  • 기본 헤더크기는 20바이트로 최대 60바이트까지 확장할 수 있다.

  • 흐름제어 : 송신 및 수신 속도를 일치시킨다. 수신 한도를 넘는 과잉 패킷 입력으로 패킷 분실이 일어나지 않도록 패킷 흐름을 조절하는 기법이다.
    정지-대기 기법(수신자가 에러 체크 후 에러가 발생한 데이터부터 다시 받는 기법), 슬라이딩 윈도 기법(수신 측에서 설정한 윈도의 크기만큼 ACK 없이 전송해 동적으로 흐름을 제어하는 기법)

  • 혼잡제어 : 네트워크가 혼잡하다고 판단되면 송신율을 감속한다. 패킷 수가 과도하게 증가하는 현상을 방지한다.

  • TCP 헤더


UDP

User Datagram Protocol. 전송계층에 위치한 비연결지향적 프로토콜

  • 비연결 지향적 : 데이터를 주고받을 때 연결 절차를 거치지 않고 발신자가 일방적으로 데이터를 보내는 방식
    연결 과정이 없어 TCP보다 빠르게 전송하지만 신뢰성은 떨어진다.

  • 발신자가 패킷을 순차적으로 보내더라도 서로 다른 통신선로를 통해 전달되어 패킷의 순서가 보장되지 않고 최악의 경우 패킷이 유실될 수 있다.

  • 데이터의 경계를 구분한다.(데이터그램 방식)

  • 신뢰성 없는 데이터를 전송한다. 데이터 재전송과 순서유지를 위한 작업을 하지 않는다.

  • 의미있는 서버를 구축하기 위해 패킷관리가 필요하다.

  • 패킷 오버헤드가 적어 네트워크의 부하는 TCP보다 적다.

  • 빠른 요청과 응답이 필요한 스트리밍, 통화 등에 활용된다.

  • 1 : 1, 1 : N, N : N 통신 다 가능하다.

  • 헤더
    8바이트 고정크기의 경량 헤더 구조

profile
Backend Dev / Data Engineer

0개의 댓글