안 쓰던 블로그
TCP 프로토콜, UDP 프로토콜, TCP와 UDP의 공통점과 차이점 본문
프로토콜
서로 다른 시스템에 있는 개체 간 통신을 잘 하기 위한 통신 규약
네트워크에서 통신하려는 두 시스템 간에 무엇을 언제, 어떻게 통신할 것인지 미리 정한 약속
계층적 구조로 정의된다.
시스템 간 복잡한 통신 관련 상호작용을 세분화, 계층화, 표준화한 것
*개체: 데이터베이스 관리 시스템/전자우편 시스템/사용자 프로그램
*시스템: 하나 이상의 개체를 보유한 컴퓨터
TCP 프로토콜
OSI 7계층 중 4계층인 전송계층에 속하는 프로토콜
네트워크 망에 연결된 컴퓨터의 프로그램 간 데이터를 순서대로 에러 없이 교환할 수 있게 해 준다
인터넷에서 네트워크 계층의 기능을제공하는 프로토콜은 IP인데, IP 프로토콜 위에서 실행되는 전송 계층 프로토콜에는 TCP와 UDP로 나뉜다
응용 프로그램이 해당 응용 환경에 적합한 기능을 지원하기 위해 연결형 서비스가 필요한지, 비연결형 서비스가 필요한지를 판단하여 TCP(연결형)와 UDP(비연결형)를 선택하게 된다
전송 계층 프로토콜은 운영체제 내부 기능으로 구현되기 때문에 상위 계층에서 시스템 콜이라는 프로그램 호출 방식을 이용해야 한다
특징
- 연결 지향형 프로토콜
물리적으로 전용 회선이 연결된 것처럼 가상으로 연결하여 통신할 때 사용하는 회선이 가상 회선이다
TCP는 전이중 방식의 양방향 가상 회선을 제공한다
논리적인 연결 통로를 사용함으로써 데이터의 전송 순서를 보장한다: 순서제어
스트림 기반의 전송 방식을 사용한다. 데이터를 임의 크기로 나누어 전송한다
- IP 통신의 기본적인 프로토콜
TCP와 UDP는 IP 프로토콜 위에서 실행되는 전송 계층 프로토콜이다
- 신뢰성 있는 데이터 전송 보장
-데이터 흐름 제어
수신 측이 데이터를 흘려버리지 않게 상대방이 받을 수 있을 만큼만 데이터를 전송한다
슬라이딩 윈도우이라는 상대방이 수신 가능한 크기 내에서 데이터를 연속해서 전송하는 방식을 사용한다
-에러 제어
에러가 발생할 경우 자동으로 재전송한다
데이터의 오류나 누락 없이 안전한 전송을 보장한다
-혼잡 제어
네트워크 혼잡 정도에 따라 송신자가 데이터 전송량을 제어한다
혼잡 정도를 판단하는 기준은 데이터 손실 발생 여부에 따라 결정한다
데이터 손실이 발생하면 네트워크가 혼잡한 상태라고 판단하고 전송량을 조절한다
UDP 프로토콜
OSI 7계층 중 4계층인 전송계층에 속하는 프로토콜
비연결 지향형 프로토콜
상대방이 보낸 응답을 확인하지 않아 네트워크에 부하를 주지 않는다
대신, 데이터 자체의 신뢰성이 없어 전송된 데이터의 일부가 손실되거나 수신한 데이터의 무결성을 보장받지 못한다
신뢰성이 매우 높은 회선을 사용/데이터의 확실한 전송을 요구하지 않는 통신/한 번에 많은 상대에게 메시지를 전송하고자 하는 경우에는 전송 경로 확립을 위한 번잡함을 생략하고 시간을 절약할 수 있어 UDP가 더 효과적이다
TCP와 UDP의 공통점
- 포트 번호를 이용하여 주소 지정
- 데이터 오류 검사를 위한 체크섬이 존재
TCP와 UDP의 차이점
TCP | UDP |
연결이 성공해야 통신 시작(연결형 프로토콜) | 연결 없이 통신 가능(비연결형 프로토콜) |
데이터의 경계를 구분하지 않음(바이트 시스템 서비스) | 데이터의 경계를 구분한다(데이터그램 서비스) |
신뢰성 있는 데이터 전송(데이터의 재전송, 오류 제어 등) | 비신뢰성 있는 데이터 전송(데이터 재전송 없음) |
일대일 통신(유니캐스트) | 일대일, 일대다(브로드캐스트), 다대다(멀티캐스트) 통신 |
'Network' 카테고리의 다른 글
와이어샤크 패킷 분석하기 1-board (0) | 2020.09.24 |
---|---|
3-way handshake와 4-way handshake (0) | 2020.09.18 |
ARP와 ARP Spoofing 개념 및 공격 실습 (0) | 2020.09.18 |
ARP 프로토콜 (0) | 2020.09.18 |
[네트워크] 가상머신의 네트워크 구조 (0) | 2020.09.17 |