전송 계층 프로토콜(Transport Layer Protocol)
 - 서로 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신(Logical Communication)을 제공하지만,
    Network Layer Protocol은 호스트 사이의 논리적 통신을 제공한다. 

계층 별 패킷(Packet)을 일컫는 말
 - 세그먼트(Segment) : 전송 계층
 - 데이터그램(Datagram) : 네트워크 계층
 - 데이터프레임(Data Frame) : 링크 계층

다중화(Multiplexing) & 역다중화(Demultiplexing)
 - 다중화 : 
세그먼트를 생성하기 위해 각 데이터를 헤더 정보로 캡슐화하고, 그 세그먼트들을 네트워크 계층으로 전달하는 작업으로 데이터 통신망에서 하나의 통신회선을 여러 장치들이 공유하여 사용할 수 있는 방법.(시분할 다중화, 주파수 분할 다중화)

 - 역다중화 :  세그먼트 데이터를 올바른 소켓으로 전달하는 작업으로 원래의 독립 신호 또는 이들 신호의 군(群)을 복원시키기 위해 다중화된 복합 신호를 분리하여, 원래의 신호 또는 신호의 군으로 복원하는 과정.


(1) TCP 소켓 통신
: "Trasmission Control Protocol"의 약자로 "전송 과정을 컨트롤하는 프로토콜" 이라는 뜻이다.
   호스트간 신뢰성 있는 데이터 전달과 흐름제어 및 혼잡제어 등을 제공하는 전송계층의 연결 지향형 프로토콜.

○ 특징
  - 높은 신뢰성 (Sequence Number, Ack Number를 통한 신뢰성 보장)
  - 가상 회선 연결방식(연결지향형)
  - 연결의 설정(3way-handshake)과 해제(4way-handshake)
  - 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡제어(네트워크 내의 패킷 수가 과도하게 증가하는 현상 방지)
  - 대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet 등)이 사용
  - 전이중(Full-Duplex), 점대점(Point to Point) 서비스
  - Packet Overhead : 20 bytes

 


○ 소켓통신 과정
  - 서버 측 : 소켓을 생성하고, 주소를 할당하고, 연결요청을 기다리고, 요청에 대한 응답을 한다.
  - 클라이언트 측 : 소켓을 생성하고, 주소를 할당하고, 연결요청을 한다.


(2) UDP 소켓 통신
: "User Datagram Protocol"의 약자로 "사용자 데이터그램형 프로토콜" 이라는 뜻이다.
   전송계층에서 제공해야할 최소한의 서비스. 즉, 호스트간 데이터 전달과 오류검출만을 제공하는 비연결형 전송 프로토콜.

○ 특징
  - 비연결형 (port만 확인하여 소켓을 식별하고 송수신)
  - 패킷 오버헤드가 적어 네트워크 부하 감소(세그먼트 당 8 bytes)
  - 비 신뢰성
  - 오류검출(헤더에 오류 검출 필드를 포함하여 무결성 검사)
  - handshake와 같은 연결 설정이 없다
  - DNS, NFS, SNMP, RIP 등이 사용
  - 세그먼트 구조 : 포트번호(송신/수신), 길이, checksum | payload
  - 잘 알려진 포트 (well-known port) : 0~1024 (http : 80, FTP :21)


○ 소켓통신 과정
  - 서버 : 소켓을 생성하고, 주소를 할당하고 데이터를 송수신 한다.
  - 클라이언트 : 소켓을 생성하고 데이터를 받는다.

○ UDP 통신의 경우 신뢰성을 주기 위해 패킷의 데이터 헤더를 따로 만들어서 일련번호를 부여한다.
    일련번호를 확인하는 방법을 통해 신뢰성을 부여하고 있다. (어플리케이션 차원의 소스코딩)



(3) TCP vs UDP




※ 참고자료 : http://anyflow.net/252



'T heory > Protocol' 카테고리의 다른 글

IPC (InterProcess Comunication) - 프로세스간 통신  (0) 2012.03.28
TCP 와 UDP 프로토콜 (서술형)  (1) 2012.03.08
[TCP] TIME_WAIT  (0) 2012.03.02
RTP (Real-time Transport Protocol)  (0) 2012.02.22
FTP & TFTP 프로토콜  (0) 2011.12.15
by 민트앤라떼 2012. 3. 8. 17:27