본문 바로가기

INFOSEC/ NETWORK

UDP, TCP

UDP ( User Datagram Protocol )

- 데이터의 빠른 전달을 보장하기 위해 사용 됨
- 빠른 속도 보장을 위해 대부분의 기능을 제한 함
    ▪ 비 신뢰성
    ▪ 비 연결 지향성
    ▪ 최소화된 Header
- 단편화 크기 → 512byte
    ▪ 재 전송 시 빠른 처리를 위하여 작은 단위로 데이터를 생성 함

 

 

• UDP를 이용하는 Service 종류

    - 빠른 통신 속도가 필요한 서비스 → 실시간 통신 (방송, 카톡, 스트리밍 같은거), 음성 서비스에 많이 사용 됨

      ( 빠른게 중요한 거. 정확히 못 보내도, 다시 보내도 상관 없는거. )
    - 정보 해석 및 전달 서비스
         ▪ DNS → UDP 53 , DHCP → UDP 67(S)/UDP 68(C)
    - 빠른 파일 전송
         ▪ TFTP → UDP 69

 

 

 


 

 

TCP ( Transmission Control Protocol )

- 데이터 전달의 신뢰성을 최대한 보장


- 연결 지향  (connection oriented)
     ▪ 데이터를 전달할 논리적인 연결을 먼저 구성 → 3way Handshake
     ▪ 연결 설정 → 데이터 전송 → 연결 종료


- 신뢰성 보장
     ▪ 순차적으로 데이터를 전송 함
     ▪ 확인응답 및 재전송


- 흐름제어
     ▪ 데이터 전달에 지연 현상이 발생했을 때 데이터의 양을 조절 → Sliding Window

 

- 혼잡제어

 

 

 

• TCP를 이용하는 Service 종류


  - 정확한 데이터 전달이 필요한 대부분의 서비스
  - 파일 전송 : FTP → TCP 20(data), TCP 21(Control)
  - WEB 서비스 : HTTP → TCP 80

 

src add -> 2^16=65536 개

- Src. port address : 2byte.

- Dst. port address : 2byte.

 

- Sequence Number (4byte)
    ▪ 순서화된 일련번호
    ▪ 초기순서번호는 임의의 값으로 설정(ISN – Initial Sequence Number)
    ▪ 전송되는 데이터의 크기를 누적시키며 순서를 알려 줌


- Acknowledgment Number (4byte)
    ▪ 확인 응답 번호
    ▪ 데이터를 정상적으로 수신한 뒤 예상하는 다음 Sequence Number를 알려 줌
        > 받은 Sequence Number + Payload 크기
        > 최초 SYN에 대한 응답은 받은 Sequence Number + 1 

 

- Sequence Number (4byte)
     ▪ 순서화된 일련번호
     ▪ 초기순서번호는 임의의 값으로 설정(ISN – Initial Sequence Number)
     ▪ 전송되는 데이터의 크기를 누적시키며 순서를 알려 줌

 

- Window (2byte) :  통신의 상대방에게 자신의 버퍼 여유용량 크기를 지속적으로 알려 줌,  Sliding Window 기법 사용

 

- Urgent Pointer
     ▪  TCP Flag에 U 가 찍히면 찾아가는 곳. 긴급 데이터의 마지막 위치를 나타내는 값

 

 

6가지 중요함.


 ★ 3way Handshake  

- TCP 통신 시 상호간의 연결을 통해 신뢰성을 보장하기 위한 기법
- TCP segment를 전달하기 전 목적지와의 통신상태를 확인
- 정상 통신이 가능하면 논리적인 양방향 연결을 맺은 후 Segment를 전송

 

 

(시작할 땐 3way, 끝날 땐 4way )

 

LISTEN : TCP 포트 수신대기중

SYN_SENT : SYN+ACK 를 기다리는중 

SYN_RCVD : SYN+ACK 를 보내고 ACK 를 기다리는중

ESTABLISHED : 통신중 ACK 를 수신해야 됨 

FIN_WAIT1  : FIN+ACK 을 보낸상태

CLOSE_WAIT : FIN+ACK 를 수신한 상태 

FIN_WAIT2  : 상대의 FIN+ACK 를 기다리는 상태

LAST_ACK   : ACK 를 기다리는 상태 

TIME_WAIT : 모든과정이 완료 (ACK 를 보낸 상태)

일정시간이 지난후 장치상태는 closed 상태로 전환

 

 

아래 사진들은 두 서버간 telnet 접속을 시켜보고 확인한

3way handshaking 메세지

 

 

 

 


TCP 확인 응답

 

- 일반 확인 응답

     ▪ Segment : ACK → 1 : 1

 

- 누적 확인 응답

     ▪ Segment : ACK → N : 1

 

- 선택적 확인 응답

     ▪ 누적 확인응답의 문제점의 해결 → 중간에 손실된 segment가 발생하면 정상적으로 전달받은
       segment까지 재전송이 해야 함
     ▪ 누적 확인응답과 비슷하지만 확인응답을 할 때 재전송이 필요 없는 segment의 정보를 알림으로 불필
       요한 재전송을 방지 함

 

 


 

'INFOSEC > NETWORK' 카테고리의 다른 글

STP (Spanning Tree Protocol )  (0) 2019.09.05
VLAN 실습 (GNS3)  (0) 2019.09.05
ICMP ( Internet Control Message Protocol )  (0) 2019.09.03
ARP (Address Resolution Protocol)  (0) 2019.09.03
Network 기본 동작 구조  (0) 2019.09.03