Transport 계층 프로토콜 : TCP / UDP
* 전송 계층 프로토콜(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 등 |
'Programming > Security' 카테고리의 다른 글
SQL Injection, XSS, CSRF (0) | 2011.12.05 |
---|---|
웹 서비스 취약점 : OWASP Top 10 (0) | 2011.12.04 |
스니핑과 스푸핑 그리고 그에 따른 방어법 (0) | 2011.12.04 |
IDS, IPS, 방화벽, 웹방화벽 구분 (0) | 2011.12.04 |
버퍼 오버플로우 (0) | 2011.12.04 |