연결 지향형 transport
TCP 개요
- Connection-oriented(연결 지향형)
- Data 전송 이전에 handshaking은 송신자와 수신자 사이 초기화하는 역할이다.
- Point - to - Point ( 단일 송신자 , 단일 수신자 )
- 신뢰적 전송
- Pipelined
- Full duplex 전송 ( 동일 연결을 통해 양방향 데이터 전송 )
- 세 방향 핸드세이크
TCP 신뢰적 데이터 전달
- TCP는 IP의 비신뢰적 service위에 rdt service를 생성
- Pipeline 형태의 전송
- 누적 ACK 사용
- TCP는 한개의 timer만을 사용한다.
- 재전송은 다음과 같은 사건에 의해 시작된다. ( timer만료 / 중복된 ACK )
- 처음에는 단순화된 TCP 송신만을 고려할 것임 ( 중복 ACK무시, 흐름 제어 및 혼잡 제어 무시 )
TCP 흐름제어
- TCP연결의 수신측은 수신 buffer
- 응용계층 process는 버퍼를 읽는 속력이 느릴 수 있다.
흐름제어 : 수신 측 buffer에서 overflow가 발생하지 않도록 송신측은 너무 많이 혹 은 너무 빠르게 전송
TCP 연결 관리
- 연결 설정 1. Client host는 TCP SYN segment를 server에 전송
2. server host가 SYN을 수신하면 SYNACK segment 송신
3. client가 SYNACK를 수신하면 ACK segment 송신
- 연결 해제 1. Client 종단시스템은 TCP FIN이라는 제어 segment를 server에 전송
2. server는 FIN을 수신하면, ACK로 응답, 연결을 종료하고 FIN전송
3. Client는 FIN을 수신하고 , ACK로 응답
4. server가 ACK를 수신하면 완료
혼잡제어의 원리
- 혼잡 : 흐름제어와 다름 , packet손실 , 긴 지연
혼잡제어에 대한 원리
- 종단간의 혼잡제어
- Network로부터 직접적인 feedback 없다.
- 종단 간 발생한 packet손실과 지연을 통해 혼잡 예상
- TCP에서 사용
- 네트워크지원 혼잡 제어
- Router가 종단 시스템에 feedback제공
TCP 혼잡제어
- 접근 방법
- additive increase : 손실이 발생되기 전까지 매 RTT마다 CongWin을 MSS씩 증가
- multiplicative decrease : 손실이 발생하면 CongWin을 절반으로 감소시킴
TCP 혼잡제어 : 구체적 사항
- 송신측의 전송 제한
- 손실과 전송지연을 무시한다면, rate = CongWin/RTT
TCP Slow Start
- 연결 설정되면, CongWin = 1/MSS
- 예상되는 사항 : 가용 대역폭 >> MSS / RTT
- 연결 설정되면, 첫번째 손실이 발생하기까지는 지수적으로 속도 증가
- 매 RTT마다 CongWin를 2배로 증가
- 구현 방법 : 매 ACK수신마다 CongWin를 1/MSS씩 증가
요약 : " 초기 속도는 느려지만 지수적 증가 "
손실 감지 (Reno 방식)
- 3개의 중복 ACK
- CongWin을 절반으로 줄임
- 그 후 window를 선형적으로 증가시킴
- Timeout인 경우
- CongWin = 1
- Window를 지수적으로 증가
- Thershold (Failed CongWin / 2)에 다다르면 선형적 증가
3개의 중복 ACK는 network이 일부 segment를 전달 할 수 있따.
Timeout은 보다 심각한 혼잡 시나리오를 의미
'Network > 컴퓨터 네트워크' 카테고리의 다른 글
[10] CH4 네트워크 계층 < Network 계층 개요> (0) | 2021.11.24 |
---|---|
[12] CH4 네트워크 계층 < 라우팅 알고리즘 > (0) | 2021.11.22 |
[8] CH3 Transport 계층 (0) | 2021.11.01 |
[7] CH3 Transport 계층 (0) | 2021.11.01 |
[6] CH3 Transport 계층 (0) | 2021.11.01 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!