728x90
반응형
인터넷 프로토콜을 처음 개발할땐 서로 신뢰할 수 있는 대상자와 통신 했기 때문에 신뢰성을 고려하지 않았다.
하지만 현재는 그러하지않다... ㅠㅠ
그러면 신뢰성있는 데이터를 전송하기 위해서는 어떠한 방법을 써야할까??
신뢰성 있는 데이터 전송의 원리
- 신뢰성 있는 채널을 통한 서비스 추상화
- 손상 및 손실 없는 데이터
- 순차적인 데이터 전송
Service of TCP
Error type and solution
데이터를 전송하다보면 다양한 원인으로 패킷이 손실되거나 망가질수 있다.
이러한 문제를 해결하기 위해 에러를 검출하고 다음과 방법을 도입했다.
-> Packet Retransmission method
패킷 재전송 방법은 다음과 같다.
- ARQ(automatic repeat request)
- Stop and wart
- Pipelining method
- Go back N
- Selective repeat
Stop and wait
- 송신자는 하나의 패킷을 보내고 수신자로부터 응답이 올때까지 기다린다.
- 만약 설정한 응답시간이 만료되었을 경우(timeout) 송신자는 응답 받지 못한 패킷을 재전송 한다.
- Round trip을 고려하여 timeout을 설정해야함
하지만 Stop and Wait은 한계가 존재한다..
Stop and Wait 퍼포먼스의 한계
이래서 등장한 것이 pipelining...!!!
Pipelining Protocols
Pipelining protocol는 2가지 종류가 있다.
Go-back-N
•Header에 seq num가 있음
•Window: RTT동안 보낼 수 있는 패킷의 크기(시간에 따라서 변함)
Selective Repeat Operation
하지만 Window Size와 Seq num를 고려하지 않으면 문제가 발생한다..
Window size와 Seq num와 관계
이러한 문제를 해결하기 위해서는
Window size x 2 <= Seq num 가 성립해야한다.
728x90
반응형
'컴퓨터과학 > 0 +컴퓨터 네트워킹' 카테고리의 다른 글
[컴퓨터 네트워킹] 4-2) TCP Retransmit(TCP 재전송) (0) | 2021.09.19 |
---|---|
[컴퓨터 네트워킹] 4-1) TCP(Transmission Control Protocol) (0) | 2021.09.19 |
[컴퓨터 네트워킹] 3-4) UDP 그리고 checksum (0) | 2021.09.08 |
[컴퓨터 네트워킹] 3-3) Port와 Socket이란? (0) | 2021.09.08 |
[컴퓨터 네트워킹] 3-2) 전송계층이란? (0) | 2021.09.08 |