티스토리 뷰

프로토콜 스택간 동작 원리

nestat

상단: 접속  동작, 하단 송 수신 동작

제어정보 (헤더)

제어정보는 서버측에서 확인할 수 없다.

  • 송신처, 수신처 포트번호
  • SEQ,ACK
  • 데이터 오프셋
  • 컨트롤 비트: 통신제어를 위한비트
    • ACK: 수신데이터의 일려번호 필드가 유효함을 나타냄 -> 데이터를 올바르게 도착했음을 의미한다.
    • SYN: 송신측과 수신측의 일렬번호를 확인, 최초연결 시 사용
    • FIN: 연결끊기
    • URG: 긴급포인터의 유효
    • RST: 접속 강제종료
  • 윈도우: 수신처에서 받을 수 있는 데이터의 양을 송신측에 알려주기 위한 제어정보
  • 긴급 포인터: 긴급하게 처리해야 할 데이터를 나타냄
  • 체크섬: 오류 유무 사용

TCP

  • 데이터를 송수신하기 위한 프로토콜
  • 패킷을 제대로 받지 못했을 경우 다시 송신
    • 수신확인 응답이 꼭 필요하다.

UDP

  • 데이터를 송수신하기 위한 프로토콜
  • 수신확인 응답이 필요없음
    • 패킷에 오류가 발생하여도 무시한다.
  • 음성 및 동영상 데이터에 사용된다
    • 시간안에 데이터를 건네주어야 한다.

IP

패킷 송수신 동작을 제어하는 부분

패킷

데이터를 저장한 패킷

  • 데이터를 운반하기위해 데이터를 작게 나눈 형태
  • 데이터를 저장한 패킷의 경우 data가 패킷에 담겨 있다.
  • 데이터가 들어있지 않은 경우 header만 패킷에 들어간다
    • header = IP 제어정보 + TCP제어정보

MTU

한 패킷으로 운반할 수 있는 최대길이

MSS

헤더를 제외한 데이터의 최대길이

패킷 분할

  • 송신버퍼에 MSS의 길이가 초과하면 패킷을 분배
  • 패킷 분배시 HTTP 헤더까지 데이터로 판단하여 분할한다 -> 프로토콜 스택은 Application의 데이터를 모른다.
  • 분배 후 TCP 헤더 부가

ARP

arp -a
  • IP주소에 대응하는 이더넷의 MAC 주소를 조사할 때 사용

ICMP

  • 오류 및 제어용 메세지 통지

reference

성공과 실패를 결정하는 1% 네트워크 원리