[CS] Network - Transport layer

2.so_j·2023년 11월 27일
0
post-thumbnail

Contents

  • Transport layer
  • TCP / UDP

Transport layer

송신자와 수신자를 연결하는 통신 서비스를 제공하며 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공함.

UDP

  • 비연결성
    : 연결을 설정하지 않고(no handshaking) 데이터를 전송, 각 패킷은 독립적으로 처리되며, 패킷 간의 순서는 보장되지 않음

  • 신뢰성 없음
    : 데이터 전송에 대한 확인응답을 제공하지 않음

  • 속도 빠름
    : 비연결성이므로 속도가 빠름

  • '데이터그램 패킷 교환 방식'사용
    : 패킷이 독립적으로 이동하며 최적의 경로를 선택하는데, 도착한 순서가 다를 수 있는 방식

  • 신속한 전송이 필요하거나, 데이터의 손실이 큰 문제가 되지 않는 스트리밍 서비스, DNS, SNMP, DHCP 등에서 사용됨

TCP

  • 연결 지향성
    : 연결시 3-way-handshake 과정을 거치고, 연결 해제시 4-way-handshake과정을 거침
  • 신뢰성
    : 데이터 전송에 대한 확인응답을 제공하여 신뢰성 있는 전송을 보장
  • 패킷 순서 보장
    : connection 맺을시 Sequence number를 보냄 / 정상적으로 수신한 데이터를 알리기 위해 ACK를 보냄 / 흐름 제어 / 타이머 등의 방법으로 순서를 보장함
  • '가상회선 패킷 교환 방식'을 사용함
  • TCP 연결 성립 과정

    3 way handshake
    신뢰성을 확보하기 위해 하는 작업. 이 과정이 있기 때문에 TCP 신뢰성이 구축됨

    1. connection request : 서버에 클라의 ISN을 담아 SYN을 보냄.
    2. connection granted : 커넥션을 수용하고, 승인번호를 보냄
    3. ACK : 승인번호를 담아 ACK를 서버에 보냄

TCP reliable data transfer

  • 3-way-handshake
  • TCP header의 checksum
    : 통신 과정에 오류가 생겼는지 확인하기 위해 존재. 해당 패킷이 손상된 경우 ACK flag를 0으로 초기화하여 보냄
  • TCP header의 sequece number
    : 데이터에 순차적으로 번호를 매겨서 보내는 것으로 중간에 어긋난 패킷을 확인하고 순서를 맞춘다
  • time out시 패킷 재전송
  • 흐름 제어
    : 송신 측과 수신 측의 데이터 처리 속도 차이로 인해 발생하는 문제를 해결하기 위함. 윈도우 크기를 조절한다
  • 혼잡 제어
    : 네트워크에서 발생하는 혼잡을 방지한다. ex)Reno, Tahoe
profile
싱글코어 두뇌의 개발자 도전기

0개의 댓글

관련 채용 정보