[네트워크] 비연결성에 대한 나름의 이해

2023. 11. 3. 11:11네트워크

비연결성은 요청과 응답을 하고 커넥션을 끊는 것이다.

TCP를 사용한다는 전제이다.

TCP를 사용하면 3-way handshake로 연결을 확립한다.

비연결성은 이때 한번의 요청과 응답을 하고 끊는다.

이유는 서버가 최소한의 자원만 유지하기 위해서이다.

만약 서버가 계속 연결을 유지한다고 생각해보자. 이때 하나의 서버에 만명의 유저가 동시에 접속한다면 만명의 연결을 유지해야 한다. 이러면 자원 낭비가 심해진다. 따라서 끊어주는 것이다.

하지만 요청을 하고 응답을 받고 나서 끊어준다면 여러번의 요청이 필요하다면 시간이 오래 걸린다는 단점이 생긴다.

또한 하나의 페이지를 요청한다고 해도 거기에는 자바스크립트, 이미지, css 등 수많은 자원이 다운로드된다. 

하나의 자원을 받을 때마다 연결을 맺고 끊고 하면 시간 낭비가 심해진다.

 

이를 해결하기 위해 현재는 persistent connections, 지속 연결을 사용한다.

지속 연결은 하나의 페이지가 다 받아질 때까지는 연결을 유지하는 것이다. 아까 전의 자바스크립트, 이미지, css 등 하나씩 받을때마다 맺고 끊는게 아니라 계속 유지하고 모든 자원들이 다 받아지면 끊는 것이다.

HTTP2, 3에서는 더욱 최적화가 되었다.

 

하지만 동시 대용량 트래픽을 극복하기 위해서는 비연결성보다는 무상태에 더 집중하자.

어떻게 하면 무상태로 설계할 수 있을까에 집중하자. 그렇게 되면 서버만 늘리면 된다.

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61362

 

학습 페이지

 

www.inflearn.com