썸네일 [Network Layer 04] Control Plane 2 이제껏 우리가 배웠던 라우터는 다 이상적인 상황의 라우터였다. 실제로는 다르다. 1. 이상적인 모델에서는 네트워크 내의 모든 목적지와 경로를 라우터가 완벽하게 알고 있고, 이를 기반으로 최적의 경로를 계산할 수 있다고 가정한다. 그러나 실제 네트워크는 매우 방대하다. 실제 인터넷은 수십억 개의 목적지를 포함하며, 이러한 모든 목적지에 대한 정보를 모든 라우터가 알고 있을 수는 없다. 2. 이상적인 모델에서는 모든 라우터가 동일한 관리 하에 있으며, 모든 라우터가 동일한 정책과 프로토콜을 사용하여 협력한다고 가정한다. 그러나 실제 네트워크는 여러 조직, 기업, 정부 기관 등 다양한 주체들이 관리하므로 동일 정책을 사용하지 않는다.  인터넷의 확장 가능한 라우팅 접근 방식에서는 "자율 시스템(Autonomo..
[Network Layer 03] Control Plane 이전 단원에서 routing table을 참조해서 forwarding 하는 과정에 대해 배웠다.이번 단원에는 routing table을 어떤 방식으로 만드는지 알아보겠다.  라우팅 테이블을 생성하는 주요 방식은 다음과 같은 2 가지이다.전통적인 라우팅 프로토콜Link state 프로토콜(OSPF): 네트워크 토폴로지 정보를 교환하여 최단 경로 계산Distance Vector 프로토콜(RIP): 이웃 라우터의 거리 정보를 교환하여 경로 결정이 경우 router마다 네트워크 상황을 다르게 해석할 수 있다. 전통적인 프로토콜에서 각 라우터는 독립적으로 네트워크 상황을 판단하고 경로를 결정한다. 이때 ISP(인터넷 서비스 제공자)마다 다른 방식으로 최적 경로의 비용(cost)을 계산할 수 있다. 비용 계산에 고..
썸네일 [ Network Layer 02] Data Plane NAT : network address translationNAT는 앞서 말했다싶이 IPv4만을 사용해서 IP 주소가 부족한 상황에서 생겨난 개념으로 하나의 IPv4 주소를 local network에 있는 모든 디바이스 내에서 공유하는 개념을 말한다. 외부에서 볼때는 한 지점이지만 실제로 local device는 여러개를 사용하고 있다. NAT는 외부에서 쓰는 하나의 public한 IP 주소가 있고, 내부에서 사용하는 private한 주소가 있는데, 내부 private한 진짜 목적지까지를 구분하기 위해서는 포트번호를 사용한다. 사실상 포트번호는 device를 구분하기 위해서 사용되지 않고 프로세스를 구분하기 위해 사용되는데 규칙을 위반한 것이긴 하다. 들어온 패킷의 IP 주소는 내부의 어떤 디바이스로 연..
[ Network Layer 01] Data Plane Transport Layer는 Process to Process communication 서비스를 제공하듯이, Network Layer는 Computer to Computer Service를 제공한다. 이번 글에서는 IP라는 핵심 네트워크 계층의 프로토콜은 어떤 서비스 모델을 채택하고 있는지를 구체적으로 살펴볼 계정이다.  Network-layer services and protocols이전에 tranport layer에서는 end-system 의 process부터 다른 end-system의 process를 다루었다. 이 Process to Process communication 이 가능하기 위해서는 Process가 실행되는 컴퓨터에서 상대 컴퓨터까지의 통신이 가능해야한다. 이 서비스를 제공하는 것이 바..
썸네일 [Tranport Layer 03] TCP의 연결 설정 Flow Control흐름제어란 receiver가 1대 1 차원에서 overflow되어 buffer에 넘치게 받은 정보를 받지 않도록 하며 receiver가 자신이 overflow되지 않을 만큼만 sender에게 알려주고, sender가 흘러넘치지 않은 정도의 정보로만 data를 전송하는 것을 목적으로 한다.receiver의 application이 갑자기 다른 일을 하느라 receiver의 buffer 빈 공간이 안만들어질 수 있다. 또는 receiver가 데이터를 받는 속도가 application이 data를 읽어가는 속도보다 빠를때 buffer가 가득 차는 상황이 발생할 수 있다. 이러한 정보는 recieve window라는 필드를 통해서 free space정보를 전송한다. (=rwnd field)R..
썸네일 [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 structure ACK number : 다음 예상되는 byte의 sequence number. ..
썸네일 [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..