각진 세상에 둥근 춤을 추자

[Network] 연결지향형 TCP 프로토콜 본문

네트워크

[Network] 연결지향형 TCP 프로토콜

circle.j 2024. 3. 19. 11:46
TCP 프로토콜 
  • 전송 제어 프로토콜 (Transmission Control Protocol, TCP)
  • 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 통신을 안정적으로 순서대로 에러없이 교환할 수 있게 한다
  • TCP는 UDP보다 안전하지만 느리다
  • TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신 비접속형 사용자 데이터그램 프로토콜 (User Datagram Protocol)을 사용한다. 

 

  • Source Port : 출발지 포트
  • Destination Port : 목적지 포트
  • Sequence Number : SEQ번호
  • Acknowledgment Number : ACK번호
  • Offset : 헤더 길이
  • Reserved :  예약된 필드로 항상 0으로 설정된다. (사용하지 않는 필드)
  • TCP Flag : 신호에 대한 정보 표기
  • Window : 내 사용공간이 얼마나 남아있는지 알려주는 곳
  • Checksum : 확인용 checksum
  • Urgent Pointer : TCP Flag의 Urgent flag와 함께 사용된다.
  • TCP Options : 변동적인 길이를 가지며, 필수적이지 않다. 일반적으로 잘 붙지 않는다.

 


TCP를 이용한 통신과정 (연결수립과정) 

TCP를 이용한 데이터 통신을 할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정

[3Way Handshake]

  1. 클라이언트가 서버에게 요청 패킷을 보낸다.
  2. 서버가 클라이언트의 요청을 받아들이는 패킷을 보낸다.
  3. 클라이언트는 이를 최종적으로 수락하는 패킷을 보낸다. 

TCP를 이용한 통신과정 (데이터 송수신 과정) 

TCP를 이용한 데이터 통신을 할 때 단순히 TCP 패킷만을 캡슐화해서 통신하는 것이 아닌 페이로드를 포함한 패킷을 주고 받을 때의 일정한 규칙

  1. 보낸 쪽에서 또 보낼 때는 SEQ 번호와 ACK번호가 그대로
  2. 받는 쪽에서 SEQ 번호는 받는 ACK 번호가 된다
  3. 받는 쪽에서 ACK 번호는 받는 SEQ 번호 + 데이터 크기 

TCP 상태 전이도 (TCP 연결 상태의 변)

 

  • 실선: 클라이언트의 상태변화, 점선: 서버의 상태변화 
  • LISTEN : 포트번호를 서버쪽에서 프로그램이 사용중인 상태 (즉, 클라이언트가 요청을 들을 수 있는 상태)
  • ESTABLISHED : 3Way Handshake로 연결이 수립된 상태

 

출처: https://www.youtube.com/watch?v=WseqBDo-j3Y&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi&index=25

 

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

[Network] 비연결지향성 UDT 프로토콜  (0) 2024.03.19
[Network] 4계층 이론  (0) 2024.03.18
[Network] IPv4의 조각화  (0) 2024.03.18