Security/보안관제

TCP와 UDP

NOG 2022. 12. 15. 12:04

전송계층의 통신단위는

tcp를 이용할 때는 세그먼트 ​

udp를 이용할 때는 데이터그램

1.TCP의 특징 : 신뢰성 을 바탕으로 통신

①.연결형 서비스, 연결지향형 프로토콜

송신자 수신자가 통신을 할 때 보내고 잘 받았다라는 의미로 확인응답받고 이런식으로 오고가는 과정

①-1. tcp 세션 연결방식 : 3way handshaking

<추가로 마지막에 송신자가 수신자에게 ack를 보내는 과정에서부터 바로 데이터를 보낼 수 있다.>

①-2. tcp 세션 연결 종료방식 4way handshaking

<연결이 완벽히 종료되었다는 것은 양쪽 다 종료 되었다는 것

가끔 한쪽만 종료되고 한쪽은 종료되지 않은 상태 이런 상태는 좀비상태라고 한다.

네트워크 상태 조회를 하면간혹 z 라고 써져있는 걸 볼 수 있는데 이것이다.

tcp는 서로 간의 신뢰성 있는 통신을 해야되서 일정시간이 지나면 자동으로 정상적으로 종료되도록 하는 특징>

②  흐름제어와 혼잡제어

흐름 제어 : 송신측이 데이터 처리 속도가 더 빠를 경우 데이터 손실 위험 있음.

송신 측과 수신 측의 데이터 처리 속도 차이로 인해 발생하는 문제를 해결하기 위한 기법

 

혼잡제어 : 송신측은 라우터에서 처리하지 못한 데이터의 양을 손실 데이터로 간주하고 계속해서 데이터를 전송하여 네트워크를 혼잡하게 함. 이 문제를 해결하기 위한 기법.

 

 

③. 오류 없이 데이터를 전송한다. 오류가 생기면 데이터를 재전송한다.(신뢰성 있는전송)​

순서번호가 바뀌거나 손실되거나 누락되면 tcp는 일정시간을 기다렸다가 다시 재전송을 한다라는 특징이 있음.

TCP는 RTO(Retransmission Time Out)라는 시간을 기다렸다가 재전송 수행

④. 전이중,점대점 방식

-송신자와 수신자간의 일어나는 모든 과정을 확인하면서 서로 진행해야되니 그런 부분을 보면서

데이터 전송이 양방향으로 동시에 일어나는 통신=전이중방식

-1대1간의 연결만을 관장하고 관리하기 떄문에

그 외 1:n 이나 n:n 같은 멀티캐스팅이나 브로드캐스팅 방식은 지원하지 않는다.

2.TCP의 헤더구조

-출발지/목적지 포트번호

-시퀀스넘버 : 순서번호 필드 : 보내고자 하는 패킷들의 순서번호를 할당해서 올바르게 전송할 수 있도록 관장

(흐름제어와 혼잡제어 역할 담당)

처음에 순서번호 할당할 때 랜덤한 값으로 부여를 해서 순서번호를 겹치지 않게끔 구분하는 특징을 가지고 있다.

(공격에 취약한 부분 을 보완을 하고자 구분하는 특징도 있음)

-확인응답번호 : 제대로 수신했는지 확인응답하기 위해서 사용되어지는 필드

-데이터오프셋 : 데이터가 시작하는 위치가 어디인지 보여주는 필드

-예약된 필드 : 미래를 위해 사용되지 않는 예약된 공간

-컨트롤비트(제어비트): 6개의 플래그비트 (urg rst syn ack fin psh) -> 패킷의 flag 값에 따라 기능이 달라진다.

종류
내용
URG
비활성화 되어있다가 긴급시에 사용되어 Urgent Pointer라는 필드와 동시에 사용됨
ACK
모든 플래그에 확인응답을 나타내는 플래그
PSH
중간과정을 거치지 않고 바로 osi 7계층의 상위계층으로 데이터 전달하는 것을 담당
RST
(reset)
비정상적으로 세션을 끊거나 즉시 연결을 끊고자 할 때 사용되어지는 플래그
(사용자의 동의를 구하지 않고 강제)
*공격자가 해킹을 시도할 때 자주 사용되어지는 플래그비트임.
주기적으로 일어난다면 공격에 대한 징후도 의심할 수 있어야함.
SYN
연결을 동기화한다는 특징 (서로 연결을 하기 위해서 연결을 성립(동기화)시키는 과정)
FIN
서로간에 연결이 되어서 통신을 하다 연결에 대한 종료가 필요할 때 사용되어지는 플래그 비트

 

-윈도우사이즈: 데이터의 크기를 지정한다.

-체크섬: 보내고자, 받고자하는 데이터에 오류가 있는지를 검출할 때 사용을 하는것

( tcp는 모든 통신에 있어서 오류를 검출하도록 의무적으로(무조건) 사용됨)

-긴급 위치(Urgent Pointer): 평소에는 비활성화 되어있지만 6개의 플래그비트 중 urg가 0에서 1로 활성화가 되면

그 때 가서 동시에 같이 사용되어지는 필드다.

 

3.UDP의 특징 : TCP와 반대개념

ⓙ.비연결형 서비스

송신 수신을 관장하는 것이 아님. 데이터에 대한 확인응답 안거쳐도 됨.

 

②.비신뢰적

udp의 통신방식은 3way handshaking이 아닌 서로 보내기만 하면 끝나는 방식

보낸 데이터가 올바르게 갔건 손실이 됐건 순서가 바뀌었건 이런 것들을 보장하지 않음

 

③.속도가 더 빠르다.

단방향 통신이고 tcp보다 구동해야 하는 동작들이 없기 때문에 속도가 더 빠르다.

=>udp best effort 방식을 쓰기 때문 :

분실 또는 손상에 구애 받지 않고 최선을 다해 목적지에 전송하면 되는 안정성 보다는 시간을 강조한 방식

4.UDP의 헤더구조

-송신/수신 포트번호

-총 길이

 

-체크섬

tcp에서 체크섬은 모든 헤더와 데이터에 대해서 무조건 오류검출하지만

udp에서의 체크섬은 선택적으로 원할 때만 체크섬 기능을 수행

 

 

5. 기타

tcp는 순서번호 필드를 통해 순서보장

/세그먼트를 이용한 가상 회선 방식

/일반적인(대부분의) 서비스(웹서핑 메일전송 파일전송 등) : 올바르게 데이터가 다 도착하고 보여지기 때문에

udp는 순서보장 안하고

/ 독립적인 데이터그램 방식 이용

/ 중간에 누락,손실이 되더라도 아무런 타격이 없는 서비스는 udp를 이용 (화상회의,스트리밍,인터넷전화등)

-tcp 흐름제어 기법 :

스탑-웨이트 (전송한 패킷에 대해 응답(ack) 받은 후 다음 패킷 전송)

=> (보완) 슬라이딩 윈도우 기법 (수신 측에서 설정한 윈도우 크기만큼 패킷을 전송하도록 함)

 

 

 

그림출처

https://www.javatpoint.com/tcp

https://www.javatpoint.com/udp-protocol

 

 

'Security > 보안관제' 카테고리의 다른 글

악성코드  (0) 2022.12.15
보안장비 (DDoS,FW,IPS,WAF)  (0) 2022.12.15
OSI 7계층별 장비  (0) 2022.12.15
OSI 7계층  (0) 2022.12.15
네트워크 보안공격(자율주제)  (0) 2022.12.15