맛동산이

네트워크) 서버와의 접속 과정 본문

CS/네트워크

네트워크) 서버와의 접속 과정

진ddang 2023. 7. 5. 16:03

본 내용은 “성공과 실패를 결정하는 1%의 네트워크” 를 참고하여 작성하였습니다.



소켓을 만들면 브라우저는 Connect를 호출한다.

이를 통해서 프로토콜 스택은 자기쪽에 소켓을 서버측의 소켓으로 접속하게 된다.

  • 소켓을 생성하고 나서는 사실 아무 정보를 모르기 때문에, IP주소나 포트번호를 프로토콜 스택에 알리는 동작이 접속 동작이다.
  • 클라이언트측의 정보를 서버측에 전달하는것 또한 접속동작의 역할이다.

접속 동작(connect)의 동작

  1. 상대와의 제어정보를 주고 받아 소켓에 저장한다.
  1. 송수신할 데이터를 버퍼에 저장하게 되는데, 이 버퍼메모리 확보 또한 접속 동작

제어정보

제어정보란, 통신상대의 IP주소, 포트번호, 통신동작의 진행상태(응답여부, 경과시간 등) 를 기록한것을 의미한다.

제어정보는 크게 두가지 종류가 있다.

  1. 헤더에 기록하는 제어정보
  1. 소켓에 기록하는 제어정보

헤더에 기록하는 제어정보

TCP 프로토콜에서 IP 프로토콜로 제어가 넘어갈때 헤더를 생성한다.

클라이언트와 서버가 연락을 취하기 위해 주고받는 제어정보

데이터의 접속, 송, 수신, 연결 끊기 각 단계에서 이 제어정보를 부가 하게 된다.

이러한 제어 정보만을 가지고 있으며 패킷의 맨 앞부분에 부여한 제어 정보를 헤더라고 한다.

소켓에 기록하는 제어정보

이 제어정보는 송 수신 동작,진행사항등 다양한 정보가 프로토콜 스택에 기록되고

이렇게 기록된 제어정보를 참조하여 프로토콜 스택이 동작하게 된다.

해당 소켓 기록 제어정보는 프르토콜 스택을 생성한 사람마다 다르다.

접속 동작의 실제

프로토콜 스택이 connect를 호출하게 되면 디스크립터와 서버측의 IP, 포트번호 를 TCP 담당부분에 전달한다.

TCP 프로토콜은 서버측의 TCP 프로토콜과 제어정보를 주고 받게 된다.

이러한 과정은 다음과 같다.

  1. 클라이언트가 TCP 헤더를 생성, IP담당 부분에 전달
  1. IP담당 부분이 패킷을 송신
  1. 서버측의 IP담당이 도달한 패킷을 TCP 담당 부분에 넘겨줌
  1. 전달받은 TCP 헤더에서 동일한 포트번호의 소켓과 연결한다.

    연결이 되면 컨트롤 비트인 SYN을 1로 만든다.

  1. 연결이 완료되면 서버측에서도 클라이언트 측으로 TCP보낼 헤더를 작성한다.
  1. IP담당 부분에 TCP 헤더를 전달한다.
  1. 패킷이 전달받은것을 알리기 위해서 ACK를 1로 만든다.
  1. 클라이언트에 TCP를 전달하고 클라이언트 또한 ACK를 1로 만들고
  1. 다시 서버에 TCP 헤더 제작 하고 전달 하게 된다.

  • SYN이 1이면 접속 성공
  • ACK가 1이면 패킷 수신 성공


Uploaded by N2T

반응형

'CS > 네트워크' 카테고리의 다른 글

네트워크) 소켓을 말소한다.  (0) 2023.07.06
네트워크) 데이터의 송, 수신  (0) 2023.07.06
네트워크) 소켓 생성  (0) 2023.07.05
네트워크) 프로토콜 스택  (0) 2023.07.05
네트워크) DNS서버 조회  (0) 2023.07.05