방프리
20.02.25 TCP/IP 연습문제 Chapter 09 본문
01. 다음 중 Time-wait 상태에 대해서 잘못 설명한 것을 모두 고르면?
- a. Time-wait 상태는 서버프로그램에서 생성한 소켓에서만 발생한다.
- b. 연결종료의 Four-way handshaking 과정에서 먼저 FIN 메시지를 전달한 소켓이 Time-wait 상태가 된다.
- c. 연결요청 과정에서 전송하는 SYN 메시지의 전송순서에 따라서 Time-wait 상태는 연결종료와 상관없이 일어날 수 있다.
- d. Time-wait 상태는 불필요하게 발생하는 것이 대부분이므로, 가급적이면 발생하지 않도록 소켓의 옵션을 변경해야 한다.
- a : Time-wait 상태는 서버, 클라이언트 구분 없이 먼저 연결의 종료를 요청하면 해당 소켓은 반드시 Time-wait 상태를 거친다. 하지만 클라이언트의 경우엔 PORT 번호가 유동적으로 할당되기 때문에 굳이 Time-wait에 신경쓸 필요가 없다.
- c : Time-wait은 전송 순서가 아닌 연결 종료과 상관되어 일어난다.
- d : Time-wait은 모든 데이터를 안전하게 송수신하기 위해서 일어난 것이기 때문에 상황에 따라 옵션을 변경을 해야한다.
02. 옵션 TCP_NODELAY는 Nagle 알고리즘과 관련이 있다. 이 옵션을 이용해서 Nagle 알고리즘을 해제할 수도 있는데, 그렇다면 어떠한 경우에 한해서 Nagle 알고리즘의 해제를 고민해 볼 수 있겠는가? 이를 송수신하는 데이터의 특성관 관련해서 설명해보자.
- 용량이 큰 파일 데이터의 전송의 경우 버퍼를 수동으로 꽉 채우지 않더라도 자동적으로 버퍼를 꽉 채워서 전송하기 때문에 굳이 Nagle 알고리즘을 설정할 필요는 없다. 이외에도 버퍼의 크기를 굳이 한번에 크게 보내는 상황이 아니라면 언제든지 해제해도 된다.
'Server&Network > TCP&IP' 카테고리의 다른 글
20.03.08 IOCP를 이용한 콘솔 채팅 프로그램 (0) | 2020.03.08 |
---|---|
20.02.25 TCP/IP 연습문제 Chapter 08 (0) | 2020.02.25 |
20.02.25 TCP/IP 연습문제 Chapter 07 (0) | 2020.02.25 |
20.02.25 TCP/IP 연습문제 Chapter 06 (0) | 2020.02.25 |
20.02.25 TCP/IP 연습문제 Chapter 05 (0) | 2020.02.25 |
Comments