일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- matplotlib
- 가상환경
- 데이터베이스
- 기초
- 역할
- 에러
- 데이터분석
- 플라스크
- MySQL
- 단축키
- 코랩
- 엑셀
- 운영체제
- 머신러닝
- 라이브러리
- 디버깅
- visual studio code
- 아나콘다
- 리눅스
- 깃허브
- 우분투
- 파이썬
- 판다스
- 원격저장소
- vscode
- OpenCV
- 예제
- SQL
- 디렉토리
- 프로그래머스
Archives
- Today
- Total
취미와 밥줄사이
[ Network ] TCP 3 Way-Handshake 본문
TCP 3-way Handshake란
- TCP는 장치들 사이에 논리적인 접속을 성리하기 위하여 3-way handshake 사용
- TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션ㅇㄹ 수립하는 과정을 의미
- Clinet -> Server : TCP SYN
- Server -> Clinet : TCP SYN ACK
- Clinet -> Server : TCP ACK
- SYN: synchronize sequence numbers
- ACK: acknowledgement
- TCP 접속을 성공적으로 성리하기 위한 절차
3-way Handshaking의 역할
- 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장
- 실제로 데이터 전달이 시작되기 전에 받는 쪽이 준비되었다는 것을 확인
3-way handshaking 과정
- Step1
- A 클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다.
- 이때 A 클라이언트는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다.
- Step2
- 이떄 서버는 Listen 상태로 포트 서비스가 가능한 상태여야 한다.(Closed: 닫힌 상태)
- B서버는 SYN 요청을 받고 A클라이언트에게 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송
- A가 다시 ACK으로 응답하기를 기다린다.
- B서버는 SYN_RECEIVED 상태가 된다.
- Step3
- A 클라이언트는 B서버에게 ACK을 보내고 이후부터는 연결이 이루어지고 데이터가 오고간다.
- B서버 상태가 ESTABLISHED
상태 | |
Closed | 닫힌 상태 |
Listen | 포트가 열린 상태로 연결 요청 대기중 |
SYN-sendt | SYN 요청을 한 상태 |
SYN-Received | SYN 요청을 받고 상대방의 응답을 기다리는 중 |
Established | 확인, 확립된 상태 즉, 연결인 확인된 상태 |
REFERENCE
https://sleepyeyes.tistory.com/4
https://sleepyeyes.tistory.com/4
https://hyemsinabro.tistory.com/157
'Infrastructure > Network' 카테고리의 다른 글
[ Network ] netstat 명령어 사용법 (0) | 2022.03.08 |
---|---|
[ Network ] ARP(Address Resolution Protocol) (0) | 2022.03.08 |
[ Network ] Ethernet이란 (0) | 2022.03.07 |
[ Network ] Host-only, NAT, Bridged (0) | 2022.03.07 |
[ Network ] 네트워크 데이터 전송 단위 (0) | 2022.03.06 |