TCP란

공부기록·2023년 10월 15일
0
post-thumbnail

TCP


  • Transport layer에 존재하는 전송제어 프로토콜이다.

Port 번호

  • protocol에 따라 부여된 port 번호가 있어 protocol알면 port번호를 알 수 있다.
    • 예시
      • 20,21 FTP
      • 23 TELNET
      • 25 SMTP (Simple Mail Transfer Protocol)
      • 80 HTTP
  • IP 주소를 알아서 PORT 번호 모르면 접근할 수 없다.

TCP 전송방식


  • 정해진 byte 크기로 잘라서 전송한다.
  • sending buffer과 receive buffer가 존재한다.



TCP 구조

Sequence Number

  • byte단위로 데이터를 보낼 때 데이터에 붙는 임의적인 번호

Acknowledgment field

  • 잘 받았는지 확인용
  • 다음에 어느 부분부터 받으면 되는지를 보낸다.
  • Cumulative ACK : 다음에 받아야할 번호를 말함.
    • sender(data) : #101
    • receiver(ACK) : #201
    • sender : #201
    • receiver : 301
      • if Selective ACK : 받은 걸 알려줌 -> sender : #101, receiver : #101

HLEN

  • Header의 길이는 최소 20byte 최대 60byte이다.
  • 표현할 수 있는 값은 0~15로 * 4 해주면 진짜 header 크기가 나온다.
  • 이는 60을 표현하기 위해서는 6bit가 필요한데 이런 식으로 계산하면 2bit를 아낄 수 있기 때문이다.

Control Field

  • ACK : ACK이 유효한 숫자인가를 나타냄
  • SYN : Sequence Number를 보낸다.
  • FIN : 연결을 끊을 때 보낸다.

Checksum

  • 송신 도중에 생길 수 있는 오류를 체크하는 용도
  • header와 pseudoheader을 16bit씩 자른 다음 그 조각들을 다 더한 후에 그 값의 보수를 계산하면 그것이 checksum이다.
  • pseudoheader는 IP header의 내용을 가져와 사용하고 계산 후 버린다.
  • TCP에서 이는 필수이다.

0개의 댓글

관련 채용 정보