와이어샤크 - 6. transport layer

roon-replica·2022년 8월 30일
0

network

목록 보기
6/7
  • 참고자료: 와이어샤크를 활용한 실전 패킷 분석 3/e

TCP

  • Transmission Control Protocol

  • TCP의 가장 큰 목표는 host-to-host 데이터 전달에 신뢰성을 주는 것이라고 함.
    TCP는 데이터를 전송하기 전에 연결을 설정하기 때문에 connection-oriented 프로토콜이라 불림.
    rfc 793 - TCP

패킷 구조

port

  • 모든 TCP 통신은 TCP 헤더에 있는 발신지, 목적지 포트 번호를 이용한다고 함.
    서버로 요청하는 경우, 발신지 포트는 그다지 중요하지 않고, 수신 대기 중인 목적지 포트를 알아야 함.

  • port 분류

    • 시스템 포트 그룹(well known, 1~1023)
    • 임시 포트 그룹(1024~65535)

연결 설정

  • 모든 TCP 기반 통신은 두 호스트 간의 3 way handshake로 시작해야 한다고 함.

  • 연결 설정 과정

    1. A -> B, SYN
    2. B -> A, SYN/ACK
    3. A -> B, ACK

연결 해제

  • TCP 연결 해제는 통신이 완료된 후 두 컴퓨터 간의 연결을 정상적으로 종료하는데 사용된다고 함.

  • 연결 해제 과정

    1. A -> B, FIN/ACK
      B -> A, ACK

    2. B -> A, FIN/ACK
      A -> B, ACK

TCP 재설정

  • 이상적으로 연결이 종료되지 않고, 갑자기 끝나는 경우도 있음.
    연결할 수 없는 컴퓨터로 패킷이 보내지면 RST(Reset) 플래그가 설정된 TCP 패킷이 보내진다고 함..
    RST 패킷은 아무 내용이 없는 TCP 패킷이라 연결을 종료하게 됨.

UDP

  • 신속한 전송을 목표로 함.
    DNS와 DHCP는 전송 속도가 중요해서 UDP를 사용한다고 함.
    UDP에는 패킷이 성공적으로 전송됐는지 확인하는 기능이 없다고 함.
    DNS, DHCP는 오류 검사 및 재전송 타이머를 자체 처리한다고 함.
  • connectionless protocol
    호스트 간의 연결 설정, 종료 과정이 없음.

패킷 구조

질문들

  • TCP 연결 종료가 QUIC 이런 프로토콜에 영향을 받아서 좀 최적화되는거 같은데..?
    관찰해보니.. 마지막 ACK 같은 경우는 SYN/ACK로 쓰이기도 하는듯?

  • 재전송 타이머 확실히 모름.

profile
집중 ➝ 프로세서↑ 시간 투자 ➝ 디스크↑

0개의 댓글