접속 동작은 데이터 송수신 준비의 의미와 같다.
소켓을 만들고 나서 애플리케이션은 connet
를 호출합니다.
이더넷(?)이나 통신회선은 항상 연결되어 있으므로 신호를 언제나 보낼 수 있습니다.
하지만 소켓을 만든 직후에 애플리케이션에서 데이터 송신의뢰가 오면 프로토콜 스택은 어떻게 될까?
소켓을 만든 직후의 상황
송신 의뢰가 와도 데이터를 어디로 보내면 좋을 지 알 수 없습니다.
socket
이라는 명령어를 호출하여 소켓을 만드는 동작만으로는 프로토콜 스택에는 아무것도 전달되지 않기 때문입니다.서버측에서는 서버 기동 직후에 소켓을 이미 만들어 놓고 클라이언트의 접속을 기다리도록 만들어져 있습니다.
저의 IP 주소는 000이고, 포트 번호는 00입니다. 데이터 송수신을 하고 싶은데 어떠신가요?
접속 동작의 첫 번째는 통신 상대와 제어 정보를 주고 받아서:
제어정보는 데이터 송수신 동작을 하기위한 정보입니다.
데이터 송수신 동작을 실행할때는 송수신 하는 데이터를 일시적으로 저장하는 메모리 영역이 필요합니다.
버퍼 메모리
라고 부릅니다.제어정보에는 크게 나누어 두 종류가 있습니다.