TCP(Transmission Control Protocol)
- 전송 제어 프로토콜
- 클라이언트에서 데이터를 전송하면 서버에서 데이터가 잘 도착했는지 응답을 해줘서 데이터 전달이 보증된다.
- 클라이언트에서 데이터를 서버로 전송할때 데이터의 순서가 보장된다.
TCP/IP 패킷 정보
- 송신자 IP 주소, 수신자 IP 주소, 송신자 포트 번호, 수신자 포트 번호, 패킷에 포함된 데이터, 그리고 패킷 길이 등의 정보가 포함된다.
- 기존 IP패킷정보의 한계인 비신뢰성과 비연결성을 TCP 정보를 추가함으로써 한계를 극복했다.
TCP/IP 패킷 전달 과정
1. 어플리케이션 프로그램(클라이언트)이 Socket 라이브러리를 사용해서 운영체제쪽에 "hello world"라는 메세지를 넘긴다.
2. 운영체제에서는 해당 메세지에 TCP 정보를 씌우고, IP정보를 또 씌운다.
3. TCP/IP 패킷이 생성된다.
4. 서버에 데이터가 전달된다.
TCP 3 Way Handshake 참고 사항
- 연결할 상대와 연결되기 전에 가상 연결을 해서 패킷으로 보내서 확인하는 동작이다.
- 논리적으로 연결이 된거지 실제로 연결이 된것은 아니다.
TCP 3 Way Handshake 동작 방식
1. 클라이언트가 SYN(접속 요청)이라는 메세지를 보내 서버에게 접속요청 수락을 요청한다.
2-1. 서버에서는 클라이언트로부터 요청 받은 접속요청을 수락하겠다고 ACK(요청 수락)라는 메세지를 클라이언트에게 보낸다.
2-2. 서버 또한 클라이언트에게 접속을 수락해달라고 SYN(접속 요청)을 보낸다.
3. 클라이언트 또한 서버로부터 받은 접속요청을 수락하겠다고 ACK(요청 수락)를 보낸다.
'Network' 카테고리의 다른 글
[Network] IP란? (0) | 2023.04.12 |
---|