신뢰성 있는 통신
- 현실의 통신은 이상적이지 않다.
- 패킷이 유실됌
- 무한히 흐르지 않는다.
- 패킷이 순서대로 오지가 않을 수 있다.
- 패킷이 변조 될 수 있다

- 송신자는 패킷에 번호를 붙여서 보낸다
- 수신자는 받은 패킷에 대해서 응답에 번호를 붙여서 보낸다.
- 만약 타임아웃이 일어나면 응답을 받지 못한 패킷에 대해서 다시 재전송을 한다.
- 수신자는 같은 패킷이 중복해서 온것을 알아 낼 수가 있다.
Pipeline 통신
연속된 대량의 작업이 순차성을 갖고 있으나 병렬적으로 수행할수 있는 경우

- 패킷을 순차적으로 보낸다
- 보내다가 어떠한 패킷에 대해서 유실이 된 경우 그 패킷부터 다시 순차적으로 전송한다.
go - back -n 파이프라인
-
N개의 패킷을 병렬적으로 처리
-
송신측에서는 N개의 패킷을 버퍼링(재전송하기 위해)
-
수신측에서는 순차적으로 잘 수신된 패킷에 대하여 Ack을 송신하고 패킷의 페이로드 응용계층으로 올려보낸다.
-
송신측에서는 버퍼에 여유가 생기면(ACk를 받을때마다) 패킷을 추가로 보낸다.
-
송신측에서 패킷을 잘 받으면 그 패킷 이전에 송신한 패킷은 수신측에서 잘 수신했다고 고려 할 수 있다.
수신측에서 패킷이 순서에 맞지 않는 경우
- 가만히 있는다
- 잘 받은 마지막 패킷에 대해서 ack을 전송
장점
단점
Selective repeat

- 수신 측에도 버퍼를 둔다.
- 유실 된 패킷 이후에 받은 패킷들은 버퍼에 임시 저장 해둔다.
- 재 전송한 패킷이 수신측에 도착하면 버퍼에 저장한 패킷과 함께 응용층에 전송한다.
장점 :
- 실패 한 패킷만 재전송
단점 :
- 시스템 추상화 복잡
- 수신측에도 버퍼가 필요