2022. 11. 17. 19:18ㆍWeb/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판) 책을 바탕으로 작성하였습니다.
'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 |