TCP/IP protocol 계층 구조
<aside>
<img src="/icons/paper-towels_pink.svg" alt="/icons/paper-towels_pink.svg" width="40px" />

Transport Layer 특징
<aside>
<img src="/icons/square_green.svg" alt="/icons/square_green.svg" width="40px" />
데이터 분할(fragmentation) ↔ 조립(assemble)
- 순서에 맞게 전달(수신 순서 L3 라우팅 영향)
Sequence number
- 패킷의 순서번호
- 패킷 중복, 훼손, 손실 시 해당 번호 확인 및 알림
Buffer
- 수신측면에서 순서대로 오지 않는 경우를 대비
- Buffer size가 클 경우 자원 낭비, 작을 경우 loss
Flow Control
- 패킷의 흐름 양을 조절
- 패킷 분실 방지
- 대표적 알고리즘 - sliding window
Sliding window
- 2개의 네트워크 호스트간의 패킷의 흐름제어를 위한 방법
- buffer는 sliding window라는 일련의 조각의 집합으로 표현 가능
- 방식
- 윈도우에 포함되는 모든 패킷을 전송
- 전송완료 확인
- 윈도우를 옆으로 옮김(slide)
- 다음 패킷 전송
- 장점
- 확인을 받지 않고도 여러 패킷을 보낼수 있음
- 기존에는 packet 전송 후 ack를 받는 과정이 필요한데 한 번에 전송 후 한 번에 ack를 전달 받음
Acknowledgement
- 수신측 → 송신측
- 오류 없이 잘 수신된 패킷들에 대해서 확인 응답 전송 → 오류제어
- 사용 이유
Error control
- 신뢰성 제공
- 제공 기능
- 훼손된 패킷의 감지 및 폐기 → checksum
- 손실되거나 제거된 패킷 추적 및 재전송 → acknowlegement
- 중복 수신 패킷 확인 및 폐기
- 순서에 어긋나게 들어온 패킷의 버퍼 저장
Transport layer protocol
<aside>
<img src="/icons/oven_gray.svg" alt="/icons/oven_gray.svg" width="40px" />
단뱡향성
- Simple protocol
- Stop-and-wait
- Go-Back-N
- Selective Repeat
양방향성
단방향성(PDF 사진 참고 필요)
<aside>
<img src="/icons/banana_red.svg" alt="/icons/banana_red.svg" width="40px" />
Simple protocol
- 흐름제어, 오류 제어 없는 비연결형 프로토콜
- Buffer overflow 발생이 없다고 가정
- 동작
- 일반적인 Clinet에서 Server로 Packet 전송
Stop-and-wait
- 흐름제어, 오류제어 제공하는 연결 지향 프로토콜
- sliding window size = 1
- Acknowledgement No.
- 동작
Go-Back-N
- Ack 도착 전 여러 패킷 전송 가능(16P 사진 확인)
- 송신 윈도우 크기 : 2^m - 1 이하
- Acknowledgement No.
- 동작
Selective Repeat
- 손실된 패킷만 선택적으로 재전송
- 순서에 맞게 도착 X
- 송신 윈도우의 최대 크기 : 2^(m-1)
- Acknowledgement No.
</aside>
양방향성