본문 바로가기

개발관련/Network

TCP/UDP 특징 및 차이점

반응형

출처: http://hahahoho5915.tistory.com/13 [넌 잘하고 있어]

TCP / UDP란

TCP는 1:1 통신방식의 전송계층 프로토콜이다.

클라이언트 측에서 요청을 송신하고

서버쪽에서 클라이언트의 요청을 수신한 뒤 클라이언트에게 응답하는 형식으로 동작한다.

따라서 신뢰성이 높다.

하지만 속도는 UDP보다 느리다는 단점이 있다.


추가+

TCP:80 은 일반적인 웹 포트

TCP:443 은 SSL 인증서를 적용한 웹 포트

TCP:20,21 은 ftp혹은ssh 포트


UDP는 1:1, 1:n, n:n 통신방식의 전송계층 프로토콜이다.

인터넷 상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호절차를 거치지 않고

보내는 측에서 일방적으로 데이터를 전달하기만 한다.

따라서 보내는 측은 데이터가 잘 전달되었는지 확인할 수 없다.

이런 특성때문에 신뢰성이 매우 낮다.

하지만 TCP보다는 속도가 빠르다.

---



TCP(Transmission Control Protocol)

연결형 서비스를 지원하는 전송계층 프로토콜

인터넷 환경에서 기본으로 사용한다.

호스트간 신뢰성 있는 데이터 전달과 흐름제어 및 혼잡제어 등을 제공하는 전송계층


특징

- 가상 회선 연결 방식, 연결형 서비스를 제공

- 높은 신뢰성(Sequence Number, Ack Number를 통한 신뢰성 보장)

- 연결의 설정(3-way handshaking)과 해제(4-way handshaking)

- 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(네트워크 내 패킷 수가 과도하게 증가하는 현상 방지)

- 전이중(Full-Duplex), 점대점(Point to Point) 서비스


소켓 통신 과정

- 서버 : 소켓을 생성, 주소 할당, 연결 요청 기다림, 요청에 대한 응답

- 클라이언트 : 소켓을 생성, 주소 할당, 연결 요청





UDP(User Datagram Protocol)

비연결형 서비스를 지원하는 전송계층 프로토콜

사용자 데이터그램형 프로토콜

인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고,

보내는 쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜

보내는 쪽에서는 받는 쪽이 데이터를 받았는지 받지 않았는지 확인할 수 없고, 또 확인할 필요도 없도록 만들어진 프로토콜


특징

- 비연결형(port만 확인하여 소켓을 식별하고 송수신)

- 패킷 오버헤드가 적어 네트워크 부하 감소

- 비신뢰성

- 오류검출(헤더에 오류 검출 필드를 포함하여 무결성 검사)

- TCP의 handshaking 같은 연결 설정이 없다

- DNS, NFS, SNMP, RIP 등 사용


소켓 통신 과정

- 서버 : 소켓을 생성, 주소 할당, 데이터를 송수신

- 클라이언트 : 소켓 생성 후 데이터 수신


UDP는 TCP와 달리 데이터의 수신에 대한 책임을 지지 않는다.

이는 송신자는 정보를 보냈지만, 정보가 수신자에게 제때에 도착했는지 또는 정보 내용이 서로 뒤바뀌었는지에 관해서 송신자는 상관할 필요가 없다.

TCP보다 안정성 면에서는 떨어지지만, 속도는 훨씬 빠르다.


TCP/UDP 연결 방식 및 특징



반응형