TCP 특징
1. 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜
※ 신뢰성 => 오류 검출, 재전송, 혼잡제어 같은 기능을 하기 때문에 신뢰성 있다 라고 표현하는 것이다.
2. UDP 에 비해 속도가 느리다 => 손실확인이나 재전송 같은 여러 과정들을 거치기 때문
3. Full-Duflex(양방향 통신), 1:1 통신 방식을 사용한다.
UDP 특징
1. 비연결형 프로토콜
2. 혼잡제어 , 흐름제어 , 재전송 등을 하지 않기 때문에 속도가 TCP 에 비해 빠름 => Best Effort 방식
3. 신뢰성이 낮다.
4. 일 대 일, 일 대 다, 다 대 다 통신이 가능하다.
TCP Header
TCP 헤더의 경우 일반적으로 여러개의 필드로 이루어진 20Bytes 크기의 헤더를 사용한다.
만약 일반 헤더 뒤에 옵션이 추가될 경우 최대 60 Bytes 까지도 사용할 수 있다.
Source port / Destination port ( 16bit )
세그먼트의 출발지와 목적지를 나타내는 필드
출발지와 목적지 필드를 알아내기 위해서는 IP 주소와 포트 번호가 필요한데
IP 주소는 3계층인 Network Layer에 있는 IP 헤더에 담기기 때문에 TCP 헤더에는 포트를 나타내는 필드만 존재한다.
Sequence Number ( 32 Bit )
전송하는 데이터의 순서를 의미하는데 이 번호 덕분에, 수신자는 쪼개진 세그먼트의 순서를 파악하여, 올바른 순서로 재조립 할 수 있게된다.
Acknowledgment Number ( 32 bit )
수신자가 세그먼트를 제대로 수신했는지 확인 응답하기 위해서 사용되어지는 필드
Header Length(Data Offset) ( 4 bit )
전체 세그먼트 중에서 Header를 제외한 Data 가 시작되는 위치가 어디부터 인지 표시하는 필드
Reserved ( 3 Bit )
미래를 위해 예약된 필드로, 모두 0으로 채워져야 한다.
Flags ( URG ~ FIN )
세그먼트의 용도와 내용을 결정하는 필드
플래그 | 설명 |
URG | Urgent Pointer 필드에 값이 채워져 있음을 알리는 플래그로서 이 포인터가 가리키는 긴급한 데이터는 높게 처리 되어 먼저 처리된다. |
ACK | Acknowledgment 플래그. 승인 비트로 상대방으로부터 세그먼트를 잘 받았다는 것을 알려주기 위한 플래그 |
PSH | PUSH 플래그. 보통은 순차적으로 1계층 ~ 7계층 으로 데이터가 전송되나 PUSH 플래그를 사용할 경우 한번에 상위 계층으로 데이터를 전송할 수 있다. |
RST | Reset 플래그. 상대방과 연결이 되어있는 상태에서 어떤 문제 등이 발생하여 연결 상태를 리셋하는 플래그 => 강제성을 띄고있다. |
SYN | Synchronize 플래그. 상대방과 연결을 생성할 때, 시퀀스 번호의 동기화를 맞추기 위한 플래그 |
FIN | Finish 플래그. 상대방과 연결을 종료하고 싶다는 요청 플래그 => Reset 과 다르게 정상적 종료를 의미 |
Window size
한번에 전송할 수 있는 데이터의 양을 의미하는 필드
Checksum
데이터를 송신하는 중에 발생할 수 있는 오류를 검출하기 위한 필드
Urgent Pointer
긴급 포인터 필드로 URG 플래그 비트가 설정된 상태일 경우 수신 측은 이 포인터가 가르키고 있는 데이터를 우선적으로 처리한다.
Options
TCP 에 나중에 추가된 기능을 사용하기 위한 필드
TCP 의 재전송 기능 ( TimeOut )
TCP 의 경우 데이터 세그먼트나 ACK가 손실이 되면 재전송 기능을 수행합니다.
해당 재전송 기능은 데이터 전송 후 RTO ( Restransmission Time Out ) 라 부르는 시간이 지난 후 재전송을 하게 된다.
데이터 전송 후 자동으로 타이머를 설정 ( RTO )해 타이머 종료까지 ACK 플래그를 받지 못하면 재전송 기능을 수행하게 됩니다.
UDP 의 헤더 구조
UDP는 데이터를 제외한 8Byte 크기의 헤더를 가지고 있다.
Source port / Destination port ( 각 16bit )
TCP 와 마찬가지로 출발지와 목적지를 나타내는 필드
Total Length ( 16 bit )
헤더와 데이터를 합한 사용자 데이터그램의 전체 길이를 정의하는 필드
Checksum
데이터를 송신하는 중에 발생할 수 있는 오류를 검출하기 위한 필드
TCP 의 Checksum 필드와 다른점은 TCP 는 송수신되는 모든 데이터가 Checksum 이 필수이지만 UDP 는 선택 사항이다.
'보안 관제 관련 > 네트워크' 카테고리의 다른 글
Firewall(방화벽), IDS(침입 탐지 시스템), IPS (침입 방지 시스템),DDOS(분산 서비스 거부 공격) (2) | 2022.10.30 |
---|---|
주요 프로토콜 (0) | 2022.10.29 |
OSI 7 Layer 의 각 계층별 장비 (0) | 2022.10.22 |
TCP 의 연결 / 연결 해제 방식 ( 3-Way HandShaking , 4-Way HandShaking ) (0) | 2022.10.22 |
OSI 7 Layer (0) | 2022.09.28 |