1. RDT 2.0
-> RDT 1.0에서 이루어진 신뢰적인 통신에서 상황을 바꾼다.
-> Bit 오류가 있는 채널을 만든다.
2. RDT 2.0 요건
-> No Loss of Packets
-> Bit Error
3. Bit Error를 확인하기 위해 필요한 것??
-> checksum
: Bit Error를 검출하기 필요한 field이다.
4. Bit Error가 발생하면 수신측에서 필요한 것??
-> 응답 packet이 필요하다.
-> ACK
: Acknowledgement
: Receiver가 Sender가 보낸 packet을 잘 받았는 것에 대한 응답이다.
-> NAK
: Negative Acknowledgement
: '해당 packet에 대해서 다시 반복해라'라는 의미이다.
: Sender가 Receiver한테 보낸 packet이 Error 또는 장애가 있다는 응답이다.
5. CASE 1
-> Bit Error가 없는 Segment를 받았을 경우를 본다.
5_1. Sender
-> Wait for call from above
: 현 상태는, 상위 Layer로부터 데이터를 받기 위해 대기하는 단계이다.
-> Event
: rdt_send(data)
: 상위 Layer에서 보낸 Message(data)를 Transport Layer에서 받게 되는 것이다.
-> Actions
: packet_! = make(data, checksum)
: Segment(packet_!)를 만든다.
: 이 때, Bit Error를 감지하기 위해서 checksum을 추가하여 Segment(packet_!)를 만든다.
: udt_send(packet_!)
: 하위 Layer로 Segment(packet_!)를 보낸다.
-> Wait for ACK or NAK
: Receiver로부터 받을 응답을 기다린다.
: 또한, 이 상태는 상위 Layer로부터 data를 받을 수 없는 상태이다.
5_2. Receiver
-> Wait for call from below
: 현 상태는, 하위 Layer로부터 Segment를 받기 위해 대기하는 단계이다.
-> Event
: rdt_rcv(packet_!) && notcorrupt(packet_!)
: 하위 Layer에서 보낸 Segment(packet_!)를 받는다.
: Segment(pakcet_!)는 Bit Error가 발생하지 않았다는 것을 말한다.
-> Actions
: extract(packet_!,data)
: Segment(packet_!)에서 Application Layer로 전달할 Message(data)를 추출한다.
: deliver_data(data)
: Message(data)를 Application Layer로 전송한다.
: packet_@ = make(ACK)
: Sender가 보낸 packet을 잘 받았다는 응답을 해주기 위해서 Segment(packet_@)를 만든다.
: udt_send(packet_@)
: 하위 Layer로 Segment(packet_@)를 보낸다.
5_3. Sender
-> Wait for ACK or NAK
: Receiver로부터 받을 응답을 기다린다.
-> Event
: rdt_rcv(packet_@) && isACK(packet_@)
: 하위 Layer로부터 Segment(packet_@)를 받았는데 ACK 응답을 받았다.
-> Actions
: ACK응답을 받았기 때문에 해야할 일은 없다.
-> Wait for call from above
: 다시, 상위 Layer로부터 Data를 받기 위해 대기하는 단계로 돌아간다.
: 이 상태로 돌아가기 위해서는 반드시 ACK를 수신해야 한다.
-> Sender는 Receiver가 현재의 packet을 정확하게 수신했다는 것을
: 확인하기 전까지는 새로운 데이터를 전송할 수 없다.
: 이러한 방식은 Stop-and-Wait 방식이라고 한다.
'Transport_Layer > $_RDT' 카테고리의 다른 글
6_RDT_2.1_CASE2 (2) | 2014.02.14 |
---|---|
5_RDT_2.1_CASE1 (0) | 2014.02.14 |
4_RDT_2.0_CASE2 (0) | 2014.02.14 |
2_RDT_1.0 (0) | 2014.02.14 |
1_RDT 개요 (2) | 2014.02.14 |