diff --git "a/chapter2/\352\271\200\353\213\244\354\230\201.md" "b/chapter2/\352\271\200\353\213\244\354\230\201.md" new file mode 100644 index 0000000..647f0f5 --- /dev/null +++ "b/chapter2/\352\271\200\353\213\244\354\230\201.md" @@ -0,0 +1,34 @@ +### 소켓의 역할은 무엇인가? +> IP 주소, 포트 번호와 같이 제어 정보가 기록되어있어, 프로토콜 스택이 다음에 무엇을 할지 판단할 수 있도록 한다. + +### 프로토콜 스택에 송신 데이터를 주면, 버퍼 메모리에 저장하는 이유는? +> 받은 데이터를 바로 보내면, 데이터의 송수신 동작이 지나치게 많이 일어나 네트워크 효율이 떨어질 수 있기 때문이다. +> 따라서 MSS에 가까운 길이에 이르기까지 저장한 뒤 송신 동작을 한다. + +### 그러면, 무조건 MSS에 가까워야 송신할 수 있는가? +> 저장되기까지 기다리는 시간이 있어 송신 동작이 지연될 수 있다. +> 따라서 버퍼에 데이터가 모이지 않아도, 일정 시간이 경과하면 패킷을 전송한다. + +### ACK 번호란? +> 데이터 도착 여부를 알리기 위해 수신측에서 송신측에 전달하는 것이다. +> 수신 완료한 바이트에 1을 더한 값을 보낸다. + +### 윈도우 제어란? +> 한 개의 패킷을 보낸 후 ACK 번호를 기다리지 않고, 차례대로 연속해서 복수의 패킷을 보내는 방법이다. +> ACK 번호가 돌아올 때까지 기다릴 때 생기는 시간 낭비가 생기지 않는다. + +### 윈도우 제어에서 수신 능력을 초과하도록 송신하지 않기 위해 어떻게 하는가? +> 윈도우 필드에 윈도우 사이즈를 작성해서, 수신측에서 송신측에 수신 가능한 데이터 양을 통지합니다. + +### ARP란? +> 브로드캐스트 구조를 사용해 라우터의 MAC 주소를 조사한다. + +### 이더넷이란? +> 다수의 컴퓨터가 여러 상대와 자유롭게 적은 비용으로 통신하기 위해 고안된 통신 기술이다. + +### TCP 보다 UDP가 효율적인 경우? +> 데이터가 한 개의 패킷에 수용할 수 있을 만큼 길이가 짧은 경우에 효율적이다. +> 데이터를 보내고, 도착하지 않은 경우 한 번 더 보낼 때, 패킷이 한 개 뿐이므로 낭비가 아니다. + +### 음성이나 영상의 데이터를 보낼때도 UDP를 사용하는 이유? +> TCP를 사용하면, 다시 보낼 때 시간이 많이 걸려 재생 타이밍이 맞지 않을 수 있기 때문입니다.