CAFE

[네트워크]

1-16 트랜스포트 계층

작성자한승남선생님|작성시간08.02.06|조회수185 목록 댓글 0

트랜스포트 계층

 

1) 연결형과 비연결형 서비스

  • 연결형 서비스란 일단 상대방과 연결을 설정하고 이 연결을 이용해 데이터를 주고받은 후 연결을 해제하는 세 단계의 절차를 거치는 서비스로 X.25의 가상회선 패킷 교환 서비스, 전화와 같은 회선교환 서비스, 그리고 TCP는 연결형 서비스이다.

  • 연결형 서비스에서는 연속된 흐름(stream)의 데이터 송수신이 가능하며 큰 파일 전송시에도 데이터가 중간에 끊어지는 것에 대하여 사용자가 신경쓸 필요가 없다.

  • 연결형 서비스는 한 번에 많은 양의 데이터를 전송할 때나 신뢰성 있는 연결이 필요할 때, 또는 데이터의 순서 보장이 필요할 때 사용된다.

  • 비연결형 서비스란 연결을 설정하고 해제하는 절차 없이 바로 데이터를 주고받는 방식으로 데이터그램 서비스라고도 한다

  • 비연결형 서비스는 데이터그램의 손실 확인이나 순서유지를 보장해 주지 않기 때문에 (상위의) 응용 프로그램에서 필요하면 이를 처리해야 한다. 그러나 프로토콜 헤더 처리에 필요한 오버헤드(연결설정 지연 등)가 연결형 서비스보다 적어 간단한 패킷을 주고받는 경우에 유리하다.

  • 비연결형 서비스에는 이더넷 등의 프로LAN, X.25의 데이터그램 서비스, IP 패킷 전송, UDP 토콜 등이 해당된다.

2) 트랜스포트 계층의 프로토콜

  • TCP/IP의 트랜스포트 계층에는 연결형(Connection Oriented) 서비스를 제공하는 TCP 프로토콜과 비연결형(Connectionless) 서비스를 제공하는 UDP 프로토콜이 있다.

  • 연결형 서비스인 TCP는 트랜스포트 계층에서 종점간의 연결 개설, 오류 발생시 데이터 재전송, 패킷 전달순서 확인, 중복 패킷 제거, 흐름제어, 네트워크 오동작시 보고 등을 제공하는 서비스이다.

  • 비연결형 서비스인 UDP는 위의 연결형 서비스를 제공하지 않고 단순히 패킷을 하나씩 목적지 주소로 전송만 한다. 따라서 UDP를 안정적으로 사용하려면 응용 프로그램에서 데이터의 분실, 흐름제어, 오류 등을 처리하여야 한다

  • 안정적인 데이터 전달을 필요로 하는 응용 프로그램은 대부분 TCP를 사용하고 있고 어떤 응용 프로그램은 UDP를 사용해야만 하는 경우도 있는데 이러한 경우는 다음과 같다.

  • 응용 프로그램이 UDP만을 사용하도록 작성되어 있는 경우

  • 패킷을 방송(broadcast) 또는 멀티캐스트 해야 하는 경우

  • TCP 처리 오버헤드 때문에 TCP로 처리할 시간이 없는 경우(실시간 서비스 등)

3) TCP (Transmission Control Protocol)

  • TCP는 신뢰성 있는 종점간 데이터 전달을 책임지며 스트림(stream)형의 서비스를 제공함으로써 상위 계층의 통신 엔티티 사이에 투명한(transparent) 데이터 전달 환경을 제공한다고 한다.

  • TCP의 프로토콜 데이터 단위(Protocol Data Unit: PDU)의 구조는  아래그림 같으며 TCP 헤더 각 필드의 기능을 표 1-5에 정리하였다.

 

이미지를 클릭하면 원본을 보실 수 있습니다.


그림 1-12 TCP 프로토콜 데이터 단위 (PDU)

 

필 드 명

길이 (비트)

기 능

Source Port

16

송신측의 응용 프로세스를 구분하는 포트번호

Destination Port

16

