TCP와 UDP는 OSI 7계층 중 전송계층의 프로토콜로 포트를 사용한 두 종단 호스트 간의 데이터 전달을 담당합니다.


TCP

TCP(Transmission Control Protocol)는 두 종단간의 연결을 설정한 후에 데이터를 8비트 바이트 스트림으로 교환하는 연결형 프로토콜 입니다.


TCP와 IP의 도메인을 비교하면,

- IP : 호스트 대 호스트, 컴퓨터 레벨간의 통신이며 목적지 호스트에게만 메시지를 전달할 수 있습니다.

- TCP : 응용 프로그램(프로세스)간에 메시지를 전달하며 포트 번호를 이용합니다.



TCP의 연결 설정 및 해제

TCP는 송신측과 수신측이 서로 연결 설정을 위해 3단계로 신호를 교환합니다.

1. 송신측이 수신측에 SYN 세그먼트를 보내 연결 설정을 요청한다.

2. 수신측이 송신측에 수신 확인으로 SYN 세그먼트를 전송한다.

3. 신측이 수신측에 응답 세그먼트에 대한 확인 응답 ACK를 보낸다.


TCP는 송신측과 수신측이 서로 연결 해제를 위해서 4단계로 신호를 교환합니다.

1. 송신측이 수신측에 FIN 세그먼트를 보내 연결 해제를 요청한다.

2. 수신측이 송신측에 확인 응답으로 ACK 세그먼트를 전송한다.

3. 수신측이 송신측에 FIN 세그먼트를 전송하여 연결 해제를 요청한다.

4. 송신측이 수신측에 응답 세그먼트에 대한 확인 응답 ACK를 보낸다.


TCP의 특징

TCP는 상위층이 넘겨준 데이터를 세그먼트라는 단위로 쪼개어 가공하고 하위층으로 넘겨줍니다.

원래 IP에서 동작하도록 설계되었기 때문에 대부분의 경우 하위층은 IP가 됩니다. 이 자른 세그먼트에 순서를 부여하여 전송, 수신하여 순서가 뒤바뀌는 일이 없도록 하고 있으며 패킷이 왔다갔다하며 순번이 뒤바뀌는 경우에도 복구하여 상위층이 신뢰할 수 있는 연결 방식을 제공합니다.

TCP의 연결지향형 방식을 다른 말로 신뢰성 스트림 서비스라고도 부릅니다.




UDP

UDP는 두 종단 간에 연결을 설정하지 않고 데이터를 교환하는 비연결형 프로토콜입니다.


UDP의 특징

UDP는 TCP와는 달리 비연결성을 가지고 있어 수신측이 제대로 도착했는지의 확인 여부를 보장하지 않는 비신뢰성 서비스입니다. 사용자 데이터를 데이터그램에 포함해 전송합니다.




TCP와 UDP의 특징 비교

 

TCP

UDP

데이터의 전송 단위

세그먼트

블록 형태의 다이어그램

서비스의 형태

연결형

비연결형

수신 순서

송신 순서와 동일

송신 순서와 불일치

오류 제어, 흐름 제어

있음

없음

전송 속도

UDP에 비해 느림

TCP에 비해 빠름





'Web, Network Programming > Socket' 카테고리의 다른 글

멀티 스레드 TCP 서버/클라이언트  (0) 2014.06.16
TCP 서버/클라이언트  (0) 2014.06.16
도메인 네임 서버  (0) 2014.06.16
바이트 정렬  (0) 2014.05.29
Socket 생성  (0) 2014.05.29
Posted by 긍정왕오킹