Transport 계층 프로토콜 : TCP / UDP

Programming/Security | 2011. 12. 4. 17:59
Posted by 신이내린프로그래머

* 전송 계층 프로토콜(Transport Layer Protocol)

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

 

* 계층 별 패킷(Packet)을 일컫는 말

- 세그먼트(Segment) : 전송 계층

- 데이터그램(Datagram) : 네트워크 계층

- 데이터프레임(Data Frame) : 링크 계층

 

* 다중화(Multiplexing) & 역다중화(Demultiplexing)

- 다중화 : 세그먼트 데이터를 올바른 소켓으로 전달하는 작업.

- 역다중화 : 세그먼트를 생성하기 위해 각 데이터를 헤더 정보로 캡슐화하고,

그 세그먼트들을 네트워크 계층으로 전달하는 작업.

 

 

 

 

UDP

 

* UDP(User Datagram Protocol)

- L4에서 제공해야할 최소한의 서비스. , 프로세스 대 프로세스 데이터 전달과 오류 검출만을 제공하는

비연결형 전송 프로토콜.

 

* UDP의 특징

- 비연결형

- UDP가 제공하는 두 가지 서비스(최소한의 두 가지 전송 계층 서비스)

1. 프로세스 대 프로세스 데이터 전달.

포트 - 프로세스 매핑, 두 개의 포트 정보(근원지, 목적지)를 통해 소켓 식별.

2. 오류 검출 : 헤더에 오류 검출 필드를 포함함으로써 무결성 검사를 제공.

- Way HandShake 같은 연결 설정이 없다.

- 연결 상태가 없다. 따라서 패킷 오버헤드가 적다. (세그먼트 당 8byte)

- DNS, NFS, SNMP, RIP 등이 사용.

- 세그먼트 구조 : 포트번호(근원지, 목적지), 길이, checksum | payload

 

 

- 잘 알려진 포트(well-known port) : 0 ~ 1023 | HTTP : 80, FTP : 21

 

 

 

TCP

 

* TCP(Transmission Control Protocol)

- UDP가 제공하는 서비스 뿐 아니라 신뢰성 있는 데이터 전달과 흐름 제어 및 혼잡 제어를 지원하는

L4의 연결 지향형 프로토콜

 

* TCP의 특징

- 연결 지향형(실제로 연결된 것은 아니기에 이런 애매모호한 말을 사용)

- TCP가 제공하는 서비스(UDP가 제공하는 서비스 더하기)

1. 신뢰적인 데이터 전달

2. 흐름 제어(Flow Control : 수신자 버퍼 오버플로우 방지)

혼잡 제어(Congestion Control : 네트워크 내의 패킷 수가 과도하게 증가하는 현상 방지)

- 두 개의 포트 정보(근원지, 목적지)와 두 개의 IP 정보(근원지, 목적지)를 통해 소켓 식별

- Packet Overhead : 20byte

- 대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet )이 사용.

- 전이중(Full-Duplex), 점대점(Point to Point) 서비스.

- 통신 시작 : 3 way handshake, 통신 종료 : 4 way handshake

 

 

 구분  TCP  UDP 
 연결 형태  연결 지향   비연결형 
 데이터 순서   순서 유지   순서 유지하지 않음 
 데이터 손실  손실 없음   손실 가능 
 흐름/혼잡/오류 제어  GBN, SR ARQ 사용   해당 제어기능 없음 
 패킷 오버해드  20Byte   8Byte 
 사용 예  대부분의 L7 프로토콜(HTTP, FTP, SMTP, Telnet 등)   DNS, NFS, SNMP, RIP 등 

 

블로그 이미지

신이내린프로그래머

카테고리

Category (22)
Programming (19)
... (1)