TCP/IP_Transport layer services

silups·2025년 3월 23일
0

TCP/IP

목록 보기
10/12

Transport-Layer Services

  • Network-layer는 PC를 지칭하는 IP address 사용
  • Transport-layer는 processes와 port를 통해 연결

port number

Socket address

Encapsulation and descapsulation

Multiplexing and demultiplexing

  • 여러 개의 상위 계층 process가 Trnasport layer가 각각 에 맞는 address로 전송
  • Multiplexing: 여러개의 data가 하나의 통로를 이용
  • demultiplexing: 하나의 통로에서 여러개의 data 전달

pushing or pulling (flow control)

  • push는 밀어 넣는다, pulling은 빼간다
  • push에서만 folow control이 필요

Error control

  • packet에 error가 있을 떄, 재전송 요청
  • error control을 위해선 sequence number가 필요

congestion control

  • router에서 일어남
  • network 폭주시, 완화

Sliding window

  • error control과 flow control 가능

Connection-oriented service

  • four-way-handshake
  • Connectionless service는 도착한 packet을 바로 상위 계층에 올리는 반면, Connection-oriented service는 순서에 맞춰 packet을 올림
  • evnet/action

Transport layer protocol

Simple protocol

  • 상위 계층에서 요청이 오면 계속 전송
  • 항상 ready 상태
  • simple protocol은 connectionless protocol로 flow control 및 error control 기능이 없음

Stop and wait protocol

  • sender window와 receive window 모두 1

  • window size로 인해 송신자가 대기 하게 되며 flow control이 이루어짐

  • error가 발생한 packet(or ACK)은 버려서 송신 측이 time out으로 재전송 하게 함으로써 error control이 이루어짐

  • sequence number를 0, 1, 0 , 1을 사용

  • ACK 1 (0번 잘 받음), ACK 0 (1번 잘 받음)

  • 하나 보내고, ACK 받고, 또하나 보내고, ACK 받고 반복
    - 비효율적

  • bandwidth-delay product: 선로가 한번에 전송가능한 packet의 양
    • 선로 전체 크기 * 왕복 시간
      ex) 1Mbps선로, 1bit 왕복 시간이 20ms일때,
      (1×1064)×(20×1031 \times 10^64) \times (20 \times 10^-3) = 20,000
  • 효율계산: 실제 전송되는 packet length / bandwidth-delay product
    (stop and wait protocol)
    ex) packet length가 1000bit 이면, 1000/20000 = 5%
    • stop and wait protocol은 비효율적임을 증명
    • packet을 하나씩이 아니라 여러개를 동시에 전송가능하다면 (ex 15) 75%까지 효율 상승

Go-Back-N protocol

  • send window의 최대 크기: 2m12^m-1

    • m = size of the sequence number filed in bits
  • receive window의 크기: 1

  • ACK를 수신받지 못하더라도 send window의 크기만큼 packet을 계속 전송

    • ACK n : n-1번 패킷을 잘 받았고 n번 패킷 전송 요청

send window

  • SfS_fSnS_n 사이의 error-free ACK가 도착했을 경우 send window를 slide 할 수 있다.

receive window

  • receive window는 RnR_n에 해당하는 packet을 받았을 경우에만 ACK를 보내고 window를 slide한다.
  • 위의 경우 packet 5 수신, ACK 6 송신
  • FSMs
  • sliding window로 flow control
  • timeout으로 error control
  • sending window가 2m2^m일 경우, timeout으로 재전송한 packet을 올바른 packet으로 인지하고 저장하게되어 error control이 되지 않는다.
  • 만약 ACK2가 도중에 손실되더라도 ACK3이 잘 도착하면 1,2를 모두 다 잘 받았다는 의미로 정상적인 동작으로 이어진다.
  • 만약 Packet이 손실되더라도 timeout으로 인해 Outstanding(Packet을 전송했지만 ACK는 받지 못한 것)을 전부 보내기 때문에 정상적인 동작으로 이어진다.

Selective Repeat protocol

  • send window와 receive window의 최대 크기 : 2m12^{m-1}
  • Go-Back-N protocol과 다르게 다음에 받아야 할 packet이 도착해도 버리지 않고 저장함

send window

  • Go-Back-N protocol과 마찬가지로 Ack를 받으면 window를 slid한다

receive window

  • RnR_n에 해당하는 packet을 받으면 이전에 받은 packet을 포함하여 slid한다.
    ex) packet 3을 받으면 RnR_n은 5가 된다.

  • Selective repeat에서 Ack는 해당 Ack만 잘 받았다는 의미
    ex) Ack 3(packet3 잘 받음), Ack 8(packet8 잘 받음)

FSMs

  • Packet이 손실 되어도 timeout으로 재전송하고 이미 Ack를 받은 window를 포함해 slid
  • 효율
  • window 크기가 2m12^{m-1}인 경우 Ack가 손실되어도 send window와 receive window가 서로 부합하지 않아 error control이 이루어짐
  • window크기가 2m12^{m-1}보다 큰 경우엔 sender가 timeout 으로 재전송하는 packet이 receive window에 해당되어 error control이 이루어지지 못함

Piggybacking

  • 보낼 데이터에 Ack를 포함해서 보내는 것

Go-Back-N의 piggybacking

  • Packet + Ack
profile
NDBT

0개의 댓글