기존 전송 계층의 문제점
- 무한한 흐름 X
- 패킷 유실
- 패킷 순서 변경
- 패킷 변조
패킷 유실 유형
1. 전송이 되지 않은 경우
2. 전송은 되었는데, ACK가 오지 않은 경우 -> 재전송이 일어남
3. ACK가 늦게 와서 전송이 timeout 된 경우
pipelining
연속된 대량의 작업이 순차성을 갖고 있으나 앞의 일이 종료되지 않고도 다음 일을 시작할 수 있는 병렬성을 가진 경우 성능 향상 기법
- Go - back - N
- Selective Repeat
Go - back - N
- 최대 N개의 packet을 병렬적으로 처리
- 송신측에서는 N개의 packet을 buffering(재전송하기 위해서)*
- 수신측에서는 순차적으로 잘 수신된 packet에 대하여 ACK를 송신하고 packet의 paylocal를 응용계층으로 올려보낸다.
- 송신측에서는 buffer에 여유가 생기면 (ACK을 받아서) 그만큼 추가로 pipelining
- 수신측에서 순서에 맞지 않는 패킷이 온 경우, 가만히 있거나, 잘 받은 마지막 packet에 대한 ACK을 전송한다.
*Buffering?
수신이 확실하지 않은 packet에 대하여 재전송을 위하여 보관한다.
Go-back-N에서의 재전송 정책
- 각 packet 전송 시에 packet을 위한 Timer 설정
- ACK를 받으면 ACK해당 packet과 앞쪽 packet에 대한 Timer 소멸
- Timer 이벤트 발생 시 해당 packet부터 재전송
추가 재전송정책
- k번째 packet에 대한 ACK이 반복적으로 올 경우 k + 1번째 패킷의 유실을 함축한다.
-> 3번 정도 k 패킷에 대한 ACK가 오면 timer와 무관하게 k+1번째 패킷부터 재전송한다.
장점
- 단순(특히, 수신층)
- 간명하게 시스템의 상태가 추상화
단점
-패킷 유실에 대한 복구비용 ⬆️
Selective Repeat
- Go-back-N의 단점 보완
- 수신측에도 buffer가 존재함
- 빠진 packet이 있을 경우 그 뒤쪽의 잘 도착한 packet들은 버퍼에 보관
- 빠진 packet이 추후 도착하면 buffer에 저장한 이후 packet들 까지 순차적으로 응용에 전달
추가주제
IPv4 와 IPv6의 특징
IPv4 | IPv6 | |
주소 길이 | 32bit | 128bit |
표시 방법 | 8비트씩 4부분으로 나뉜 10진수 | 16비트씩 8부분으로 나뉜 16진수 |
주소 개수 | 약 43억개 | 2^128개 |
주소 할당 | 단위 비순차적 할당 | 순차적 할당 |
헤더 크기 | 20바이트(가변적) | 40바이트(고정적) |
특징 | 보안 기능 강화 |