각진 세상에 둥근 춤을 추자
[Network] 연결지향형 TCP 프로토콜 본문
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]
- 클라이언트가 서버에게 요청 패킷을 보낸다.
- 서버가 클라이언트의 요청을 받아들이는 패킷을 보낸다.
- 클라이언트는 이를 최종적으로 수락하는 패킷을 보낸다.
TCP를 이용한 통신과정 (데이터 송수신 과정)
TCP를 이용한 데이터 통신을 할 때 단순히 TCP 패킷만을 캡슐화해서 통신하는 것이 아닌 페이로드를 포함한 패킷을 주고 받을 때의 일정한 규칙
- 보낸 쪽에서 또 보낼 때는 SEQ 번호와 ACK번호가 그대로
- 받는 쪽에서 SEQ 번호는 받는 ACK 번호가 된다
- 받는 쪽에서 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 |