본문 바로가기

CS/네트워크

TCP/UDP의 Header

TCP Header

  • Source Port, Destination Port: 송신, 수신 포트 주소
  • Sequence Number: 송신자가 보내는 데이터의 순서 번호(MSS단위로 증가): k번째를 보냈다
    • MSS(Max Sequence Size): TCP가 한 번에 보낼 수 있는 데이터의 최댓값
    • 즉, 5000 bytes 데이터가 있고 MSS가 100bytes라면 50개의 세그먼트가 생성된다.
    • 첫 번째 세그먼트의 sequence number는 0, 두 번째 세그먼트의 sequence number는 (0+100)으로 설정된다.
  • Acknowledge Number: 수신자가 받은 바이트 수에 대한 응답: (k-1)번째까지 받았다→k번째를 기다리고 있음
    • 위의 상황에서 0번째 데이터를 정상적으로 모두 받았다면, 0~99번째 바이트까지 받았을 것이다.
    • k번째를 기다리고 있기 때문에 k(100)를 보낸다.
  • Header Length: 헤더 길이
  • Reserved: 예약 필드
  • Window Size: 수신자가 받을 수 있는 최대 데이터 크기→송신자는 ACK를 기다리지 않고도 해당 사이즈만큼의 데이터를 전송할 수 있다.
  • TCP Checksum: 헤더와 데이터의 에러 확인
    • 송신자: checksum 계산 알고리즘에 의해 계산한 checksum을 헤더에 포함시켜 전송
    • 수신자: 동일한 알고리즘으로 데이터를 검사하여 오류 체크
  • Urgent Pointer: 어디서부터가 긴급한 데이터인지 알려준다.
  • Options
  • Flag Bit
    • URG: 우선순위 높은 데이터임을 표시
    • ACK: 승인비트. SYN 이후의 모든 패킷은 ACK 설정이 필요하다. 물어본 것에 대한 응답을 나타낸다.
    • PSH: 수신측에 버퍼링된 데이터를 상위 계층에 즉시 전달(빠른 응답 가능)
    • RST: 초기화 비트. 연결되어 있는 상화에서 문제가 발생한다면 연결을 리셋한다.
    • SYN: 동기화 비트. 상대방과 연결하기 위해서는 무조건 사용한다. 최초 패킷에만 사용
    • FIN: 종료 비트. 연결을 끊을 때 사용

UDP Header

 

  • Source Port, Destination Port: 송신, 수신 포트 주소
  • Length: 헤더와 데이터의 전체 길이
  • Checksum: 에러 확인 용도. 에러 복구 필요 필드가 필요없기 때문에 TCP 헤더에 비해 간단하다.

'CS > 네트워크' 카테고리의 다른 글

HTTP 헤더  (0) 2021.05.25
GET과 POST  (0) 2021.05.18
TCP의 3 way handshake와 4 way handshake  (0) 2021.05.17
TCP와 UDP  (0) 2021.05.15
OSI 7계층  (0) 2021.05.15