Skip to content

Latest commit

 

History

History
71 lines (35 loc) · 2.02 KB

09.md

File metadata and controls

71 lines (35 loc) · 2.02 KB

09. TCP

TCP 프로토콜

TCP가 하는 일

  • 연결 지향형
  • 안정적으로, 순서대로, 에러 없이 교환
  • UDP보다 안전하지만 느리다

TCP 프로토콜 구조

  • offset : 헤더의 길이, 4로 나눈걸 저장
  • window : 데이터 얼마만큼 더 보내. 니가 1MB 한번에 보내면 나 그정돈 받을수있어. 남아있는 TCP 버퍼 공간 의미

TCP 플래그

TCP 플래그의 종류

  • CEUAPRSF가 있음
  • TCP는 계속해서 연결 상태를 물어보는데, 현재 상태에 대한 플래그임
  • U : urgent 긴급비트, 지금 보내는거 우선순위 좀 높아, urgent pointer랑 세트
  • A : ACK 승인비트, 물어본거에 대한 응답
  • P : TCP 버퍼에 데이터가 있는지 없는지와 상관없이 그냥 데이터 보내겠다는 거
  • R : 초기화 비트, 연결되어있는 상태에서 연결관계 reset
  • S : SYN, 연결시작할 때 무조건 사용함, 동기화를 사용한다
  • F : FIN 종료 비트, 연결 끊을 때 사용

TCP를 이용한 통신과정

3 Way Handshake

  • 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정
  1. 클라이언트 -> 서버 : SYN 요청 패킷
  2. 서버 -> 클라이언트 : ACK, SYN 플래그 세팅해서 보냄
  3. 클라이언트 -> 서버 : ACK 응답 패킷

데이터 송수신 과정

  • TCP를 이용한 데이터 통신을 할 때 단순히 TCP 패킷만을 캡슐화해서 통신하는 것이 아닌 페이로드를 포함한 패킷을 주고 받을 때의 일정한 규칙
  1. 보낸쪽에서 또 보낼때는 SEQ, ACK 그대로
  2. 받는쪽에서 SEQ는 ACK번호가 됨
  3. 반는쪽에서 ACK는 받은 SEQ번호+ 데이터 크기

TCP 상태전이도

  • LISTEN : 포트번호를 사용하고 있는 상태
  • ESTABLISHED : 연결 수립된 상태