TCP/IP

jiholee·2021년 12월 27일
0

cs

목록 보기
2/7
post-thumbnail

간단한 웹 동작 방식

  • 사용자가 브라우저에 URL을 입력
  • 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음
  • HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성
  • TCP/IP 연결을 통해 HTTP요청이 서버로 전송됨
  • 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메세지를 생성함
  • TCP/IP 연결을 통해 요청한 컴퓨터로 전송
  • 도착한 HTTP 응답 메세지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨

TCP (전송 제어 프로토콜)

IP의 비연결지향적이며 신뢰할 수 없는 문제를 해결해주는 것이 TCP이다. 데이터의 순서가 올바르게 전송 갔는지 확인해주며 대화를 주고받는다. 확인 절차를 걸치며 신뢰성 없는 IP에 신뢰성을 부여한 프로토콜 👉 TCP


흐름제어: endsystem - endsystem

송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법.

Flow Control은 receiver가 packet을 지나치게 많이 받지 않도록 조절하는 것이다.

→ receiver가 sender에게 현재 자신의 상태를 feedback 한다

TCP의 흐름제어 방식은 Window Sliding 방식을 사용한다. 이러한 Window Sliding 방식을 실용화하여 사용되는 알고리즘으로는 Stop&Wait, Go-Back-N, Selective Repeat(SR) 방식이 있다.

  • Stop and Wait : 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법

  • Go-Back-N : GBN은 누적 ACK (Accumulate ACK) 방식을 택한다. 누적 ACK란 수신자 측에서 받은 n을 포함하여, n까지의 pkt에 대한 확인 응답이란 뜻이다.

  • Selective Repeat : SR 프로토콜은 오류가 발생한 패킷만 재전송함으로써 불필요한 재전송을 피한다.
    SR은 순서가 틀리게 온 메시지는 버퍼에 저장한 다음, 올바른 순서의 패킷이 오면 버퍼에서 이전에 받았던 메시지들을 꺼내서 순서를 조합한다.

3 way handshake (클라이언트-서버 연결시)

  • 클라이언트 -> 서버로 연결요청(sync)을 하고 클라이언트는 sync_sent 상태가 됨

  • 서버는 요청을 수락(sync+ack)하고 서버는 sync_received 상태가 됨

  • 클라이언트가 서버에 수락확인(ack)을 보냄

4 way handshake(연결 종료시)

주의

  • 반드시 서버만 CLOSE_WAIT 상태를 갖는 것은 아니다.
  • 서버가 먼저 종료하겠다고 FIN을 보낼 수 있고, 이런 경우 서버가 FIN_WAIT1 상태가 된다.
  • 누가 먼저 close를 요청하느냐에 따라 상태가 달라질 수 있다.

실제 카카오 입사 시험 기출문제이기도 하고 면접에서 자주 물어보는 주제이니 자주 복습하기 🥕


참고사이트
cs 기술면접 질물 - 네트워크
TCP란 무엇인가?

0개의 댓글