[컴퓨터네트워크] 5.전송계층1

이유정·2023년 8월 21일
0

컴퓨터네트워크

목록 보기
5/39

Utilization이라는건 전체 시간 중에 sender가 네트워크를 사용하는 시간이야 ! => 효율의 문제

따라서 tcp는 파이프라인 프로토콜 처럼 되어있다 !

Go-Back-N 방식


리시버의 동작을 보면 정말 멍청해 ~

  • 버퍼도 없고 아무것도 없어
  • swquence number 만 주구장창 기다려

패킷 0번 기다리고, 만약 왔어. 그다음은 무조건 1번 기다려 센더가 패킷 1번을 길게 요청하고 패킷 2번 , 3번이 만약 이런식으로 오면, 리시버는 2번 기다리고 있는데 3번 오면 버려버려

만약 중간에 6번이 없어졌다? 그럼 window size 만큼 돌아와서 (n개 만큼) 다시 6번 챙기고 간다 => go back N

window 안에 있는 패킷들은 버퍼에 저장해놔야 한다.
왜? 센더인 내가 리시버가 받았는지 확인한지 못한 애들이야. 재전송 해야할 수도 있다.

문제) 유실된건 6번 하나인데 7,8,9, 다 재전송 하고 있다. 만약 실제 구현할 때는 window size 한꺼번에 몇개씩 되는데, 하나 유실로 다시 재전송은 너무 멍청하다.

이를 보안한게

selective repeat

go back n은 유실됐을 때 n개 재전송
selective repeat 은 유실된 걸 재전송
경우1) ACK6을 못 받고, ACK7을 받았을 때,
리시버가 ㅇㅇ ! ACK7번은 받은거다 !!

우리가 드디어 sequence number에 대해서 생각할 때가 왔다 ~~
sequence number은 헤더의 필드로 들어가기 때문에, 크기가 작아야 한다.
우리가 원하는건 최소한의 범위를 가진 sqnumber 만을 쓰자 0,1,2,3,0,1,2,3,0,1,2,3 처럼
그 기준은 어떻게 정해야 할까?

  • 새로운 패킷과 duplicate 패킷을 구별할 수 있는 최소의 sq number을 갖고 싶은 것이다 !
    => window size 와 관련해서 생각해봐야 한다.

sq number은 window size의 약 2배 정도 크기면 되지 않을까? 정도의 느낌,, !

profile
강의 기록 블로그

0개의 댓글