티스토리 뷰
TCP/IP는 인터넷에서 컴퓨터 간에 데이터를 주고받는 데 사용되는 표준 프로토콜이다.
이는 TCP(Transmission Control Protocol)와 IP(Internet Protocol)의 조합으로 이루어져 있다.
여기서 TCP는 IP 프로토콜 위에서 동작하는 전송 제어 프로토콜이다.
TCP는 데이터의 정확성과 순서를 보장하며, 연결 지향적인 프로토콜로서, 3-way handshake와 4-way handshake 등의 프로토콜을 이용해 연결을 설정하고 해제한다.
IP는 인터넷상에서 컴퓨터와 라우터 등의 장치들이 서로 정보를 주고받을 수 있게 해주는 프로토콜이다. IP는 데이터그램을 주고받으며, IP 패킷은 출발지와 목적지 IP 주소를 가지고 있다.
TCP/IP는 인터넷에서 데이터를 전송하는 데 사용되는 주요 프로토콜이다.
이를 통해 인터넷 사용자는 다양한 서비스를 이용할 수 있게 된다.
위에서 설명드린 연결 방식의 3-way handshake / 4-way handshake에 대해서도 간단히 설명하자면,
* 3-way handshake(SYN-SYN/ACK-ACK)
TCP/IP 프로토콜을 사용하여 통신을 시작할 때, 클라이언트와 서버 간에 연결을 설정하기 위해 3-way handshake라는 과정을 수행한다. 3-way handshake는 다음과 같은 세 단계로 이루어진다.
1. 클라이언트는 서버에게 연결 요청을 보낸다. 이때, SYN (Synchronize) 플래그가 설정된 TCP 패킷을 서버에 보내며, 이를 SYN 패킷이라고 한다. SYN 패킷에는 클라이언트의 초기 시퀀스 번호도 포함된다.
2. 서버는 클라이언트의 연결 요청에 대한 응답으로, SYN/ACK (Synchronize/Acknowledge) 플래그가 설정된 TCP 패킷을 클라이언트에게 보낸다. 이를 SYN/ACK 패킷이라고 한다. SYN/ACK 패킷에는 서버의 초기 시퀀스 번호와 클라이언트의 시퀀스 번호+1 값이 포함된다.
3. 클라이언트는 서버로부터 SYN/ACK 패킷을 받으면, ACK (Acknowledge) 플래그가 설정된 TCP 패킷을 서버에게 보내어, 연결 요청에 대한 응답을 완료한다. 이를 ACK 패킷이라고 한다. ACK 패킷에는 클라이언트의 시퀀스 번호+1 값이 포함된다.
이러한 3-way handshake 과정을 통해, 클라이언트와 서버는 상호 간에 연결을 설정하고, 데이터를 안정적으로 전송할 수 있는 상태가 된다.
* 4-way handshake(FIN-ACK-FIN-ACK)
TCP/IP 프로토콜을 사용하여 통신을 종료할 때, 클라이언트와 서버 간에 4-way handshake라는 과정을 수행한다. 4-way handshake는 다음과 같은 네 단계로 이루어진다.
1. 클라이언트는 서버에게 연결 종료를 요청하는 FIN (Finish) 플래그가 설정된 TCP 패킷을 보낸다. 이를 FIN 패킷이라고 한다.
2. 서버는 클라이언트의 연결 종료 요청에 대한 응답으로, ACK (Acknowledge) 플래그가 설정된 TCP 패킷을 클라이언트에게 보낸다. 이때, 이전에 전송한 데이터가 모두 처리되었다는 것을 나타내기 위해, 마지막으로 보낸 데이터의 시퀀스 번호+1 값을 ACK 패킷에 포함시킨다.
3. 서버는 이제 자신의 측면에서 데이터를 모두 보내고 처리했음을 나타내기 위해, FIN 플래그가 설정된 TCP 패킷을 클라이언트에게 보낸다. 이때, 이전에 전송한 데이터가 모두 처리되었다는 것을 나타내기 위해, 마지막으로 보낸 데이터의 시퀀스 번호+1 값을 FIN 패킷에 포함시킨다.
4. 클라이언트는 서버의 연결 종료 요청에 대한 응답으로, ACK 플래그가 설정된 TCP 패킷을 서버에게 보낸다. 이때, 서버가 전송한 FIN 패킷의 시퀀스 번호+1 값을 ACK 패킷에 포함시킨다.
이러한 4-way handshake 과정을 통해, 클라이언트와 서버는 안전하게 연결을 종료하고, 모든 데이터 전송이 완료되었음을 확인할 수 있다.
'IT' 카테고리의 다른 글
Static Routing (0) | 2023.05.10 |
---|---|
SNMP(Simple Network Management Protocol) (0) | 2023.05.09 |
NMS(Network Management System) (0) | 2023.05.07 |
L4 Swtich 개념 및 로드밸런싱 방식 (0) | 2023.05.06 |
RAID(Redundant Array of Independent Disks) (0) | 2023.05.05 |
- Total
- Today
- Yesterday