OSI 7계층 중 4계층에 해당하는 Transport Layer...
대표적인 프로토콜인 TCP와 UDP를 이해해보자.
TCP는 전송계층(Layer 4)에서 동작하는 프로토콜로써 다음과 같은 특징을 지닌다.
순서 번호
, 승인 번호
, 윈도우 크기
를 통해 흐름을 제어한다.수신 윈도우
및 혼잡 윈도우
변수 값을 통해 네트워크가 혼잡하다고 판단되면 송신률을 감속함.연결 세션 설정을 위해 3 way handshaking 과정을 거친다.
교환되는 정보:
ISN
, 수신 윈도우 크기
, 옵션 정보
3 way handshaking을 통해 개설된 세션을 통해 데이터를 주고 받은 후, 4번의 패킷 교환으로 연결을 종료한다.
TCP는 Layer 4의 프로토콜로서 데이터 단위는 세그먼트
이다.
TCP 세그먼트는 IP(Layer 3)의 데이터그램으로 전달된다. IP 헤더에는 출발지 IP 주소와 도착지 IP주소가 포함되어 있다.
IP → IP 헤더 + 데이터(TCP 헤더 + 데이터)
따라서 TCP 세그먼트 중 TCP 헤더는 다음과 같은 데이터를 담고 있다.
TCP 데이터를 주고 받을 때 매 통신 마다 ACK을 확인하면서 데이터를 주고 받으면 매우 불편하다(stop and wait 방식)
따라서 임의의 크기만큼 ACK 없이도 데이터를 바로바로 보내도록 하는 방법이 슬라이딩 윈도우 방식이다.
위의 그림과 같이 승인(ACK) 번호는 수신하기를 기대하는 번호를 보내는 형식이다.
TCP와 대비되는 프로토콜로서 다음과 같은 특징을 가진다.
UDP는 TCP와 다르게 강제되는 일련의 과정이 없기 때문에 사용자가 자유롭게 커스터마이징할 수 있다.
UDP는 8 바이트로 고정된 길이의 헤더를 가지고 있다.
checksum 값을 이용해 오류를 제어할 수 있지만, checksum을 0으로 지정해서 이를 생략할 수 있다.
기존의 TCP와 UDP를 커스터마이징해서 HTTP 환경에서 더 빠른 통신을 하려는 노력도 진행되고 있다...
일부 그림 출처:
http://www.ktword.co.kr/