-
(2) 3 way handshake - 연결CS 지식/○ Network 2021. 7. 22. 22:48
> 내글 참조 - 3way
https://korshika.tistory.com/134
(2) 인터넷 통신 - IP / TCP,UDP
1. 인터넷 통신 복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨 이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임 1-1) IP (internet protocol) 통신하기 위한 규약의 총칭 통신규약을 따
korshika.tistory.com
1. 3 way handshake 란?
1-1) 필요성
오늘날의 서버 - 클라이언트 연결은 논리적인 연결방식(물리적으로 direct하게 직접연결과 대비)
이를 검증하기 위한 절차가 있어야 하고 이를 위해 필요함
1-2) 과정
추가 참조 : https://mr-zero.tistory.com/36
[정리] TCP의 기능과 패킷 구조 - 1
TCP(Transmission Control Protocol)는 transport 계층의 대표적인 연결지향 프로토콜이다. TCP는 기본적으로 하위계층에서의(network, datalink 계층) 패킷 손실, 중복, 오류 등 모든 전송 문제를 검출하고 해결..
mr-zero.tistory.com
seq = Sequence / 같은 패킷에 SYN ACK 같이 전송 [복잡한 설명 ▼]
더보기1) 그림 과정
2) 위의 과정
위 그림에서 connection set-up은 흔히 3Way-Handshacking 이라 부르는 과정으로
client와 server간 세션을 성립하는 단계이다.
1. client는 server로 부터 원하는 서비스(ex. 80 HTTP)의 포트번호에
client의 ISN 값을 sequence number에 설정하고 SYN 패킷을 보낸다.
2. server는 자신의 ISN을 sequence number에 설정하여 SYN패킷과 순서1에 대한 응답으로
ISN(client)+1 값을 ackno-wledge number에 설정하여 전송한다.
3. client는 순서2의 SYN에 대한 응답으로 ISN(server)+1 값으로 acknowledge number를 설정하여 전송한다.
이때 seq-uence number의 값은 순서1의 ISN(client)+1로 설정되는데
이는 순서2의 acknowledge number와 동일하다.
[x, y값이 한번씩 바뀌면서 syn / ack 자리에 포함되어서 전송]
- 클라이언트가 서버에게 "SYN(seq=x) 패킷" 전송
- 서버가 (1)을 받은 후
클라이언트에게 받았다는 신호 "ACK(seq=y)"
클라이언트에게 "SYN(seq=x+1) 패킷" 전송 - 클라이언트는 (2)의 패킷(+ACK) 을 받고 신호 "ACK(seq=y+1)"을 전송
2. 3way handshake 종료
> Server connection timeout이랑은 다른듯
2-1) 필요성
연결 성립 후, 모든 통신이 끝났을 때 해제하는 scope에 대한 것
2-2) 과정
- 클라이언트는 서버에게 "FIN 플래그(연결 종료)" 전송
- 서버는 클라이언트에게
2-1) "ACK" 전송 + 나머지 모든 데이터 전송 위해 timeout상태
2-2) "FIN 플래그(연결 종료)" 전송 ← 2-1) 과정에서 데이터를 모두 내보낸 경우 - 클라이언트는 서버가 2-1) 메세지 보낸 경우
3-1) 2-2)를 받을 때 까지 Time_wait 으로 기다린다
3-2) Time_wait 이후 "ACK" 전송 + 클라이언트 socket 닫음 - 서버가 클라이언트 3-2)의 "ACK" 받은 후 socket을 닫음
- 종료
참조
[TCP] 3 way handshake & 4 way handshake | 👨🏻💻 Tech Interview
[TCP] 3 way handshake & 4 way handshake 연결을 성립하고 해제하는 과정을 말한다 3 way handshake - 연결 성립 TCP는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 w
gyoogle.dev
반응형'CS 지식 > ○ Network' 카테고리의 다른 글
(6) HTTP / HTTPS (0) 2021.07.27 (5) 대칭키 & 공개키(비대칭키) & SSL (0) 2021.07.27 (4) UDP & DNS (0) 2021.07.25 (3) TCP/IP (흐름제어 & 혼잡제어) (0) 2021.07.23 (1) OSI 7 계층 (0) 2021.07.22