일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 라우터
- 보안관제
- 3way handshaking
- english
- EC2
- C#
- ELB
- k8s
- 네트워크
- Telnet
- ssh
- Queue
- kubernetes
- 브리지
- AI스쿨
- AWS
- SQS
- 7계층
- 프로토콜
- tcp
- SMTP
- Protocol
- ICMP
- IPS
- Storage Gateway
- 침입탐지시스템
- 침입차단시스템
- 스위치
- IDS
- docker
Archives
- Today
- Total
Devsecops
[AI스쿨 리팩토링]TCP 본문
728x90
TCP 프로토콜
연결지향 프로토콜
신뢰성을 가장 중요하게 생각하는 프로토콜, 송신자와 수신자간의 안정적인 통신을 위함
- 물리적으로 전용회선이 연결되어 있는 것처럼 가상의 연결 통로를 설정해서 통신하는 방식
- 논리적인 연결 통로를 통해 데이터를 주고받아 데이터 전송순서를 보장한다
- 스트림 기반 전송방식이용
신뢰할 수 있는 프로토콜
- 흐름제어 : 상대방이 받을 수 있을 만큼 데이터 전송
- 오류제어 : 데이터 오류나 누락없이 안전한 전송 보장
- 혼잡제어 : 네트워크 혼잡정도에 따라 송신자가 데이터 전송 량 제어
구조
- Source Port : 출발지 포트번호
- Destination Port : 목적지 포트번호
- Sequence Number : 송신데이터 번호
- Acknowledgment Number : 상대방이 다음에 전송할 순서 번호
- HLEN : 헤더의 길이
- Reserved : 예약(사용x)
- Control Flags : 제어 비트
더보기
- URG : 긴급 데이터 설정, 상호간에 미리 약속 되어 있어야 작동
- ACK : 수신 확인 응답
- PSH : 송수신 버퍼에 있는 데이터를 즉시 처리
- RST : 연결 중단(강제), 강제성을 가진 재시작을 가짐, 공격자가 공격을 하면서 세션을 탈취할 때 많이 사용, Out of Path 방식 에서도 사용한다.
- SYN : 연결 설정
- FIN : 정상적인 연결 종료
- Window Size : 수신버퍼의 여유 공간
- Checksum(필수 사항) : 헤더를 포함한 전체 세그먼트에 대한 오류를 검사하기 위한 필드
- Urgent Pointer : 제어비트 URG 설정시 이용
분할과 재조합
MSS
- TCP 세그먼트 데이터부의 최대 크기
- 연결과정에서 MSS 정보 주고 받는다
- 프레임의 MTU 영향을 받는다
- Application 계층에서 전달된 데이터는 TCP 계층에서 MSS 크기에 따라 분할 발생, 수신측에서는 재조합하여 Application 계층으로 전달
데이터 송수신 과정
1. 재전송 과정
- TCP는 모든 세그먼트 전송시마다 재전송 타이머동작, 이를 이용하여 일정 시간동안 ACK 응답이 없으면 송신자는 해당 패킷이 누락된 것으로 판단하여 재전송 수행
- 이 때 데이터 유실이 일어나면 매우 혼잡한 상태로 본다
2. 빠른 재전송 과정
- Client는 중복 ACK가 두 번 발생할 때까지 일시적으로 Server에 전달한 세그먼트의 순서가 맞지 않는 상태로 판단하다가 3번 발생하면 해당 세그먼트가 누락된 것으로 판단하여 재전송 수행
- 이 때 데이터 유실이 일어나면 덜 혼잡한 상태로 본다
연결 설정 과정(3 Way Handshake)
연결 종료 과정(4 Way handshake)
728x90
'[AI스쿨] 리팩토링 > TCP' 카테고리의 다른 글
TCP 연결 종료 과정(4 Way handshaking) (0) | 2022.09.29 |
---|---|
TCP 연결 설정 과정(3Way Handshake) (0) | 2022.09.29 |