9. TCP 프로토콜(2)

2022. 11. 17. 19:18Web/Network

TCP의 연결 설정

3단계 설정(3-Way Handshake)

- A프로세스의 연결 설정 요청 : 임의의 순서번호(10) 선택한 후 SYN(연결 설정 요청) 전송

- B 프로세스의 응답 : 10에 대한 응답(ACK)과 임의로 선택한 순서번호(50)의 SYN 전송

- A 프로세스가 현재 보낼 데이터가 없는 경우 : 50에 대한 응답(ACK) 전송

 

TCP의 데이터 전송

정상적인 데이터 전송

- 3번째 연결 설정 단계에서부터 데이터 전송 가능

- (a)에서 개념적인 연결 설정의 2단계가 이루어지고, (b)에서 A 프로세스가 바로 데이터 전송을 시작

- 데이터 크기만큼 순서 번호 증가

- 흐름 제어는 윈도우 필드 이용

데이터 전송 오류

- 동일한 순서 번호 : 중복으로 판단하고 폐기

- 순서 번호가 빠지는 경우 : 분실로 판단

- NAK는 지원하지 않음 : 분실 또는 변형 시 수신 프로세스는 응답을 하지 않고, 송신 측에서 타임아웃 기능으로 재전송

 

TCP의 연결 해제

- 해제하고자 하는 측에서 FIN 전송

- FIN 수신 측에서 보낼 데이터가 있는 경우 계속 송신할 수 있음

- 비정상적인 종료 / 연결 거부(RST 사용) : 자원 부족, 세션 오류, 이미 close 했는데, 다른 쪽이 계속 보내는 경우, 서버가 연결 설정을 거부

 

혼잡 제어 

- ECN : ECT 0과 ECT 1은 동일한 의미, ECN 기능을 위해 TCP 프로토콜의 헤더에 ECE 필드와 CWR 필드가 추가

- 연결 설정 과정에서 SYN, CWR, ECE 설정하여 전송

- 응답 : ECN 기능을 사용 : (a)처럼 SYN, ACK, ECE 플래그를 지정하여 응답

             ECN 기능을 사용 : (b)처럼 SYN, ACK 플래그만 지정하여 응답

- ECN의 동작 원리 : 수신 프로세스의 중개를 거쳐 간접적으로 송신 프로세스에 혼잡을 통지

 

 

 

* 쉽게 배우는 데이터 통신과 네트워크(3판) 책을 바탕으로 작성하였습니다.

https://product.kyobobook.co.kr/detail/S000061352064

'Web > Network' 카테고리의 다른 글

11. 상위 계층  (0) 2022.11.26
10. 전송 계층  (0) 2022.11.17
9. TCP 프로토콜(1)  (0) 2022.11.17
8. 네트워크 계층(3)  (0) 2022.11.15
8. 네트워크 계층(2)  (0) 2022.11.15