신뢰적 Data 전송

* TCP 기준

send

- rdt_send() : Process가 TCP에게 Message 보낸다. 

  Application이 TCP 에게 Message 준다. reliable data transfer (신뢰적인 데이터 전송)

- udt_send() : TCP가 IP에게 Segement 준다. (비신뢰적인 구간)

  TCP는 받은 메시지를 Segement를 만든다. unreliable data transfer(비신뢰적)

 

receive

- rdt_rcv() : IP가 TCP에게 Segement 보낸다. (신뢰적인 구간)

- deliver_data() : TCP가 Process에게 message를 준다. TCP가 segement에서 메시지를 추출 (소켓 통해서 준다.)

 

*신뢰적인 데이터 전송 : 데이터가 반드시 온전하게 전달, 순서가 맞아야 한다.

 

◾ state machine

- event : 나한테 일어나는 것 (내가 하는것 X)

- action : 내가 하는 것


rdt 1.0

 : 신뢰적인 채널에서 rdt

 

◾ TCP 하위 채널이 완전이 신뢰적인 경우

• no bit error : 비트 에러가 없음
• no loss of packets : 패킷 손실이 없음

 

◾ FSM
• 송신측은 상위 layer의 data를 받아 하위 채널로 packet을 전달
• 수신측은 하위 채널에서 packet을 수신하고 data를 상위 layer로 전달

Sender 

• state

 - 프로세스가 TCP를 호출하기를 기다린다. 

• event

 - rdt_send(data) : Process > TCP [message] 전달 (data=message)

• action

 - packet = make_pkt(data) : message에서 패킷 생성 (packet = segement)

 - udt_send(packet) : TCP > IP [packet] 전달

→ state 변화

 - 패킷 전송후 다시 Process가 TCP 호출하기를 기다린다.

 

Receiver

• state

 - 하위 채널이 TCP를 호출하기를 기다린다.

• event

 - rdt_rcv(packet) : IP > TCP [packet] 전달

• action

 - extract (packet, data) : 수신 패킷에서 data 추출

 - deliver_data(data) : TCP > Process [data] 전달

→ state 변화

 - 데이터를 보내고 난 후 하위채널이 TCP를 호출하기를 기다린다.

'네트워크 공부 기록' 카테고리의 다른 글

EIGRP (Enhanced Interior Gateway Protocol)  (0) 2022.01.26
Static routing + RIP 실습  (0) 2022.01.26
Transport Layer  (0) 2022.01.18
OSPF 실습  (0) 2022.01.18
OSPF  (0) 2022.01.18

+ Recent posts