신뢰적 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 |