기초 네트워크 공부를 통해 low level 트러블 슈팅을 위한 베이스를 다진다.
TCP/IP Stack은 크게 2분류로 나뉨
Trasport ~ Link layer
네트워크 기능을 지원하는 것을 목적으로함
Application layer
네트워크 기능을 사용하는데 목적이 있음
프로세스 간 안정적이고 논리적인 통신 통로를 의미함. TCP/IP 방식으로 통신하려면 두 컴퓨터는 connection을 먼저 맺어야한다. connection을 열 때 3way handshake, 닫을 때는 4way handshake
이를 connection-oriented 방식이라고 한다.
TCP/IP프로토콜로 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
[STEP 1] - 먼저 접속 요청하기
A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.
[STEP 2] - 접속 요청 받고 수락하기
B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
[STEP 3] - 연결 확정
A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.위와 같은 방식으로 통신하는것이 신뢰성 있는 연결을 맺어 준다는 TCP의 3 Way handshake 방식이다.
중간요약하자면, TCP/IP가 데이터의 신뢰성을 보장한다는데, 이걸 어케 보장하냐?
통신하려는 컴터 사이에 3way hand shake라는 인증과정을 거치기 때문임!!
인터넷 주소와 포트 넘버를 합친 개념! 즉, 인터넷에 존재하는 포트를 고유하게 식별하기 위한 주소
Connection은 고유하게 식별할 수 있어야하는데 한쌍의 소켓이 connection을 고유하게 식별할 수 있음! 요청하는 쪽이 source socket, 요청받는 쪽은 destination socket