Transport Layer(전송 계층) 란?
End Point 간의 신뢰성 있는 데이터 전송을 담당하는 계층. 네트워크 계층에서 데이터를 전달받으면 전송 계층에서는 데이터가 제대로 도착했는지, 전달받은 데이터를 어떤 애플리케이션에 전달해야 하는지 판단 후 해당 애플리케이션에 전달할 수 있도록 해준다.
전송
포트 번호에 해당하는 프로세스에 데이터를 전송한다.
IP 주소를 통해 컴퓨터 까지는 도착 했지만 아직 어느 프로세스에서 호출했는지는 모르는 상태이다.
전송 계층에서는 데이터가 제대로 왔는지를 체크한 후, 포트 번호를 보고 해당하는 프로세스에 데이터를 전송한다.
Transport Layer(전송 계층)의 특징
•
신뢰성/정확성: 데이터가 목적지까지 완전하고 안정적으로 전달하는 것. 신뢰성에 우선을 둔 통신 방식을 연결형 통신 이라고 한다. 데이터를 전송할 때 여러번 체크하고 전송한다.
•
효율성: 데이터의 속도에 중점을 두어 빠르게 전송하는 것. 데이터를 전송할 때 확인 절차 없이 일방적으로 데이터를 전송하며 비연결형 통신 이라고 한다.
연결형 통신 프로토콜을 TCP라고 하며, 비연결형 통신 프로토콜을 UDP라고 한다.
TCP(Transmission Control Protocol)
전송 계층에서 신뢰할 수 있는 통신을 제공하는, 신뢰성/정확성이 우선인 연결형 통신 프로토콜
TCP 통신 때는 데이터에 TCP 헤더를 붙여 전송한다.
이때 TCP헤더+데이터 를 세그먼트라고 한다.
데이터를 전송하기 전, 3-way 핸드셰이크를 통해 연결을 확립한 후 데이터를 전송한다.
TCP 헤더에서 중요한 부분들
•
코드 비트 : TCP 헤더의 연결 제어 정보가 기록된다. SYN, ACK, FIN 에 관한 비트도 포함되어 있어 정상적으로 연결이 이루어진 세그먼트 인지 또는 연결이 정상적으로 종료 되었는지를 판단할 수 있다.
•
일련번호, 확인 응답 번호 : 데이터를 분할해서 보낼 때 일련번호는 이 데이터가 몇 번째 데이터인지를 알려주는 역할을 한다.
•
윈도우 크기 : 버퍼의 크기를 의미한다. 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지를 나타낸다.
보내는 쪽에서는 현재 수신 측의 남은 버퍼의 크기를 고려해 데이터 전송의 속도를 조절한다. → 오버플로우를 방지한다.
•
포트 번호 : 데이터의 출발지점, 도착지점이 어떤 애플리케이션인지 구분하기 위해서는 출발지 포트 주소와 목적지 포트 주소가 필요하고 TCP에서는 이것을 헤더에 기재해서 애플리케이션을 구분할 수 있게 한다.
IP주소를 통해서 컴퓨터까지 접근한 후, TCP 헤더에 기재된 도착 지점의 포트 번호를 이용해 애플리케이션에 접근할 수 있다.
3-way 핸드셰이크(three-way handshake)
연결을 확립하기 전, 신뢰할 수 있는 연결인지 확인하기 위해 패킷 교환을 3번하여 확인 하는 것을 3-way 핸드셰이크라고 한다. 연결을 할 때와 끊을 때 모두 3-way 핸드셰이크가 이루어진다.
연결을 할 때
눌러보세요
연결을 끊을 때
눌러보세요
UDP(User Datagram Protocol)
전송 계층에서 데이터를 효율적이고 빠르게 보낼 때 사용되는 프로토콜
비연결형 통신이기 때문에 데이터를 보낼 때 일일히 확인을 하지 않는다 → 속도에 중점을 두었기 때문. 스트리밍 동영상에 많이 쓰이는 프로토콜이다.
UDP 에서는 전송 때는 데이텅 UDP 헤더를 붙여서 전송한다.
UDP 헤더 + 데이터를 UDP 데이터 그램이라고 한다.
TCP와 달리 헤더가 간단한 것을 볼 수 있는데, 목적지 포트번호로 다른것을 확인하지 않고 전송만 하기 때문이다. 상대방도 확인하지 않는다.
브로드캐스트 : 같은 스위치에 연결되어 있는 네트워크 장비들에 UDP를 사용하면 일괄적으로 데이터를 보낼 수 있다. 이것을 브로드캐스트라고 한다.