인터넷 프로토콜 스택의 4계층
이번 포스팅에서는 TCP 프로토콜에 대해 알아보려 한다. 인터넷에서 컴퓨터들이 서로 통신을 하는데 있어서 여러 프로토콜이 있다. 그 중 대표적인 프로토콜이 이전 포스팅에서 다룬 IP 프로토콜이다.
그리고 이러한 수많은 프로토콜이 모여 통신을 하게 되고 이들은 용도에 따라 서로 계층 관계로 이루어져 있다.
계층은 그림에서 처럼 크게 4계층으로 나눌 수 있다.
- 애플리케이션 계층
- 전송 계층
- 인터넷 계층
- 네트워크 인터페이스 계층
전송을 할때는 위에서 아래로 내려가고 수신의 경우 위로 올라간다.
하나씩 알아보면 우선 애플리케이션 계층에는 웹 브라우저
나 채팅 프로그램
, 네트워크 게임
등과 같이 인터넷을 통해 정보를 주고 받을 수 있는 프로그램이 있다. 이러한 프로그램들은 Socket 라이브러리
를 통해 OS계층에 메시지를 전달한다.
그 다음 OS는 전달받은 정보를 TCP
프로토콜을 활용하여 TCP 정보
를 생성한다. 그리고 TCP 정보를 IP
프로토콜을 통해 IP 패킷
으로 생성한다. 그리고 이렇게 생성된 IP 패킷을 네트워크 인터페이스 계층에서 LAN 카드
를 통해 인터넷 상으로 전송한다. (수신은 위의 과정이 역순으로 이루어진다.)
IP 패킷 정보
IP 프로토콜은 같은 IP 주소를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우는 구분이 불가능 했다. 그래서 TCP 프로토콜을 활용하여 추가 정보를 넣어준다.
TCP 프로토콜 특징
TCP(Transmission Control Protocol) 프로토콜은 전송 제어 프로토콜로 이름 그래도 전송을 제어하는 기능을 담당한다. TCP는 크게 3가지 특징이 있다.
- 연결지향 - TCP 3 Way Handshake(가상 연결)
- 데이터 전달 보증
- 순서 보장
TCP 3 Way Handshake
TCP 3 Way Handshake는 TCP/IP 프로토콜을 이용해 통신하는 응용프로그램이 보내는 데이터의 정확한 전송을 보장하기 위해 사전에 세션을 수립하는 과정을 의미한다.
- 클라이언트에서 서버로
SYN
메시지를 보낸다. - 서버가
SYN
를 받으면 클라이언트에게ACK
메시지를 보낸다. - 클라이언트가
ACK
메시지를 받으면 다시 서버로ACK
메시지를 보낸다. - 이후 연결이 됬다고 판단하고 데이터를 전송한다. (통신이 가능한 상태를 말한다. 실제 물리적 연결이 이루어지지 않는다.)
데이터 전달 보증
데이터 전달 보증은 클라이언트가 서버로 데이터를 보내면 서버가 데이터를 수신했음을 클라이언트에게 알려준다. 이를통해 데이터가 전달 됬음을 알 수 있다.
순서 보장
순서보장은 서버가 데이터를 수신하였는데 1번 패킷
다음 2번이 아닌 3번 패킷
이 도착 하였다면 3번 패킷
부터 이후 패킷을 모두 버리고 2번 패킷
부터 다시 요청한다. 이를 통해 순서가 보장될 수 있다.
Comments powered by Disqus.