[Tranport Layer 03] TCP의 연결 설정 Flow Control흐름제어란 receiver가 overflow되어 buffer에 넘치게 받은 정보를 받지 않도록 하며 receiver가 자신이 overflow되지 않을 만큼만 sender에게 알려주고, sender가 흘러넘치지 않은 정도의 정보로만 data를 전송하는 것을 목적으로 한다.receiver의 application이 갑자기 다른 일을 하느라 receiver의 buffer 빈 공간이 안만들어질 수 있다. 또는 reciver가 데이터를 받는 속도가 application이 data를 읽어가는 속도보다 빠를때 buffer가 가득 차는 상황이 발생할 수 있다. 이러한 정보는 recieve window라는 필드를 통해서 전송한다. (=rwnd field) TCP Connection management..
썸네일 [Transport Layer 02] TCP TCP의 특징TCP는 하나의 sender당 하나의 receiver가 소통하는 프로토콜이다. 또한 checksum을 통해 reliable을 보장하나, 이는 보안을 위한 목적이라기 보다는 정말 약한 확인정도에 불과하다. TCP는 누적 ACK를 사용해 정확히 받은 가장 마지막 seq numb만 전송하고, stop and wait 기법이 아닌 파이프라인 기법을 사용한다. 또한 연결 설정을 진행하며 data가 buffer의 size를 넘치지 않도록 flow control과 congestion control 을 사용한다. 또한 양방향으로 data전송이 가능한 full duplex data이다.   TCP segment structuresequence number : data부분에 들어가는 첫번째 byte에 들어가는..
썸네일 [Transport Layer 01] Pipelining, Go-Back-N, Selective repeat rdt 2.0, 2.1, 2.2, 3.0 을 배웠다. rdt의 stop and wait protocol의 경우 매우 비효율적이다. 미국의 동부 끝과 서부 끝에서 패킷을 주고받는다고 생각해볼때 하나의 패킷을 보내고, ACK가 올때까지 기다려야한다.다시 말해 물리적인 거리가 매우 긴 곳에서 stop and wait protocol을 이용해서 패킷을 주고받으면 propagation delay가 매우 클 것이기에 RTT가 길어져서 오랜 시간을 기다려야할것이다. 따라서 최악의 performance를 가질 것이다. Pipelining그러면 데이터 패킷을 하나 보내놓고 기다리지 않고 데이터 패킷을 여러 개 보내놓고 기다리면 좀 낫지 않을까?utilization을 구해서 비교해보자. 파이프라인이 적용되지 않는 util..