TCP 프로토콜
① 개념
- 연결지향 프로토콜
- 물리적으로 전용회선이 연결된 것처럼 가상의 연결통로를 설정해서 통신하는 방식
- 데이터 전송 순서를 보장해는 순서제어 기능을한다.
- 스트림 기반의 전송방식을 사용한다. 즉, 데이터를 정해진 크기로 전송하는 것이 아니라, 임의의 크기로 나누어 연속해서 전송하는 방식을 사용한다.
- 신뢰할 수 있는 프로토콜
- 흐름제어 : 상대방이 받을 수 있을만큼만 데이터를 효율적으로 전송해주는 것
- 흐름제어를 위해 슬라이딩 윈도우 제어방식을 사용한다. 세그먼트 전송 시 마다 수신확인응답을 수신한 후 전송하게 되면 왕복시간이 길 경우 단위 시간당 데이터 전송량이 매우 떨어지므로 효율적으로 전송하기 위해 상대방이 받을 수 있는 범위 내에서 연속적으로 전송
- 오류제어 : 데이터의 오류나 누락 없이 안전한 전송을 보장해주는 것
- 오류 또는 누락 발생 시 재전송을 수행하여 이를 보정한ㄴ다.
- 혼잡제어 : 네트워크의 혼잡 정도에 따라 송신자가 데이터 전송량을 제어하는 것
- 혼잡 정도에 대한 판단 기준은 데이터의 손실 발생 유무로 판단한다. 전송한 데이터에 누락이 발생하면 네트워크가 혼잡한 상태로 판단
- 흐름제어 : 상대방이 받을 수 있을만큼만 데이터를 효율적으로 전송해주는 것
② 구조
- Source Port : 출발지 포트번호
- Destination Port : 목적지 포트번호
- Sequence Number : 송신 데이터 순서번호
- 송신 시 전송하는 데이터의 시작 바이트 순번을 담는다. 바이트 순번은 전송하는 데이터의 바이트 단위로 부여되는 연속된 번호를 의미한다.
- 연결설정 단계에서 초기 순서번호(ISN:Initial Seqeunce Number)를 상호 간에 주고받는다. 초기 순서번호는 0부터 시작한느 것이 아니라 임의의 수를 할당해서 사용한다.
- Acknowlegment Number : 상대방이 다음에 전송할 순서번호
- 수신 확인 응답(ACK)와 함께 해당 필드에 상대방이 다음에 전송할 순서번호를 담아서 보낸다.
- HLEN : 헤더의 길이
- 4Bytes 단위로 표시하며 헤더는 기본 헤더 20bytes + 옵션헤더 ~40bytes로 구성된다
- Reserved: 사용 x
- Control Flags
- URG(Urgent pointer is valid) : 긴급 데이터 전송을 알리는 제어 플래그
- ACK(Acknowlegment is valid) :상대방이 보낸 데이터가 정상 수신되었음을 알리는 "수신확인응답" 제어플래그
- PSH(Request for push) : 송수신 데이터의 즉시 처리를 위한 제어 플래그
- 송신 측 동작 : 송신 버퍼에 있는 데이터를 즉시 전송
- 수신 측 동작 : 수신 버퍼에 있는 데이터를 즉시 전송
- RST(Reset the connection) : 연결 강제 중단(연결 초기화)을 위한 제어플래그
- SYN(Synchronize sequence numbers) : 연결 설정을 위한 제어플래그
- FIN(Terminate the connection) : 연결 정상 종료를 위한 제어플래그
- Window Size
- 수신측에서 송신측에 보내는 Receiver window size로 수신 버퍼의 여유 공간 크기를 의미. 송신 측에선 이를 이용해 흐름제어를 한다.
- Checksum
- 헤더를 포암한 전체 세그먼트에 대한 오류를 검사하기 위한 필드
- Urgent Pointer
- 세그먼트가 긴급데이터(URG)를 포함하고 있는 경우에 사용되는 필드로 긴급데이터의 위치값을 담고있다.
'정보보안 > 네트워크 보안' 카테고리의 다른 글
[네트워크 기본학습] ICMP 프로토콜 (0) | 2024.11.14 |
---|---|
[네트워크 기본학습] IP 프로토콜 (3) | 2024.11.13 |
[네트워크 기본학습] ARP/RARP(TCP/IP 인터넷 계층) (0) | 2024.11.13 |
[네트워크 기본학습] TCP/IP 4 Layer (0) | 2024.11.13 |
[네트워크 기본학습] OSI 7 Layer (0) | 2024.11.13 |