트랜스포트 계층 프로토콜 종류
。TCP/UDP
TCP( Transmission Control Protocol )
。연결지향형 프로토콜( Connection-Oriented )
▶ 사전에송 수신자간 연결을 구축 후패킷에세그먼트를 포함하여 송수신
▶1:1 연결을 지향 및 신뢰할 수 있는통신제공
。TCP Segment의 크기는 대략20~60 Byte
▶신뢰성및순서제어를 위한 속성들이 추가되어있으므로.
。어플리케이션 계층의HTTP / HTTPS / FTP / SSH 프로토콜에 활용
。TCP는장치간TCP 연결을성립및종료하기 위해 3-way handshaking / 4-way handshaking 방법을 사용
。데이터 전송의정확성과올바른 순서를 보장하며수신자쪽의메시지 수신여부를 확인가능
▶수신 Host에서 데이터 수신여부를 확인하는신호를 전송하므로데이터 손실 위험 X
▶Flow control과Congestion control기능을 제공하여Congestion을 방지
。TCP의Flow Control로 인해Throughput이 감소하여Application에게 보장해야할 최소한의Throughput를 준수하지 못할 수 있다.
▶동영상등의 재생을 위한 최소한의Throughput를 보장해야하는어플리케이션에는TCP는 부적합.
。일회성Transaction이 발생하는어플리케이션에는 부적합
▶ 사전에송수신자간연결을 구축해야하는 비용이 크므로
。사전에TCP Connection을 구축하므로UDP와 달리패킷에 목적지를 명시하지않음.
▶UDP에서DatagramPacket을 따로 정의하는것과는 다른 경우
。UDP와 달리TCP Connection이 종료될떄까지 다른TCP Client Socket으로 부터 연결이 될 수 없다.
▶UDP Server Socket은UDP Client Socket으로부터 응답이 끝나자마자 다른UDP Client Socket에서Datagram을 수신 가능
흐름제어( Flow Control )
。Sender의 송신하는 량이Receiver의 배출량보다 많아져서Receiver의Buffer가 꽉차는것을 방지하는 기법
혼잡제어( Congestion Control )
。Sender와Receiver사이네트워크의 경로상의패킷스위치의Buffer가 꽉차는것을 방지하는 기법
UDP( User Datagram Protocol )
。비연결형 프로토콜( Connetionless )
▶ 사전에송수신자간연결을 구축하지 않아도 된다.
▶1:N 연결을 지향 및 신뢰할 수 없는통신제공
。UDP Segment의 크기는 대략8 Byte
。TCP에 비해 속도는 빠르지만 신뢰성이 부족하여데이터손실및순서오류발생가능
▶TCP처럼데이터의 수신여부를 알아낼 방법이 없어데이터 손실위험 존재
▶ 데이터를TCP처럼 순서대로 보내는게 아닌 중구난방으로 전송하여순서대로 도착한다는 보장이 없다.
。Flow control과Congestion control기능을 제공하지 않아서 데이터를 원하는 속도로 전송가능
▶동영상등의 원활한 재생을 위해 최소한의Throughput이 보장되야하는어플리케이션(스트리밍 서비스)에 적합
。Client에서는 각각의패킷에IP Address와Port번호를 붙여서Server로 데이터 전송
。UDP Server Port번호는개발자에 의해 지정됨
▶Server는 수신한Datagram에서IP Addess와Port번호를 추출하여Client Port번호를 확인 후 반환