TCP 란
- TCP 전송제어 프로토콜 (Transmission control protocol)
- 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜
- 데이터를 전송하기 전에 데이터를 전송을 위한 연결을 만드는 연결지향 프로토콜이다.
- 데이터는 네트워크 선로를 통해 전달되는 과정에서 손실되거나 순서가 바뀌어서 전달될 수 있는데 TCP 프토코콜은 손실을 검색하여 이를 교정하고 순서를 재조합할 수 있도록 해준다.
TCP 특징
-
연결지향 (3way handshake)
- IP프로토콜은 패킷을 목적지까지만 보내는일만하기 때문에 네트워크 상에서 발생할 수 있는 데이터 누락을 방지하지 못한다 이에 TCP 연결 프로토콜을 도입하여 목적지 서버에 연결이 되어있는지 먼저 연결을 확인한 후 데이터 전송을 진행함.
- 클라이언트측에서 SYN 을 서버로 보냄
- 서버는 SYN과 ACK 정보를 클라이언트 요청측으로 보냄
- 클라이언트는 이때 ACK 정보를 서버로 보냄
- 연결이 됐다라고 판단하여 전송데이터를 서버로 보냄.
-
데이터 전달 보증
- 클라이언트측 데이터 전달 후 서버측에서는 데이터를 받았을시 그 응답을 클라이언트측으로 전송함.
-
순서 보장
- TCP 패킷 송신이 있을 경우 한번에 덩어리로 전송하는것이 아닌 조각조각 나누어 서버로 전송하게 된다 이때 TCP 헤더에는 나누어진 조각의 순서를 헤더로 갖게되어 서버측에서는 데이터를 순서에 맞게 전송받을 수 있다.
TCP 헤더 구조
TCP 패킷 내부에는 전송제어 순서 검증정보 등이 포함되어 있다.
UDP 란
TCP 와 다르게 데이터를 패킷으로 나누고 반대편에서 재조립하는 과정을 거치지 않으며 서버와 연결과정 없이 데이터를 보내기만 한다. 하지만 속도가 빠르고 별도의 연결이 필요하지 않는다.
- 비연결형 데이터 전살 순서가 보장되지 않지만 단순하고 빠름
UDP 특징
- 순서보장 X 데이터 전달 보증 X 연결지향 X
- IP 와 거의 유사하다
- 에플리케이션에서 추가 작업이 필요함.
TCP 통신은 모든부분이 최적화가 되어있어 수정이 어렵지만 UDP 는 통신 커스터마이징이 가능하다