Chapter 1 : Introduction > 클라이언트는 가장 자리에 있고 가운데는 라우터라는 것들이다. A closer look at network structure: > 코어에는 라우터들이 있다. The network edge: ![](https://im
Caravan analogy > 패킷은 한 묶음이기 때문에 앞에 일부분이 도달했다고 다른데 갈 수 없다. 나머지 부분이 올때까지 기다린다. Chapter 2
소켓이란 OS에서 제공해주는 API의 일종이다.TCP 타입과 UDP타입, 두 타입이 있다.bind()는 특정 포트번호와 연결하는 것이다.클라이언트에서 bind를 쓰지 않는 이유는, 클라이언트는 특정 포트에 관계없이 아무거나 써도 되기 때문이다.클라이언트의 요청이 들어올
각 레이어는 상위 레이어에게 서비스를 제공하고 하위 레이어에게 서비스를 제공받는다.UDP는 아무것도 안해주는 것 같지만, 데이터 에러 체크 (에러가 나면 application 레이어에게 전달하지 않는다), demultiplexing을 해준다.data가 unreliabl
신뢰성은 보장이되나 효율이 아주 안좋았다.한꺼번에 여러개를 보내니 성능이 좋아진다.한번에 얼마나 많이 보내냐의 크기가 window size이다.ACK 11은 11번까지 잘 받았다는 뜻이다.각 패킷에 대해 타이머를 가지고 있는데 만약 시간 초과가 나면 윈도우 안에 패킷을
full duplex는 데이터가 양방향으로 진행된다는 것이다. flow control은 receiver가 받아들일 수 있는만큼만 보내야 한다.Application layer에서는 messageTransport layer(tcp)에서는 segmentNetwork laye
sender가 receiver의 용량을 고려해서 보내는 것을 의미한다. 즉 receiver에 달려있기 때문에 receivr-driven이다.빈 공간이 얼마나 있는지 정보를 TCP에 담아서 보낸다. 만약 처음 sender가 보넀을때 receiver가 버퍼에 자리가 없다고
TCP flow control데이터를 조금씩 보내보는 것이다. 괜찮으면 양을 늘려서 보낸다. 이때는 exponential하게 양을 늘리다가 threshhold를 만나면 linear하게 늘리면서 보낸다. 그러다가 어느 순간 패킷이 안돌아오면 절반으로 확 떨어뜨린다.확 떨
큐에 기다리는 것이 delay이고, 큐에 들어가지 못하고 버려지는 것이 loss다. tcp connection을 재사용하냐 안하냐의 차이다. 디폴트는 persistent HTTP이다. 3-way-handshake에서 마지막 세번째에는 데이터를 담아 보낸다. UDP는 4
데이터 부분에 TCP/UDP가 쏙 들어간다.source ip address는 보내는 사람의 주소다TTL (time to live)은 라우터를 거칠때마다 1씩 감소하는 숫자다. 0이되면 패킷이 버려진다. 루프를 도는 것을 방지하기 위함이다.upper layer는 들어가는
게이트웨이 라우터가 본인의 유일한 주소로 바꿔서 내보낸다.하지만 이렇게되면 라우터를 나갔다가 다시 들어올 때 안에 패킷을 다 까봐야 원래 목적지를 찾아갈 수 있다. 좋은 해결책이 아니다.동적으로 네트워크 서버로부터 IP 주소를 얻게 해주는 프로토콜이다.새롭게 네트워크에
네트워크 상에서 증상을 알기 위해 컨트롤 메시지를 운반하기 위한 프로토콜. 네트워크의 이벤트를 알려주기 위함이다. 네트워크 진달을 위해서 많이 쓰인다.ipv6는 안쓰일 가능성도 꽤 있다.예전 버전의 라우터를 지나갈때는 예전버전에 맞게 패킷을 바꿔줄 필요가 있다. 과도기
갱신이 일어난다.
각 조그마한 네트워크는 각자 자치권을 가지고 내부 알고리즘을 결정한다. 그래도 Autonomous Systems라고 한다. AS들 사이에 동작하는 라우팅 알고리즘을 ineter-as 알고리즘이라 한다. 각 AS는 고유한 번호를 부여받는다.AS내에서는 최단 경로지만, A