반응형

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

 

반응형
Posted by 53C
,