300x250
12.
TCP: 전송
제어 프로토콜
contents
1.개요
2.TCP
소개
3.TCP
헤더와
캡슐화
4.정리
1. 개요
•TCP
•연결 지향의 신뢰성 있는 바이트 스트림을 제공
•UDP와 같은 네트워크 계층을 이용
•연결지향
•TCP를 이용하는 2개의
애플리케이션이 데이터를 교환하기 전에 TCP
연결을
확립함을 의미
•통신
문제 해결 방법
•부호이론
•정보를
전달할
때에 효율을
높이기 위해 또는
정보의
보호를
위하여
부호로 바꾸어
전달하는
것을 연구.
•오류정정코드
•일부
비트에 피해가 발생 하더라도 실제 정보를 추출할 수 있는 여분의 비트를 추가
•전송을 반복해서 시도
•ARQ(Automatic
Repeat reQuest, 자동 반복
요구)
•재전송
:
비트
오류를 다루기 위한 방법 중 하나
•재전송을 위해 다음이 필요함 :
•수신자가 패킷을
수신했는지 여부
•수신한 패킷이 동일한지
여부
•수신자는 패킷을 수신 했을 때 ACK를 전송
함
•송신자가 ACK를 받으면 다음 패킷을 보냄
•Question
•Q1. 송신자가 ACK를 얼만큼
기다릴 것인가? (14장)
•Q2.
ACK가
분실된다면 무슨 일이 발생하는가?(다음)
•Q3. 패킷을
수신했으나 오류가 있을 경우?(다음)
•Q2.
ACK가
분실된다면 무슨 일이 발생하는가?
•송신측은 패킷이 폐기된
경우와 구분하기 어려움.
•송신기는 패킷을 재전송
함.
•Q3.
패킷을
수신했으나 오류가 있을 경우?
•패킷의
오류검출을 위해 CRC를 사용함.
•오류가
포함 되어 있다면 ACK 전송을
억제함.
•송신기는 패킷을 재전송
하게 됨.
•문제점
•(1) 여러 가지
이유로 인해 패킷의 사본을
중복 수신할 가능성.
•(2) 송신자는 ACK 대기 시간동안 아무것도
하지 못함.
•해결책
•(1) 순서번호(sequence
number)를 이용함.
•(2) 패킷의 윈도우와
슬라이딩 윈도우
•송신측
•어떤 패킷이 해제
됐는지
•어떤 패킷이 ACK를
기다리는지
•어떤 패킷이 아직
전송되지 않았는지
•수신측
•어떤 패킷이 수신되고
응답했는지
•어떤 패킷이
기대되는지
•어떤 패킷이 제한된
메모리로 인해 유지 되지 못하는지
•문제점
•얼마나 큰
윈도우를 사용해야 하는가?
=> 흐름제어로
해결
•수신기와
네트워크가 송신기의 데이터 전송률을 처리하지 못한다면 어떤 일이 발생 하는가? =>흐름제어와
혼잡제어
•흐름
제어
•송신기의
속도를 강제로 늦추는 방법
•(1) 전송률
기반
•송신기에
전송률을 할당하고 그것을 초과해 전송하지 못하게 보장 함
•(2) 윈도우
기반
•슬라이딩
윈도우 사용시 많이 사용됨
•윈도우
크기를 시간에 따라 변화하도록 함
•윈도우
광고를 사용 함.
•수신기가
송신기에게 얼마나 큰 윈도우를 사용할 수 있는지 전달하는 방법
•문제점
•송신기와
수신기 사이 네트워크에서는 효율적이지 못함
•송신기의
전송률이 라우터의 능력을
초과할 가능성이 있음
•혼잡
제어가 필요
•혼잡
제어
•송신기가 네트워크를 압도하지 못하게 천천히 하는 것
•16장에서 다룸.
2. TCP 소개
•신뢰성
제공을 위해
•순서번호
•각 패킷의 처음
바이트에 대한 오프셋 바이트
•가변크기
허용과 재 패킷화에 사용 됨
•순서번호를
사용하면 중복 세그먼트를 폐기하고 세그먼트의 순서를 조정할 수 있음.
•체크섬
•TCP 헤더와
데이터, IP 헤더로부터
체크섬을 계산함.
•정확하지
않은 체크섬을 가지고
도착하면 그 패킷을 폐기하고
ACK를 보내지
않음.
•신뢰성
제공을 위해
•타이머
•TCP는
세그먼트 그룹을 전송 할 때 재전송 타이머를 설정함.
•시간 내에
ACK가
수신되지 않으면 세그먼트를 재전송 함.
•자세한
내용은 14장(TCP 타임아웃과
재전송).
3. TCP 헤더와 캡슐화
4. 정리
•TCP
•신뢰성
있음
•연결 지향
•바이트 스트림의 전송계층
서비스
•오류를
다루기 위한 방법
•오류정정코드
추가
•데이터
재전송
•타이머를
설정하여 처리
•패킷 순서
번호 표시
•데이터
전송 효율
•슬라이딩
윈도우를 사용하여 높임.
반응형
'IT > TCP IP' 카테고리의 다른 글
15. TCP 데이터 흐름과 윈도우 관리 (0) | 2015.08.12 |
---|---|
14. TCP 타임아웃과 재전송 (0) | 2015.08.12 |
13. TCP 연결관리 (0) | 2015.08.12 |
10. 사용자데이터그램 프로토콜과 IP단편화 추가내용 (0) | 2015.07.17 |
10. 사용자 데이터그램 프로토콜과 IP 단편화 (0) | 2015.07.17 |