수신측의 응용 프로세스를 구분하는 포트번호

Sequence Number

32

송신된 데이터의 순서번호(바이트 단위)

Ack Number

32

수신된 데이터 바이트 수 + 1(아래의 ACK=1일 때 의미가 있음)

Header Length

4

헤더크기(4바이트 단위)로 보통 5가 된다

Code

Bits

SYN

1

연결 요청시 사용되며 Sequence Number가 초기값임을 알린다.

ACK

1

Ack용 데이터임을 표시(이때 Ack Number 값이 유효하다)

URG

1

긴급 데이터임을 표시(이때 Urgent Pointer 값이 유효하다)

FIN

1

접속을 종료하는 데 사용

RST

1

접속을 리셋하는 데 사용

Window

16

흐름제어용 윈도우 크기(바이트 단위)

Checksum

16

TCP PDU 전체와 IP계층의 헤더 중 후반부 12바이트(송수신지 IP 주소 등)에 대한 오류 검출코드

Urgent Pointer

16

긴급 데이터가 들어 있는 위치를 표시

표 1-5 TCP 헤더의 각 필드의 기능

  • TCP에서는 종점 장비간의 연결 설정을 위하여 three- way handshake를 사용한다.

  • OSI 표준의 패킷 교환망(X.25)의 네트워크 계층에서는 two-way handshake를 사용하는데 이들의 차이는 다음과 같다.

  • Two-way handshake : 연결 접속요구에 대하여 상대방이 응답을 하면(즉, 제어정보가 두 방향으로 갔다 오면) 연결이 이루어진다.

  • Three-way handshake : 연결 접속요구(Request For Connect : RFC)에 대하여 상대방도 이를 확인하면서 다시 연결 접속요구(RFC)를 하고 이에 대해 처음의 연결 요구측에서 ACK를 보내야 연결이 되는 것으로 이중으로 연결절차를 확인한다. 트랜스포트 계층에서 three- way handshake를 사용하는 이유는 중간의 서브네트워크의 종류에 무관하게 종점간의 안정적인 연결을 확인하기 위해서이다(예를들면 연결요구 패킷의 손실 등).

  • TCP는 한번의 명령으로 보낼 수 있는 데이터의 크기가 제한되지 않으므로 임의의 길이의 큰 파일을 전송할 수 있다. (UDP에서는 한 번에 전송할 데이터가 UDP 최대 데이터그램 크기보다 크면 뒷 부분이 전송되지 않는다).

  • TCP에서는 흐름제어를 패킷 단위가 아니라 데이터 분량(바이트 단위)으로 수행한다.

  • 송신측은 상대방이 최근에 보내온 TCP 헤더의 Window 값(표 1-5참조)을 읽어 바이트 단위인 Window 크기(이를 credit 값이라 한다.) 내에서만 TCP 데이터를 전송할 수 있다.

  • 상대방 즉, 수신측은 자신의 데이터 처리 능력과 네트워크 사정에 따라 Window 값을 바꿈으로써 흐름제어를 할 수 있다.

4) UDP (User Datagram Protocol)

  • UDP의 오버헤드는 TCP 보다 작다.

  • 송신지 및 목적지의 포트번호(16비트), 데이터그램 길이(16비트), Checksum 그리고 사용자 데이터로 구성된다.

이미지를 클릭하면 원본을 보실 수 있습니다.


그림 1-13 UDP 프로토콜 데이터 단위

  • UDP는 신뢰할 수 있는 종점간 데이터 송수신을 보장하지 않으므로 파일 전송, 메일 서비스 등에는 적합하지 않다.

  • 도메인 네임(domain name) 서비스나, time 서비스와 같이 한 패킷의 송수신으로 어떤 서비스가 이루어지는 경우에 많이 사용된다.

  • LAN과 같이 전송 오류가 거의 없고 패킷의 전달 순서가 바뀌지 않는 환경에서는 TCP보다 처리 속도가 빠른 UDP가 유리할 수 있다.

  • LAN에서 제공되는 NFS(Network File System)는 UDP를 사용한다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