TCP와 UDP란?

김일한·2023년 1월 31일
0

HTTP

목록 보기
1/2
post-thumbnail

IP

지정한 IP주소에 데이터를 전달 (패킷이라는 통신 단위 사용)
패킷(출발지IP, 목적지IP, 전달하고자하는 메시지)
*요청과 응답 간 다른 경로를 통해 전달될 수 있음

IP 한계
1. 비연결성
   패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
   즉 대상 서버가 패킷을 받을 수 있는 상태인지 확인할 수 없다.
2. 비신뢰성
   중간에 패킷이 사라지거나 패킷을 여러개 보냈을 때 순서대로 오지 않는 경우가 발생할 수 있다.
3. 프로그램 구분
    같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 때 구분할 수없다.

TCP

패킷 전송 간 TCP 세그먼트 (출발지, 목적지 포트, 전송제어, 순서, 검증 정보 등)을 추가하여 IP의 한계를 극복할 수 있다.

TCP 특징
1.전송 제어 프로토콜 (Transmission Control Protocol)
   연결지향-TCP 3way handshake(가상 연결) : 서버와 연결 상태를 우선 확인 후 메시지를 전송함
   데이터 전달 보증 : 서버에서 메시지 수신 여부를 확인
   순서 보장 : 서버에서 순서를 확인

TCP 3way handshake
1단계
클라이언트는 서버에 SYN 패킷을 보낸다. 이때 클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 된다.

2단계
이때 서버는 Listen 상태로 포트 서비스가 가능한 상태여야 한다. (Closed :닫힌상태) 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답하기를 기다린다. 이때 서버는 SYN_RECEIVED 상태가 된다.

3단계
클라이언트는 서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 서버 상태가 ESTABLISHED이다.
서버가 ACK와 데이터를 함께 전송하여 클라이언트에서 수신할 수도 있다.

*물리적 연결이 아닌 논리적 연결

순서 보장
서버에서 패킷을 수신 중 TCP 세그먼트에 포함되어 있는 순서 정보와 다른 순서가 발생하면 해당 패킷부터 클라이언트에서 다시 송신하도록 요청하여 순서를 보장한다.

UDP

사용자 데이터그램 프로토콜(User Datagram Protocol)
TCP와 달리 비연결형 서비스로 별도의 송 수신 확인절차가 없고 Checksum을 통해 최소한의 오류만을 검출하기 때문에 TCP에 비해 속도가 빠른 장점과 애플리케이션 계층에서 추가 작업을 통해 최적화 할 수 있다는 장점을 갖고 있다.

UDP 특징
1.Port
   같은 IP 내에서 프로세스 구분
2.체크섬
   중복 검사의 한 형태, 송신된 자료의 무결성을 보호하는 방법으로 전송 데이터를 16비트 단위로 구분, 1의 보수를 더해 그 결과를 전송하는 방식이다.

port
0~65535 할당 가능
0~1023: 잘 알려진 포트, 사용하지 않는 것을 권장
   FTP - 20, 21
   TELNET - 23
   HTTP - 80
   HTTPS - 443

출처- 모든 개발자를 위한 HTTP 웹 기본 지식(인프런)

profile
도전을 즐기는 개발자, 김일한입니다.

0개의 댓글