728x90
[네트워크] 3 - 1. Transport 트랜스포트 계층
Multiplexing / Demultiplexing
- Multiplexing : Socket으로부터 받은 데이터에 헤더를 추가한다.
- Demultiplexing : 받은 세그먼트를 올바른 Socket에 전달한다.
TCP Soket Connection - oriented
- UDP는 목적지 Port 번호만 같으면 같은 Socket으로 간다.
- TCP는 목적지 IP, 목적지 Port번호, 소스 IP , 소스 Port번호 4가지가 모두 같아야 같은 Socket으로 가고,
하나라도 다를경우 다른 Socket으로 간다. (1:1)
TCP Segment와 UDP Segment의 차이
- 실제 Data의 크기는 Header보다 훨씬 크다
- 세그먼트 Header에는 목적지, 소스 포트번호가 적혀있다.
- TCP는 UDP에 비해 하는일이 많으므로 헤더에 그밖의 다른 것들이 있다.
RDT : Reliable Data Transfer
- Transport Layer은 RDT Protocol로 신뢰성 있는 전송을 하는 Reliable Channel 이지만 Network Layer는 Unreliable Channel이다.
- 비신뢰성 채널에서 메세지 Error와 Loss가 생길 경우 어떻게 해결을 하는가? (= Checksum, Timer 등등)
- 만약 Network Layer에서 신뢰적인 전송을 한다면, Tranport Layer에선 보내고 받는것 빼곤 할 일이 없다.
Packet Errors 를 위해 필요한 메카니즘
- Error Detection : 체크섬 비트를 추가한다.
- Feedback : 수신자가 잘 받았으면 ACKs, 못받았으면 NAKs 라는 피드백을 보낸다.
- Retransmission : 송신자는 수신자의 피드백을 가지고 NAK의 피드백이 오면 Packet을 재전송한다.
- Sender : 피드백을 기다린다.
Packet에 Sequence #를 추가한다.
수신자에게 NAK가 오면 재전송(udt_send(sndpkt)) 한다. 파란색글씨 - Receiver : Packet의 에러가 있으면 (corrupt) NAK를 보내고, 에러가 없으면 (notcorrupt) ACK를 보낸다.
패킷이 중복된 패킷인지 체크한다.
- 이렇게 패킷이 하나하나 보내진다고 가정하면(실제론 아님) ACK는 0,1으로만으로 피드백을 해결할 수 있다.
- 중복으로 오는 Packet이 있다면 수신자입장애서는 처분한다.
Packet Loss를 위해 필요한 메카니즘
- Timer : 수신자로부터 피드백이 오는데 걸리는 최대 시간을 정해 놓는다. 정해진 시간안에 안오면 다시 보낸다.너무 길어도 짧아도 비효율적이다.
RDT 정리
- Unreliable한 Channel에선 패킷 error , loss가 일어난다.
- Packet error를 위한 메카니즘 : Error detection, feedback, retransmission
- Packet loss를 위한 메카니즘 : Timeout!
- 지금까지는 data packet이 하나가 전송되고 피드백이 완료되어야 다음 패킷이 출발한다고 간단하게 배웠지만,
실제로는 Pipline 기법으로 data packet을 여러게 전송한다.
728x90
반응형
'📗 Computer Science' 카테고리의 다른 글
마이크로프로세서 용어정리 (0) | 2020.12.07 |
---|---|
[소프트웨어 공학] 3. UML Class Diagram (0) | 2020.09.28 |
[소프트웨어 공학] 2. UML Overview (0) | 2020.09.12 |
[네트워크] 2 - 1. Application Layer 응용계층 (0) | 2020.09.08 |
[소프트웨어 공학] 1. Software Development Process (0) | 2020.09.05 |