카테고리 없음

TCP/UDP(수정중)

53C 2020. 9. 17. 00:11
반응형

TCP

 

TCP(Transmission Control Protocol)

-3Way-Heandshake 과정을 거쳐 세션을 성립하고 패킷을 전송하는 연결지향형 프로토콜이다.

-패킷전송중 발생하는 손실과 중복 오류를 검출하고 해결하는 기능을 가지고 있다.

-전송계층에 정의되어있다. 응용계층과 네트워크 계층의 동작사이의 매개체로 사용이 된다.

-프로세스간의 통신을 위해서 별도의 주소 포트(Port)를 가진다.

-웹(HTTP)과 같은 신뢰성을 요구하는 통신에 사용된다.

-세션을 가지고 통신을 한다.

 

 

 

 

TCP 3Way-Heandshake 과정

1. 클라이언트는 서버에 접속을 요청하는 SYN패킷을 보낸다. 이때 클라이언트는 SYN/ACK 응답을 기달리는 SYS_SENT 상태가 된다.

2. 이때 서버는 Listen 상태로 포트 서비스가 가능한 상태이다.(Closed:닫힌상태) 서버는 SYN요청을 받고 클라언트에게 요청을 수락하는 ACK와 SYN flag가 설정한 패킷을 발송하고 클라이언트는 다시 ACK로 응답을 기다린다. 이때 서버는 SYN_RECEIVED상태가 된다.

3. 클라이언트는 서버에게 ACK를 보내고 이후부터 연결이 이루어지고 데이터가 오고가게 된다. 이떄 서버의 상태는 ESTABLISHD이다.

 

세션연결
세션 해제

 

TCP 헤더

TCP 헤더의 최소크기는 20 바이트이며 최대 40 바이트이다.

 

# 필드

Source Port : 패킷을 송신하는 출발지의 포트번호

Destination Port : 패킷을 수신할 도착지의 포트번호

Sequence Number : 세그먼트(패킷)의 순서 표기

Acknowledgment Number : 수신한 데이터에 대한 응답으로 SEQ+1값을 전송

Data Offset : TCP헤더와 데이터를 포함한 전체 길이

Reserved: 미래를 위해 예약된 필드 - 항상 0

Window Size : 도착지에서 한번에 수신 가능한 버퍼의 크기

Checksum : 데이터가 전송 중 손상되지 않는지 검사

Urgent Pointer : Urgent데이터의 마지막 비트(Urgent Flag가 1로 설정시 동작)

Options and Padding : 최대 40바이트, TCP 헤더 외에 추가적인 정보를 송신할때 사용

 

# Flags

CWR : 송신자가 자신의 sindow size를 줄임

ECE : 혼잡 감지 시 ECE 플래그 설정후 송신자에게 알림

URG : Urgent pointer 사용

ACK : SYN에 대한 확인

PSH : 수신측은 버퍼의 데이터를 즉시 응용계층에 전송

RST : 강제 세션 종료

SYN : 세션 시작

FIN : 세션 종료

 

UDP

UDP비연결지향형 프로토콜로서 단순 오류 검출 기능만을 가지고 있다.

따라서 TCP보다 패킷의 구조가 단순하고 오버헤드가 적다

DNS와 같은 소량의 데이터 전송 시 이용한다.

 

UDP 헤더

 

Source Port : 패킷을 송신하는 출발지의 포트번호

Destination Port : 패킷을 수신할 도착지의 포트번호

Total Length : UDP헤더와 데이터를 포함한 전체 길이

Checksum : 데이터가 전송중 손상되지 않았는지 검사

 

 

포트가 닫힌경우 ICMP unreachable 응답을 받는다.

 

 

TCPUDP 보안상의 차이점

인증 권한 > ID,PW>유지>Session / UDP Session X Pass Phrase(SNMP)

검증 : UDP=> Spoofing(DNS spoofing, DHC Pspoofing)

암호화: KEY=> 대칭키(네트워크)/ 비대칭키(사용자 인증, 키동기화) => Session Key / UDP Session X

-상태확인: Stateful(4계층이상) VS Stateless(2,3계층)

 

1.     TCP

-       높은 신뢰성

-       가상 회선 연결 방식

-       연결의 설정과 해제

-       데이터 체크섬 (데이터 재전송 여부 판단)

-       시간 초과와 재전송

-       데이터 흐름 제어

 

2.     UDP

-       비연결 지향형

-       네트워크 부하 감소

-       비신뢰성

-       전송된 데이터의 일부가 손실

 

3.     차이점

기본적으로 TCP의 신뢰성을 보장하는 여러 패킷들로 인하여 DOS 공격 예상 가능, 연결 과정 중 중간자 공격 등 다양한 시나리오 존재하나 반면, UDP는 데이터 자원으로 인한 공격은 원천적 불가능 (데이터 손실 시 복구 불가능한 단점 존재)

 

 

#세그먼트

IP는 패킷의 형태로 데이터를 전달한다. 전송계층에서 TCP는 일련의 바이트를 세그먼트라고 하는 패킷으로 그룹화 하낟.

TCP는 전송을 위해 각 세그먼트에  헤더를 붙이고 IP계층에 세그먼트를 IP데이터 그램으로 캡슐화되어 전송이 된다. 

 

네트워크 계층에서 IP는 서버와 클라이언트간의 데이터 전송을 담당하한다. 이때 데이터링크 계층에서 올바른 응용프로그램으로 포트를 지정하는 역활을 한다.

 

반응형